commit c7aa4dbe8c134210be3724527b5dc03f9d53ae92 Author: Lol3rrr Date: Sun Sep 15 05:09:15 2024 +0200 Initial version diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..b3a205a --- /dev/null +++ b/.gitattributes @@ -0,0 +1 @@ +*.dem filter=lfs diff=lfs merge=lfs -text diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..ea8c4bf --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +/target diff --git a/.gitmodules b/.gitmodules new file mode 100644 index 0000000..516cdc6 --- /dev/null +++ b/.gitmodules @@ -0,0 +1,3 @@ +[submodule "Protobufs"] + path = Protobufs + url = git@github.com:SteamDatabase/Protobufs.git diff --git a/Cargo.lock b/Cargo.lock new file mode 100644 index 0000000..4bc1bbe --- /dev/null +++ b/Cargo.lock @@ -0,0 +1,469 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 3 + +[[package]] +name = "aho-corasick" +version = "1.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e60d3430d3a69478ad0993f19238d2df97c507009a52b3c10addcd7f6bcb916" +dependencies = [ + "memchr", +] + +[[package]] +name = "anyhow" +version = "1.0.88" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4e1496f8fb1fbf272686b8d37f523dab3e4a7443300055e74cdaa449f3114356" + +[[package]] +name = "bitflags" +version = "2.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b048fb63fd8b5923fc5aa7b340d8e156aec7ec02f0c78fa8a6ddc2613f6f71de" + +[[package]] +name = "bitter" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ef3a13b71496a92e8c00ebe576b260655b56935cd5118d5a8949788b651b5e07" + +[[package]] +name = "bytes" +version = "1.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8318a53db07bb3f8dca91a600466bdb3f2eaadeedfdbcf02e1accbad9271ba50" + +[[package]] +name = "cfg-if" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" + +[[package]] +name = "csdemo" +version = "0.1.0" +dependencies = [ + "bitter", + "phf", + "prost", + "prost-build", + "prost-types", + "snap", +] + +[[package]] +name = "either" +version = "1.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "60b1af1c220855b6ceac025d3f6ecdd2b7c4894bfe9cd9bda4fbb4bc7c0d4cf0" + +[[package]] +name = "equivalent" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5" + +[[package]] +name = "errno" +version = "0.3.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "534c5cf6194dfab3db3242765c03bbe257cf92f22b38f6bc0c58d59108a820ba" +dependencies = [ + "libc", + "windows-sys 0.52.0", +] + +[[package]] +name = "fastrand" +version = "2.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e8c02a5121d4ea3eb16a80748c74f5549a5665e4c21333c6098f283870fbdea6" + +[[package]] +name = "fixedbitset" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0ce7134b9999ecaf8bcd65542e436736ef32ddca1b3e06094cb6ec5755203b80" + +[[package]] +name = "hashbrown" +version = "0.14.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1" + +[[package]] +name = "heck" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" + +[[package]] +name = "indexmap" +version = "2.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "68b900aa2f7301e21c36462b170ee99994de34dff39a4a6a528e80e7376d07e5" +dependencies = [ + "equivalent", + "hashbrown", +] + +[[package]] +name = "itertools" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "413ee7dfc52ee1a4949ceeb7dbc8a33f2d6c088194d9f922fb8318faf1f01186" +dependencies = [ + "either", +] + +[[package]] +name = "libc" +version = "0.2.158" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d8adc4bb1803a324070e64a98ae98f38934d91957a99cfb3a43dcbc01bc56439" + +[[package]] +name = "linux-raw-sys" +version = "0.4.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "78b3ae25bc7c8c38cec158d1f2757ee79e9b3740fbc7ccf0e59e4b08d793fa89" + +[[package]] +name = "log" +version = "0.4.22" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a7a70ba024b9dc04c27ea2f0c0548feb474ec5c54bba33a7f72f873a39d07b24" + +[[package]] +name = "memchr" +version = "2.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3" + +[[package]] +name = "multimap" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "defc4c55412d89136f966bbb339008b474350e5e6e78d2714439c386b3137a03" + +[[package]] +name = "once_cell" +version = "1.20.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "33ea5043e58958ee56f3e15a90aee535795cd7dfd319846288d93c5b57d85cbe" + +[[package]] +name = "petgraph" +version = "0.6.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b4c5cc86750666a3ed20bdaf5ca2a0344f9c67674cae0515bec2da16fbaa47db" +dependencies = [ + "fixedbitset", + "indexmap", +] + +[[package]] +name = "phf" +version = "0.11.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ade2d8b8f33c7333b51bcf0428d37e217e9f32192ae4772156f65063b8ce03dc" +dependencies = [ + "phf_macros", + "phf_shared", +] + +[[package]] +name = "phf_generator" +version = "0.11.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "48e4cc64c2ad9ebe670cb8fd69dd50ae301650392e81c05f9bfcb2d5bdbc24b0" +dependencies = [ + "phf_shared", + "rand", +] + +[[package]] +name = "phf_macros" +version = "0.11.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3444646e286606587e49f3bcf1679b8cef1dc2c5ecc29ddacaffc305180d464b" +dependencies = [ + "phf_generator", + "phf_shared", + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "phf_shared" +version = "0.11.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "90fcb95eef784c2ac79119d1dd819e162b5da872ce6f3c3abe1e8ca1c082f72b" +dependencies = [ + "siphasher", +] + +[[package]] +name = "prettyplease" +version = "0.2.22" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "479cf940fbbb3426c32c5d5176f62ad57549a0bb84773423ba8be9d089f5faba" +dependencies = [ + "proc-macro2", + "syn", +] + +[[package]] +name = "proc-macro2" +version = "1.0.86" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5e719e8df665df0d1c8fbfd238015744736151d4445ec0836b8e628aae103b77" +dependencies = [ + "unicode-ident", +] + +[[package]] +name = "prost" +version = "0.13.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3b2ecbe40f08db5c006b5764a2645f7f3f141ce756412ac9e1dd6087e6d32995" +dependencies = [ + "bytes", + "prost-derive", +] + +[[package]] +name = "prost-build" +version = "0.13.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8650aabb6c35b860610e9cff5dc1af886c9e25073b7b1712a68972af4281302" +dependencies = [ + "bytes", + "heck", + "itertools", + "log", + "multimap", + "once_cell", + "petgraph", + "prettyplease", + "prost", + "prost-types", + "regex", + "syn", + "tempfile", +] + +[[package]] +name = "prost-derive" +version = "0.13.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "acf0c195eebb4af52c752bec4f52f645da98b6e92077a04110c7f349477ae5ac" +dependencies = [ + "anyhow", + "itertools", + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "prost-types" +version = "0.13.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "60caa6738c7369b940c3d49246a8d1749323674c65cb13010134f5c9bad5b519" +dependencies = [ + "prost", +] + +[[package]] +name = "quote" +version = "1.0.37" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b5b9d34b8991d19d98081b46eacdd8eb58c6f2b201139f7c5f643cc155a633af" +dependencies = [ + "proc-macro2", +] + +[[package]] +name = "rand" +version = "0.8.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" +dependencies = [ + "rand_core", +] + +[[package]] +name = "rand_core" +version = "0.6.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" + +[[package]] +name = "regex" +version = "1.10.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4219d74c6b67a3654a9fbebc4b419e22126d13d2f3c4a07ee0cb61ff79a79619" +dependencies = [ + "aho-corasick", + "memchr", + "regex-automata", + "regex-syntax", +] + +[[package]] +name = "regex-automata" +version = "0.4.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "38caf58cc5ef2fed281f89292ef23f6365465ed9a41b7a7754eb4e26496c92df" +dependencies = [ + "aho-corasick", + "memchr", + "regex-syntax", +] + +[[package]] +name = "regex-syntax" +version = "0.8.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7a66a03ae7c801facd77a29370b4faec201768915ac14a721ba36f20bc9c209b" + +[[package]] +name = "rustix" +version = "0.38.37" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8acb788b847c24f28525660c4d7758620a7210875711f79e7f663cc152726811" +dependencies = [ + "bitflags", + "errno", + "libc", + "linux-raw-sys", + "windows-sys 0.52.0", +] + +[[package]] +name = "siphasher" +version = "0.3.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "38b58827f4464d87d377d175e90bf58eb00fd8716ff0a62f80356b5e61555d0d" + +[[package]] +name = "snap" +version = "1.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1b6b67fb9a61334225b5b790716f609cd58395f895b3fe8b328786812a40bc3b" + +[[package]] +name = "syn" +version = "2.0.77" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9f35bcdf61fd8e7be6caf75f429fdca8beb3ed76584befb503b1569faee373ed" +dependencies = [ + "proc-macro2", + "quote", + "unicode-ident", +] + +[[package]] +name = "tempfile" +version = "3.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "04cbcdd0c794ebb0d4cf35e88edd2f7d2c4c3e9a5a6dab322839b321c6a87a64" +dependencies = [ + "cfg-if", + "fastrand", + "once_cell", + "rustix", + "windows-sys 0.59.0", +] + +[[package]] +name = "unicode-ident" +version = "1.0.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e91b56cd4cadaeb79bbf1a5645f6b4f8dc5bde8834ad5894a8db35fda9efa1fe" + +[[package]] +name = "windows-sys" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" +dependencies = [ + "windows-targets", +] + +[[package]] +name = "windows-sys" +version = "0.59.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e38bc4d79ed67fd075bcc251a1c39b32a1776bbe92e5bef1f0bf1f8c531853b" +dependencies = [ + "windows-targets", +] + +[[package]] +name = "windows-targets" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973" +dependencies = [ + "windows_aarch64_gnullvm", + "windows_aarch64_msvc", + "windows_i686_gnu", + "windows_i686_gnullvm", + "windows_i686_msvc", + "windows_x86_64_gnu", + "windows_x86_64_gnullvm", + "windows_x86_64_msvc", +] + +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3" + +[[package]] +name = "windows_aarch64_msvc" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469" + +[[package]] +name = "windows_i686_gnu" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b" + +[[package]] +name = "windows_i686_gnullvm" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66" + +[[package]] +name = "windows_i686_msvc" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66" + +[[package]] +name = "windows_x86_64_gnu" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78" + +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d" + +[[package]] +name = "windows_x86_64_msvc" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" diff --git a/Cargo.toml b/Cargo.toml new file mode 100644 index 0000000..6c60385 --- /dev/null +++ b/Cargo.toml @@ -0,0 +1,19 @@ +[package] +name = "csdemo" +version = "0.1.0" +edition = "2021" + +[dependencies] +prost = "0.13.2" +prost-types = "0.13.2" + +# For decompressing any compressed frames +snap = "1.1.1" + +# For decoding the data stored inside of the `Packet` command +bitter = "0.7" + +phf = { version = "0.11", features = ["macros"] } + +[build-dependencies] +prost-build = { version = "0.13.2" } diff --git a/Protobufs/.gitattributes b/Protobufs/.gitattributes new file mode 100644 index 0000000..fcadb2c --- /dev/null +++ b/Protobufs/.gitattributes @@ -0,0 +1 @@ +* text eol=lf diff --git a/Protobufs/.gitignore b/Protobufs/.gitignore new file mode 100644 index 0000000..3bdd36e --- /dev/null +++ b/Protobufs/.gitignore @@ -0,0 +1 @@ +*/google/ diff --git a/Protobufs/LICENSE b/Protobufs/LICENSE new file mode 100644 index 0000000..68a49da --- /dev/null +++ b/Protobufs/LICENSE @@ -0,0 +1,24 @@ +This is free and unencumbered software released into the public domain. + +Anyone is free to copy, modify, publish, use, compile, sell, or +distribute this software, either in source code form or as a compiled +binary, for any purpose, commercial or non-commercial, and by any +means. + +In jurisdictions that recognize copyright laws, the author or authors +of this software dedicate any and all copyright interest in the +software to the public domain. We make this dedication for the benefit +of the public at large and to the detriment of our heirs and +successors. We intend this dedication to be an overt act of +relinquishment in perpetuity of all present and future rights to this +software under copyright law. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR +OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, +ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR +OTHER DEALINGS IN THE SOFTWARE. + +For more information, please refer to diff --git a/Protobufs/README.md b/Protobufs/README.md new file mode 100644 index 0000000..d93ae0d --- /dev/null +++ b/Protobufs/README.md @@ -0,0 +1,10 @@ +### Automatically tracked protobufs for Steam and Valve's games. + +These protobufs are being dumped as updates come in the [SteamTracking](https://github.com/SteamDatabase/SteamTracking) repository. + +Protobufs are dumped using [SteamKit's protobuf dumper](https://github.com/SteamRE/SteamKit/tree/master/Resources/ProtobufDumper). + +For protobufs dumped from javascript files (in webui folder), we have a [separate dumper](https://github.com/SteamDatabase/SteamTracking/blob/master/dump_javascript_protobufs.mjs) which parses javascript files into abstract syntax tree and tries to find all the messages and services. As such, these dumps are not as complete as dumps from binary files because minified javascript files lack some information. + +> [!NOTE] +> Artifact and Underlords protobufs are no longer being updated automatically. diff --git a/Protobufs/artifact/base_gcmessages.proto b/Protobufs/artifact/base_gcmessages.proto new file mode 100644 index 0000000..cdc539d --- /dev/null +++ b/Protobufs/artifact/base_gcmessages.proto @@ -0,0 +1,532 @@ +import "steammessages.proto"; + +option optimize_for = SPEED; +option cc_generic_services = false; + +enum EGCBaseMsg { + k_EMsgGCSystemMessage = 4001; + k_EMsgGCReplicateConVars = 4002; + k_EMsgGCConVarUpdated = 4003; + k_EMsgGCInviteToParty = 4501; + k_EMsgGCInvitationCreated = 4502; + k_EMsgGCPartyInviteResponse = 4503; + k_EMsgGCKickFromParty = 4504; + k_EMsgGCLeaveParty = 4505; + k_EMsgGCServerAvailable = 4506; + k_EMsgGCClientConnectToServer = 4507; + k_EMsgGCGameServerInfo = 4508; + k_EMsgGCError = 4509; + k_EMsgGCLANServerAvailable = 4511; + k_EMsgGCInviteToLobby = 4512; + k_EMsgGCLobbyInviteResponse = 4513; + k_EMsgGCToClientPollFileRequest = 4514; + k_EMsgGCToClientPollFileResponse = 4515; + k_EMsgGCToGCPerformManualOp = 4516; + k_EMsgGCToGCPerformManualOpCompleted = 4517; + k_EMsgGCToGCReloadServerRegionSettings = 4518; +} + +enum EGCBaseProtoObjectTypes { + k_EProtoObjectPartyInvite = 1001; + k_EProtoObjectLobbyInvite = 1002; +} + +enum ECustomGameInstallStatus { + k_ECustomGameInstallStatus_Unknown = 0; + k_ECustomGameInstallStatus_Ready = 1; + k_ECustomGameInstallStatus_Busy = 2; + k_ECustomGameInstallStatus_FailedGeneric = 101; + k_ECustomGameInstallStatus_FailedInternalError = 102; + k_ECustomGameInstallStatus_RequestedTimestampTooOld = 103; + k_ECustomGameInstallStatus_RequestedTimestampTooNew = 104; + k_ECustomGameInstallStatus_CRCMismatch = 105; + k_ECustomGameInstallStatus_FailedSteam = 106; + k_ECustomGameInstallStatus_FailedCanceled = 107; +} + +message CGCStorePurchaseInit_LineItem { + optional uint32 item_def_id = 1; + optional uint32 quantity = 2; + optional uint32 cost_in_local_currency = 3; + optional uint32 purchase_type = 4; + optional uint64 source_reference_id = 5; +} + +message CMsgGCStorePurchaseInit { + optional string country = 1; + optional int32 language = 2; + optional int32 currency = 3; + repeated .CGCStorePurchaseInit_LineItem line_items = 4; +} + +message CMsgGCStorePurchaseInitResponse { + optional int32 result = 1; + optional uint64 txn_id = 2; +} + +message CMsgSystemBroadcast { + optional string message = 1; +} + +message CMsgClientPingData { + repeated fixed32 relay_codes = 4 [packed = true]; + repeated uint32 relay_pings = 5 [packed = true]; + repeated uint32 region_codes = 8 [packed = true]; + repeated uint32 region_pings = 9 [packed = true]; + optional uint32 region_ping_failed_bitmask = 10; +} + +message CMsgInviteToParty { + optional fixed64 steam_id = 1; + optional uint32 client_version = 2; + optional uint32 team_id = 3; + optional bool as_coach = 4; + optional .CMsgClientPingData ping_data = 5; +} + +message CMsgInviteToLobby { + optional fixed64 steam_id = 1; + optional uint32 client_version = 2; +} + +message CMsgInvitationCreated { + optional uint64 group_id = 1; + optional fixed64 steam_id = 2; + optional bool user_offline = 3; +} + +message CMsgPartyInviteResponse { + optional uint64 party_id = 1; + optional bool accept = 2; + optional uint32 client_version = 3; + optional .CMsgClientPingData ping_data = 8; +} + +message CMsgLobbyInviteResponse { + optional fixed64 lobby_id = 1; + optional bool accept = 2; + optional uint32 client_version = 3; + optional fixed64 custom_game_crc = 6; + optional fixed32 custom_game_timestamp = 7; +} + +message CMsgKickFromParty { + optional fixed64 steam_id = 1; +} + +message CMsgLeaveParty { +} + +message CMsgCustomGameInstallStatus { + optional .ECustomGameInstallStatus status = 1 [default = k_ECustomGameInstallStatus_Unknown]; + optional string message = 2; + optional fixed32 latest_timestamp_from_steam = 3; +} + +message CMsgServerAvailable { + optional .CMsgCustomGameInstallStatus custom_game_install_status = 1; +} + +message CMsgLANServerAvailable { + optional fixed64 lobby_id = 1; +} + +message CSOEconGameAccountClient { + optional uint32 additional_backpack_slots = 1 [default = 0]; + optional bool trial_account = 2 [default = false]; + optional bool eligible_for_online_play = 3 [default = true]; + optional bool need_to_choose_most_helpful_friend = 4; + optional bool in_coaches_list = 5; + optional fixed32 trade_ban_expiration = 6; + optional fixed32 duel_ban_expiration = 7; + optional bool made_first_purchase = 9 [default = false]; +} + +message CSOItemCriteriaCondition { + optional int32 op = 1; + optional string field = 2; + optional bool required = 3; + optional float float_value = 4; + optional string string_value = 5; +} + +message CSOItemCriteria { + optional uint32 item_level = 1; + optional int32 item_quality = 2; + optional bool item_level_set = 3; + optional bool item_quality_set = 4; + optional uint32 initial_inventory = 5; + optional uint32 initial_quantity = 6; + optional bool ignore_enabled_flag = 8; + repeated .CSOItemCriteriaCondition conditions = 9; + optional bool recent_only = 10; +} + +message CSOItemRecipe { + optional uint32 def_index = 1; + optional string name = 2; + optional string n_a = 3; + optional string desc_inputs = 4; + optional string desc_outputs = 5; + optional string di_a = 6; + optional string di_b = 7; + optional string di_c = 8; + optional string do_a = 9; + optional string do_b = 10; + optional string do_c = 11; + optional bool requires_all_same_class = 12; + optional bool requires_all_same_slot = 13; + optional int32 class_usage_for_output = 14; + optional int32 slot_usage_for_output = 15; + optional int32 set_for_output = 16; + repeated .CSOItemCriteria input_items_criteria = 20; + repeated .CSOItemCriteria output_items_criteria = 21; + repeated uint32 input_item_dupe_counts = 22; +} + +message CMsgApplyStrangePart { + optional uint64 strange_part_item_id = 1; + optional uint64 item_item_id = 2; +} + +message CMsgApplyPennantUpgrade { + optional uint64 upgrade_item_id = 1; + optional uint64 pennant_item_id = 2; +} + +message CMsgApplyEggEssence { + optional uint64 essence_item_id = 1; + optional uint64 egg_item_id = 2; +} + +message CSOEconItemAttribute { + optional uint32 def_index = 1; + optional uint32 value = 2; + optional bytes value_bytes = 3; +} + +message CSOEconItemEquipped { + optional uint32 new_class = 1; + optional uint32 new_slot = 2; +} + +message CSOEconItem { + optional uint64 id = 1; + optional uint32 account_id = 2; + optional uint32 inventory = 3; + optional uint32 def_index = 4; + optional uint32 quantity = 5 [default = 1]; + optional uint32 level = 6 [default = 1]; + optional uint32 quality = 7 [default = 4]; + optional uint32 flags = 8 [default = 0]; + optional uint32 origin = 9 [default = 0]; + repeated .CSOEconItemAttribute attribute = 12; + optional .CSOEconItem interior_item = 13; + optional uint32 style = 15 [default = 0]; + optional uint64 original_id = 16 [default = 0]; + repeated .CSOEconItemEquipped equipped_state = 18; +} + +message CMsgSortItems { + optional uint32 sort_type = 1; +} + +message CSOEconClaimCode { + optional uint32 account_id = 1; + optional uint32 code_type = 2; + optional uint32 time_acquired = 3; + optional string code = 4; +} + +message CMsgUpdateItemSchema { + optional bytes items_game = 1; + optional fixed32 item_schema_version = 2; + optional string items_game_url = 3; +} + +message CMsgGCError { + optional string error_text = 1; +} + +message CMsgRequestInventoryRefresh { +} + +message CMsgConVarValue { + optional string name = 1; + optional string value = 2; +} + +message CMsgReplicateConVars { + repeated .CMsgConVarValue convars = 1; +} + +message CMsgItemAcknowledged { + optional uint32 account_id = 1; + optional uint32 inventory = 2; + optional uint32 def_index = 3; + optional uint32 quality = 4; + optional uint32 rarity = 5; + optional uint32 origin = 6; +} + +message CMsgSetItemPositions { + message ItemPosition { + optional uint64 item_id = 1; + optional uint32 position = 2; + } + + repeated .CMsgSetItemPositions.ItemPosition item_positions = 1; +} + +message CMsgGCNameItemNotification { + optional fixed64 player_steamid = 1; + optional uint32 item_def_index = 2; + optional string item_name_custom = 3; +} + +message CMsgGCClientDisplayNotification { + optional string notification_title_localization_key = 1; + optional string notification_body_localization_key = 2; + repeated string body_substring_keys = 3; + repeated string body_substring_values = 4; +} + +message CMsgGCShowItemsPickedUp { + optional fixed64 player_steamid = 1; +} + +message CMsgGCIncrementKillCountResponse { + optional uint32 killer_account_id = 1 [(key_field) = true]; + optional uint32 num_kills = 2; + optional uint32 item_def = 3; + optional uint32 level_type = 4; +} + +message CSOEconItemDropRateBonus { + optional uint32 account_id = 1 [(key_field) = true]; + optional fixed32 expiration_date = 2; + optional float bonus = 3 [(key_field) = true]; + optional uint32 bonus_count = 4; + optional uint64 item_id = 5; + optional uint32 def_index = 6; + optional uint32 seconds_left = 7; + optional uint32 booster_type = 8 [(key_field) = true]; +} + +message CSOEconItemLeagueViewPass { + optional uint32 account_id = 1 [(key_field) = true]; + optional uint32 league_id = 2 [(key_field) = true]; + optional uint32 itemindex = 4; + optional uint32 grant_reason = 5; +} + +message CSOEconItemEventTicket { + optional uint32 account_id = 1; + optional uint32 event_id = 2; + optional uint64 item_id = 3; +} + +message CSOEconItemTournamentPassport { + optional uint32 account_id = 1; + optional uint32 league_id = 2; + optional uint64 item_id = 3; + optional uint32 original_purchaser_id = 4; + optional uint32 passports_bought = 5; + optional uint32 version = 6; + optional uint32 def_index = 7; + optional uint32 reward_flags = 8; +} + +message CMsgGCStorePurchaseCancel { + optional uint64 txn_id = 1; +} + +message CMsgGCStorePurchaseCancelResponse { + optional uint32 result = 1; +} + +message CMsgGCStorePurchaseFinalize { + optional uint64 txn_id = 1; +} + +message CMsgGCStorePurchaseFinalizeResponse { + optional uint32 result = 1; + repeated uint64 item_ids = 2; +} + +message CMsgGCToGCBannedWordListUpdated { + optional uint32 group_id = 1; +} + +message CMsgGCToGCDirtySDOCache { + optional uint32 sdo_type = 1; + optional uint64 key_uint64 = 2; +} + +message CMsgGCToGCDirtyMultipleSDOCache { + optional uint32 sdo_type = 1; + repeated uint64 key_uint64 = 2; +} + +message CMsgGCToGCApplyLocalizationDiff { + optional uint32 language = 1; + optional string packed_diff = 2; +} + +message CMsgGCToGCApplyLocalizationDiffResponse { + optional bool success = 1; +} + +message CMsgGCCollectItem { + optional uint64 collection_item_id = 1; + optional uint64 subject_item_id = 2; +} + +message CMsgSDONoMemcached { +} + +message CMsgGCToGCUpdateSQLKeyValue { + optional string key_name = 1; +} + +message CMsgGCServerVersionUpdated { + optional uint32 server_version = 1; +} + +message CMsgGCClientVersionUpdated { + optional uint32 client_version = 1; +} + +message CMsgGCToGCWebAPIAccountChanged { +} + +message CMsgRecipeComponent { + optional uint64 subject_item_id = 1; + optional uint64 attribute_index = 2; +} + +message CMsgFulfillDynamicRecipeComponent { + optional uint64 tool_item_id = 1; + repeated .CMsgRecipeComponent consumption_components = 2; +} + +message CMsgGCClientMarketDataRequest { + optional uint32 user_currency = 1; +} + +message CMsgGCClientMarketDataEntry { + optional uint32 item_def_index = 1; + optional uint32 item_quality = 2; + optional uint32 item_sell_listings = 3; + optional uint32 price_in_local_currency = 4; +} + +message CMsgGCClientMarketData { + repeated .CMsgGCClientMarketDataEntry entries = 1; +} + +message CMsgExtractGems { + optional uint64 tool_item_id = 1; + optional uint64 item_item_id = 2; + optional uint32 item_socket_id = 3 [default = 65535]; +} + +message CMsgExtractGemsResponse { + enum EExtractGems { + k_ExtractGems_Succeeded = 0; + k_ExtractGems_Failed_ToolIsInvalid = 1; + k_ExtractGems_Failed_ItemIsInvalid = 2; + k_ExtractGems_Failed_ToolCannotRemoveGem = 3; + k_ExtractGems_Failed_FailedToRemoveGem = 4; + } + + optional uint64 item_id = 1; + optional .CMsgExtractGemsResponse.EExtractGems response = 2 [default = k_ExtractGems_Succeeded]; +} + +message CMsgAddSocket { + optional uint64 tool_item_id = 1; + optional uint64 item_item_id = 2; + optional bool unusual = 3; +} + +message CMsgAddSocketResponse { + enum EAddSocket { + k_AddSocket_Succeeded = 0; + k_AddSocket_Failed_ToolIsInvalid = 1; + k_AddSocket_Failed_ItemCannotBeSocketed = 2; + k_AddSocket_Failed_FailedToAddSocket = 3; + } + + optional uint64 item_id = 1; + repeated uint32 updated_socket_index = 2; + optional .CMsgAddSocketResponse.EAddSocket response = 3 [default = k_AddSocket_Succeeded]; +} + +message CMsgAddItemToSocketData { + optional uint64 gem_item_id = 1; + optional uint32 socket_index = 2; +} + +message CMsgAddItemToSocket { + optional uint64 item_item_id = 1; + repeated .CMsgAddItemToSocketData gems_to_socket = 2; +} + +message CMsgAddItemToSocketResponse { + enum EAddGem { + k_AddGem_Succeeded = 0; + k_AddGem_Failed_GemIsInvalid = 1; + k_AddGem_Failed_ItemIsInvalid = 2; + k_AddGem_Failed_FailedToAddGem = 3; + k_AddGem_Failed_InvalidGemTypeForSocket = 4; + k_AddGem_Failed_InvalidGemTypeForHero = 5; + k_AddGem_Failed_InvalidGemTypeForSlot = 6; + k_AddGem_Failed_SocketContainsUnremovableGem = 7; + } + + optional uint64 item_item_id = 1; + repeated uint32 updated_socket_index = 2; + optional .CMsgAddItemToSocketResponse.EAddGem response = 3 [default = k_AddGem_Succeeded]; +} + +message CMsgResetStrangeGemCount { + optional uint64 item_item_id = 1; + optional uint32 socket_index = 2; +} + +message CMsgResetStrangeGemCountResponse { + enum EResetGem { + k_ResetGem_Succeeded = 0; + k_ResetGem_Failed_FailedToResetGem = 1; + k_ResetGem_Failed_ItemIsInvalid = 2; + k_ResetGem_Failed_InvalidSocketId = 3; + k_ResetGem_Failed_SocketCannotBeReset = 4; + } + + optional .CMsgResetStrangeGemCountResponse.EResetGem response = 1 [default = k_ResetGem_Succeeded]; +} + +message CMsgGCToClientPollFileRequest { + optional string file_name = 1; + optional uint32 client_version = 2; + optional uint32 poll_id = 3; +} + +message CMsgGCToClientPollFileResponse { + optional uint32 poll_id = 1; + optional uint32 file_size = 2; +} + +message CMsgGCToGCPerformManualOp { + optional uint64 op_id = 1; + optional uint32 group_code = 2; +} + +message CMsgGCToGCPerformManualOpCompleted { + optional bool success = 1; + optional uint32 source_gc = 2; +} + +message CMsgGCToGCReloadServerRegionSettings { +} diff --git a/Protobufs/artifact/c_peer2peer_netmessages.proto b/Protobufs/artifact/c_peer2peer_netmessages.proto new file mode 100644 index 0000000..d8f21f6 --- /dev/null +++ b/Protobufs/artifact/c_peer2peer_netmessages.proto @@ -0,0 +1,57 @@ +import "netmessages.proto"; +import "networkbasetypes.proto"; + +option cc_generic_services = false; + +enum P2P_Messages { + p2p_TextMessage = 256; + p2p_Voice = 257; + p2p_Ping = 258; + p2p_VRAvatarPosition = 259; + p2p_WatchSynchronization = 260; +} + +message CP2P_TextMessage { + optional bytes text = 1; +} + +message CSteam_Voice_Encoding { + optional bytes voice_data = 1; +} + +message CP2P_Voice { + enum Handler_Flags { + Played_Audio = 1; + } + + optional .CMsgVoiceAudio audio = 1; + optional uint32 broadcast_group = 2; +} + +message CP2P_Ping { + required uint64 send_time = 1; + required bool is_reply = 2; +} + +message CP2P_VRAvatarPosition { + message COrientation { + optional .CMsgVector pos = 1; + optional .CMsgQAngle ang = 2; + } + + repeated .CP2P_VRAvatarPosition.COrientation body_parts = 1; + optional int32 hat_id = 2; + optional int32 scene_id = 3; + optional int32 world_scale = 4; +} + +message CP2P_WatchSynchronization { + optional int32 demo_tick = 1; + optional bool paused = 2; + optional int32 tv_listen_voice_indices = 3; + optional int32 dota_spectator_mode = 4; + optional int32 dota_spectator_watching_broadcaster = 5; + optional int32 dota_spectator_hero_index = 6; + optional int32 dota_spectator_autospeed = 7; + optional int32 dota_replay_speed = 8; +} diff --git a/Protobufs/artifact/clientmessages.proto b/Protobufs/artifact/clientmessages.proto new file mode 100644 index 0000000..320f6bc --- /dev/null +++ b/Protobufs/artifact/clientmessages.proto @@ -0,0 +1,51 @@ +option optimize_for = SPEED; +option cc_generic_services = false; + +enum EBaseClientMessages { + CM_CustomGameEvent = 280; + CM_CustomGameEventBounce = 281; + CM_ClientUIEvent = 282; + CM_DevPaletteVisibilityChanged = 283; + CM_WorldUIControllerHasPanelChanged = 284; + CM_RotateAnchor = 285; + CM_MAX_BASE = 300; +} + +enum EClientUIEvent { + EClientUIEvent_Invalid = 0; + EClientUIEvent_DialogFinished = 1; + EClientUIEvent_FireOutput = 2; +} + +message CClientMsg_CustomGameEvent { + optional string event_name = 1; + optional bytes data = 2; +} + +message CClientMsg_CustomGameEventBounce { + optional string event_name = 1; + optional bytes data = 2; + optional int32 player_index = 3; +} + +message CClientMsg_ClientUIEvent { + optional .EClientUIEvent event = 1 [default = EClientUIEvent_Invalid]; + optional uint32 ent_ehandle = 2; + optional uint32 client_ehandle = 3; + optional string data1 = 4; + optional string data2 = 5; +} + +message CClientMsg_DevPaletteVisibilityChangedEvent { + optional bool visible = 1; +} + +message CClientMsg_WorldUIControllerHasPanelChangedEvent { + optional bool has_panel = 1; + optional uint32 client_ehandle = 2; + optional uint32 literal_hand_type = 3; +} + +message CClientMsg_RotateAnchor { + optional float angle = 1; +} diff --git a/Protobufs/artifact/connectionless_netmessages.proto b/Protobufs/artifact/connectionless_netmessages.proto new file mode 100644 index 0000000..1f625c7 --- /dev/null +++ b/Protobufs/artifact/connectionless_netmessages.proto @@ -0,0 +1,21 @@ +import "netmessages.proto"; + +option cc_generic_services = false; + +message C2S_CONNECT_Message { + optional uint32 host_version = 1; + optional uint32 auth_protocol = 2; + optional uint32 challenge_number = 3; + optional fixed64 reservation_cookie = 4; + optional bool low_violence = 5; + optional bytes encrypted_password = 6; + repeated .CCLCMsg_SplitPlayerConnect splitplayers = 7; + optional bytes auth_steam = 8; + optional string challenge_context = 9; + optional sint32 use_snp = 10; +} + +message C2S_CONNECTION_Message { + optional string addon_name = 1; + optional bool use_snp = 2; +} diff --git a/Protobufs/artifact/dcg_gamemessages.proto b/Protobufs/artifact/dcg_gamemessages.proto new file mode 100644 index 0000000..961bd43 --- /dev/null +++ b/Protobufs/artifact/dcg_gamemessages.proto @@ -0,0 +1,638 @@ +import "dcg_gcmessages_common.proto"; + +option optimize_for = SPEED; +option cc_generic_services = false; + +enum EDCGGameMessages { + k_EMsgGameBoardGameCommand = 1; + k_EMsgGameBoardGameState = 2; + k_EMsgGameBoardGameButton = 3; + k_EMsgGamePlayerRequestHandoff = 4; + k_EMsgGameHandoff = 5; + k_EMsgGameReplayActionMarker = 6; + k_EMsgGameClientToServerChatMsg = 7; + k_EMsgGameServerToClientChatMsg = 8; + k_EMsgGameClientToServerPauseTimer = 9; + k_EMsgGameServerToClientConnectionStatus = 10; + k_EMsgGameClientToServerGiveOpponentTime = 11; + k_EMsgGameServerToClientInitialGameState = 12; + k_EMsgGameServerToClientGameCompleted = 13; + k_EMsgGameClientToServerBoardGameStateAck = 14; + k_EMsgGameServerToClientGoodbye = 15; + k_EMsgTutorialEvent = 1000; + k_EMsgVenchatoquistEvent = 1001; +} + +enum EScriptBlockType { + INVALID_SCRIPT_TYPE = 0; + CARD_PLAY_SCRIPT = 1; + GENERIC_TRIGGER_SCRIPT = 2; + SBE_UPDATE_SCRIPT = 3; + DEATH_CHECK_SCRIPT = 4; + COMBAT = 5; + CARD_DRAW_PHASE = 6; + END_OF_TURN_PHASE = 7; + COLLAPSE_LANE = 8; + CE_ADDED = 9; + CE_REMOVED = 10; + SURVIVED_DEATH = 11; + DEV_COMMAND = 12; + AFTER_COMBAT_PHASE = 13; + UPDATE_COMBAT_PREVIEW = 14; + UPDATE_OBJECT_ATTRIBUTES = 15; + TRIGGER_BLOCK = 16; + POST_SHOP_ITEM_PURCHASE = 17; + FLOP_DEPLOYMENT_TO_COMBAT = 18; + BEGINNING_OF_SPELLCASTING = 19; + PREGAME = 20; + RAPID_DEPLOYMENT = 21; + INITIAL_FLOP = 23; + CREEP_DEPLOYMENT = 24; + PREPARE_HEROES_FOR_LANE_ASSIGNMENT = 25; + SHOPPING_START = 26; + SHOPPING_UPDATE = 27; + SHOPPING_FINISHED = 28; + HERO_LANE_ASSIGNMENT = 29; + HERO_VS = 30; + PATHING_CARD_DEPLOYMENT = 31; + HACKED_EFFECT = 32; + EXPORT_CARD_SET_TO_IMAGES = 33; + GAME_OVER = 34; + TOKEN_DEPLOYED = 35; +} + +enum EShoppingSlot { + eInvalidSlot = 0; + eMiddleShop = 1; + eSecretShop = 2; + eConsumableShop = 3; +} + +enum EDCGDisconnectReason { + k_EDCGDisconnectReason_UserLeaveMatch = 1001; + k_EDCGDisconnectReason_UserQuitApp = 1002; + k_EDCGDisconnectReason_UserCancel = 1003; + k_EDCGDisconnectReason_Goodbye = 1004; + k_EDCGDisconnectReason_BadMessage = 2001; + k_EDCGDisconnectReason_GameDestroyedUnexpectedly = 2002; + k_EDCGDisconnectReason_ChangingServer = 2003; + k_EDCGDisconnectReason_OldConnection = 2004; + k_EDCGDisconnectReason_GoodbyeUnrecognizedGame = 2005; +} + +message CMsgClientServerHeader { + optional uint64 game_instance_id = 1; + optional uint32 local_player_index = 2; + optional bytes payload = 3; + optional .EDCGGameMessages msg_id = 4 [default = k_EMsgGameBoardGameCommand]; +} + +message CMsgGameBoardGameCommand { + optional uint32 command_id = 1; + optional uint32 object_id = 2; +} + +message CMsgGameBoardGameState { + optional bool is_diff = 1; + optional bool is_last = 2; + optional bytes payload = 3; + optional uint32 unpacked_state_size = 4; + optional uint32 network_group = 5; + optional uint32 server_time_ms = 6; +} + +message CMsgGameBoardGameButton { + optional uint32 button_id = 1; +} + +message CMsgGamePlayerRequestHandoff { +} + +message CMsgGameHandoff { + optional uint32 player_count = 1; + optional bool is_spectator = 3; + optional .EDCGMatchMode game_mode = 4 [default = k_EDCGMatchMode_Unranked]; +} + +message CMsgGameServerToClientInitialGameState { + message CMsgDeckList { + optional uint32 owner_id = 1; + optional bytes deck_data = 2; + } + + message CMsgCombatLogEntry { + optional uint32 type = 1; + optional uint32 target_object_id = 2; + optional uint32 target_card_id = 3; + optional uint32 value = 4; + optional uint32 secondary_value = 5; + optional uint32 sub_type = 6; + optional uint32 source_object_id = 7; + optional uint32 source_card_id = 8; + optional uint32 owner_id = 9; + optional uint32 lane_id = 10; + optional uint32 remaining_health = 11; + optional uint32 old_arrow_direction = 12; + optional .EShoppingSlot slot = 14 [default = eInvalidSlot]; + } + + repeated .CMsgGameServerToClientInitialGameState.CMsgDeckList decklist = 1; + repeated .CMsgGameServerToClientInitialGameState.CMsgCombatLogEntry combat_log_entry = 2; +} + +message CMsgGameReplayActionMarker { + enum EActionType { + k_eActionType_TurnStart = 1; + k_eActionType_TurnEnd = 2; + k_eActionType_ShoppingStart = 3; + k_eActionType_ShoppingEnd = 4; + k_eActionType_HeroPlacementStart = 5; + k_eActionType_HeroPlacementEnd = 6; + k_eActionType_MatchComplete = 7; + k_eActionType_LaneStart = 8; + k_eActionType_LaneEnd = 9; + k_eActionType_LaneCombat = 10; + k_eActionType_PlayerAction = 11; + } + + optional .CMsgGameReplayActionMarker.EActionType action = 1 [default = k_eActionType_TurnStart]; +} + +message CMsgTutorialEvent { + optional string type = 1; + optional uint32 object_id = 2; + optional string param1 = 3; + optional string param2 = 4; + optional string param3 = 5; +} + +message CMsgVenchatoquistEvent { + enum EChatSource { + eObjectID = 1; + ePlayer = 2; + eDeckImp = 3; + } + + optional string text = 1; + optional uint32 object_id = 2; + optional .CMsgVenchatoquistEvent.EChatSource chat_source = 3 [default = eObjectID]; + optional string persona_name = 4; + optional uint32 user_id = 5; + optional uint32 line_id = 6; + optional bool toggle_mute = 7; +} + +message CMsgGameClientToServerChatMsg { + optional .CExtraMsgBlock gc_chat_msg = 1; +} + +message CMsgGameServerToClientChatMsg { + optional .CExtraMsgBlock gc_chat_response = 1; +} + +message CMsgGameServerToClientGameCompleted { +} + +message CMsgGameClientToServerBoardGameStateAck { + optional uint32 server_time_ms = 1; +} + +message CMsgGameServerToClientGoodbye { +} + +message CMsgGameClientToServerPauseTimer { + optional bool pause = 1; +} + +message CMsgGameServerToClientConnectionStatus { + message Player { + optional uint32 player_id = 1; + optional .CMsgGameServerToClientConnectionStatus.EStatus status = 2 [default = k_EConnected]; + optional bool inactivity_ticking = 3; + optional uint32 inactivity_ms_remaining = 4; + optional uint32 inactivity_anim_ms_remaining = 5; + } + + enum EStatus { + k_EConnected = 1; + k_EDisconnected = 2; + } + + repeated .CMsgGameServerToClientConnectionStatus.Player players = 1; +} + +message CMsgGameClientToServerGiveOpponentTime { +} + +message CClientReconnectInfo { + optional fixed64 server_steam_id = 1; + optional uint64 match_id = 2; + optional uint32 time_updated = 3; +} + +message CMsgPostMatchStats { + message CStat { + optional uint32 card_id = 1; + optional uint32 stat_id = 2; + optional uint32 value = 3; + } + + message CLane { + optional uint32 player = 1; + optional uint32 turn = 2; + optional uint32 lane = 3; + repeated .CMsgPostMatchStats.CStat stats = 4; + } + + repeated .CMsgPostMatchStats.CLane lanes = 1; +} + +message CMsgPostMatchCardAchievements { + repeated uint32 achievement_id = 1 [packed = true]; + repeated uint32 base_values = 2 [packed = true]; + repeated uint32 progress = 3 [packed = true]; +} + +message CMsgSerializeQuestProgress { + message LocalUnlock { + optional uint32 node_id = 1; + } + + optional uint32 version = 1; + optional uint32 quest_id = 2; + optional uint32 account_id = 3; + optional bytes progress_msg = 4; + repeated .CMsgSerializeQuestProgress.LocalUnlock local_unlocks = 5; +} + +message CMsg_Card { + optional uint32 card_id = 1; + optional uint32 source_effect_card_id = 2; + optional string color = 3; +} + +message CTraceMsg_PathingCardChanged { + optional uint32 new_card_id = 1; + optional bool is_boundary_path = 2; + optional bool is_valid_path_target = 3; +} + +message CTraceMsg_CardBought { + optional int32 turn_card_entered_hand = 1; + optional int32 order_card_entered_hand = 2; +} + +message CTraceMsg_ChargesChanged { + optional int32 charge_delta = 1; + optional uint32 new_charges = 2; +} + +message CTraceMsg_ShoppingCardAppeared { + optional .EShoppingSlot slot = 1 [default = eInvalidSlot]; +} + +message CTraceMsg_ShopAction { +} + +message CTraceMsg_ShopHoldItemAvailable { + optional uint32 owner_id = 1; + optional bool is_available = 2; +} + +message CTraceMsg_ShopCardRemoved { +} + +message CTraceMsg_ShopEnded { + optional uint32 owner_id = 1; +} + +message CTraceMsg_ShoppingCardShuffled { + optional uint32 shop_order = 1; +} + +message CTraceMsg_UnitEnteringCombat { + optional uint32 new_lane_id = 1; + optional uint32 new_combat_position = 2; + optional uint32 owner_id = 4; + optional bool is_valid_path_target = 5; + optional bool is_boundary_path = 6; +} + +message CTraceMsg_ImprovementEnteringPlay { + optional uint32 new_lane_id = 1; + optional uint32 new_improvement_position = 2; + optional .CMsg_Card card = 3; + optional uint32 owner_id = 4; +} + +message CTraceMsg_UnitLeavingCombat { + optional uint32 lane_id = 1; + optional uint32 new_zone_id = 2; +} + +message CTraceMsg_DeathShieldUsed { +} + +message CTraceMsg_CardSurvivedDeath { + optional uint32 survival_chance = 1; + optional uint32 source_card_id = 2; + optional uint32 source_object_id = 3; +} + +message CTraceMsg_TowerKilled { + optional uint32 owner_id = 1; + optional bool is_combat = 2; + optional bool is_defeat_for_owner = 3; +} + +message CTraceMsg_CardKilled { + optional uint32 owner_id = 1; + optional bool is_creep = 2; + optional bool is_hero = 3; + optional bool is_combat = 4; +} + +message CTraceMsg_ImprovementDestroyed { + optional uint32 owner_id = 1; +} + +message CTraceMsg_CardReturnedToFountain { +} + +message CTraceMsg_CardMovedToDeck { + optional uint32 previous_zone_id = 1; + optional uint32 owner_id = 2; +} + +message CTraceMsg_CardMovedToHand { + optional uint32 previous_zone_id = 1; +} + +message CTraceMsg_CardMovedToDeployment { + optional uint32 lane_id = 1; + optional uint32 this_turn_hero_deployment_order = 2; +} + +message CTraceMsg_CardMovedToEffects { +} + +message CTraceMsg_CardMovedToSpellStack { +} + +message CTraceMsg_CardReturnedToGuardDeck { +} + +message CTraceMsg_CardMovedToGraveyard { +} + +message CTraceMsg_CardDuplicated { + optional uint32 source_object_id = 1; + optional uint32 copied_card_object_id = 2; + optional uint32 source_effect_card_id = 3; + optional uint32 lane_id = 4; + optional uint32 zone_id = 5; +} + +message CTraceMsg_CardDrawn { + enum ECardDrawnSource { + k_eCardDrawnSource_Deck = 1; + k_eCardDrawnSource_ItemDeck = 2; + k_eCardDrawnSource_Nowhere = 3; + } + + optional uint32 owner_id = 1; + optional int32 turn_card_entered_hand = 2; + optional int32 order_card_entered_hand = 3; + optional .CTraceMsg_CardDrawn.ECardDrawnSource drawn_source = 4 [default = k_eCardDrawnSource_Deck]; +} + +message CTraceMsg_CardPlayed { +} + +message CTraceMsg_UnitCondemned { + optional uint32 source_object_id = 1; +} + +message CTraceMsg_TriggerTriggered { + optional uint32 source_object_id = 1; + optional uint32 source_effect_card_id = 2; + optional int32 event_name = 3; + optional uint32 related_object_id = 4; +} + +message CTraceMsg_EffectProcced { + optional uint32 source_object_id = 1; +} + +message CTraceMsg_UnitTargeted { + optional uint32 source_object_id = 1; + optional uint32 target_group = 2; + optional uint32 target_group_number = 3; +} + +message CTraceMsg_PlayerPassed { + optional uint32 player_id = 1; + optional bool pass_to_combat = 2; +} + +message CTraceMsg_UnitUserTargeted { +} + +message CTraceMsg_UnitLocked { + optional uint32 turns = 1; + optional uint32 source_object_id = 2; +} + +message CTraceMsg_UnitReadiedForDeploymentUponDeath { + optional uint32 source_card_id = 1; +} + +message CTraceMsg_DamageAttempted { + optional uint32 source_object_id = 1; + optional uint32 damage_attempted = 2; + optional uint32 damage_dealt = 3; + optional uint32 source_effect_card_id = 4; + optional .CMsg_Card card = 5; + optional int32 damage_type = 6; + optional int32 remaining_health = 7; + optional bool is_tower = 8; + optional bool is_combat = 9; + optional uint32 damage_prevented = 10; +} + +message CTraceMsg_UnitHealed { + optional uint32 source_object_id = 1; + optional uint32 heal = 2; + optional uint32 source_effect_card_id = 3; +} + +message CTraceMsg_UnitChangedCombatPosition { + optional uint32 new_combat_position = 1; + optional int32 old_combat_position = 2; + optional uint32 owner_id = 3; + optional uint32 lane_id = 4; +} + +message CTraceMsg_UnitChangedCombatTarget { + optional uint32 new_combat_target = 1; + optional uint32 lane_id = 2; + optional uint32 old_arrow_direction = 3; + optional uint32 arrow_direction = 4; + optional uint32 old_combat_target = 5; +} + +message CTraceMsg_RandomlySelectedSecondaryTarget { +} + +message ContinuousEffectSingleProperty { + optional uint32 attr_token = 1; + optional int32 value_diff = 2; +} + +message CTraceMsg_GainedAppliedEffectEx { + optional uint32 source_object_id = 1; + optional uint32 source_card_id = 2; + optional uint32 effect_source_card_id = 3; + repeated .ContinuousEffectSingleProperty properties = 4; +} + +message CTraceMsg_LostAppliedEffectEx { + optional uint32 source_object_id = 1; + optional uint32 source_card_id = 2; + optional uint32 effect_source_card_id = 3; + repeated .ContinuousEffectSingleProperty properties = 4; +} + +message CTraceMsg_ContinuousAppliedEffectChangedEx { + optional uint32 source_object_id = 1; + optional uint32 source_card_id = 2; + optional uint32 effect_source_card_id = 3; + repeated .ContinuousEffectSingleProperty properties = 4; +} + +message CTraceMsg_AttributeValueChanged { + optional uint32 attr_token = 1; + optional int32 value_final = 2; +} + +message CTraceMsg_GoldEarned { + optional uint32 owner_id = 1; + optional uint32 source_object_id = 2; + optional int32 amount = 3; + optional int32 available = 4; +} + +message CTraceMsg_TowerHealed { + optional uint32 source_object_id = 1; + optional uint32 heal = 2; + optional uint32 source_effect_card_id = 3; +} + +message CTraceMsg_TargetSelected { +} + +message CTraceMsg_CardDiscarded { + optional uint32 source_card_object_id = 1; + optional uint32 template_card_id = 2; + optional bytes card_instance_attributes = 3; + optional bytes card_calculated_effects = 4; +} + +message CTraceMsg_CardCreated { + optional uint32 owner_id = 1; + optional uint32 template_card_id = 2; + optional bytes card_instance_attributes = 3; + optional bytes card_calculated_effects = 4; + optional bool is_item = 5; + optional bool was_spawned_as_dire = 6; + optional uint32 spawn_duplicate_index = 7; + optional bool is_duplicate = 8; +} + +message CTraceMsg_CardRevealed { + optional uint32 owner_id = 3; + optional uint32 template_card_id = 4; + optional bytes card_instance_attributes = 5; + optional bytes card_calculated_effects = 6; +} + +message CTraceMsg_TowerManaRestored { + optional uint32 mana_amount_restored = 1; + optional uint32 mana_amount_restore_attempt = 2; +} + +message CTraceMsg_InnerBlock { + optional uint32 block_id = 1; + optional uint32 card_id = 2; + optional uint32 script_type = 3; + optional uint32 object_id = 4; +} + +message CTraceMsg_PreviewDeathResultChanged { + optional uint32 old_preview_death_result = 1; + optional uint32 new_preview_death_result = 2; + optional uint32 owner_id = 3; + optional bool is_creep = 4; + optional bool is_hero = 5; + optional bool is_tower = 6; +} + +message CTraceMsg_PreviewDamageChanged { + optional uint32 old_preview_damage = 1; + optional uint32 new_preview_damage = 2; + optional uint32 owner_id = 3; +} + +message CTraceMsg_ColorsPlayableChanged { + optional uint32 owner_id = 1; + optional uint32 lane_id = 2; + optional uint32 color_flags = 3; + optional uint32 prev_color_flags = 4; +} + +message CTraceMsg_ItemEquipped { + optional uint32 hero_equipped_to_id = 1; +} + +message CTraceMsg_StateBasedEffectsUpdateStart { +} + +message CTraceMsg_StateBasedEffectsUpdateEnd { +} + +message CTraceMsg_TowerManaSpent { + optional uint32 source_object_id = 1; + optional uint32 mana_spent = 2; +} + +message CTraceMsg_CardEffectCalculation { + optional uint32 source_object_id = 1; + optional int32 value = 2; +} + +message CTraceMsg_DeathSyncPoint { +} + +message CTraceMsg_ScriptBlockBegin { + optional uint32 script_type = 1; + optional uint32 card_id = 2; + optional uint32 object_id = 3; +} + +message CTraceMsg_ScriptBlockEnd { + optional uint32 script_type = 1; +} + +message CTraceMsg_PrepareHeroForLaneAssignment { + optional uint32 script_type = 1; + optional uint32 card_id = 2; +} + +message CTraceMsg_HeroVS { + repeated uint32 hero_ids = 1; +} + +message CTraceMsg_PlayerResult { + optional uint32 owner_id = 1; + optional bool has_won = 2; +} diff --git a/Protobufs/artifact/dcg_gcmessages_client.proto b/Protobufs/artifact/dcg_gcmessages_client.proto new file mode 100644 index 0000000..aea17ab --- /dev/null +++ b/Protobufs/artifact/dcg_gcmessages_client.proto @@ -0,0 +1,1590 @@ +import "dcg_gcmessages_common.proto"; + +option optimize_for = SPEED; +option cc_generic_services = false; + +enum EGCDCGClientMessages { + k_EMsgClientToGCStartMatchmaking = 9010; + k_EMsgClientToGCStartMatchmakingResponse = 9011; + k_EMsgClientToGCStopMatchmaking = 9012; + k_EMsgClientToGCStopMatchmakingResponse = 9013; + k_EMsgGCToClientMatchmakingStopped = 9014; + k_EMsgClientToGCLeaveLobby = 9015; + k_EMsgClientToGCLeaveLobbyResponse = 9016; + k_EMsgGCToClientDefaultValidator = 9019; + k_EMsgClientToGCJoinChatChannel = 9023; + k_EMsgClientToGCJoinChatChannelResponse = 9024; + k_EMsgClientToGCSendChatMessage = 9025; + k_EMsgGCToClientChatMessage = 9026; + k_EMsgGCToClientUserJoinedChatChannel = 9027; + k_EMsgClientToGCLeaveChatChannel = 9028; + k_EMsgGCToClientChatChannelJoined = 9029; + k_EMsgClientToGCIsInMatchmaking = 9030; + k_EMsgClientToGCIsInMatchmakingResponse = 9031; + k_EMsgClientToGCOpenPackItem = 9036; + k_EMsgClientToGCOpenPackItemResponse = 9037; + k_EMsgClientToGCLeaveChatChannelByKey = 9040; + k_EMsgClientToGCSendChatMessageRoll = 9041; + k_EMsgClientToGCGetMatchHistory = 9044; + k_EMsgClientToGCGetMatchHistoryResponse = 9045; + k_EMsgClientToGCGetMatchDetails = 9046; + k_EMsgClientToGCGetMatchDetailsResponse = 9047; + k_EMsgClientToGCLimitedGrant = 9048; + k_EMsgClientToGCLimitedGrantResponse = 9049; + k_EMsgClientToGCLimitedGrantChoice = 9050; + k_EMsgClientToGCLimitedGrantChoiceResponse = 9051; + k_EMsgClientToGCLimitedGetFormat = 9052; + k_EMsgClientToGCLimitedGetFormatResponse = 9053; + k_EMsgClientToGCGetAIVsAIMatchConfig = 9076; + k_EMsgClientToGCGetAIVsAIMatchConfigResponse = 9077; + k_EMsgClientToGCGetAIVsAIMatchComplete = 9078; + k_EMsgGCToClientGlobalPhantomLeagues = 9081; + k_EMsgGCToClientMatchmakingStatus = 9096; + k_EMsgClientToGCJoinGauntlet = 9097; + k_EMsgClientToGCJoinGauntletResponse = 9098; + k_EMsgClientToGCAbandonGauntlet = 9099; + k_EMsgClientToGCAbandonGauntletResponse = 9100; + k_EMsgGCToClientAvailableGauntlets = 9101; + k_EMsgClientToGCGetGauntletMatches = 9102; + k_EMsgClientToGCGetGauntletMatchesResponse = 9103; + k_EMsgClientToGCRegisterGauntletDeck = 9104; + k_EMsgClientToGCRegisterGauntletDeckResponse = 9105; + k_EMsgClientToGCAIGauntletResult = 9106; + k_EMsgClientToGCAIGauntletResultResponse = 9107; + k_EMsgClientToGCPrivateLobbyCreate = 9110; + k_EMsgClientToGCPrivateLobbyCreateResponse = 9111; + k_EMsgClientToGCPrivateLobbyLeave = 9112; + k_EMsgClientToGCPrivateLobbyLeaveResponse = 9113; + k_EMsgClientToGCPrivateLobbyJoin = 9114; + k_EMsgClientToGCPrivateLobbyJoinResponse = 9115; + k_EMsgClientToGCPrivateLobbyAction = 9116; + k_EMsgClientToGCPrivateLobbyActionResponse = 9117; + k_EMsgClientToGCPrivateLobbyStartMatch = 9118; + k_EMsgClientToGCPrivateLobbyStartMatchResponse = 9119; + k_EMsgClientToGCPrivateLobbyInviteUser = 9120; + k_EMsgClientToGCPrivateLobbyInviteUserResponse = 9121; + k_EMsgClientToGCPrivateLobbyChallenge = 9122; + k_EMsgClientToGCPrivateLobbyChallengeResponse = 9123; + k_EMsgGCToClientPrivateLobbyEvent = 9124; + k_EMsgClientToGCPrivateLobbyClientVersion = 9125; + k_EMsgGCToClientSDRTicket = 9126; + k_EMsgClientToGCReplacementSDRTicket = 9127; + k_EMsgClientToGCReplacementSDRTicketResponse = 9128; + k_EMsgClientToGCPrivateLobbyJoinChatRoom = 9129; + k_EMsgClientToGCPrivateLobbyJoinChatRoomResponse = 9130; + k_EMsgClientToGCMatchSignout = 9133; + k_EMsgClientToGCInitialGrantAck = 9134; + k_EMsgClientToGCRecycleCards = 9135; + k_EMsgClientToGCRecycleCardsResponse = 9136; + k_EMsgClientToGCSetPlayerBadge = 9137; + k_EMsgClientToGCTourneyGetInfo = 9500; + k_EMsgClientToGCTourneyGetInfoResponse = 9501; + k_EMsgClientToGCTourneyUnsubscribe = 9502; + k_EMsgGCToClientTourneyUpdated = 9503; + k_EMsgGCToClientTourneySeriesMatchReady = 9506; + k_EMsgGCToClientTourneySeriesMatchNotReady = 9507; + k_EMsgClientToGCCreateTourney = 9508; + k_EMsgClientToGCCreateTourneyResponse = 9509; + k_EMsgClientToGCTourneyAcceptInvite = 9512; + k_EMsgClientToGCTourneyAcceptInviteResponse = 9513; + k_EMsgClientToGCTourneyRejectInvite = 9514; + k_EMsgClientToGCTourneyRejectInviteResponse = 9515; + k_EMsgClientToGCTourneyRevokeInvite = 9516; + k_EMsgClientToGCTourneyRevokeInviteResponse = 9517; + k_EMsgClientToGCTourneyAdminSwitchStage = 9518; + k_EMsgClientToGCTourneyAdminSwitchStageResponse = 9519; + k_EMsgClientToGCTourneyAdminKick = 9520; + k_EMsgClientToGCTourneyAdminKickResponse = 9521; + k_EMsgClientToGCTourneyAdminGrantWin = 9522; + k_EMsgClientToGCTourneyAdminGrantWinResponse = 9523; + k_EMsgClientToGCTourneyAdminChangeRights = 9524; + k_EMsgClientToGCTourneyAdminChangeRightsResponse = 9525; + k_EMsgClientToGCTourneyRegisterDeck = 9526; + k_EMsgClientToGCTourneyRegisterDeckResponse = 9527; + k_EMsgClientToGCTourneyUserLeave = 9528; + k_EMsgClientToGCTourneyUserLeaveResponse = 9529; + k_EMsgClientToGCTourneyRegisterSharedDeck = 9530; + k_EMsgClientToGCTourneyRegisterSharedDeckResponse = 9531; + k_EMsgClientToGCTourneyGetRegisteredDecks = 9532; + k_EMsgClientToGCTourneyGetRegisteredDecksResponse = 9533; + k_EMsgClientToGCTourneyCreateOpenInvite = 9536; + k_EMsgClientToGCTourneyCreateOpenInviteResponse = 9537; + k_EMsgClientToGCTourneyRevokeOpenInvite = 9538; + k_EMsgClientToGCTourneyRevokeOpenInviteResponse = 9539; + k_EMsgClientToGCTourneyGetOpenInvites = 9540; + k_EMsgClientToGCTourneyGetOpenInvitesResponse = 9541; + k_EMsgClientToGCTourneyAdminSwitchPhaseStage = 9542; + k_EMsgClientToGCTourneyAdminSwitchPhaseStageResponse = 9543; + k_EMsgClientToGCTourneyGetOverview = 9544; + k_EMsgClientToGCTourneyGetOverviewResponse = 9545; + k_EMsgClientToGCTourneySetStatus = 9546; + k_EMsgClientToGCTourneySetStatusResponse = 9547; + k_EMsgClientToGCTourneyAddPhase = 9548; + k_EMsgClientToGCTourneyAddPhaseResponse = 9549; + k_EMsgClientToGCTourneyRemovePhase = 9550; + k_EMsgClientToGCTourneyRemovePhaseResponse = 9551; + k_EMsgClientToGCTourneySpectateMatch = 9552; + k_EMsgClientToGCTourneySpectateMatchResponse = 9553; + k_EMsgClientToGCTourneyInviteList = 9554; + k_EMsgClientToGCTourneyInviteListResponse = 9555; + k_EMsgClientToGCTourneyAdminSetSeedValues = 9556; + k_EMsgClientToGCTourneyAdminSetSeedValuesResponse = 9557; + k_EMsgClientToGCTourneyEditStageSwapPlayers = 9558; + k_EMsgClientToGCTourneyEditStageSwapPlayersResponse = 9559; + k_EMsgClientToGCTourneyGetLimitedReplay = 9560; + k_EMsgClientToGCTourneyGetLimitedReplayResponse = 9561; + k_EMsgClientToGCTourneyRejoinChatRoom = 9562; + k_EMsgClientToGCTourneyRejoinChatRoomResponse = 9563; + k_EMsgGCToClientTourneyMembersMatchmaking = 9564; + k_EMsgClientToGCTourneyPayEntryFee = 9565; + k_EMsgClientToGCTourneyPayEntryFeeResponse = 9566; + k_EMsgClientToGCTourneyPlayerAbandon = 9567; + k_EMsgClientToGCTourneyPlayerAbandonResponse = 9568; + k_EMsgClientToGCTourneyChangeValue = 9569; + k_EMsgClientToGCTourneyChangeValueResponse = 9570; + k_EMsgClientToGCTourneyJoinOpenTourney = 9571; + k_EMsgClientToGCTourneyJoinOpenTourneyResponse = 9572; +} + +enum EChatRoomType { + k_EChatRoomType_Invalid = 0; + k_EChatRoomType_Match = 1; + k_EChatRoomType_PublicRegion = 2; + k_EChatRoomType_Developer = 3; + k_EChatRoomType_Custom = 4; + k_EChatRoomType_PrivateLobby = 5; + k_EChatRoomType_Client_Tab = 20; + k_EChatRoomType_Client_Whisper = 21; +} + +enum EChatMessageAdditionalData { + k_EChatMessageAdditionalData_None = 0; + k_EChatMessageAdditionalData_DiceRoll = 1; +} + +message CMsgClientToGCStartMatchmaking { + optional .CMsgStartFindingMatchInfo match_info = 2; + optional uint64 tourney_id = 3; + optional uint32 tourney_phase_id = 4; + optional uint32 tourney_series_id = 5; + optional .CMsgRegionPingTimesClient ping_times = 6; +} + +message CMsgClientToGCStartMatchmakingResponse { + enum EResultCode { + k_EResult_OK = 0; + k_EResult_AlreadyFindingMatch = 1; + k_EResult_PartyMemberInLobby = 2; + k_EResult_InvalidClientVersion = 3; + k_EResult_MatchmakingDisabled = 4; + k_EResult_MatchmakingTooBusy = 5; + k_EResult_GauntletClosed = 6; + k_EResult_InvalidGauntlet = 7; + k_EResult_InternalError = 8; + k_EResult_InvalidDeck = 9; + k_EResult_HasUnownedCards = 10; + k_EResult_TournamentNoMatches = 11; + k_EResult_TournamentNoDeck = 13; + k_EResult_NoRegionPings = 14; + } + + optional .CMsgClientToGCStartMatchmakingResponse.EResultCode result = 1 [default = k_EResult_OK]; + optional uint32 tournament_opponent_id = 2; + optional string debug_message = 3; +} + +message CMsgClientToGCStopMatchmaking { +} + +message CMsgClientToGCStopMatchmakingResponse { + optional bool success = 1; +} + +message CMsgGCToClientMatchmakingStopped { + enum EReason { + k_EResult_Unspecified = 0; + k_EResult_VersionUpdated = 1; + k_EResult_FailedReadyUp = 2; + k_EResult_TourneySeriesClosed = 3; + } + + optional .CMsgGCToClientMatchmakingStopped.EReason reason = 1 [default = k_EResult_Unspecified]; +} + +message CMsgClientToGCLeaveLobby { + optional uint64 lobby_id = 1; +} + +message CMsgClientToGCLeaveLobbyResponse { +} + +message CMsgGCToClientDefaultValidator { + optional .CMsgDeckValidator validator = 1; +} + +message CMsgClientWelcomeDCG { + optional uint32 currency = 1; + repeated .CExtraMsgBlock extra_messages = 2; +} + +message CMsgClientToGCJoinChatChannel { + optional .EChatRoomType room_type = 1 [default = k_EChatRoomType_Invalid]; + optional uint64 room_key = 2; + optional uint32 sub_room_index = 3; + optional uint32 request_id = 4; +} + +message CMsgClientToGCJoinChatChannelResponse { + enum EResult { + k_EResult_Success = 0; + k_EResult_InvalidRoom = 1; + k_EResult_PermissionDenied = 2; + k_EResult_InternalError = 3; + k_EResult_RoomOffline = 4; + k_EResult_AlreadyJoined = 5; + k_EResult_RateLimited = 6; + k_EResult_TooManyRooms = 7; + k_EResult_ChatBanned = 8; + k_EResult_AccountNotLinked = 9; + } + + optional .CMsgClientToGCJoinChatChannelResponse.EResult result = 1 [default = k_EResult_Success]; +} + +message CMsgGCToClientChatChannelJoined { + optional bool success = 1; + optional uint32 request_id = 2; + optional fixed64 chat_room_id = 3; + optional uint32 sub_room_index = 4; + optional bool aliased_user_ids = 5; + optional uint32 local_aliased_id = 6; +} + +message CMsgClientToGCSendChatMessage { + optional fixed64 chat_room_id = 1; + optional string chat_msg = 2; +} + +message CMsgClientToGCSendChatMessageRoll { + optional fixed64 chat_room_id = 1; + optional uint32 roll_min = 2; + optional uint32 roll_max = 3; +} + +message CChatMessageAdditionalData_DiceRoll { + optional uint32 roll_value = 1; + optional uint32 roll_min = 2; + optional uint32 roll_max = 3; +} + +message CMsgGCToClientChatMessage { + optional fixed64 chat_room_id = 1; + optional uint32 user_id = 2; + optional string chat_msg = 3; + optional string persona_name = 4; + optional .CExtraMsgBlock additional_data = 5; + optional uint32 time_stamp = 6; +} + +message CMsgGCToClientUserJoinedChatChannel { + optional fixed64 chat_room_id = 1; + repeated uint32 joined_user_ids = 2; + repeated string joined_persona_names = 3; + repeated uint32 left_user_ids = 4; +} + +message CMsgClientToGCLeaveChatChannel { + optional fixed64 chat_room_id = 1; +} + +message CMsgClientToGCLeaveChatChannelByKey { + optional .EChatRoomType room_type = 1 [default = k_EChatRoomType_Invalid]; + optional uint64 room_key = 2; +} + +message CMsgClientToGCIsInMatchmaking { +} + +message CMsgClientToGCIsInMatchmakingResponse { + optional bool in_matchmaking = 1; +} + +message CMsgClientToGCOpenPackItem { + optional uint64 item_id = 1; +} + +message CMsgClientToGCOpenPackItemResponse { + message OpenedItem { + optional uint32 def_index = 1; + optional uint64 item_id = 2; + optional .CMsgClientToGCOpenPackItemResponse.ESlotType slot_type = 3 [default = k_eSlot_Unspecified]; + } + + enum EResponse { + k_eSuccess = 1; + k_eTooManyRequests = 2; + k_eInternalError = 3; + k_eInvalidItemID = 4; + k_eDisabled = 5; + k_eRegionLocked = 6; + } + + enum ESlotType { + k_eSlot_Unspecified = 0; + k_eSlot_Common = 1; + k_eSlot_Uncommon = 2; + k_eSlot_Rare = 3; + k_eSlot_UncommonFromCommon = 4; + k_eSlot_RareFromCommon = 5; + k_eSlot_RareFromUncommon = 6; + } + + optional .CMsgClientToGCOpenPackItemResponse.EResponse response = 1 [default = k_eSuccess]; + repeated .CMsgClientToGCOpenPackItemResponse.OpenedItem items = 2; +} + +message CMsgClientToGCSpectateUser { + optional uint32 spectate_account_id = 1; +} + +message CMsgClientToGCSpectateUserResponse { + enum EResult { + eResult_OK = 1; + eResult_NotInGame = 2; + eResult_InternalError = 3; + } + + optional .CMsgClientToGCSpectateUserResponse.EResult result = 1 [default = eResult_OK]; + optional uint64 match_id = 2; + optional fixed64 server_steam_id = 3; + optional bytes sdr_key = 4; + optional uint32 udp_connect_ip = 5; + optional uint32 udp_connect_port = 6; +} + +message CMsgClientToGCGetMatchHistory { + optional uint32 account_id = 1; +} + +message CMsgClientToGCGetMatchHistoryResponse { + message MatchDetails { + optional uint32 player1 = 1; + optional uint32 player2 = 2; + optional uint32 start_time = 3; + optional uint32 duration = 4; + optional uint32 turns = 5; + optional uint64 match_id = 6; + optional uint32 outcome = 7; + optional .EDCGMatchMode match_mode = 8 [default = k_EDCGMatchMode_Unranked]; + repeated uint32 tower_health = 9; + repeated uint32 heroes = 10; + } + + repeated .CMsgClientToGCGetMatchHistoryResponse.MatchDetails match_details = 1; +} + +message CMsgClientToGCGetMatchDetails { + optional uint64 match_id = 1; +} + +message CMsgClientToGCGetMatchDetailsResponse { + enum EResult { + eResult_Success = 0; + eResult_InvalidMatch = 1; + eResult_NotAuthorized = 2; + eResult_InternalError = 3; + } + + optional uint32 player1 = 1; + optional uint32 player2 = 2; + optional uint32 start_time = 3; + optional uint32 duration = 4; + optional uint32 turns = 5; + optional uint64 match_id = 6; + optional uint32 outcome = 7; + optional .EDCGMatchMode match_mode = 8 [default = k_EDCGMatchMode_Unranked]; + repeated uint32 tower_health1 = 9; + repeated uint32 tower_health2 = 10; + repeated uint32 heroes1 = 11; + repeated uint32 heroes2 = 12; + optional .CMsgClientToGCGetMatchDetailsResponse.EResult result = 13 [default = eResult_Success]; + optional uint32 cluster_id = 14; + optional uint32 replay_salt = 15; +} + +message CMsgClientToGCGetAIVsAIMatchConfig { +} + +message CMsgClientToGCGetAIVsAIMatchConfigResponse { + optional bool success = 1; + optional uint32 ai_match_id = 2; + optional string ai_0_deck_code = 3; + optional string ai_1_deck_code = 4; +} + +message CMsgClientToGCGetAIVsAIMatchComplete { + optional uint32 ai_match_id = 1; + optional uint32 winning_player = 2; +} + +message CMsgGCToClientGlobalPhantomLeagues { + optional bytes global_deck_bytes = 3; +} + +message CMsgClientToGCJoinGauntlet { + optional uint32 gauntlet_id = 1; + optional bytes deck_bytes = 2; + optional uint32 entry_id = 3; + repeated uint64 entry_costs = 4; + optional bool select_random_deck = 5; +} + +message CMsgClientToGCJoinGauntletResponse { + enum EResponse { + k_eInternalError = 0; + k_eSuccess = 1; + k_eInvalidGauntlet = 2; + k_eTooBusy = 3; + k_eAlreadyInGauntlet = 4; + k_eInvalidDeck = 5; + k_eMissingItem = 6; + k_eInvalidEntryCost = 7; + k_eDisabled = 8; + k_eHasUnownedCards = 9; + k_eRateLimited = 10; + k_eRandomDeckNotAllowed = 11; + } + + optional .CMsgClientToGCJoinGauntletResponse.EResponse result = 1 [default = k_eInternalError]; + optional uint32 available_after = 2; +} + +message CMsgClientToGCAbandonGauntlet { + optional uint32 gauntlet_id = 1; +} + +message CMsgClientToGCAbandonGauntletResponse { + message RewardItem { + optional uint32 def_index = 1; + } + + enum EResponse { + k_eInternalError = 0; + k_eSuccess = 1; + k_eInvalidGauntlet = 2; + k_eTooBusy = 3; + k_eDisabled = 4; + } + + optional .CMsgClientToGCAbandonGauntletResponse.EResponse result = 1 [default = k_eInternalError]; + repeated .CMsgClientToGCAbandonGauntletResponse.RewardItem reward_items = 2; +} + +message CMsgClientToGCAIGauntletResult { + optional uint32 gauntlet_id = 1; + optional bool is_win = 2; + optional fixed64 secret_key = 3; + optional uint32 expected_wins = 4; + optional uint32 expected_losses = 5; +} + +message CMsgClientToGCAIGauntletResultResponse { + enum EResponse { + k_eInternalError = 0; + k_eSuccess = 1; + k_eFailed = 2; + k_eDisabled = 3; + k_eBusy = 4; + k_eInvalidKey = 5; + k_eMismatchedGames = 6; + } + + optional .CMsgClientToGCAIGauntletResultResponse.EResponse result = 1 [default = k_eInternalError]; +} + +message CMsgGCToClientAvailableGauntlets { + repeated .CMsgGauntletConfig available_gauntlets = 1; +} + +message CMsgClientToGCGetGauntletMatches { + optional uint64 gauntlet_instance_id = 1; +} + +message CMsgClientToGCGetGauntletMatchesResponse { + message Match { + optional uint64 match_id = 1; + optional bool win = 2; + } + + repeated .CMsgClientToGCGetGauntletMatchesResponse.Match matches = 1; +} + +message CMsgClientToGCRegisterGauntletDeck { + optional uint32 gauntlet_id = 1; + optional bytes deck_bytes = 2; +} + +message CMsgClientToGCRegisterGauntletDeckResponse { + enum EResponse { + k_eInternalError = 0; + k_eSuccess = 1; + k_eInvalidGauntlet = 2; + k_eDeckAlreadyRegistered = 3; + k_eInvalidDeck = 4; + k_eHasUnownedCards = 5; + k_eDisabled = 6; + } + + optional .CMsgClientToGCRegisterGauntletDeckResponse.EResponse result = 1 [default = k_eInternalError]; +} + +message CMsgClientToGCLimitedGrant { + optional uint64 limited_instance_id = 1; + optional uint32 grant_id = 2; +} + +message CMsgClientToGCLimitedGrantResponse { + enum EResponse { + k_eInternalError = 0; + k_eSuccess = 1; + k_eInvalidFormat = 2; + k_eAlreadyGranted = 3; + } + + optional .CMsgClientToGCLimitedGrantResponse.EResponse result = 1 [default = k_eInternalError]; + optional uint32 choice_count = 2; + repeated uint32 def_index = 3; +} + +message CMsgClientToGCLimitedGrantChoice { + optional uint64 limited_instance_id = 1; + optional uint32 grant_id = 2; + repeated uint32 choice_def_index = 3; +} + +message CMsgClientToGCLimitedGrantChoiceResponse { + enum EResponse { + k_eInternalError = 0; + k_eSuccess = 1; + k_eInvalidFormat = 2; + k_eInvalidChoices = 3; + k_eAlreadyGranted = 4; + } + + optional .CMsgClientToGCLimitedGrantChoiceResponse.EResponse result = 1 [default = k_eInternalError]; +} + +message CMsgClientToGCLimitedGetFormat { + optional uint32 limited_format = 1; +} + +message CMsgClientToGCLimitedGetFormatResponse { + optional bool success = 1; + optional .CMsgLimitedFormat format_config = 2; +} + +message CMsgClientToGCPrivateLobbyCreate { + optional uint32 client_version = 1; + optional .CMsgRegionPingTimesClient ping_times = 2; +} + +message CMsgClientToGCPrivateLobbyCreateResponse { + enum EResponse { + k_eInternalError = 0; + k_eSuccess = 1; + k_eAlreadyInLobby = 2; + k_eDisabled = 3; + k_eInvalidVersion = 4; + k_eNoRegionPings = 5; + } + + optional .CMsgClientToGCPrivateLobbyCreateResponse.EResponse result = 1 [default = k_eInternalError]; + optional fixed64 private_lobby_id = 2; +} + +message CMsgClientToGCPrivateLobbyLeave { + optional fixed64 private_lobby_id = 1; +} + +message CMsgClientToGCPrivateLobbyLeaveResponse { + enum EResponse { + k_eInternalError = 0; + k_eSuccess = 1; + k_eNotInLobby = 2; + k_eInMatchMaking = 3; + } + + optional .CMsgClientToGCPrivateLobbyLeaveResponse.EResponse result = 1 [default = k_eInternalError]; +} + +message CMsgClientToGCPrivateLobbyJoin { + optional fixed64 private_lobby_id = 1; + optional uint32 client_version = 2; + optional .CMsgRegionPingTimesClient ping_times = 3; + optional fixed64 lobby_salt = 4; +} + +message CMsgClientToGCPrivateLobbyJoinResponse { + enum EResponse { + k_eInternalError = 0; + k_eSuccess = 1; + k_eAlreadyInLobby = 2; + k_eDisabled = 3; + k_eInvalidLobbyID = 4; + k_eInvalidPermissions = 5; + k_eInvalidVersion = 6; + k_eNoRegionPings = 7; + } + + optional .CMsgClientToGCPrivateLobbyJoinResponse.EResponse result = 1 [default = k_eInternalError]; +} + +message CMsgClientToGCPrivateLobbyAction { + enum EAction { + k_eSetTeam = 0; + k_eSetDeck = 1; + k_eKickUser = 3; + k_eCancelInvite = 4; + k_eCancelFindMatch = 5; + k_eSetDecksVisible = 6; + k_eSetTimerMode = 7; + k_eShareDeck = 8; + k_eSetGameMode = 9; + k_eSetReady = 10; + } + + optional fixed64 private_lobby_id = 1; + optional uint32 target_account_id = 2; + optional .CMsgClientToGCPrivateLobbyAction.EAction action_id = 3 [default = k_eSetTeam]; + optional uint64 uint_value = 4; + optional bytes bytes_value = 5; + optional bool bool_value = 6; + optional sint64 sint_value = 7; + optional string str_value = 8; +} + +message CMsgClientToGCPrivateLobbyActionResponse { + enum EResponse { + k_eInternalError = 0; + k_eSuccess = 1; + k_eInvalidLobbyID = 2; + k_eInvalidPermissions = 3; + k_eInvalidTarget = 4; + k_eInvalidValue = 5; + k_eInMatchMaking = 6; + k_eInMatch = 7; + } + + optional .CMsgClientToGCPrivateLobbyActionResponse.EResponse result = 1 [default = k_eInternalError]; +} + +message CMsgClientToGCPrivateLobbyStartMatch { + optional fixed64 private_lobby_id = 1; +} + +message CMsgClientToGCPrivateLobbyStartMatchResponse { + enum EResponse { + k_eInternalError = 0; + k_eSuccess = 1; + k_eDisabled = 2; + k_eInvalidLobbyID = 3; + k_eInvalidPermissions = 4; + k_ePlayersMissingDeck = 5; + k_eInMatchmaking = 6; + k_eInMatch = 7; + k_eMissingPlayer = 8; + k_eUnownedCards = 9; + k_eInvalidVersion = 10; + k_ePlayersNotReady = 11; + k_eCannotSelectRegion = 12; + } + + optional .CMsgClientToGCPrivateLobbyStartMatchResponse.EResponse result = 1 [default = k_eInternalError]; + optional uint32 account_id = 2; +} + +message CMsgClientToGCPrivateLobbyInviteUser { + optional fixed64 private_lobby_id = 1; + optional uint32 invite_account_id = 2; +} + +message CMsgClientToGCPrivateLobbyInviteUserResponse { + enum EResponse { + k_eInternalError = 0; + k_eSuccess = 1; + k_eAlreadyInvited = 2; + k_eInvalidPermissions = 3; + k_eInvalidLobbyID = 4; + k_eDisabled = 5; + k_eTooManyInvites = 6; + } + + optional .CMsgClientToGCPrivateLobbyInviteUserResponse.EResponse result = 1 [default = k_eInternalError]; + optional bool user_online = 2; +} + +message CMsgClientToGCPrivateLobbyChallenge { + optional uint32 challenge_account_id = 1; + optional uint32 client_version = 2; + optional .CMsgRegionPingTimesClient ping_times = 3; +} + +message CMsgClientToGCPrivateLobbyChallengeResponse { + enum EResponse { + k_eSuccess = 0; + k_eTargetNotFriends = 1; + k_eTargetInMatch = 2; + k_eTargetOffline = 3; + k_eInternalError = 4; + k_eCannotMatchmake = 5; + k_eInvalidVersion = 6; + k_eNoRegionPings = 7; + } + + optional .CMsgClientToGCPrivateLobbyChallengeResponse.EResponse result = 1 [default = k_eSuccess]; + optional fixed64 private_lobby_id = 2; +} + +message CMsgGCToClientPrivateLobbyEvent { + enum EEvent { + k_ePlayerKicked = 1; + k_eDeckShared = 2; + k_eJoinedLobby = 3; + k_eMatchCompleted = 4; + k_eMatchMakingStopped_User = 5; + k_eMatchMakingStopped_Version = 6; + k_eMatchMakingStopped_NoServerRegion = 7; + k_eLeftLobby = 8; + k_eDeclinedInvite = 9; + } + + optional fixed64 private_lobby_id = 1; + optional .CMsgGCToClientPrivateLobbyEvent.EEvent event = 2 [default = k_ePlayerKicked]; + optional uint32 initiator_account_id = 3; + optional uint32 target_account_id = 4; + optional bytes bytes_data = 5; + optional string str_data = 6; + optional uint64 uint_data = 7; +} + +message CMsgClientToGCPrivateLobbyClientVersion { + optional fixed64 private_lobby_id = 1; + optional uint32 client_version = 2; +} + +message CMsgClientToGCPrivateLobbyJoinChatRoom { + optional fixed64 private_lobby_id = 1; +} + +message CMsgClientToGCPrivateLobbyJoinChatRoomResponse { + enum EResponse { + k_eSuccess = 0; + k_eInternalError = 1; + k_eDisabled = 2; + k_eNoChatRoomAvailable = 3; + k_eInvalidLobbyID = 4; + } + + optional .CMsgClientToGCPrivateLobbyJoinChatRoomResponse.EResponse result = 1 [default = k_eSuccess]; +} + +message CMsgClientToGCMatchSignout { + optional uint32 start_time = 1; + optional uint32 version = 2; + optional .EDCGMatchMode match_mode = 3 [default = k_EDCGMatchMode_Unranked]; + optional .CMsgMatchData match_data = 4; + repeated .CExtraMsgBlock additional_data = 5; +} + +message CMsgGCToClientSDRTicket { + optional string ticket = 1; +} + +message CMsgClientToGCReplacementSDRTicket { + optional fixed64 lobby_id = 1; +} + +message CMsgClientToGCInitialGrantAck { + optional uint32 expected_def_index = 1; +} + +message CMsgClientToGCRecycleCards { + repeated uint64 item_ids = 1; + optional uint32 recycle_offer_version = 2; +} + +message CMsgClientToGCRecycleCardsResponse { + message GrantedItem { + optional uint32 def_index = 1; + optional uint64 item_id = 2; + } + + enum EResponse { + k_eInternalError = 0; + k_eSuccess = 1; + k_eMissingItems = 2; + k_eIncorrectVersion = 3; + k_eDisabled = 4; + k_eInvalidItem = 5; + k_eTooManyItems = 6; + } + + optional .CMsgClientToGCRecycleCardsResponse.EResponse result = 1 [default = k_eInternalError]; + repeated .CMsgClientToGCRecycleCardsResponse.GrantedItem granted_items = 2; + optional uint32 resulting_points = 3; +} + +message CMsgClientToGCSetPlayerBadge { + optional uint32 player_badge = 1; +} + +message CMsgClientToGCReplacementSDRTicketResponse { + optional string ticket = 1; + optional string error_message = 2; +} + +message CMsgClientToGCTourneyGetInfo { + optional uint64 tourney_id = 1; + optional bool subscribe = 2; + optional uint32 tourney_salt = 3; +} + +message CMsgClientToGCTourneyGetInfoResponse { + enum EResponse { + k_eInternalError = 0; + k_eInvalidID = 1; + k_eMissingPermission = 2; + k_eSuccess = 3; + k_eTooBusy = 4; + } + + optional .CMsgClientToGCTourneyGetInfoResponse.EResponse result = 1 [default = k_eInternalError]; + optional .CDCGTourney tourney = 2; +} + +message CMsgClientToGCTourneyUnsubscribe { + optional uint64 tourney_id = 1; +} + +message CMsgGCToClientTourneyUpdated { + optional .CDCGTourney tourney = 1; +} + +message CMsgGCToClientTourneySeriesMatchReady { + optional uint64 tourney_id = 1; + optional uint32 phase_id = 2; + optional uint32 series_id = 3; + repeated uint32 accounts_in_mm = 4; + repeated uint32 accounts_not_in_mm = 5; +} + +message CMsgGCToClientTourneySeriesMatchNotReady { + optional uint64 tourney_id = 1; + optional uint32 phase_id = 2; + optional uint32 series_id = 3; +} + +message CMsgCreateTourneyPhase { + message DeckSettings { + optional .CMsgCreateTourneyPhase.EDeckMode deck_mode = 1 [default = k_eUsePreviousPhase]; + optional uint32 random_colors = 2; + optional uint32 limited_format = 3; + optional bool register_decks = 4; + optional uint32 validator_id = 5; + } + + message Swiss { + optional .CMsgCreateTourneyPhase.ESwissMatches swiss_matches = 1 [default = k_eBestOfOne]; + optional .CMsgCreateTourneyPhase.ESwissScoring swiss_scoring = 2 [default = k_eWinsThreePoints]; + optional uint32 num_rounds = 3; + optional bool continue_prior_phase = 4; + } + + message Bracket { + optional uint32 best_of = 1; + optional uint32 finals_best_of = 2; + } + + message FreeForAll { + optional uint32 max_games_per_player = 1; + optional uint32 auto_advance_after_s = 2; + } + + enum ESwissMatches { + k_eBestOfOne = 0; + k_eOneMatch = 1; + k_eTwoMatches = 2; + k_eBestOfThree = 3; + k_eBestOfThree_Ties = 4; + k_eBestOfFive = 5; + k_eBestOfFive_Ties = 6; + } + + enum ESwissScoring { + k_eWinsThreePoints = 0; + k_eWinsTwoPoints = 1; + } + + enum EDeckMode { + k_eUsePreviousPhase = 0; + k_eLimited = 1; + k_eAdditionalLimited = 2; + k_eConstructed = 3; + k_eRandom = 4; + } + + optional .CDCGTourney.EFormat format = 1 [default = k_eFormat_Invalid]; + optional .CMsgCreateTourneyPhase.DeckSettings deck_settings = 2; + optional uint32 max_players = 3; + optional bool edit_stage = 5; + optional .CMsgCreateTourneyPhase.Bracket bracket = 20; + optional .CMsgCreateTourneyPhase.Swiss swiss = 21; + optional .CMsgCreateTourneyPhase.FreeForAll free_for_all = 22; +} + +message CMsgClientToGCCreateTourney { + enum EPrivacy { + k_ePrivacy_Default = 0; + k_ePrivacy_Public = 1; + k_ePrivacy_MembersOnly = 2; + } + + optional string tourney_name = 1; + optional string tourney_msg = 2; + optional string tourney_status = 3; + repeated .CMsgCreateTourneyPhase phases = 4; + optional bool seed_stage = 5; + optional bool advanced_mode = 6; + optional .CMsgClientToGCCreateTourney.EPrivacy privacy_mode = 7 [default = k_ePrivacy_Default]; + optional bool open_spectating = 8; + optional uint32 timer_mode = 9; +} + +message CMsgClientToGCCreateTourneyResponse { + enum EResponse { + k_eInternalError = 0; + k_eSuccess = 1; + k_eRateLimited = 2; + k_eInvalidParams = 3; + k_eDisabled = 4; + k_eInTooManyTourneys = 5; + } + + optional .CMsgClientToGCCreateTourneyResponse.EResponse result = 1 [default = k_eInternalError]; + optional uint64 tourney_id = 2; +} + +message CMsgClientToGCTourneyAcceptInvite { + optional uint64 tourney_id = 1; +} + +message CMsgClientToGCTourneyAcceptInviteResponse { + enum EResponse { + k_eInternalError = 0; + k_eSuccess = 1; + k_eDisabled = 2; + k_eTourneyJoinClosed = 3; + k_eMissingPermissions = 4; + k_eTourneyFull = 5; + k_eInTooManyTourneys = 6; + } + + optional .CMsgClientToGCTourneyAcceptInviteResponse.EResponse result = 1 [default = k_eInternalError]; +} + +message CMsgClientToGCTourneyRejectInvite { + optional uint64 tourney_id = 1; +} + +message CMsgClientToGCTourneyRejectInviteResponse { + enum EResponse { + k_eInternalError = 0; + k_eSuccess = 1; + k_eDisabled = 2; + } + + optional .CMsgClientToGCTourneyRejectInviteResponse.EResponse result = 1 [default = k_eInternalError]; +} + +message CMsgClientToGCTourneyRevokeInvite { + optional uint64 tourney_id = 1; + optional uint32 account_id = 2; +} + +message CMsgClientToGCTourneyRevokeInviteResponse { + enum EResponse { + k_eInternalError = 0; + k_eSuccess = 1; + k_eDisabled = 2; + k_eMissingPermissions = 3; + k_eMissingInvite = 4; + } + + optional .CMsgClientToGCTourneyRevokeInviteResponse.EResponse result = 1 [default = k_eInternalError]; +} + +message CMsgClientToGCTourneyAdminSwitchStage { + optional uint64 tourney_id = 1; + optional .CDCGTourney.EStage transition_from = 2 [default = k_eStage_Configure]; + optional .CDCGTourney.EStage transition_to = 3 [default = k_eStage_Configure]; +} + +message CMsgClientToGCTourneyAdminSwitchStageResponse { + enum EResponse { + k_eInternalError = 0; + k_eSuccess = 1; + k_eDisabled = 2; + k_eMissingPermissions = 3; + k_eInsufficientPlayers = 4; + k_eIncorrectStage = 5; + k_eInvalidTransition = 6; + k_eUnregisteredDecks = 7; + k_eMissingEntryFees = 8; + } + + optional .CMsgClientToGCTourneyAdminSwitchStageResponse.EResponse result = 1 [default = k_eInternalError]; +} + +message CMsgClientToGCTourneyAdminKick { + optional uint64 tourney_id = 1; + optional uint32 account_id = 2; +} + +message CMsgClientToGCTourneyAdminKickResponse { + enum EResponse { + k_eInternalError = 0; + k_eSuccess = 1; + k_eDisabled = 2; + k_eMissingPermissions = 3; + k_eInvalidTarget = 4; + k_eTourneyClosed = 5; + } + + optional .CMsgClientToGCTourneyAdminKickResponse.EResponse result = 1 [default = k_eInternalError]; +} + +message CMsgClientToGCTourneyAdminGrantWin { + optional uint64 tourney_id = 1; + optional uint32 phase_id = 2; + optional uint32 series_id = 3; + optional bool grant_bye = 4; + optional uint32 winner_id = 5; +} + +message CMsgClientToGCTourneyAdminGrantWinResponse { + enum EResponse { + k_eInternalError = 0; + k_eSuccess = 1; + k_eDisabled = 2; + k_eMissingPermissions = 3; + k_eInvalidAccount = 4; + k_eSeriesCompleted = 5; + k_eSeriesNotReady = 6; + k_eInvalidSeries = 7; + } + + optional .CMsgClientToGCTourneyAdminGrantWinResponse.EResponse result = 1 [default = k_eInternalError]; +} + +message CMsgClientToGCTourneyAdminChangeRights { + optional uint64 tourney_id = 1; + optional uint32 account_id = 2; + optional uint32 rights_flags = 3; +} + +message CMsgClientToGCTourneyAdminChangeRightsResponse { + enum EResponse { + k_eInternalError = 0; + k_eSuccess = 1; + k_eDisabled = 2; + k_eInvalidAccount = 3; + k_eInvalidRights = 4; + k_eTourneyClosed = 5; + k_ePlayerPoolIsFull = 6; + k_eCannotChangePlayer = 7; + } + + optional .CMsgClientToGCTourneyAdminChangeRightsResponse.EResponse result = 1 [default = k_eInternalError]; +} + +message CMsgClientToGCTourneyRegisterDeck { + optional uint64 tourney_id = 1; + optional bytes deck_bytes = 2; + optional uint32 phase_id = 3; + optional uint32 deck_index = 4; + optional uint32 shared_by = 5; +} + +message CMsgClientToGCTourneyRegisterDeckResponse { + enum EResponse { + k_eInternalError = 0; + k_eSuccess = 1; + k_eDisabled = 2; + k_eMissingPermissions = 3; + k_eUnownedCards = 4; + k_eRegistrationClosed = 5; + k_eRegistrationNotRequired = 6; + k_eInvalidDeck = 7; + k_eInvalidDeckIndex = 8; + k_eCannotRegisterForPhase = 9; + k_ePhaseNotReady = 10; + k_eInvalidSharedDeck = 11; + } + + optional .CMsgClientToGCTourneyRegisterDeckResponse.EResponse result = 1 [default = k_eInternalError]; +} + +message CMsgClientToGCTourneyUserLeave { + optional uint64 tourney_id = 1; +} + +message CMsgClientToGCTourneyUserLeaveResponse { + enum EResponse { + k_eInternalError = 0; + k_eSuccess = 1; + k_eDisabled = 2; + k_eMissingPermissions = 3; + k_eLeaveNotAllowed = 7; + } + + optional .CMsgClientToGCTourneyUserLeaveResponse.EResponse result = 1 [default = k_eInternalError]; +} + +message CMsgClientToGCTourneyRegisterSharedDeck { + optional uint64 tourney_id = 1; + optional bytes deck_bytes = 2; + optional uint32 shared_slot = 3; +} + +message CMsgClientToGCTourneyRegisterSharedDeckResponse { + enum EResponse { + k_eInternalError = 0; + k_eSuccess = 1; + k_eDisabled = 2; + k_eMissingPermissions = 3; + k_eInvalidSlot = 4; + k_eSlotInUse = 5; + k_eUnownedCards = 6; + k_eSharingClosed = 7; + k_eInvalidDeck = 8; + } + + optional .CMsgClientToGCTourneyRegisterSharedDeckResponse.EResponse result = 1 [default = k_eInternalError]; +} + +message CMsgClientToGCTourneyGetRegisteredDecks { + optional uint64 tourney_id = 1; +} + +message CMsgClientToGCTourneyGetRegisteredDecksResponse { + enum EResponse { + k_eInternalError = 0; + k_eSuccess = 1; + k_eDisabled = 2; + k_eMissingPermissions = 3; + } + + optional .CMsgClientToGCTourneyGetRegisteredDecksResponse.EResponse result = 1 [default = k_eInternalError]; + repeated .CDCGTourney.PlayerDeck decks = 2; +} + +message CMsgClientToGCTourneyCreateOpenInvite { + optional uint64 tourney_id = 1; + optional uint32 max_uses = 2; + repeated uint32 rights = 3; +} + +message CMsgClientToGCTourneyCreateOpenInviteResponse { + enum EResponse { + k_eInternalError = 0; + k_eSuccess = 1; + k_eDisabled = 2; + k_eMissingPermissions = 3; + k_eInvalidUses = 4; + k_eInvalidStage = 5; + k_eInvalidRights = 6; + k_eTooManyOutstandingKeys = 7; + } + + optional .CMsgClientToGCTourneyCreateOpenInviteResponse.EResponse result = 1 [default = k_eInternalError]; + optional fixed64 invite_key = 2; +} + +message CMsgClientToGCTourneyRevokeOpenInvite { + optional uint64 tourney_id = 1; + optional fixed64 invite_key = 2; +} + +message CMsgClientToGCTourneyRevokeOpenInviteResponse { + enum EResponse { + k_eInternalError = 0; + k_eSuccess = 1; + k_eDisabled = 2; + k_eMissingPermissions = 3; + k_eInvalidKey = 4; + k_eInvalidStage = 5; + } + + optional .CMsgClientToGCTourneyRevokeOpenInviteResponse.EResponse result = 1 [default = k_eInternalError]; +} + +message CMsgClientToGCTourneyGetOpenInvites { + optional uint64 tourney_id = 1; +} + +message CMsgClientToGCTourneyGetOpenInvitesResponse { + message OpenInvite { + optional fixed64 invite_key = 1; + optional uint32 created_by = 2; + optional uint32 max_uses = 3; + optional uint32 times_used = 4; + optional uint32 invite_rights = 5; + } + + enum EResponse { + k_eInternalError = 0; + k_eSuccess = 1; + k_eDisabled = 2; + k_eMissingPermissions = 3; + k_eInvalidStage = 4; + } + + optional .CMsgClientToGCTourneyGetOpenInvitesResponse.EResponse result = 1 [default = k_eInternalError]; + repeated .CMsgClientToGCTourneyGetOpenInvitesResponse.OpenInvite open_invites = 2; +} + +message CMsgClientToGCTourneyAdminSwitchPhaseStage { + optional uint64 tourney_id = 1; + optional uint32 phase_id = 2; + optional .CDCGTourney.EPhaseStage transition_from = 3 [default = k_ePhaseStage_Pending]; + optional .CDCGTourney.EPhaseStage transition_to = 4 [default = k_ePhaseStage_Pending]; +} + +message CMsgClientToGCTourneyAdminSwitchPhaseStageResponse { + enum EResponse { + k_eInternalError = 0; + k_eSuccess = 1; + k_eDisabled = 2; + k_eMissingPermissions = 3; + k_eInsufficientPlayers = 4; + k_eIncorrectStage = 5; + k_eInvalidTransition = 6; + k_eUnregisteredDecks = 7; + } + + optional .CMsgClientToGCTourneyAdminSwitchPhaseStageResponse.EResponse result = 1 [default = k_eInternalError]; +} + +message CMsgClientToGCTourneyGetOverview { + optional uint64 tourney_id = 1; +} + +message CMsgClientToGCTourneyGetOverviewResponse { + enum EResponse { + k_eInternalError = 0; + k_eSuccess = 1; + k_eDisabled = 2; + k_eMissingPermissions = 3; + k_eTooBusy = 4; + } + + optional .CMsgClientToGCTourneyGetOverviewResponse.EResponse result = 1 [default = k_eInternalError]; + optional string tourney_name = 2; + optional uint32 created_by = 3; +} + +message CMsgClientToGCTourneySetStatus { + optional uint64 tourney_id = 1; + optional string tourney_status = 2; +} + +message CMsgClientToGCTourneySetStatusResponse { + enum EResponse { + k_eInternalError = 0; + k_eSuccess = 1; + k_eDisabled = 2; + k_eMissingPermissions = 3; + } + + optional .CMsgClientToGCTourneySetStatusResponse.EResponse result = 1 [default = k_eInternalError]; +} + +message CMsgClientToGCTourneyAddPhase { + optional uint64 tourney_id = 1; + optional .CMsgCreateTourneyPhase phase = 2; +} + +message CMsgClientToGCTourneyAddPhaseResponse { + enum EResponse { + k_eInternalError = 0; + k_eSuccess = 1; + k_eDisabled = 2; + k_eMissingPermissions = 3; + k_eTooManyPhases = 4; + k_eInvalidParams = 5; + k_eNotInConfigure = 6; + } + + optional .CMsgClientToGCTourneyAddPhaseResponse.EResponse result = 1 [default = k_eInternalError]; +} + +message CMsgClientToGCTourneyRemovePhase { + optional uint64 tourney_id = 1; + optional uint32 phase_id = 2; +} + +message CMsgClientToGCTourneyRemovePhaseResponse { + enum EResponse { + k_eInternalError = 0; + k_eSuccess = 1; + k_eDisabled = 2; + k_eMissingPermissions = 3; + k_eNotLastPhase = 4; + k_eNotInConfigure = 5; + } + + optional .CMsgClientToGCTourneyRemovePhaseResponse.EResponse result = 1 [default = k_eInternalError]; +} + +message CMsgClientToGCTourneySpectateMatch { + optional uint64 tourney_id = 1; + optional uint32 phase_id = 2; + optional uint32 series_id = 3; + optional bool player_1_perspective = 4; +} + +message CMsgClientToGCTourneySpectateMatchResponse { + enum EResponse { + k_eSuccess = 1; + k_eInternalError = 2; + k_eInvalidSeries = 3; + k_eMissingPermissions = 4; + k_eNotInMatch = 5; + } + + optional .CMsgClientToGCTourneySpectateMatchResponse.EResponse result = 1 [default = k_eSuccess]; + optional uint64 match_id = 2; + optional fixed64 server_steam_id = 3; + optional bytes sdr_key = 4; + optional uint32 udp_connect_ip = 5; + optional uint32 udp_connect_port = 6; +} + +message CMsgClientToGCTourneyInviteList { + enum ELimit { + k_eLimit_MaxAccounts = 32; + } + + optional uint64 tourney_id = 1; + repeated uint32 account_ids = 2; + repeated uint32 rights = 3; +} + +message CMsgClientToGCTourneyInviteListResponse { + enum EResponse { + k_eInternalError = 0; + k_eSuccess = 1; + k_eTooManyInvites = 2; + k_eRateLimited = 3; + k_eDisabled = 4; + k_eTooManyAccounts = 5; + k_eTourneyJoinClosed = 6; + k_eMissingPermissions = 7; + k_eTourneyFull = 8; + k_eInvalidRights = 9; + k_eNotFriends = 10; + } + + optional .CMsgClientToGCTourneyInviteListResponse.EResponse result = 1 [default = k_eInternalError]; + repeated uint32 invited_id = 2; + repeated uint32 already_invited_id = 3; +} + +message CMsgClientToGCTourneyAdminSetSeedValues { + message PlayerSeed { + optional uint32 account_id = 1; + optional uint32 initial_seed = 2; + optional uint32 initial_group = 3; + } + + optional uint64 tourney_id = 1; + repeated .CMsgClientToGCTourneyAdminSetSeedValues.PlayerSeed player_seeds = 2; +} + +message CMsgClientToGCTourneyAdminSetSeedValuesResponse { + enum EResponse { + k_eInternalError = 0; + k_eSuccess = 1; + k_eDisabled = 2; + k_eMissingPermissions = 3; + k_eInvalidStage = 5; + } + + optional .CMsgClientToGCTourneyAdminSetSeedValuesResponse.EResponse result = 1 [default = k_eInternalError]; +} + +message CMsgClientToGCTourneyEditStageSwapPlayers { + optional uint64 tourney_id = 1; + optional uint32 phase_id = 2; + optional uint32 account_to_swap = 3; + optional uint32 swap_with = 4; +} + +message CMsgClientToGCTourneyEditStageSwapPlayersResponse { + enum EResponse { + k_eInternalError = 0; + k_eSuccess = 1; + k_eDisabled = 2; + k_eMissingPermissions = 3; + k_ePhaseNotInEdit = 4; + k_eInvalidAccountID = 5; + } + + optional .CMsgClientToGCTourneyEditStageSwapPlayersResponse.EResponse result = 1 [default = k_eInternalError]; +} + +message CMsgClientToGCTourneyGetLimitedReplay { + optional uint64 tourney_id = 1; + optional uint32 phase_id = 2; + optional uint32 account_id = 3; +} + +message CMsgClientToGCTourneyGetLimitedReplayResponse { + message LimitedStage { + optional uint32 stage_id = 1; + optional bytes choice_set = 2; + optional bytes choices = 3; + } + + enum EResponse { + k_eInternalError = 0; + k_eSuccess = 1; + k_eDisabled = 2; + k_eMissingPermissions = 3; + k_eInvalidPlayer = 4; + k_ePhaseNotReady = 5; + } + + optional .CMsgClientToGCTourneyGetLimitedReplayResponse.EResponse result = 1 [default = k_eInternalError]; + repeated .CMsgClientToGCTourneyGetLimitedReplayResponse.LimitedStage stages = 2; + optional .CMsgLimitedFormat format = 3; +} + +message CMsgClientToGCTourneyRejoinChatRoom { + optional uint64 tourney_id = 1; +} + +message CMsgClientToGCTourneyRejoinChatRoomResponse { + enum EResponse { + k_eInternalError = 0; + k_eSuccess = 1; + k_eDisabled = 2; + k_eMissingPermissions = 3; + k_eNoChatRoom = 4; + } + + optional .CMsgClientToGCTourneyRejoinChatRoomResponse.EResponse result = 1 [default = k_eInternalError]; +} + +message CMsgGCToClientTourneyMembersMatchmaking { + optional uint64 tourney_id = 1; + repeated uint32 accounts_in_mm = 2 [packed = true]; +} + +message CMsgClientToGCTourneyPayEntryFee { + optional uint64 tourney_id = 1; + optional uint32 target_account_id = 2; + repeated uint64 item_ids = 3; +} + +message CMsgClientToGCTourneyPayEntryFeeResponse { + enum EResponse { + k_eInternalError = 0; + k_eSuccess = 1; + k_eDisabled = 2; + k_eMissingPermissions = 3; + k_eInvalidItem = 4; + k_eInvalidItemType = 5; + k_eItemAlreadyFilled = 6; + k_eInvalidTarget = 7; + k_eInvalidStage = 8; + } + + optional .CMsgClientToGCTourneyPayEntryFeeResponse.EResponse result = 1 [default = k_eInternalError]; +} + +message CMsgClientToGCTourneyPlayerAbandon { + optional uint64 tourney_id = 1; +} + +message CMsgClientToGCTourneyPlayerAbandonResponse { + enum EResponse { + k_eInternalError = 0; + k_eSuccess = 1; + k_eDisabled = 2; + k_eMissingPermissions = 3; + k_eUnableToAbandon = 4; + } + + optional .CMsgClientToGCTourneyPlayerAbandonResponse.EResponse result = 1 [default = k_eInternalError]; +} + +message CMsgClientToGCTourneyChangeValue { + enum EValueType { + k_eGlobal_SeedStage = 1; + k_eGlobal_OpenSpectating = 2; + k_eGlobal_TimerMode = 3; + k_ePhase_MaxPlayers = 50; + k_ePhase_EditStage = 51; + k_eSwiss_NumRounds = 100; + k_eSwiss_Matches = 101; + k_eBracket_BestOf = 150; + k_eBracket_FinalsBestOf = 151; + k_eFreeForAll_MaxGames = 200; + } + + optional uint64 tourney_id = 1; + optional uint32 phase_id = 2; + optional .CMsgClientToGCTourneyChangeValue.EValueType value_type = 3 [default = k_eGlobal_SeedStage]; + optional uint32 int_value = 4; +} + +message CMsgClientToGCTourneyChangeValueResponse { + enum EResponse { + k_eInternalError = 0; + k_eSuccess = 1; + k_eDisabled = 2; + k_eInvalidPhase = 3; + k_eInvalidValueType = 4; + k_eValueIsLocked = 5; + k_eInvalidValue = 6; + k_ePlayerMismatch = 8; + k_eMissingPermissions = 9; + } + + optional .CMsgClientToGCTourneyChangeValueResponse.EResponse result = 1 [default = k_eInternalError]; +} + +message CMsgClientToGCTourneyJoinOpenTourney { + optional uint32 language = 1; + optional string community_key = 2; + optional uint32 open_tourney_mode = 3; +} + +message CMsgClientToGCTourneyJoinOpenTourneyResponse { + enum EResponse { + k_eInternalError = 0; + k_eSuccess = 1; + k_eDisabled = 2; + k_eInvalidMode = 3; + k_eInvalidRequest = 4; + k_eTooBusy = 5; + k_eRateLimited = 6; + k_eInTooManyOpenAlready = 7; + k_eInTooManyTotal = 8; + } + + optional .CMsgClientToGCTourneyJoinOpenTourneyResponse.EResponse result = 1 [default = k_eInternalError]; + optional uint64 joined_tourney_id = 2; + optional uint32 cooldown_time_after = 3; +} diff --git a/Protobufs/artifact/dcg_gcmessages_common.proto b/Protobufs/artifact/dcg_gcmessages_common.proto new file mode 100644 index 0000000..6de8f46 --- /dev/null +++ b/Protobufs/artifact/dcg_gcmessages_common.proto @@ -0,0 +1,617 @@ +import "steammessages.proto"; + +option optimize_for = SPEED; +option cc_generic_services = false; + +enum EGCDCGCommonMessages { + k_EMsgAnyToGCReportAsserts = 7000; + k_EMsgAnyToGCReportAssertsResponse = 7001; +} + +enum EDCGMatchMode { + k_EDCGMatchMode_Unranked = 2; + k_EDCGMatchMode_Gauntlet = 3; + k_EDCGMatchMode_PrivateLobby = 6; + k_EDCGMatchMode_Puzzle = 7; + k_EDCGMatchMode_AI = 8; + k_EDCGMatchMode_Tournament = 9; +} + +enum EDCGLobbyTeam { + k_EDCGLobbyTeam_Team0 = 0; + k_EDCGLobbyTeam_Team1 = 1; + k_EDCGLobbyTeam_Spectator = 16; +} + +enum EDCGLobbyTimer { + k_eDCGLobbyTimer_Unspecified = 0; + k_eDCGLobbyTimer_Disabled = 1; + k_eDCGLobbyTimer_Default = 2; + k_eDCGLobbyTimer_Tournament = 3; + k_eDCGLobbyTimer_TimeAttack = 4; + k_eDCGLobbyTimer_ShotClockOnly = 5; +} + +enum ELobbyServerState { + k_eLobbyServerState_Assign = 0; + k_eLobbyServerState_InGame = 1; + k_eLobbyServerState_PostMatch = 2; + k_eLobbyServerState_SignedOut = 3; + k_eLobbyServerState_Abandoned = 4; +} + +enum EGCLobbyData { + k_ELobbyData_PostMatchSurvey = 1; +} + +enum DCG_COMBATLOG_TYPES { + DCG_COMBATLOG_INVALID = -1; + DCG_COMBATLOG_DAMAGE = 0; + DCG_COMBATLOG_HEAL = 1; + DCG_COMBATLOG_DRAW = 2; + DCG_COMBATLOG_PASS = 3; + DCG_COMBATLOG_COMBAT = 4; + DCG_COMBATLOG_PLAY_CREEP = 5; + DCG_COMBATLOG_PLAY_IMPROVEMENT = 6; + DCG_COMBATLOG_PLAY_SPELL = 7; + DCG_COMBATLOG_PLAY_EQUIPMENT = 8; + DCG_COMBATLOG_PLAY_ABILITY = 9; + DCG_COMBATLOG_GAIN_GOLD = 10; + DCG_COMBATLOG_BUY_ITEM = 11; + DCG_COMBATLOG_DISCARD = 12; + DCG_COMBATLOG_ADD_MODIFIER = 13; + DCG_COMBATLOG_REMOVE_MODIFIER = 14; + DCG_COMBATLOG_KILL = 15; + DCG_COMBATLOG_CARD_MOVE = 16; + DCG_COMBATLOG_CREEP_SPAWN = 17; + DCG_COMBATLOG_DEATH = 18; + DCG_COMBATLOG_COMBAT_OVER = 19; + DCG_COMBATLOG_BEGGINING_OF_SPELLCASTING = 20; + DCG_COMBATLOG_BEGGINING_OF_SPELLCASTING_END = 21; + DCG_COMBATLOG_UNIT_ENTERING_COMBAT = 22; + DCG_COMBATLOG_UNIT_LEAVING_COMBAT = 23; + DCG_COMBATLOG_TRIGGER_TRIGGERED = 24; +} + +message CExtraMsgBlock { + optional uint32 msg_type = 1; + optional bytes contents = 2; + optional uint64 msg_key = 3; + optional bool is_compressed = 4; +} + +message CSODCGLobby { + message GauntletInfo { + optional uint32 wins = 1; + optional uint32 losses = 2; + } + + message Member { + optional uint32 account_id = 1; + optional string persona_name = 2; + optional .EDCGLobbyTeam team = 3 [default = k_EDCGLobbyTeam_Team0]; + optional bool has_left = 4; + optional bool is_anonymous = 5; + optional .CSODCGLobby.GauntletInfo gauntlet_info = 6; + } + + repeated .CSODCGLobby.Member members = 1; + repeated .CExtraMsgBlock extra_messages = 2; + optional fixed64 server_steam_id = 3; + optional uint64 lobby_id = 5; + optional uint64 match_id = 6; + optional uint32 gauntlet_id = 7; + optional .ELobbyServerState server_state = 8 [default = k_eLobbyServerState_Assign]; + optional fixed32 replay_salt = 9; + optional .EDCGMatchMode match_mode = 10 [default = k_EDCGMatchMode_Unranked]; + optional uint32 udp_connect_ip = 11; + optional uint32 udp_connect_port = 12; + optional uint64 tourney_id = 13; + optional uint32 tourney_phase_id = 14; + optional uint32 tourney_series_id = 15; +} + +message CLobbyData_PostMatchSurvey { + message PlayerSurvey { + optional uint32 account_id = 1; + optional uint32 question_id = 2; + } + + repeated .CLobbyData_PostMatchSurvey.PlayerSurvey surveys = 1; +} + +message CSOGameAccountClient { + enum EFlags { + k_eDeveloper = 1; + k_eFreePlayer = 2; + } + + optional uint32 account_id = 1 [(key_field) = true]; + optional uint32 flags = 3; + optional uint32 initial_grant_ack_def = 5; + optional uint32 recycling_progress = 6; + optional uint32 progress_level = 7; + optional uint32 progress_xp = 8; + optional uint32 constructed_mmr_level = 9; + optional uint32 last_win_bounus_time = 10; + optional uint32 match_win_streak = 11; + optional uint32 bonus_period_wins = 12; + optional uint32 player_badge = 13; + optional uint32 draft_mmr_level = 14; +} + +message CSOGauntlet { + optional uint32 account_id = 1 [(key_field) = true]; + optional uint32 gauntlet_id = 2 [(key_field) = true]; + optional uint64 active_lobby_id = 3; + optional uint32 abandoned_time = 4; + optional bytes deck_bytes = 5; + optional uint64 gauntlet_instance = 9; + optional uint32 entry_type = 10; + optional uint64 limited_instance = 11; + optional uint32 wins = 12; + optional uint32 losses = 13; + optional uint64 wins_mask = 14; + optional bool select_random_deck = 15; +} + +message CSOPhantomItem { + optional uint32 account_id = 1; + optional uint64 limited_pool = 2; + optional uint32 def_index = 3; + optional uint64 phantom_id = 4; +} + +message CSOCardAchievement { + optional uint32 account_id = 1; + optional uint32 achievement_id = 2; + optional uint32 progress = 3; +} + +message CSOPlayerLimitedProgress { + optional uint32 account_id = 1; + optional uint64 limited_instance_id = 2; + optional uint64 limited_pool_id = 3; + optional uint32 limited_format = 4; + optional uint32 progress = 5; + optional uint32 flags = 6; +} + +message CSOTourneyMembership { + enum EStatus { + k_eConfigure = 1; + k_eInvites = 2; + k_eSeeding = 3; + k_eLimited = 4; + k_eEditPhase = 5; + k_ePlaying = 6; + k_eWaiting = 7; + k_eClosed = 8; + k_eInvites_Registered = 9; + k_eLimited_Registered = 10; + } + + optional uint32 account_id = 1; + optional uint64 tourney_id = 2; + optional uint32 player_status = 3; + optional .CSOTourneyMembership.EStatus tourney_status = 4 [default = k_eConfigure]; + optional uint32 joined_time = 5; + optional uint32 open_tourney = 6; +} + +message CSOTourneyInvite { + optional uint32 account_id = 1; + optional uint64 tourney_id = 2; + optional bool is_full = 3; + optional uint32 invited_by = 4; + optional uint32 rights_flags = 5; +} + +message CMsgStartFindingMatchInfo { + optional uint32 gauntlet_id = 1; + optional string server_search_key = 2; + optional uint32 client_version = 3; + optional .EDCGMatchMode match_mode = 4 [default = k_EDCGMatchMode_Unranked]; + optional bytes deck_code = 5; + optional bool is_anonymous = 7; + optional bytes collection_code = 8; +} + +message CMsgDCGCombatLogEntry { + optional .DCG_COMBATLOG_TYPES type = 1 [default = DCG_COMBATLOG_INVALID]; + optional uint32 target_card_id = 2; + optional uint32 target_object_id = 3; + optional uint32 target_owner = 4; + optional uint32 source_card_id = 5; + optional uint32 source_object_id = 6; + optional uint32 source_owner = 7; + optional uint32 value = 8; + optional int32 target_attack = 9; + optional int32 target_armor = 10; + optional int32 target_health = 11; + optional int32 source_attack = 12; + optional int32 source_armor = 13; + optional int32 source_health = 14; + optional uint32 turnstamp = 15; + optional uint32 source_lane = 16; + optional uint32 target_lane = 17; + optional uint32 source_parent_card_id = 18; + optional uint32 source_parent_object_id = 19; + optional uint32 modifier_type = 20; + optional bool piercing = 21; + optional string effect_name = 22; + optional uint32 target_combat_position = 23; +} + +message CMsgDeckValidator { + message Deck { + optional bytes deck_bytes = 1; + optional string deck_name = 2; + optional uint32 deck_id = 3; + } + + message CardLimit { + optional uint32 card_id = 1; + optional uint32 card_count = 2; + } + + enum ERarity { + eRarity_Common = 1; + eRarity_Uncommon = 2; + eRarity_Rare = 3; + } + + enum EColor { + eColor_Red = 0; + eColor_Blue = 1; + eColor_Green = 2; + eColor_Black = 3; + } + + optional uint32 version = 1; + optional bool must_own_cards = 2; + repeated uint32 set_ids = 4; + optional uint32 main_min = 5; + optional uint32 main_max = 6; + optional uint32 items_min = 7; + optional uint32 items_max = 8; + optional uint32 main_max_instances = 9; + optional uint32 items_max_instances = 10; + optional uint32 hero_max_instances = 11; + repeated .CMsgDeckValidator.CardLimit card_limits = 12; + repeated .CMsgDeckValidator.CardLimit required_cards = 13; + optional bool include_active_sets = 14; + repeated .CMsgDeckValidator.ERarity blocked_rarities = 15; + optional uint32 min_deck_colors = 16; + optional uint32 max_deck_colors = 17; + repeated .CMsgDeckValidator.EColor blocked_colors = 18; + optional bool random_decks = 19; + repeated .CMsgDeckValidator.Deck deck_choices = 20; +} + +message CMsgAnyToGCReportAsserts { + message TrackedAssert { + optional string filename = 1; + optional uint32 line_number = 2; + optional string sample_msg = 3; + optional string sample_stack = 4; + optional uint32 times_fired = 5; + optional string function_name = 6; + optional string condition = 7; + } + + optional uint32 version = 1; + repeated .CMsgAnyToGCReportAsserts.TrackedAssert asserts = 2; +} + +message CMsgAnyToGCReportAssertsResponse { + optional bool success = 1; +} + +message CMsgGauntletConfig { + message RewardTier { + message Grant { + optional uint32 grant_id = 1; + optional uint32 quantity = 2; + } + + repeated .CMsgGauntletConfig.RewardTier.Grant trophy_grant = 1; + repeated .CMsgGauntletConfig.RewardTier.Grant item_grant = 2; + optional uint32 min_wins = 3; + repeated string loot_list_rolls = 4; + } + + message EntryType { + message ItemCost { + optional uint32 def_index = 1; + optional uint32 quantity = 2; + } + + optional uint32 entry_id = 1; + repeated .CMsgGauntletConfig.EntryType.ItemCost item_costs = 2; + optional uint32 limited_format_overide = 3; + } + + message GauntletPointsLeaderboard { + optional uint32 expiration_time = 1; + } + + optional uint32 gauntlet_id = 1; + optional uint32 activate_time = 2; + optional uint32 max_wins = 3; + optional uint32 max_losses = 4; + optional uint32 max_games = 5; + repeated .CMsgGauntletConfig.RewardTier rewards = 7; + optional .CMsgDeckValidator validator = 8; + optional bool register_deck = 10; + optional bool auto_populate_deck = 12; + optional bool can_modify_deck = 14; + optional bool is_active = 15; + optional bool is_featured = 16; + repeated .CMsgGauntletConfig.EntryType entry_types = 17; + optional uint32 limited_format = 18; + optional uint32 expiration_time = 19; + optional uint32 close_join_time = 20; + optional uint32 close_mm_time = 21; + optional uint32 max_wins_trophy_id = 22; + optional uint32 cooldown_time = 23; + optional uint32 max_wins_per_deck_trophy_id = 24; + optional uint32 max_wins_random_mode_trophy_id = 25; + optional uint32 is_ai_gauntlet = 26; + repeated .CMsgDeckValidator ai_validators = 27; + repeated .CMsgGauntletConfig.GauntletPointsLeaderboard gauntlet_points_leaderboards = 29; + optional string timer = 30; +} + +message CMsgLimitedFormat { + message LimitedStage { + optional .CMsgLimitedFormat.EGrantType grant_type = 1 [default = kGrant_Unknown]; + optional uint32 grant_count = 2; + optional uint32 repeat_count = 3; + optional string display_msg = 4; + } + + enum EGrantType { + kGrant_Unknown = 0; + kGrant_Hero = 1; + kGrant_Card = 2; + kGrant_Item = 3; + kGrant_Pack = 4; + } + + optional uint32 limited_format_id = 1; + optional uint32 grant_stages = 2; + repeated .CMsgLimitedFormat.LimitedStage grant_stage_info = 3; + optional bool create_real_copies = 4; +} + +message CSODCGPrivateLobby { + message Member { + optional uint32 account_id = 1; + optional string persona_name = 2; + optional .EDCGLobbyTeam team = 3 [default = k_EDCGLobbyTeam_Team0]; + optional bool is_ready = 4; + optional bytes deck_bytes = 5; + optional bool has_deck = 7; + optional uint32 client_version = 8; + optional .CMsgRegionPingTimesClient ping_times = 9; + } + + message Invite { + optional uint32 account_id = 1; + optional string persona_name = 2; + optional uint32 invited_by = 3; + } + + message SharedDeck { + optional uint32 shared_by_account_id = 1; + optional bytes deck_bytes = 2; + optional string deck_name = 3; + } + + message Match { + optional uint64 match_id = 1; + optional uint32 winning_account_id = 2; + } + + optional uint64 private_lobby_id = 1; + repeated .CSODCGPrivateLobby.Member members = 2; + repeated .CSODCGPrivateLobby.Invite invites = 3; + repeated .CExtraMsgBlock extra_messages = 4; + optional bool in_match_making = 5; + optional string server_search_key = 6; + optional bool are_decks_visible = 7; + repeated .CSODCGPrivateLobby.Match match_list = 8; + optional .EDCGLobbyTimer timer_mode = 9 [default = k_eDCGLobbyTimer_Unspecified]; + optional fixed64 match_lobby_id = 10; + repeated .CSODCGPrivateLobby.SharedDeck shared_decks = 11; + optional .CMsgDeckValidator deck_validator = 12; + optional uint32 min_client_version = 15; + optional uint32 max_client_version = 16; + optional uint64 steam_chat_group_id = 17; + optional fixed64 lobby_salt = 18; + optional uint32 validator_id = 19; +} + +message CSODCGTourneyInvite { + optional uint32 account_id = 1 [(key_field) = true]; + optional uint64 tourney_id = 2 [(key_field) = true]; + optional bool is_full = 3; +} + +message CSODCGTourneyNextMatch { + optional uint32 account_id = 1 [(key_field) = true]; + optional uint64 tourney_id = 2 [(key_field) = true]; + optional uint32 phase_id = 3 [(key_field) = true]; + optional uint32 series_id = 4 [(key_field) = true]; +} + +message CDCGTourney { + message Match { + optional uint64 match_id = 1; + } + + message Series { + optional uint32 series_id = 1; + optional uint32 account_1 = 2; + optional uint32 wins_1 = 3; + optional uint32 account_2 = 4; + optional uint32 wins_2 = 5; + optional uint32 ties = 6; + optional uint32 status = 7; + repeated .CDCGTourney.Match matches = 8; + optional fixed64 lobby_id = 9; + } + + message Phase { + optional uint32 phase_id = 1; + optional .CDCGTourney.EFormat format = 2 [default = k_eFormat_Invalid]; + optional .CDCGTourney.EPhaseStage stage = 3 [default = k_ePhaseStage_Pending]; + repeated .CDCGTourney.Series series = 4; + optional uint32 limited_format = 5; + optional uint64 limited_instance_id = 6; + optional uint64 limited_pool_id = 7; + optional uint32 auto_advance_time = 9; + } + + message PlayerDeck { + optional uint32 deck_index = 1; + optional bytes deck_bytes = 2; + optional uint32 phase_id = 3; + optional uint32 shared_by = 4; + } + + message Member { + optional uint32 account_id = 1; + optional uint32 rights_flags = 2; + repeated .CDCGTourney.PlayerDeck public_registered_decks = 3; + optional uint32 initial_seed = 4; + optional uint32 initial_group = 5; + } + + message Invite { + optional uint32 account_id = 1; + optional uint32 invited_by = 2; + optional uint32 invite_time = 3; + optional uint32 rights_flags = 4; + } + + message ConfigVals { + optional uint32 val_id = 1; + optional uint32 phase_id = 2; + optional uint32 value = 3; + } + + message SharedDeck { + optional uint32 shared_by = 1; + optional bytes deck_bytes = 2; + optional uint32 shared_slot = 3; + } + + message EntryItem { + optional uint32 def_index = 1; + optional uint32 quantity = 2; + optional bool per_member = 3; + } + + message PaidEntryItem { + optional uint32 def_index = 1; + optional uint32 target_account_id = 2; + optional uint32 owner_account_id = 3; + } + + message Validator { + optional uint32 phase_id = 1; + optional .CMsgDeckValidator deck_validator = 2; + } + + enum EStage { + k_eStage_Configure = 10; + k_eStage_Invites = 20; + k_eStage_Seeding = 30; + k_eStage_PlayPhases = 40; + k_eStage_Closed = 50; + } + + enum EPhaseStage { + k_ePhaseStage_Pending = 10; + k_ePhaseStage_Limited = 20; + k_ePhaseStage_Edit = 30; + k_ePhaseStage_Playing = 40; + k_ePhaseStage_Complete = 50; + } + + enum EFormat { + k_eFormat_Invalid = 0; + k_eFormat_Bracket_SingleElim = 1; + k_eFormat_Swiss = 2; + k_eFormat_FreeForAll = 3; + } + + optional uint64 tourney_id = 1; + optional .CDCGTourney.EStage stage = 2 [default = k_eStage_Configure]; + repeated .CDCGTourney.Validator validators = 3; + optional uint32 stage_time = 4; + optional uint32 stats_salt = 5; + optional string tourney_msg = 6; + optional string tourney_status = 7; + repeated .CDCGTourney.Phase phases = 8; + repeated .CDCGTourney.ConfigVals config_vals = 9; + repeated .CDCGTourney.Invite invites = 10; + repeated .CDCGTourney.Member members = 11; + optional string tourney_name = 12; + repeated .CDCGTourney.SharedDeck shared_decks = 13; + optional uint32 created_by = 14; + optional uint32 auto_close_time = 15; + optional uint64 steam_chat_room_id = 16; + repeated .CDCGTourney.PaidEntryItem paid_entry_items = 17; + repeated .CDCGTourney.EntryItem entry_items = 18; + optional uint32 created_time = 19; +} + +message CMsgRegionPingTimesClient { + repeated fixed32 data_center_codes = 1 [packed = true]; + repeated uint32 ping_times = 2 [packed = true]; +} + +message CMsgMarketPrices { + optional uint32 time_stamp = 1; + optional uint32 currency_id = 2; + repeated uint32 def_indices = 3 [packed = true]; + repeated uint64 purchase_price = 4 [packed = true]; + repeated uint64 sell_price = 5 [packed = true]; + optional bool request_up_to_date = 6; + optional uint32 valid_through = 7; +} + +message CMsgMatchData { + message PlayerInfo { + optional uint32 account_id = 1; + optional .EDCGLobbyTeam team = 2 [default = k_EDCGLobbyTeam_Team0]; + optional uint32 player_slot = 3; + repeated uint32 hero_lineup = 4; + repeated uint32 tower_health = 5; + optional uint32 ancient_health = 6; + optional bool conceded = 8; + optional uint32 game_clock = 9; + repeated uint32 hero_ids = 10; + optional uint32 mmr = 11; + optional uint32 mmr_uncertainty = 12; + optional bytes deck_bytes = 13; + } + + enum EEndReason { + k_EEndReason_TeamWin = 0; + k_EEndReason_Tie = 1; + k_EEndReason_AllAbandoned = 2; + k_EEndReason_NetworkIssues = 3; + k_EEndReason_MatchLength = 4; + k_EEndReason_PlayerNeverConnected = 5; + } + + optional uint32 match_duration_s = 4; + optional uint32 game_turns = 5; + optional .CMsgMatchData.EEndReason end_reason = 6 [default = k_EEndReason_TeamWin]; + optional .EDCGLobbyTeam winning_team = 7 [default = k_EDCGLobbyTeam_Team0]; + repeated .CMsgMatchData.PlayerInfo players = 8; +} diff --git a/Protobufs/artifact/dcg_gcmessages_server.proto b/Protobufs/artifact/dcg_gcmessages_server.proto new file mode 100644 index 0000000..2047079 --- /dev/null +++ b/Protobufs/artifact/dcg_gcmessages_server.proto @@ -0,0 +1,395 @@ +import "dcg_gcmessages_common.proto"; + +option optimize_for = SPEED; +option cc_generic_services = false; + +enum EGCDCGServerMessages { + k_EMsgServerToGCMatchSignoutPermission = 10012; + k_EMsgServerToGCMatchSignoutPermissionResponse = 10013; + k_EMsgServerToGCMatchSignout = 10014; + k_EMsgServerToGCMatchSignoutResponse = 10015; + k_EMsgServerToGCIdlePing = 10018; + k_EMsgGCToServerRequestPing = 10019; + k_EMsgGCToServerAllocateForMatch = 10021; + k_EMsgGCToServerAllocateForMatchResponse = 10022; + k_EMsgServerToGCEnterMatchmaking = 10023; + k_EMsgGCToServerCancelAllocateForMatch = 10024; + k_EMsgServerToGCUpdateLobbyServerState = 10025; + k_EMsgServerToGCAbandonMatch = 10026; + k_EMsgServerToGCAbandonMatchResponse = 10027; + k_EMsgServerToGCTestConnection = 10028; + k_EMsgServerToGCTestConnectionResponse = 10029; + k_EMsgGCToServerRunTests = 10031; + k_EMsgGCToServerRunTestsResponse = 10032; + k_EMsgServerToGCTestResults = 10033; + k_EMsgGCToServerAddTourneySpectator = 10034; + k_EMsgGCToServerAddTourneySpectatorResponse = 10035; +} + +enum EGCServerLobbyData { + k_EServerLobbyData_DeckValidator = 1; + k_EServerLobbyData_DraftCards = 3; + k_EServerLobbyData_PlayerDeck = 4; + k_EServerLobbyData_PlayerMMR = 5; + k_EServerLobbyData_CardAchievements = 6; + k_EServerLobbyData_GauntletInfo = 7; + k_EServerLobbyData_PlayerInfo = 8; +} + +enum EGCServerSignoutData { + k_EServerSignoutData_PlayerProgress = 1; + k_EServerSignoutData_PlayerDecks = 2; + k_EServerSignoutData_LobbyInfo = 4; + k_EServerSignoutData_GameOptions = 9; + k_EServerSignoutData_CardAchievements = 11; + k_EServerSignoutData_PerformanceStats = 12; + k_EServerSignoutData_Disconnections = 13; + k_EServerSignoutData_MatchChatStats = 14; +} + +message CMsgServerCrashSentinelFile { + message DCGGameInfo { + optional uint64 match_id = 1; + optional fixed64 lobby_id = 2; + optional uint32 gauntlet_id = 3; + optional uint32 server_state = 4; + repeated uint32 client_account_ids = 5; + } + + optional uint32 version = 1; + optional fixed64 server_steam_id = 2; + optional fixed32 server_public_ip_addr = 3; + optional uint32 server_port = 4; + optional uint32 server_cluster = 5; + optional uint32 pid = 6; + optional uint32 saved_time = 7; + optional uint32 server_version = 8; + optional .CMsgServerCrashSentinelFile.DCGGameInfo dcg_info = 9; + optional uint32 server_private_ip_addr = 10; + optional uint32 instance_id = 11; +} + +message CServerLobbyData_CardAchievements { + optional uint32 account_id = 1; + repeated uint32 achievement_ids = 2 [packed = true]; + repeated uint32 progress = 3 [packed = true]; +} + +message CServerDraftCard { + optional uint32 def_index = 1; +} + +message CServerLobbyData_DraftCards { + message Pack { + optional uint64 pack_item_id = 1; + repeated .CServerDraftCard pack_cards = 2; + } + + message Player { + optional uint32 account_id = 1; + repeated .CServerLobbyData_DraftCards.Pack packs = 2; + optional bool cannot_trade = 3; + optional uint32 trade_restriction_time = 4; + } + + repeated .CServerLobbyData_DraftCards.Player players = 1; +} + +message CServerLobbyData_PlayerDeck { + optional bytes deck_code = 1; + optional bytes collection_code = 2; +} + +message CServerLobbyData_PlayerMMR { + message Player { + optional uint32 account_id = 1; + optional uint32 mmr = 2; + optional uint32 uncertainty = 3; + } + + repeated .CServerLobbyData_PlayerMMR.Player players = 1; +} + +message CServerLobbyData_GauntletInfo { + optional .CMsgGauntletConfig gauntlet_config = 1; +} + +message CServerLobbyData_DeckValidator { + optional .CMsgDeckValidator deck_validator = 1; +} + +message CServerLobbyData_PlayerInfo { + optional uint32 account_id = 1; + optional uint32 progress_level = 2; + optional uint32 progress_xp = 3; + optional uint32 mmr_level = 4; + optional uint32 last_win_bonus_time = 5; + optional uint32 win_streak = 6; + optional uint32 bonus_period_wins = 7; + optional uint32 player_badge = 8; +} + +message CSODCGServerLobby { + repeated .CExtraMsgBlock extra_messages = 1; + optional fixed64 server_steam_id = 2; + optional uint64 lobby_id = 3; + optional fixed32 replay_salt = 4; + optional fixed64 private_lobby_id = 5; + optional .EDCGLobbyTimer timer_mode = 6 [default = k_eDCGLobbyTimer_Unspecified]; +} + +message CMsgServerSignoutData_MatchChatStats { + message ChatStats { + optional uint32 account_id = 1; + optional uint32 total_messages = 2; + optional uint32 total_custom_messages = 3; + optional bool user_sent_custom_message_before_mute = 4; + optional uint32 total_messages_sent_while_muted = 5; + optional uint32 num_times_squelched = 6; + optional bool user_muted_opponent_before_receiving_message = 7; + optional bool user_was_muted_then_was_unmuted = 8; + optional bool user_was_muted_at_match_end = 9; + } + + repeated .CMsgServerSignoutData_MatchChatStats.ChatStats chat_stats = 1; +} + +message CMsgServerSignoutData_LobbyInfo { + optional uint64 match_id = 1; + optional uint32 start_time = 2; + optional uint32 gauntlet_id = 3; + optional uint32 server_version = 4; + optional uint32 replay_salt = 5; + optional .EDCGMatchMode match_mode = 6 [default = k_EDCGMatchMode_Unranked]; +} + +message CMsgServerSignoutData_PlayerDecks { + message Player { + message Hero { + optional uint32 card_id = 1; + optional uint32 hero_slot = 2; + } + + message Card { + optional uint32 card_id = 1; + optional uint32 num_in_deck = 2; + optional uint32 num_in_hand = 3; + optional uint32 num_played = 4; + } + + optional uint32 player_id = 1; + repeated .CMsgServerSignoutData_PlayerDecks.Player.Card cards = 2; + repeated .CMsgServerSignoutData_PlayerDecks.Player.Hero heroes = 3; + optional uint32 critical_life = 6; + optional uint32 total_gold = 7; + } + + repeated .CMsgServerSignoutData_PlayerDecks.Player players = 1; + optional uint32 stats_version = 2; +} + +message CMsgServerSignoutData_PlayerProgress { + message PointBonus { + optional uint32 bonus_id = 1; + optional uint32 bonus_points = 2; + } + + optional uint32 account_id = 1; + optional uint32 xp_to_grant = 2; + repeated .CMsgServerSignoutData_PlayerProgress.PointBonus bonuses = 3; + optional uint32 weekly_bonus_reset_time = 5; +} + +message CMsgServerToGCMatchSignoutPermission { + optional uint32 signout_start = 1; + optional uint64 match_id = 3; + optional .EDCGMatchMode match_mode = 4 [default = k_EDCGMatchMode_Unranked]; +} + +message CMsgServerToGCMatchSignoutPermissionResponse { + optional bool can_sign_out = 1; + optional uint32 retry_time_s = 2; + repeated .EGCServerSignoutData requested_data = 3; +} + +message CMsgServerSignoutData_CardAchievements { + enum EAchievementGrantType { + k_EAchievementGrant_Add = 0; + k_EAchievementGrant_Max = 1; + k_EAchievementGrant_Set = 2; + } + + optional uint32 account_id = 1; + repeated uint32 achievement_ids = 2 [packed = true]; + repeated uint32 grant_amounts = 3 [packed = true]; + repeated .CMsgServerSignoutData_CardAchievements.EAchievementGrantType grant_types = 4 [packed = true]; +} + +message CMsgServerSignoutData_PerformanceStats { + optional uint32 start_memory_bytes = 1; + optional uint32 peak_memory_bytes = 2; + optional uint32 end_memory_bytes = 3; + optional uint32 total_update_time_ms = 4; + optional uint32 total_match_time_ms = 5; + optional uint32 sent_messages = 6; + optional uint32 received_messages = 7; + optional uint32 sent_bytes = 8; + optional uint32 received_bytes = 9; + optional uint32 max_update_time_micros = 10; + optional uint32 num_updates = 11; + optional uint32 replay_size_bytes = 12; +} + +message CMsgServerSignoutData_GameOptions { + message GameOption { + optional string key = 1; + optional string value = 2; + } + + repeated .CMsgServerSignoutData_GameOptions.GameOption game_options = 1; +} + +message CMsgMatchDisconnection { + optional uint32 account_id = 1; + optional uint32 disconnect_time = 2; + optional uint32 connection_state = 3; + optional uint32 reason_code = 4; + optional uint32 reconnect_delay = 5; +} + +message CMsgServerSignoutData_Disconnections { + repeated .CMsgMatchDisconnection disconnections = 1; +} + +message CMsgServerToGCMatchSignout { + repeated .CExtraMsgBlock additional_data = 1; + optional uint32 signout_attempt = 2; + optional uint64 lobby_id = 3; + optional uint32 cluster_id = 9; + optional .CMsgMatchData match_data = 10; +} + +message CMsgServerToGCMatchSignoutResponse { + enum ESignoutResult { + k_ESignout_Failed_Retry = 1; + k_ESignout_Failed_NoRetry = 2; + k_ESignout_Failed_InFlight = 3; + k_ESignout_Success = 4; + k_ESignout_Success_AlreadySignedOut = 5; + } + + optional .CMsgServerToGCMatchSignoutResponse.ESignoutResult result = 1 [default = k_ESignout_Failed_Retry]; +} + +message CMsgServerWelcomeDCG { +} + +message CMsgServerToGCIdlePing { + optional uint32 server_version = 1; +} + +message CMsgGCToServerRequestPing { +} + +message CMsgGCToServerAllocateForMatch { + optional uint64 match_id = 1; +} + +message CMsgGCToServerAllocateForMatchResponse { + optional bool success = 1; +} + +message CMsgServerToGCEnterMatchmaking { + optional uint32 server_version = 1; + optional string search_key = 2; + optional uint32 region_id = 3; + optional uint32 cluster_id = 4; + optional uint32 server_public_ip = 5; + optional uint32 server_private_ip = 6; + optional uint32 server_port = 7; + optional bytes sdr_address = 9; +} + +message CMsgGCToServerCancelAllocateForMatch { + optional uint64 match_id = 1; +} + +message CMsgServerToGCUpdateLobbyServerState { + optional uint64 lobby_id = 1; + optional .ELobbyServerState server_state = 2 [default = k_eLobbyServerState_Assign]; +} + +message CMsgServerToGCAbandonMatch { + message Player { + optional uint32 account_id = 1; + optional uint64 additional_data = 2; + } + + enum EReason { + eReason_ServerCrash = 1; + eReason_ClientsFailedToConnect = 2; + } + + optional fixed64 server_steam_id = 1; + optional fixed64 lobby_id = 2; + optional uint32 cluster_id = 3; + optional .CMsgServerToGCAbandonMatch.EReason reason_code = 4 [default = eReason_ServerCrash]; + optional uint64 additional_data = 5; + optional uint64 match_id = 6; + optional uint32 gauntlet_id = 7; + repeated .CMsgServerToGCAbandonMatch.Player players = 8; + optional fixed32 public_ip_address = 9; + optional uint32 port = 10; + optional uint32 server_version = 11; + optional uint32 pid = 12; + optional uint32 instance_id = 13; + optional uint32 private_ip_address = 14; +} + +message CMsgServerToGCAbandonMatchResponse { +} + +message CMsgServerToGCTestConnection { +} + +message CMsgServerToGCTestConnectionResponse { + optional uint32 state = 1; + optional uint64 lobby_id = 2; +} + +message CMsgGCToServerAddTourneySpectator { + optional uint64 lobby_id = 1; + optional uint32 account_id = 2; + optional uint32 account_to_spectate_id = 3; + optional uint64 tourney_id = 4; +} + +message CMsgGCToServerAddTourneySpectatorResponse { + optional bool success = 1; + optional uint64 tourney_id = 2; +} + +message CMsgGCToServerRunTests { + optional uint32 expected_version = 1; +} + +message CMsgGCToServerRunTestsResponse { + optional bool running_tests = 1; +} + +message CMsgServerToGCTestResults { + message TestResult { + optional string test_name = 1; + optional string test_group = 2; + optional .CMsgServerToGCTestResults.ETestResult test_result = 3 [default = eResult_Failure]; + } + + enum ETestResult { + eResult_Failure = 0; + eResult_Success = 1; + eResult_Disabled = 2; + } + + repeated .CMsgServerToGCTestResults.TestResult results = 1; + optional uint32 server_version = 2; +} diff --git a/Protobufs/artifact/demo.proto b/Protobufs/artifact/demo.proto new file mode 100644 index 0000000..8ffb275 --- /dev/null +++ b/Protobufs/artifact/demo.proto @@ -0,0 +1,149 @@ +option cc_generic_services = false; + +enum EDemoCommands { + DEM_Error = -1; + DEM_Stop = 0; + DEM_FileHeader = 1; + DEM_FileInfo = 2; + DEM_SyncTick = 3; + DEM_SendTables = 4; + DEM_ClassInfo = 5; + DEM_StringTables = 6; + DEM_Packet = 7; + DEM_SignonPacket = 8; + DEM_ConsoleCmd = 9; + DEM_CustomData = 10; + DEM_CustomDataCallbacks = 11; + DEM_UserCmd = 12; + DEM_FullPacket = 13; + DEM_SaveGame = 14; + DEM_SpawnGroups = 15; + DEM_Max = 16; + DEM_IsCompressed = 64; +} + +message CDemoFileHeader { + required string demo_file_stamp = 1; + optional int32 network_protocol = 2; + optional string server_name = 3; + optional string client_name = 4; + optional string map_name = 5; + optional string game_directory = 6; + optional int32 fullpackets_version = 7; + optional bool allow_clientside_entities = 8; + optional bool allow_clientside_particles = 9; + optional string addons = 10; +} + +message CGameInfo { + message CDotaGameInfo { + message CPlayerInfo { + optional string hero_name = 1; + optional string player_name = 2; + optional bool is_fake_client = 3; + optional uint64 steamid = 4; + optional int32 game_team = 5; + } + + message CHeroSelectEvent { + optional bool is_pick = 1; + optional uint32 team = 2; + optional uint32 hero_id = 3; + } + + optional uint64 match_id = 1; + optional int32 game_mode = 2; + optional int32 game_winner = 3; + repeated .CGameInfo.CDotaGameInfo.CPlayerInfo player_info = 4; + optional uint32 leagueid = 5; + repeated .CGameInfo.CDotaGameInfo.CHeroSelectEvent picks_bans = 6; + optional uint32 radiant_team_id = 7; + optional uint32 dire_team_id = 8; + optional string radiant_team_tag = 9; + optional string dire_team_tag = 10; + optional uint32 end_time = 11; + } + + optional .CGameInfo.CDotaGameInfo dota = 4; +} + +message CDemoFileInfo { + optional float playback_time = 1; + optional int32 playback_ticks = 2; + optional int32 playback_frames = 3; + optional .CGameInfo game_info = 4; +} + +message CDemoPacket { + optional bytes data = 3; +} + +message CDemoFullPacket { + optional .CDemoStringTables string_table = 1; + optional .CDemoPacket packet = 2; +} + +message CDemoSaveGame { + optional bytes data = 1; + optional fixed64 steam_id = 2; + optional fixed64 signature = 3; + optional int32 version = 4; +} + +message CDemoSyncTick { +} + +message CDemoConsoleCmd { + optional string cmdstring = 1; +} + +message CDemoSendTables { + optional bytes data = 1; +} + +message CDemoClassInfo { + message class_t { + optional int32 class_id = 1; + optional string network_name = 2; + optional string table_name = 3; + } + + repeated .CDemoClassInfo.class_t classes = 1; +} + +message CDemoCustomData { + optional int32 callback_index = 1; + optional bytes data = 2; +} + +message CDemoCustomDataCallbacks { + repeated string save_id = 1; +} + +message CDemoStringTables { + message items_t { + optional string str = 1; + optional bytes data = 2; + } + + message table_t { + optional string table_name = 1; + repeated .CDemoStringTables.items_t items = 2; + repeated .CDemoStringTables.items_t items_clientside = 3; + optional int32 table_flags = 4; + } + + repeated .CDemoStringTables.table_t tables = 1; +} + +message CDemoStop { +} + +message CDemoUserCmd { + optional int32 cmd_number = 1; + optional bytes data = 2; +} + +message CDemoSpawnGroups { + repeated bytes msgs = 3; +} diff --git a/Protobufs/artifact/econ_gcmessages.proto b/Protobufs/artifact/econ_gcmessages.proto new file mode 100644 index 0000000..4d6e63f --- /dev/null +++ b/Protobufs/artifact/econ_gcmessages.proto @@ -0,0 +1,1033 @@ +import "steammessages.proto"; +import "econ_shared_enums.proto"; + +option optimize_for = SPEED; +option cc_generic_services = false; + +enum EGCItemMsg { + k_EMsgGCBase = 1000; + k_EMsgGCSetItemPosition = 1001; + k_EMsgGCDelete = 1004; + k_EMsgGCVerifyCacheSubscription = 1005; + k_EMsgClientToGCNameItem = 1006; + k_EMsgGCPaintItem = 1009; + k_EMsgGCPaintItemResponse = 1010; + k_EMsgGCGoldenWrenchBroadcast = 1011; + k_EMsgGCMOTDRequest = 1012; + k_EMsgGCMOTDRequestResponse = 1013; + k_EMsgGCAddItemToSocket_DEPRECATED = 1014; + k_EMsgGCAddItemToSocketResponse_DEPRECATED = 1015; + k_EMsgGCAddSocketToBaseItem_DEPRECATED = 1016; + k_EMsgGCAddSocketToItem_DEPRECATED = 1017; + k_EMsgGCAddSocketToItemResponse_DEPRECATED = 1018; + k_EMsgGCNameBaseItem = 1019; + k_EMsgGCNameBaseItemResponse = 1020; + k_EMsgGCRemoveSocketItem_DEPRECATED = 1021; + k_EMsgGCRemoveSocketItemResponse_DEPRECATED = 1022; + k_EMsgGCCustomizeItemTexture = 1023; + k_EMsgGCCustomizeItemTextureResponse = 1024; + k_EMsgGCUseItemRequest = 1025; + k_EMsgGCUseItemResponse = 1026; + k_EMsgGCGiftedItems = 1027; + k_EMsgGCRemoveItemName = 1030; + k_EMsgGCRemoveItemPaint = 1031; + k_EMsgGCUnwrapGiftRequest = 1037; + k_EMsgGCUnwrapGiftResponse = 1038; + k_EMsgGCSetItemStyle_DEPRECATED = 1039; + k_EMsgGCUsedClaimCodeItem = 1040; + k_EMsgGCSortItems = 1041; + k_EMsgGC_RevolvingLootList_DEPRECATED = 1042; + k_EMsgGCUpdateItemSchema = 1049; + k_EMsgGCRemoveCustomTexture = 1051; + k_EMsgGCRemoveCustomTextureResponse = 1052; + k_EMsgGCRemoveMakersMark = 1053; + k_EMsgGCRemoveMakersMarkResponse = 1054; + k_EMsgGCRemoveUniqueCraftIndex = 1055; + k_EMsgGCRemoveUniqueCraftIndexResponse = 1056; + k_EMsgGCSaxxyBroadcast = 1057; + k_EMsgGCBackpackSortFinished = 1058; + k_EMsgGCAdjustItemEquippedState = 1059; + k_EMsgGCCollectItem = 1061; + k_EMsgGCItemAcknowledged = 1062; + k_EMsgGCPresets_SelectPresetForClass = 1063; + k_EMsgGCPresets_SetItemPosition = 1064; + k_EMsgGCPresets_SelectPresetForClassReply = 1067; + k_EMsgClientToGCNameItemResponse = 1068; + k_EMsgGCApplyConsumableEffects = 1069; + k_EMsgGCShowItemsPickedUp = 1071; + k_EMsgGCClientDisplayNotification = 1072; + k_EMsgGCApplyStrangePart = 1073; + k_EMsgGC_IncrementKillCountResponse = 1075; + k_EMsgGCApplyPennantUpgrade = 1076; + k_EMsgGCSetItemPositions = 1077; + k_EMsgGCSetItemPositions_RateLimited = 1096; + k_EMsgGCApplyEggEssence = 1078; + k_EMsgGCNameEggEssenceResponse = 1079; + k_EMsgGCFulfillDynamicRecipeComponent = 1082; + k_EMsgGCFulfillDynamicRecipeComponentResponse = 1083; + k_EMsgGCClientRequestMarketData = 1084; + k_EMsgGCClientRequestMarketDataResponse = 1085; + k_EMsgGCExtractGems = 1086; + k_EMsgGCAddSocket = 1087; + k_EMsgGCAddItemToSocket = 1088; + k_EMsgGCAddItemToSocketResponse = 1089; + k_EMsgGCAddSocketResponse = 1090; + k_EMsgGCResetStrangeGemCount = 1091; + k_EMsgGCRequestCrateItems = 1092; + k_EMsgGCRequestCrateItemsResponse = 1093; + k_EMsgGCExtractGemsResponse = 1094; + k_EMsgGCResetStrangeGemCountResponse = 1095; + k_EMsgGCServerUseItemRequest = 1103; + k_EMsgGCAddGiftItem = 1104; + k_EMsgGCRemoveItemGiftMessage = 1105; + k_EMsgGCRemoveItemGiftMessageResponse = 1106; + k_EMsgGCRemoveItemGifterAccountId = 1107; + k_EMsgGCRemoveItemGifterAccountIdResponse = 1108; + k_EMsgClientToGCRemoveItemGifterAttributes = 1109; + k_EMsgClientToGCRemoveItemName = 1110; + k_EMsgClientToGCRemoveItemDescription = 1111; + k_EMsgClientToGCRemoveItemAttributeResponse = 1112; + k_EMsgGCTradingBase = 1500; + k_EMsgGCTrading_InitiateTradeRequest = 1501; + k_EMsgGCTrading_InitiateTradeResponse = 1502; + k_EMsgGCTrading_StartSession = 1503; + k_EMsgGCTrading_SessionClosed = 1509; + k_EMsgGCTrading_InitiateTradeRequestResponse = 1514; + k_EMsgGCServerBrowser_FavoriteServer = 1601; + k_EMsgGCServerBrowser_BlacklistServer = 1602; + k_EMsgGCServerRentalsBase = 1700; + k_EMsgGCDev_NewItemRequest = 2001; + k_EMsgGCDev_NewItemRequestResponse = 2002; + k_EMsgGCDev_UnlockAllItemStylesRequest = 2003; + k_EMsgGCDev_UnlockAllItemStylesResponse = 2004; + k_EMsgGCStorePurchaseFinalize = 2504; + k_EMsgGCStorePurchaseFinalizeResponse = 2505; + k_EMsgGCStorePurchaseCancel = 2506; + k_EMsgGCStorePurchaseCancelResponse = 2507; + k_EMsgGCStorePurchaseInit = 2510; + k_EMsgGCStorePurchaseInitResponse = 2511; + k_EMsgGCToGCBannedWordListUpdated = 2515; + k_EMsgGCToGCDirtySDOCache = 2516; + k_EMsgGCToGCDirtyMultipleSDOCache = 2517; + k_EMsgGCToGCUpdateSQLKeyValue = 2518; + k_EMsgGCToGCBroadcastConsoleCommand = 2521; + k_EMsgGCServerVersionUpdated = 2522; + k_EMsgGCApplyAutograph = 2523; + k_EMsgGCToGCWebAPIAccountChanged = 2524; + k_EMsgGCClientVersionUpdated = 2528; + k_EMsgGCItemPurgatory_FinalizePurchase = 2531; + k_EMsgGCItemPurgatory_FinalizePurchaseResponse = 2532; + k_EMsgGCItemPurgatory_RefundPurchase = 2533; + k_EMsgGCItemPurgatory_RefundPurchaseResponse = 2534; + k_EMsgGCToGCPlayerStrangeCountAdjustments = 2535; + k_EMsgGCRequestStoreSalesData = 2536; + k_EMsgGCRequestStoreSalesDataResponse = 2537; + k_EMsgGCRequestStoreSalesDataUpToDateResponse = 2538; + k_EMsgGCToGCPingRequest = 2539; + k_EMsgGCToGCPingResponse = 2540; + k_EMsgGCToGCGetUserSessionServer = 2541; + k_EMsgGCToGCGetUserSessionServerResponse = 2542; + k_EMsgGCToGCGetUserServerMembers = 2543; + k_EMsgGCToGCGetUserServerMembersResponse = 2544; + k_EMsgGCToGCGetUserPCBangNo = 2545; + k_EMsgGCToGCGetUserPCBangNoResponse = 2546; + k_EMsgGCToGCCanUseDropRateBonus = 2547; + k_EMsgSQLAddDropRateBonus = 2548; + k_EMsgGCToGCRefreshSOCache = 2549; + k_EMsgGCToGCApplyLocalizationDiff = 2550; + k_EMsgGCToGCApplyLocalizationDiffResponse = 2551; + k_EMsgGCToGCCheckAccountTradeStatus = 2552; + k_EMsgGCToGCCheckAccountTradeStatusResponse = 2553; + k_EMsgGCToGCGrantAccountRolledItems = 2554; + k_EMsgGCToGCGrantSelfMadeItemToAccount = 2555; + k_EMsgGCPartnerBalanceRequest = 2557; + k_EMsgGCPartnerBalanceResponse = 2558; + k_EMsgGCPartnerRechargeRedirectURLRequest = 2559; + k_EMsgGCPartnerRechargeRedirectURLResponse = 2560; + k_EMsgGCStatueCraft = 2561; + k_EMsgGCRedeemCode = 2562; + k_EMsgGCRedeemCodeResponse = 2563; + k_EMsgGCToGCItemConsumptionRollback = 2564; + k_EMsgClientToGCWrapAndDeliverGift = 2565; + k_EMsgClientToGCWrapAndDeliverGiftResponse = 2566; + k_EMsgClientToGCUnpackBundleResponse = 2567; + k_EMsgGCToClientStoreTransactionCompleted = 2568; + k_EMsgClientToGCEquipItems = 2569; + k_EMsgClientToGCEquipItemsResponse = 2570; + k_EMsgClientToGCUnlockItemStyle = 2571; + k_EMsgClientToGCUnlockItemStyleResponse = 2572; + k_EMsgClientToGCSetItemInventoryCategory = 2573; + k_EMsgClientToGCUnlockCrate = 2574; + k_EMsgClientToGCUnlockCrateResponse = 2575; + k_EMsgClientToGCUnpackBundle = 2576; + k_EMsgClientToGCSetItemStyle = 2577; + k_EMsgClientToGCSetItemStyleResponse = 2578; + k_EMsgSQLGCToGCGrantBackpackSlots = 2580; + k_EMsgClientToGCLookupAccountName = 2581; + k_EMsgClientToGCLookupAccountNameResponse = 2582; + k_EMsgGCToGCDevRevokeUserItems = 2583; + k_EMsgClientToGCCreateStaticRecipe = 2584; + k_EMsgClientToGCCreateStaticRecipeResponse = 2585; + k_EMsgGCToGCStoreProcessCDKeyTransaction = 2586; + k_EMsgGCToGCStoreProcessCDKeyTransactionResponse = 2587; + k_EMsgGCToGCStoreProcessSettlement = 2588; + k_EMsgGCToGCStoreProcessSettlementResponse = 2589; + k_EMsgGCToGCConsoleOutput = 2590; + k_EMsgGCToClientItemAges = 2591; + k_EMsgGCToGCInternalTestMsg = 2592; + k_EMsgGCToGCClientServerVersionsUpdated = 2593; + k_EMsgGCUseMultipleItemsRequest = 2594; + k_EMsgGCGetAccountSubscriptionItem = 2595; + k_EMsgGCGetAccountSubscriptionItemResponse = 2596; + k_EMsgGCToGCBroadcastMessageFromSub = 2598; + k_EMsgGCToClientCurrencyPricePoints = 2599; + k_EMsgGCToGCAddSubscriptionTime = 2600; + k_EMsgGCToGCFlushSteamInventoryCache = 2601; + k_EMsgGCRequestCrateEscalationLevel = 2602; + k_EMsgGCRequestCrateEscalationLevelResponse = 2603; + k_EMsgGCToGCUpdateSubscriptionItems = 2604; +} + +enum EItemPurgatoryResponse_Finalize { + k_ItemPurgatoryResponse_Finalize_Succeeded = 0; + k_ItemPurgatoryResponse_Finalize_Failed_Incomplete = 1; + k_ItemPurgatoryResponse_Finalize_Failed_ItemsNotInPurgatory = 2; + k_ItemPurgatoryResponse_Finalize_Failed_CouldNotFindItems = 3; + k_ItemPurgatoryResponse_Finalize_Failed_NoSOCache = 4; + k_ItemPurgatoryResponse_Finalize_BackpackFull = 5; +} + +enum EItemPurgatoryResponse_Refund { + k_ItemPurgatoryResponse_Refund_Succeeded = 0; + k_ItemPurgatoryResponse_Refund_Failed_ItemNotInPurgatory = 1; + k_ItemPurgatoryResponse_Refund_Failed_CouldNotFindItem = 2; + k_ItemPurgatoryResponse_Refund_Failed_NoSOCache = 3; + k_ItemPurgatoryResponse_Refund_Failed_NoDetail = 4; +} + +enum EGCMsgInitiateTradeResponse { + k_EGCMsgInitiateTradeResponse_Accepted = 0; + k_EGCMsgInitiateTradeResponse_Declined = 1; + k_EGCMsgInitiateTradeResponse_VAC_Banned_Initiator = 2; + k_EGCMsgInitiateTradeResponse_VAC_Banned_Target = 3; + k_EGCMsgInitiateTradeResponse_Target_Already_Trading = 4; + k_EGCMsgInitiateTradeResponse_Disabled = 5; + k_EGCMsgInitiateTradeResponse_NotLoggedIn = 6; + k_EGCMsgInitiateTradeResponse_Cancel = 7; + k_EGCMsgInitiateTradeResponse_TooSoon = 8; + k_EGCMsgInitiateTradeResponse_TooSoonPenalty = 9; + k_EGCMsgInitiateTradeResponse_Trade_Banned_Initiator = 10; + k_EGCMsgInitiateTradeResponse_Trade_Banned_Target = 11; + k_EGCMsgInitiateTradeResponse_Free_Account_Initiator_DEPRECATED = 12; + k_EGCMsgInitiateTradeResponse_Shared_Account_Initiator = 13; + k_EGCMsgInitiateTradeResponse_Service_Unavailable = 14; + k_EGCMsgInitiateTradeResponse_Target_Blocked = 15; + k_EGCMsgInitiateTradeResponse_NeedVerifiedEmail = 16; + k_EGCMsgInitiateTradeResponse_NeedSteamGuard = 17; + k_EGCMsgInitiateTradeResponse_SteamGuardDuration = 18; + k_EGCMsgInitiateTradeResponse_TheyCannotTrade = 19; + k_EGCMsgInitiateTradeResponse_Recent_Password_Reset = 20; + k_EGCMsgInitiateTradeResponse_Using_New_Device = 21; + k_EGCMsgInitiateTradeResponse_Sent_Invalid_Cookie = 22; + k_EGCMsgInitiateTradeResponse_TooRecentFriend = 23; + k_EGCMsgInitiateTradeResponse_WalledFundsNotTrusted = 24; +} + +message CMsgApplyAutograph { + optional uint64 autograph_item_id = 1; + optional uint64 item_item_id = 2; +} + +message CMsgAdjustItemEquippedState { + optional uint64 item_id = 1; + optional uint32 new_class = 2; + optional uint32 new_slot = 3; + optional uint32 style_index = 4; +} + +message CMsgEconPlayerStrangeCountAdjustment { + message CStrangeCountAdjustment { + optional uint32 event_type = 1; + optional uint64 item_id = 2; + optional uint32 adjustment = 3; + } + + optional uint32 account_id = 1; + repeated .CMsgEconPlayerStrangeCountAdjustment.CStrangeCountAdjustment strange_count_adjustments = 2; + optional bool turbo_mode = 3; +} + +message CMsgRequestItemPurgatory_FinalizePurchase { + repeated uint64 item_ids = 1; +} + +message CMsgRequestItemPurgatory_FinalizePurchaseResponse { + optional uint32 result = 1; + repeated uint64 item_ids = 2; +} + +message CMsgRequestItemPurgatory_RefundPurchase { + repeated uint64 item_ids = 1; +} + +message CMsgRequestItemPurgatory_RefundPurchaseResponse { + optional uint32 result = 1; +} + +message CMsgCraftingResponse { + repeated uint64 item_ids = 1; +} + +message CMsgGCRequestStoreSalesData { + optional uint32 version = 1; + optional uint32 currency = 2; +} + +message CMsgGCRequestStoreSalesDataResponse { + message Price { + optional uint32 item_def = 1; + optional uint32 price = 2; + } + + repeated .CMsgGCRequestStoreSalesDataResponse.Price sale_price = 1; + optional uint32 version = 2; + optional uint32 expiration_time = 3; +} + +message CMsgGCRequestStoreSalesDataUpToDateResponse { + optional uint32 version = 1; + optional uint32 expiration_time = 2; +} + +message CMsgGCToGCPingRequest { +} + +message CMsgGCToGCPingResponse { +} + +message CMsgGCToGCGetUserSessionServer { + optional uint32 account_id = 1; +} + +message CMsgGCToGCGetUserSessionServerResponse { + optional fixed64 server_steam_id = 1; + optional bool is_online = 2; +} + +message CMsgGCToGCGetUserServerMembers { + optional uint32 account_id = 1; + optional uint32 max_spectators = 2; +} + +message CMsgGCToGCGetUserServerMembersResponse { + repeated uint32 member_account_id = 1; +} + +message CMsgLookupMultipleAccountNames { + repeated uint32 accountids = 1 [packed = true]; +} + +message CMsgLookupMultipleAccountNamesResponse { + message Account { + optional uint32 accountid = 1; + optional string persona = 2; + } + + repeated .CMsgLookupMultipleAccountNamesResponse.Account accounts = 1; +} + +message CMsgRequestCrateItems { + optional uint32 crate_item_def = 1; +} + +message CMsgRequestCrateItemsResponse { + enum EResult { + k_Succeeded = 0; + k_Failed = 1; + } + + optional uint32 response = 1; + repeated uint32 item_defs = 2; + repeated uint32 peek_item_defs = 3; +} + +message CMsgRequestCrateEscalationLevel { + optional uint32 crate_item_def = 1; +} + +message CMsgRequestCrateEscalationLevelResponse { + enum EResult { + k_Succeeded = 0; + k_Failed = 1; + } + + optional uint32 response = 1; + optional uint32 escalation_level0 = 2; + optional uint32 escalation_level1 = 3; + optional uint32 escalation_level2 = 4; + optional uint32 escalation_level3 = 5; +} + +message CMsgGCToGCCanUseDropRateBonus { + optional uint32 account_id = 1; + optional float drop_rate_bonus = 2; + optional uint32 booster_type = 3; + optional uint32 exclusive_item_def = 4; + optional bool allow_equal_rate = 5; +} + +message CMsgSQLAddDropRateBonus { + optional uint32 account_id = 1; + optional uint64 item_id = 2; + optional uint32 item_def = 3; + optional float drop_rate_bonus = 4; + optional uint32 booster_type = 5; + optional uint32 seconds_duration = 6; + optional uint32 end_time_stamp = 7; +} + +message CMsgSQLUpgradeBattleBooster { + optional uint32 account_id = 1; + optional uint32 item_def = 2; + optional float bonus_to_add = 3; + optional uint32 booster_type = 4; +} + +message CMsgGCToGCRefreshSOCache { + optional uint32 account_id = 1; + optional bool reload = 2; +} + +message CMsgGCToGCCheckAccountTradeStatus { + optional uint32 account_id = 1; + optional bool initiator = 2; +} + +message CMsgGCToGCCheckAccountTradeStatusResponse { + optional bool can_trade = 1; + optional uint32 error_code = 2; +} + +message CMsgGCToGCAddSubscriptionTime { + optional uint32 account_id = 1; + repeated uint32 matching_subscription_def_indexes = 2; + optional uint32 additional_seconds = 3; +} + +message CMsgGCToGCGrantAccountRolledItems { + message Item { + message DynamicAttribute { + optional string name = 1; + optional uint32 value_uint32 = 2; + optional float value_float = 3; + optional string value_string = 4; + } + + message AdditionalAuditEntry { + optional uint32 owner_account_id = 1; + optional uint32 audit_action = 2; + optional uint64 audit_data = 3; + } + + optional uint32 item_def = 1; + repeated string loot_lists = 2; + optional bool ignore_limit = 3; + optional uint32 origin = 4; + repeated .CMsgGCToGCGrantAccountRolledItems.Item.DynamicAttribute dynamic_attributes = 5; + repeated .CMsgGCToGCGrantAccountRolledItems.Item.AdditionalAuditEntry additional_audit_entries = 6; + optional uint32 inventory_token = 7; + } + + optional uint32 account_id = 1; + repeated .CMsgGCToGCGrantAccountRolledItems.Item items = 2; + optional uint32 audit_action = 3; + optional uint64 audit_data = 4; +} + +message CMsgGCToGCGrantSelfMadeItemToAccount { + optional uint32 item_def_index = 1; + optional uint32 accountid = 2; +} + +message CMsgUseItem { + optional uint64 item_id = 1; + optional fixed64 target_steam_id = 2; + repeated uint32 gift__potential_targets = 3; + optional uint32 duel__class_lock = 4; + optional uint64 initiator_steam_id = 5; + optional bool itempack__ack_immediately = 6; +} + +message CMsgServerUseItem { + optional uint32 initiator_account_id = 1; + optional .CMsgUseItem use_item_msg = 2; +} + +message CMsgUseMultipleItems { + repeated uint64 item_ids = 1; +} + +message CMsgGCPartnerBalanceRequest { +} + +message CMsgGCPartnerBalanceResponse { + optional .EGCPartnerRequestResponse result = 1 [default = k_EPartnerRequestOK]; + optional uint32 balance = 2; +} + +message CGCStoreRechargeRedirect_LineItem { + optional uint32 item_def_id = 1; + optional uint32 quantity = 2; +} + +message CMsgGCPartnerRechargeRedirectURLRequest { + repeated .CGCStoreRechargeRedirect_LineItem line_items = 1; +} + +message CMsgGCPartnerRechargeRedirectURLResponse { + optional .EGCPartnerRequestResponse result = 1 [default = k_EPartnerRequestOK]; + optional string url = 2; +} + +message CMsgGCEconSQLWorkItemEmbeddedRollbackData { + optional uint32 account_id = 1; + optional uint64 deleted_item_id = 2; + optional uint32 old_audit_action = 3; + optional uint32 new_audit_action = 4; + optional uint32 expected_audit_action = 5; +} + +message CMsgCraftStatue { + optional uint32 heroid = 1; + optional string sequencename = 2; + optional float cycle = 3; + optional string description = 4; + optional uint32 pedestal_itemdef = 5; + optional uint64 toolid = 6; +} + +message CMsgRedeemCode { + optional string code = 1; +} + +message CMsgRedeemCodeResponse { + enum EResultCode { + k_Succeeded = 0; + k_Failed_CodeNotFound = 1; + k_Failed_CodeAlreadyUsed = 2; + k_Failed_OtherError = 3; + } + + optional uint32 response = 1; + optional uint64 item_id = 2; +} + +message CMsgDevNewItemRequest { + optional string item_def_name = 3; + optional string loot_list_name = 4; + repeated string attr_def_name = 5; + repeated string attr_value = 6; +} + +message CMsgDevNewItemRequestResponse { + optional bool success = 1; +} + +message CMsgDevUnlockAllItemStyles { + optional uint64 item_id = 1; +} + +message CMsgDevUnlockAllItemStylesResponse { + optional bool success = 1; +} + +message CMsgGCGetAccountSubscriptionItem { + optional uint32 account_id = 1; +} + +message CMsgGCGetAccountSubscriptionItemResponse { + optional uint32 def_index = 1; +} + +message CMsgGCAddGiftItem { + optional uint32 account_id = 1; + optional uint64 item_id = 2; +} + +message CMsgClientToGCWrapAndDeliverGift { + optional uint64 item_id = 1; + optional uint32 give_to_account_id = 2; + optional string gift_message = 3; +} + +message CMsgClientToGCWrapAndDeliverGiftResponse { + optional .EGCMsgResponse response = 1 [default = k_EGCMsgResponseOK]; + optional uint32 gifting_charge_uses = 2; + optional int32 gifting_charge_max = 3; + optional uint32 gifting_uses = 4; + optional int32 gifting_max = 5; + optional uint32 gifting_window_hours = 6; + optional .EGCMsgInitiateTradeResponse trade_restriction = 7 [default = k_EGCMsgInitiateTradeResponse_Accepted]; +} + +message CMsgClientToGCUnwrapGift { + optional uint64 item_id = 1; +} + +message CMsgClientToGCGetGiftPermissions { +} + +message CMsgClientToGCGetGiftPermissionsResponse { + message FriendPermission { + optional uint32 account_id = 1; + optional .EGCMsgInitiateTradeResponse permission = 2 [default = k_EGCMsgInitiateTradeResponse_Accepted]; + } + + optional bool is_unlimited = 1; + optional bool has_two_factor = 3; + optional .EGCMsgInitiateTradeResponse sender_permission = 6 [default = k_EGCMsgInitiateTradeResponse_Accepted]; + optional uint32 friendship_age_requirement = 7; + optional uint32 friendship_age_requirement_two_factor = 8; + repeated .CMsgClientToGCGetGiftPermissionsResponse.FriendPermission friend_permissions = 9; +} + +message CMsgClientToGCUnpackBundle { + optional uint64 item_id = 1; +} + +message CMsgClientToGCUnpackBundleResponse { + enum EUnpackBundle { + k_UnpackBundle_Succeeded = 0; + k_UnpackBundle_Failed_ItemIsNotBundle = 1; + k_UnpackBundle_Failed_UnableToCreateContainedItem = 2; + k_UnpackBundle_Failed_SOCacheError = 3; + k_UnpackBundle_Failed_ItemIsInvalid = 4; + k_UnpackBundle_Failed_BadItemQuantity = 5; + k_UnpackBundle_Failed_UnableToDeleteItem = 6; + } + + repeated uint64 unpacked_item_ids = 1; + optional .CMsgClientToGCUnpackBundleResponse.EUnpackBundle response = 2 [default = k_UnpackBundle_Succeeded]; + repeated uint32 unpacked_item_def_indexes = 3; +} + +message CMsgGCToClientStoreTransactionCompleted { + optional uint64 txn_id = 1; + repeated uint64 item_ids = 2; +} + +message CMsgClientToGCEquipItems { + repeated .CMsgAdjustItemEquippedState equips = 1; +} + +message CMsgClientToGCEquipItemsResponse { + optional fixed64 so_cache_version_id = 1; +} + +message CMsgClientToGCSetItemStyle { + optional uint64 item_id = 1; + optional uint32 style_index = 2; +} + +message CMsgClientToGCSetItemStyleResponse { + enum ESetStyle { + k_SetStyle_Succeeded = 0; + k_SetStyle_Failed = 1; + k_SetStyle_Failed_StyleIsLocked = 2; + } + + optional .CMsgClientToGCSetItemStyleResponse.ESetStyle response = 1 [default = k_SetStyle_Succeeded]; +} + +message CMsgClientToGCUnlockItemStyle { + optional uint64 item_to_unlock = 1; + optional uint32 style_index = 2; + repeated uint64 consumable_item_ids = 3; +} + +message CMsgClientToGCUnlockItemStyleResponse { + enum EUnlockStyle { + k_UnlockStyle_Succeeded = 0; + k_UnlockStyle_Failed_PreReq = 1; + k_UnlockStyle_Failed_CantAfford = 2; + k_UnlockStyle_Failed_CantCommit = 3; + k_UnlockStyle_Failed_CantLockCache = 4; + k_UnlockStyle_Failed_CantAffordAttrib = 5; + k_UnlockStyle_Failed_CantAffordGem = 6; + k_UnlockStyle_Failed_NoCompendiumLevel = 7; + k_UnlockStyle_Failed_AlreadyUnlocked = 8; + k_UnlockStyle_Failed_OtherError = 9; + k_UnlockStyle_Failed_ItemIsInvalid = 10; + k_UnlockStyle_Failed_ToolIsInvalid = 11; + } + + optional .CMsgClientToGCUnlockItemStyleResponse.EUnlockStyle response = 1 [default = k_UnlockStyle_Succeeded]; + optional uint64 item_id = 2; + optional uint32 style_index = 3; + optional uint32 style_prereq = 4; +} + +message CMsgClientToGCSetItemInventoryCategory { + repeated uint64 item_ids = 1; + optional uint32 set_to_value = 2; + optional uint32 remove_categories = 3; + optional uint32 add_categories = 4; +} + +message CMsgClientToGCUnlockCrate { + optional uint64 crate_item_id = 1; + optional uint64 key_item_id = 2; +} + +message CMsgClientToGCUnlockCrateResponse { + message Item { + optional uint64 item_id = 1; + optional uint32 def_index = 2; + } + + optional .EGCMsgResponse result = 1 [default = k_EGCMsgResponseOK]; + repeated .CMsgClientToGCUnlockCrateResponse.Item granted_items = 2; +} + +message CMsgClientToGCRemoveItemAttribute { + optional uint64 item_id = 1; +} + +message CMsgClientToGCRemoveItemAttributeResponse { + enum ERemoveItemAttribute { + k_RemoveItemAttribute_Succeeded = 0; + k_RemoveItemAttribute_Failed = 1; + k_RemoveItemAttribute_Failed_ItemIsInvalid = 2; + k_RemoveItemAttribute_Failed_AttributeCannotBeRemoved = 3; + k_RemoveItemAttribute_Failed_AttributeDoesntExist = 4; + } + + optional .CMsgClientToGCRemoveItemAttributeResponse.ERemoveItemAttribute response = 1 [default = k_RemoveItemAttribute_Succeeded]; + optional uint64 item_id = 2; +} + +message CMsgClientToGCNameItem { + optional uint64 subject_item_id = 1; + optional uint64 tool_item_id = 2; + optional string name = 3; +} + +message CMsgClientToGCNameItemResponse { + enum ENameItem { + k_NameItem_Succeeded = 0; + k_NameItem_Failed = 1; + k_NameItem_Failed_ToolIsInvalid = 2; + k_NameItem_Failed_ItemIsInvalid = 3; + k_NameItem_Failed_NameIsInvalid = 4; + } + + optional .CMsgClientToGCNameItemResponse.ENameItem response = 1 [default = k_NameItem_Succeeded]; + optional uint64 item_id = 2; +} + +message CMsgGCSetItemPosition { + optional uint64 item_id = 1; + optional uint32 new_position = 2; +} + +message CAttribute_ItemDynamicRecipeComponent { + optional uint32 item_def = 1; + optional uint32 item_quality = 2; + optional uint32 item_flags = 3; + optional string attributes_string = 4; + optional uint32 item_count = 5; + optional uint32 items_fulfilled = 6; + optional uint32 item_rarity = 7; + optional string lootlist = 8; + optional uint64 fulfilled_item_id = 9; +} + +message CProtoItemSocket { + optional uint64 item_id = 1; + optional uint32 attr_def_index = 2; + optional uint32 required_type = 3; + optional string required_hero = 4; + optional uint32 gem_def_index = 5; + optional bool not_tradable = 6; + optional string required_item_slot = 7; +} + +message CProtoItemSocket_Empty { + optional .CProtoItemSocket socket = 1; +} + +message CProtoItemSocket_Effect { + optional .CProtoItemSocket socket = 1; + optional uint32 effect = 2; +} + +message CProtoItemSocket_Color { + optional .CProtoItemSocket socket = 1; + optional uint32 red = 2; + optional uint32 green = 3; + optional uint32 blue = 4; +} + +message CProtoItemSocket_Strange { + optional .CProtoItemSocket socket = 1; + optional uint32 strange_type = 2; + optional uint32 strange_value = 3; +} + +message CProtoItemSocket_Spectator { + optional .CProtoItemSocket socket = 1; + optional uint32 games_viewed = 2; + optional uint32 corporation_id = 3; + optional uint32 league_id = 4; + optional uint32 team_id = 5; +} + +message CProtoItemSocket_AssetModifier { + optional .CProtoItemSocket socket = 1; + optional uint32 asset_modifier = 2; +} + +message CProtoItemSocket_AssetModifier_DESERIALIZE_FROM_STRING_ONLY { + optional .CProtoItemSocket socket = 1; + optional uint32 asset_modifier = 2; + optional uint32 anim_modifier = 3; + optional uint32 ability_effect = 4; +} + +message CProtoItemSocket_Autograph { + optional .CProtoItemSocket socket = 1; + optional string autograph = 2; + optional uint32 autograph_id = 3; + optional uint32 autograph_score = 4; +} + +message CProtoItemSocket_StaticVisuals { + optional .CProtoItemSocket socket = 1; +} + +message CAttribute_String { + optional string value = 1; +} + +message CWorkshop_GetItemDailyRevenue_Request { + optional uint32 appid = 1; + optional uint32 item_id = 2; + optional uint32 date_start = 3; + optional uint32 date_end = 4; +} + +message CWorkshop_GetItemDailyRevenue_Response { + message CountryDailyRevenue { + optional string country_code = 1; + optional uint32 date = 2; + optional int64 revenue_usd = 3; + optional int32 units = 4; + } + + repeated .CWorkshop_GetItemDailyRevenue_Response.CountryDailyRevenue country_revenue = 1; +} + +message CWorkshop_GetPackageDailyRevenue_Request { + optional uint32 packageid = 1; + optional uint32 date_start = 2; + optional uint32 date_end = 3; +} + +message CWorkshop_GetPackageDailyRevenue_Response { + message CountryDailyRevenue { + optional string country_code = 1; + optional uint32 date = 2; + optional int64 revenue_usd = 3; + optional int32 units = 4; + } + + repeated .CWorkshop_GetPackageDailyRevenue_Response.CountryDailyRevenue country_revenue = 1; +} + +message CMsgSQLGCToGCGrantBackpackSlots { + optional uint32 account_id = 1; + optional uint32 add_slots = 2; +} + +message CMsgClientToGCLookupAccountName { + optional uint32 account_id = 1; +} + +message CMsgClientToGCLookupAccountNameResponse { + optional uint32 account_id = 1; + optional string account_name = 2; +} + +message CMsgClientToGCCreateStaticRecipe { + message Item { + optional uint64 item_id = 1; + optional uint32 slot_id = 2; + } + + repeated .CMsgClientToGCCreateStaticRecipe.Item items = 1; + optional uint32 recipe_def_index = 2; +} + +message CMsgClientToGCCreateStaticRecipeResponse { + message OutputItem { + optional uint32 def_index = 1; + optional uint64 item_id = 2; + optional uint32 slot_id = 3; + } + + message InputError { + optional uint32 slot_id = 1; + optional .CMsgClientToGCCreateStaticRecipeResponse.EResponse error = 2 [default = eResponse_Success]; + } + + message AdditionalOutput { + optional uint32 slot_id = 1; + optional uint64 value = 2; + } + + enum EResponse { + eResponse_Success = 0; + eResponse_OfferingDisabled = 1; + eResponse_InvalidItems = 2; + eResponse_InternalError = 3; + eResponse_MissingLeague = 4; + eResponse_MissingEvent = 5; + } + + optional .CMsgClientToGCCreateStaticRecipeResponse.EResponse response = 1 [default = eResponse_Success]; + repeated .CMsgClientToGCCreateStaticRecipeResponse.OutputItem output_items = 2; + repeated .CMsgClientToGCCreateStaticRecipeResponse.InputError input_errors = 3; + repeated .CMsgClientToGCCreateStaticRecipeResponse.AdditionalOutput additional_outputs = 4; +} + +message CMsgProcessTransactionOrder { + message Item { + optional uint32 item_def_index = 1; + optional uint32 item_price = 2; + optional uint32 quantity = 3; + optional string category_desc = 4; + optional uint32 store_purchase_type = 5; + optional uint64 source_reference_id = 6; + optional int32 parent_stack_index = 7; + optional bool default_price = 8; + optional bool is_user_facing = 9; + } + + optional uint64 txn_id = 1; + optional uint64 steam_txn_id = 2; + optional uint64 partner_txn_id = 3; + optional fixed64 steam_id = 4; + optional uint32 time_stamp = 5; + optional uint64 watermark = 6; + optional int32 purchase_report_status = 7; + optional uint32 currency = 8; + repeated .CMsgProcessTransactionOrder.Item items = 9; +} + +message CMsgGCToGCStoreProcessCDKeyTransaction { + optional .CMsgProcessTransactionOrder order = 1; + optional uint32 reason_code = 2; +} + +message CMsgGCToGCStoreProcessCDKeyTransactionResponse { + optional bool success = 1; +} + +message CMsgGCToGCStoreProcessSettlement { + optional .CMsgProcessTransactionOrder order = 1; + optional uint32 partner = 2; +} + +message CMsgGCToGCStoreProcessSettlementResponse { + optional bool success = 1; +} + +message CMsgGCToGCBroadcastConsoleCommand { + optional string con_command = 1; + optional bool report_output = 2; + optional uint32 sending_gc = 3; + optional string output_initiator = 4; +} + +message CMsgGCToGCConsoleOutput { + message OutputLine { + optional string text = 1; + optional uint32 spew_level = 2; + } + + optional string initiator = 1; + optional uint32 sending_gc = 2; + repeated .CMsgGCToGCConsoleOutput.OutputLine msgs = 3; +} + +message CMsgItemAges { + message MaxItemIDTimestamp { + optional uint32 timestamp = 1; + optional uint64 max_item_id = 2; + } + + repeated .CMsgItemAges.MaxItemIDTimestamp max_item_id_timestamps = 1; +} + +message CMsgGCToGCInternalTestMsg { + optional uint32 sending_gc = 1; + optional fixed64 sender_id = 2; + optional uint32 context = 3; + optional uint32 message_id = 4; + optional bytes message_body = 5; + optional fixed64 job_id_source = 6; + optional fixed64 job_id_target = 7; +} + +message CMsgGCToGCClientServerVersionsUpdated { + optional uint32 client_min_allowed_version = 1; + optional uint32 client_active_version = 2; + optional uint32 server_active_version = 3; + optional uint32 server_deployed_version = 4; +} + +message CMsgGCToGCBroadcastMessageFromSub { + optional uint32 msg_id = 1; + optional bytes serialized_msg = 2; + repeated uint32 account_id_list = 3 [packed = true]; + repeated fixed64 steam_id_list = 4 [packed = true]; +} + +message CMsgGCToClientCurrencyPricePoints { + message Currency { + optional uint32 currency_id = 1; + repeated uint64 currency_price = 2 [packed = true]; + } + + repeated uint64 price_key = 1 [packed = true]; + repeated .CMsgGCToClientCurrencyPricePoints.Currency currencies = 2; +} + +message CMsgBannedWordList { + optional uint32 version = 1; + repeated string banned_words = 2; +} + +message CEcon_FlushInventoryCache_Request { + optional uint64 steamid = 1; + optional uint32 appid = 2; + optional uint64 contextid = 3; +} + +message CEcon_FlushInventoryCache_Response { + optional bool success = 1; +} + +message CMsgGCToGCFlushSteamInventoryCache { + message Key { + optional uint64 steamid = 1; + optional uint64 contextid = 2; + } + + repeated .CMsgGCToGCFlushSteamInventoryCache.Key keys = 1; +} + +message CMsgGCToGCUpdateSubscriptionItems { + optional uint32 account_id = 1; + optional bool always_notify = 2; +} diff --git a/Protobufs/artifact/econ_shared_enums.proto b/Protobufs/artifact/econ_shared_enums.proto new file mode 100644 index 0000000..69254ae --- /dev/null +++ b/Protobufs/artifact/econ_shared_enums.proto @@ -0,0 +1,47 @@ +option optimize_for = SPEED; +option cc_generic_services = false; + +enum EGCEconBaseMsg { + k_EMsgGCGenericResult = 2579; +} + +enum EGCMsgResponse { + k_EGCMsgResponseOK = 0; + k_EGCMsgResponseDenied = 1; + k_EGCMsgResponseServerError = 2; + k_EGCMsgResponseTimeout = 3; + k_EGCMsgResponseInvalid = 4; + k_EGCMsgResponseNoMatch = 5; + k_EGCMsgResponseUnknownError = 6; + k_EGCMsgResponseNotLoggedOn = 7; + k_EGCMsgFailedToCreate = 8; +} + +enum EGCPartnerRequestResponse { + k_EPartnerRequestOK = 1; + k_EPartnerRequestBadAccount = 2; + k_EPartnerRequestNotLinked = 3; + k_EPartnerRequestUnsupportedPartnerType = 4; +} + +enum EGCMsgUseItemResponse { + k_EGCMsgUseItemResponse_ItemUsed = 0; + k_EGCMsgUseItemResponse_GiftNoOtherPlayers = 1; + k_EGCMsgUseItemResponse_ServerError = 2; + k_EGCMsgUseItemResponse_MiniGameAlreadyStarted = 3; + k_EGCMsgUseItemResponse_ItemUsed_ItemsGranted = 4; + k_EGCMsgUseItemResponse_DropRateBonusAlreadyGranted = 5; + k_EGCMsgUseItemResponse_NotInLowPriorityPool = 6; + k_EGCMsgUseItemResponse_NotHighEnoughLevel = 7; + k_EGCMsgUseItemResponse_EventNotActive = 8; + k_EGCMsgUseItemResponse_ItemUsed_EventPointsGranted = 9; + k_EGCMsgUseItemResponse_MissingRequirement = 10; + k_EGCMsgUseItemResponse_EmoticonUnlock_NoNew = 11; + k_EGCMsgUseItemResponse_EmoticonUnlock_Complete = 12; + k_EGCMsgUseItemResponse_ItemUsed_Compendium = 13; +} + +message CMsgGenericResult { + optional uint32 eresult = 1 [default = 2]; + optional string debug_message = 2; +} diff --git a/Protobufs/artifact/gameevents.proto b/Protobufs/artifact/gameevents.proto new file mode 100644 index 0000000..7ed708d --- /dev/null +++ b/Protobufs/artifact/gameevents.proto @@ -0,0 +1,121 @@ +import "networkbasetypes.proto"; + +option optimize_for = SPEED; +option cc_generic_services = false; + +enum EBaseGameEvents { + GE_VDebugGameSessionIDEvent = 200; + GE_PlaceDecalEvent = 201; + GE_ClearWorldDecalsEvent = 202; + GE_ClearEntityDecalsEvent = 203; + GE_ClearDecalsForSkeletonInstanceEvent = 204; + GE_Source1LegacyGameEventList = 205; + GE_Source1LegacyListenEvents = 206; + GE_Source1LegacyGameEvent = 207; + GE_SosStartSoundEvent = 208; + GE_SosStopSoundEvent = 209; + GE_SosSetSoundEventParams = 210; + GE_SosSetLibraryStackFields = 211; + GE_SosStopSoundEventHash = 212; +} + +message CMsgVDebugGameSessionIDEvent { + optional int32 clientid = 1; + optional string gamesessionid = 2; +} + +message CMsgPlaceDecalEvent { + optional .CMsgVector position = 1; + optional .CMsgVector normal = 2; + optional .CMsgVector saxis = 3; + optional uint32 decalmaterialindex = 4; + optional uint32 flags = 5; + optional fixed32 color = 6; + optional float width = 7; + optional float height = 8; + optional float depth = 9; + optional uint32 entityhandleindex = 10; + optional fixed32 skeletoninstancehash = 11; + optional int32 boneindex = 12; + optional bool translucenthit = 13; + optional bool is_adjacent = 14; +} + +message CMsgClearWorldDecalsEvent { + optional uint32 flagstoclear = 1; +} + +message CMsgClearEntityDecalsEvent { + optional uint32 flagstoclear = 1; +} + +message CMsgClearDecalsForSkeletonInstanceEvent { + optional uint32 flagstoclear = 1; + optional uint32 entityhandleindex = 2; + optional uint32 skeletoninstancehash = 3; +} + +message CMsgSource1LegacyGameEventList { + message key_t { + optional int32 type = 1; + optional string name = 2; + } + + message descriptor_t { + optional int32 eventid = 1; + optional string name = 2; + repeated .CMsgSource1LegacyGameEventList.key_t keys = 3; + } + + repeated .CMsgSource1LegacyGameEventList.descriptor_t descriptors = 1; +} + +message CMsgSource1LegacyListenEvents { + optional int32 playerslot = 1; + repeated uint32 eventarraybits = 2; +} + +message CMsgSource1LegacyGameEvent { + message key_t { + optional int32 type = 1; + optional string val_string = 2; + optional float val_float = 3; + optional int32 val_long = 4; + optional int32 val_short = 5; + optional int32 val_byte = 6; + optional bool val_bool = 7; + optional uint64 val_uint64 = 8; + } + + optional string event_name = 1; + optional int32 eventid = 2; + repeated .CMsgSource1LegacyGameEvent.key_t keys = 3; +} + +message CMsgSosStartSoundEvent { + optional int32 soundevent_guid = 1; + optional fixed32 soundevent_hash = 2; + optional int32 source_entity_index = 3; + optional int32 seed = 4; + optional bytes packed_params = 5; + optional float start_time = 6; +} + +message CMsgSosStopSoundEvent { + optional int32 soundevent_guid = 1; +} + +message CMsgSosStopSoundEventHash { + optional fixed32 soundevent_hash = 1; + optional int32 source_entity_index = 2; +} + +message CMsgSosSetSoundEventParams { + optional int32 soundevent_guid = 1; + optional bytes packed_params = 5; +} + +message CMsgSosSetLibraryStackFields { + optional fixed32 stack_hash = 1; + optional bytes packed_fields = 5; +} diff --git a/Protobufs/artifact/gametoolevents.proto b/Protobufs/artifact/gametoolevents.proto new file mode 100644 index 0000000..b464e0d --- /dev/null +++ b/Protobufs/artifact/gametoolevents.proto @@ -0,0 +1,78 @@ +import "networkbasetypes.proto"; + +option cc_generic_services = false; + +message ChangeMapToolEvent { + optional string mapname = 1; +} + +message TraceRayServerToolEvent { + optional .CMsgVector start = 1; + optional .CMsgVector end = 2; +} + +message ToolTraceRayResult { + optional bool hit = 1; + optional .CMsgVector impact = 2; + optional .CMsgVector normal = 3; + optional float distance = 4; + optional float fraction = 5; + optional int32 ehandle = 6; +} + +message SpawnEntityToolEvent { + optional bytes entity_keyvalues = 1; + optional bool clientsideentity = 2; +} + +message SpawnEntityToolEventResult { + optional int32 ehandle = 1; +} + +message DestroyEntityToolEvent { + optional int32 ehandle = 1; +} + +message DestroyAllEntitiesToolEvent { +} + +message RestartMapToolEvent { +} + +message ToolEvent_GetEntityInfo { + optional int32 ehandle = 1; + optional bool clientsideentity = 2; +} + +message ToolEvent_GetEntityInfoResult { + optional string cppclass = 1 [default = "shithead"]; + optional string classname = 2; + optional string name = 3; + optional .CMsgVector origin = 4; + optional .CMsgVector mins = 5; + optional .CMsgVector maxs = 6; +} + +message ToolEvent_GetEntityInputs { + optional int32 ehandle = 1; + optional bool clientsideentity = 2; +} + +message ToolEvent_GetEntityInputsResult { + repeated string input_list = 1; +} + +message ToolEvent_FireEntityInput { + optional int32 ehandle = 1; + optional bool clientsideentity = 2; + optional string input_name = 3; + optional string input_param = 4; +} + +message ToolEvent_SFMRecordingStateChanged { + optional bool isrecording = 1; +} + +message ToolEvent_SFMToolActiveStateChanged { + optional bool isactive = 1; +} diff --git a/Protobufs/artifact/gcsdk_gcmessages.proto b/Protobufs/artifact/gcsdk_gcmessages.proto new file mode 100644 index 0000000..0037051 --- /dev/null +++ b/Protobufs/artifact/gcsdk_gcmessages.proto @@ -0,0 +1,391 @@ +import "steammessages.proto"; + +option optimize_for = SPEED; +option cc_generic_services = false; + +enum ESourceEngine { + k_ESE_Source1 = 0; + k_ESE_Source2 = 1; +} + +enum PartnerAccountType { + PARTNER_NONE = 0; + PARTNER_PERFECT_WORLD = 1; + PARTNER_INVALID = 3; +} + +enum GCConnectionStatus { + GCConnectionStatus_HAVE_SESSION = 0; + GCConnectionStatus_GC_GOING_DOWN = 1; + GCConnectionStatus_NO_SESSION = 2; + GCConnectionStatus_NO_SESSION_IN_LOGON_QUEUE = 3; + GCConnectionStatus_NO_STEAM = 4; + GCConnectionStatus_SUSPENDED = 5; + GCConnectionStatus_STEAM_GOING_DOWN = 6; +} + +message CMsgSHA1Digest { + required fixed64 block1 = 1; + required fixed64 block2 = 2; + required fixed32 block3 = 3; +} + +message CMsgSOIDOwner { + optional uint32 type = 1; + optional uint64 id = 2; +} + +message CMsgSOSingleObject { + optional int32 type_id = 2; + optional bytes object_data = 3; + optional fixed64 version = 4; + optional .CMsgSOIDOwner owner_soid = 5; + optional uint32 service_id = 6; +} + +message CMsgSOMultipleObjects { + message SingleObject { + option (msgpool_soft_limit) = 256; + option (msgpool_hard_limit) = 1024; + + optional int32 type_id = 1; + optional bytes object_data = 2; + } + + repeated .CMsgSOMultipleObjects.SingleObject objects_modified = 2; + optional fixed64 version = 3; + repeated .CMsgSOMultipleObjects.SingleObject objects_added = 4; + repeated .CMsgSOMultipleObjects.SingleObject objects_removed = 5; + optional .CMsgSOIDOwner owner_soid = 6; + optional uint32 service_id = 7; +} + +message CMsgSOCacheSubscribed { + message SubscribedType { + optional int32 type_id = 1; + repeated bytes object_data = 2; + } + + repeated .CMsgSOCacheSubscribed.SubscribedType objects = 2; + optional fixed64 version = 3; + optional .CMsgSOIDOwner owner_soid = 4; + optional uint32 service_id = 5; + repeated uint32 service_list = 6; + optional fixed64 sync_version = 7; +} + +message CMsgSOCacheSubscribedUpToDate { + optional fixed64 version = 1; + optional .CMsgSOIDOwner owner_soid = 2; + optional uint32 service_id = 3; + repeated uint32 service_list = 4; + optional fixed64 sync_version = 5; +} + +message CMsgSOCacheUnsubscribed { + optional .CMsgSOIDOwner owner_soid = 2; +} + +message CMsgSOCacheSubscriptionCheck { + optional fixed64 version = 2; + optional .CMsgSOIDOwner owner_soid = 3; + optional uint32 service_id = 4; + repeated uint32 service_list = 5; + optional fixed64 sync_version = 6; +} + +message CMsgSOCacheSubscriptionRefresh { + optional .CMsgSOIDOwner owner_soid = 2; +} + +message CMsgSOCacheVersion { + optional fixed64 version = 1; +} + +message CMsgGCMultiplexMessage { + optional uint32 msgtype = 1; + optional bytes payload = 2; + repeated fixed64 steamids = 3; +} + +message CMsgGCToGCSubGCStarting { + optional uint32 dir_index = 1; +} + +message CGCToGCMsgMasterAck { + message Process { + optional uint32 dir_index = 1; + repeated uint32 type_instances = 2; + } + + optional uint32 dir_index = 1; + optional string machine_name = 3; + optional string process_name = 4; + repeated .CGCToGCMsgMasterAck.Process directory = 6; +} + +message CGCToGCMsgMasterAck_Response { + optional int32 eresult = 1 [default = 2]; +} + +message CMsgGCToGCUniverseStartup { + optional bool is_initial_startup = 1; +} + +message CMsgGCToGCUniverseStartupResponse { + optional int32 eresult = 1; +} + +message CGCToGCMsgMasterStartupComplete { + message GCInfo { + optional uint32 dir_index = 1; + optional string machine_name = 2; + } + + repeated .CGCToGCMsgMasterStartupComplete.GCInfo gc_info = 1; +} + +message CGCToGCMsgRouted { + optional uint32 msg_type = 1; + optional fixed64 sender_id = 2; + optional bytes net_message = 3; +} + +message CGCToGCMsgRoutedReply { + optional uint32 msg_type = 1; + optional bytes net_message = 2; +} + +message CMsgGCUpdateSubGCSessionInfo { + message CMsgUpdate { + optional fixed64 steamid = 1; + optional fixed32 ip = 2; + optional bool trusted = 3; + } + + repeated .CMsgGCUpdateSubGCSessionInfo.CMsgUpdate updates = 1; +} + +message CMsgGCRequestSubGCSessionInfo { + optional fixed64 steamid = 1; +} + +message CMsgGCRequestSubGCSessionInfoResponse { + optional fixed32 ip = 1; + optional bool trusted = 2; + optional uint32 port = 3; + optional bool success = 4; +} + +message CMsgSOCacheHaveVersion { + optional .CMsgSOIDOwner soid = 1; + optional fixed64 version = 2; + optional uint32 service_id = 3; + optional uint32 cached_file_version = 4; +} + +message CMsgClientHello { + optional uint32 version = 1; + repeated .CMsgSOCacheHaveVersion socache_have_versions = 2; + optional uint32 client_session_need = 3; + optional .PartnerAccountType client_launcher = 4 [default = PARTNER_NONE]; + optional string secret_key = 5; + optional uint32 client_language = 6; + optional .ESourceEngine engine = 7 [default = k_ESE_Source1]; +} + +message CMsgClientWelcome { + message Location { + optional float latitude = 1; + optional float longitude = 2; + optional string country = 3; + } + + optional uint32 version = 1; + optional bytes game_data = 2; + repeated .CMsgSOCacheSubscribed outofdate_subscribed_caches = 3; + repeated .CMsgSOCacheSubscriptionCheck uptodate_subscribed_caches = 4; + optional .CMsgClientWelcome.Location location = 5; + optional bytes save_game_key = 6; + optional fixed32 item_schema_crc = 7; + optional string items_game_url = 8; + optional uint32 gc_socache_file_version = 9; + optional string txn_country_code = 10; +} + +message CMsgConnectionStatus { + optional .GCConnectionStatus status = 1 [default = GCConnectionStatus_HAVE_SESSION]; + optional uint32 client_session_need = 2; + optional int32 queue_position = 3; + optional int32 queue_size = 4; + optional int32 wait_seconds = 5; + optional int32 estimated_wait_seconds_remaining = 6; +} + +message CMsgGCToGCSOCacheSubscribe { + message CMsgHaveVersions { + optional uint32 service_id = 1; + optional uint64 version = 2; + } + + optional fixed64 subscriber = 1; + optional fixed64 subscribe_to_id = 2; + optional fixed64 sync_version = 3; + repeated .CMsgGCToGCSOCacheSubscribe.CMsgHaveVersions have_versions = 4; + optional uint32 subscribe_to_type = 5; +} + +message CMsgGCToGCSOCacheUnsubscribe { + optional fixed64 subscriber = 1; + optional fixed64 unsubscribe_from_id = 2; + optional uint32 unsubscribe_from_type = 3; +} + +message CMsgGCClientPing { +} + +message CMsgGCToGCForwardAccountDetails { + optional fixed64 steamid = 1; + optional .CGCSystemMsg_GetAccountDetails_Response account_details = 2; + optional uint32 age_seconds = 3; +} + +message CMsgGCToGCLoadSessionSOCache { + optional uint32 account_id = 1; + optional .CMsgGCToGCForwardAccountDetails forward_account_details = 2; +} + +message CMsgGCToGCLoadSessionSOCacheResponse { +} + +message CMsgGCToGCUpdateSessionStats { + optional uint32 user_sessions = 1; + optional uint32 server_sessions = 2; + optional bool in_logon_surge = 3; +} + +message CWorkshop_PopulateItemDescriptions_Request { + message SingleItemDescription { + optional uint32 gameitemid = 1; + optional string item_description = 2; + } + + message ItemDescriptionsLanguageBlock { + optional string language = 1; + repeated .CWorkshop_PopulateItemDescriptions_Request.SingleItemDescription descriptions = 2; + } + + optional uint32 appid = 1; + repeated .CWorkshop_PopulateItemDescriptions_Request.ItemDescriptionsLanguageBlock languages = 2; +} + +message CWorkshop_GetContributors_Request { + optional uint32 appid = 1; + optional uint32 gameitemid = 2; +} + +message CWorkshop_GetContributors_Response { + repeated fixed64 contributors = 1; +} + +message CWorkshop_SetItemPaymentRules_Request { + message WorkshopItemPaymentRule { + optional uint64 workshop_file_id = 1; + optional float revenue_percentage = 2; + optional string rule_description = 3; + } + + message PartnerItemPaymentRule { + optional uint32 account_id = 1; + optional float revenue_percentage = 2; + optional string rule_description = 3; + } + + optional uint32 appid = 1; + optional uint32 gameitemid = 2; + repeated .CWorkshop_SetItemPaymentRules_Request.WorkshopItemPaymentRule associated_workshop_files = 3; + repeated .CWorkshop_SetItemPaymentRules_Request.PartnerItemPaymentRule partner_accounts = 4; +} + +message CWorkshop_SetItemPaymentRules_Response { +} + +message CBroadcast_PostGameDataFrame_Request { + optional uint32 appid = 1; + optional fixed64 steamid = 2; + optional fixed64 broadcast_id = 3; + optional bytes frame_data = 4; +} + +message CMsgSerializedSOCache { + message TypeCache { + optional uint32 type = 1; + repeated bytes objects = 2; + optional uint32 service_id = 3; + } + + message Cache { + message Version { + optional uint32 service = 1; + optional uint64 version = 2; + } + + optional uint32 type = 1; + optional uint64 id = 2; + repeated .CMsgSerializedSOCache.Cache.Version versions = 3; + repeated .CMsgSerializedSOCache.TypeCache type_caches = 4; + } + + optional uint32 file_version = 1; + repeated .CMsgSerializedSOCache.Cache caches = 2; + optional uint32 gc_socache_file_version = 3; +} + +message CMsgGCToClientPollConvarRequest { + optional string convar_name = 1; + optional uint32 poll_id = 2; +} + +message CMsgGCToClientPollConvarResponse { + optional uint32 poll_id = 1; + optional string convar_value = 2; +} + +message CGCMsgCompressedMsgToClient { + optional uint32 msg_id = 1; + optional bytes compressed_msg = 2; +} + +message CMsgGCToGCMasterBroadcastMessage { + optional uint32 users_per_second = 1; + optional bool send_to_users = 2; + optional bool send_to_servers = 3; + optional uint32 msg_id = 4; + optional bytes msg_data = 5; +} + +message CMsgGCToGCMasterSubscribeToCache { + optional uint32 soid_type = 1; + optional fixed64 soid_id = 2; + repeated uint32 account_ids = 3; + repeated fixed64 steam_ids = 4; +} + +message CMsgGCToGCMasterSubscribeToCacheResponse { +} + +message CMsgGCToGCMasterSubscribeToCacheAsync { + optional .CMsgGCToGCMasterSubscribeToCache subscribe_msg = 1; +} + +message CMsgGCToGCMasterUnsubscribeFromCache { + optional uint32 soid_type = 1; + optional fixed64 soid_id = 2; + repeated uint32 account_ids = 3; + repeated fixed64 steam_ids = 4; +} + +message CMsgGCToGCMasterDestroyCache { + optional uint32 soid_type = 1; + optional fixed64 soid_id = 2; +} diff --git a/Protobufs/artifact/gcsystemmsgs.proto b/Protobufs/artifact/gcsystemmsgs.proto new file mode 100644 index 0000000..653aa06 --- /dev/null +++ b/Protobufs/artifact/gcsystemmsgs.proto @@ -0,0 +1,28 @@ +option optimize_for = SPEED; +option cc_generic_services = false; + +enum ESOMsg { + k_ESOMsg_Create = 21; + k_ESOMsg_Update = 22; + k_ESOMsg_Destroy = 23; + k_ESOMsg_CacheSubscribed = 24; + k_ESOMsg_CacheUnsubscribed = 25; + k_ESOMsg_UpdateMultiple = 26; + k_ESOMsg_CacheSubscriptionRefresh = 28; + k_ESOMsg_CacheSubscribedUpToDate = 29; +} + +enum EGCBaseClientMsg { + k_EMsgGCPingRequest = 3001; + k_EMsgGCPingResponse = 3002; + k_EMsgGCToClientPollConvarRequest = 3003; + k_EMsgGCToClientPollConvarResponse = 3004; + k_EMsgGCCompressedMsgToClient = 3005; + k_EMsgGCCompressedMsgToClient_Legacy = 523; + k_EMsgGCClientWelcome = 4004; + k_EMsgGCServerWelcome = 4005; + k_EMsgGCClientHello = 4006; + k_EMsgGCServerHello = 4007; + k_EMsgGCClientConnectionStatus = 4009; + k_EMsgGCServerConnectionStatus = 4010; +} diff --git a/Protobufs/artifact/netmessages.proto b/Protobufs/artifact/netmessages.proto new file mode 100644 index 0000000..c968584 --- /dev/null +++ b/Protobufs/artifact/netmessages.proto @@ -0,0 +1,551 @@ +import "networkbasetypes.proto"; + +option cc_generic_services = false; + +enum CLC_Messages { + clc_ClientInfo = 20; + clc_Move = 21; + clc_VoiceData = 22; + clc_BaselineAck = 23; + clc_ListenEvents = 24; + clc_RespondCvarValue = 25; + clc_FileCRCCheck = 26; + clc_LoadingProgress = 27; + clc_SplitPlayerConnect = 28; + clc_ClientMessage = 29; + clc_SplitPlayerDisconnect = 30; + clc_ServerStatus = 31; + clc_ServerPing = 32; + clc_RequestPause = 33; + clc_CmdKeyValues = 34; +} + +enum SVC_Messages { + svc_ServerInfo = 40; + svc_FlattenedSerializer = 41; + svc_ClassInfo = 42; + svc_SetPause = 43; + svc_CreateStringTable = 44; + svc_UpdateStringTable = 45; + svc_VoiceInit = 46; + svc_VoiceData = 47; + svc_Print = 48; + svc_Sounds = 49; + svc_SetView = 50; + svc_ClearAllStringTables = 51; + svc_CmdKeyValues = 52; + svc_BSPDecal = 53; + svc_SplitScreen = 54; + svc_PacketEntities = 55; + svc_Prefetch = 56; + svc_Menu = 57; + svc_GetCvarValue = 58; + svc_StopSound = 59; + svc_PeerList = 60; + svc_PacketReliable = 61; + svc_HLTVStatus = 62; + svc_ServerSteamID = 63; + svc_FullFrameSplit = 70; +} + +enum VoiceDataFormat_t { + VOICEDATA_FORMAT_STEAM = 0; + VOICEDATA_FORMAT_ENGINE = 1; +} + +enum RequestPause_t { + RP_PAUSE = 0; + RP_UNPAUSE = 1; + RP_TOGGLEPAUSE = 2; +} + +enum PrefetchType { + PFT_SOUND = 0; +} + +enum ESplitScreenMessageType { + MSG_SPLITSCREEN_ADDUSER = 0; + MSG_SPLITSCREEN_REMOVEUSER = 1; +} + +enum EQueryCvarValueStatus { + eQueryCvarValueStatus_ValueIntact = 0; + eQueryCvarValueStatus_CvarNotFound = 1; + eQueryCvarValueStatus_NotACvar = 2; + eQueryCvarValueStatus_CvarProtected = 3; +} + +enum DIALOG_TYPE { + DIALOG_MSG = 0; + DIALOG_MENU = 1; + DIALOG_TEXT = 2; + DIALOG_ENTRY = 3; + DIALOG_ASKCONNECT = 4; +} + +enum SVC_Messages_LowFrequency { + svc_dummy = 600; +} + +enum Bidirectional_Messages { + bi_RebroadcastGameEvent = 16; + bi_RebroadcastSource = 17; + bi_GameEvent = 18; +} + +enum Bidirectional_Messages_LowFrequency { + bi_RelayInfo = 700; + bi_RelayPacket = 701; +} + +message CCLCMsg_ClientInfo { + optional fixed32 send_table_crc = 1; + optional uint32 server_count = 2; + optional bool is_hltv = 3; + optional bool is_replay = 4; + optional uint32 friends_id = 5; + optional string friends_name = 6; +} + +message CCLCMsg_Move { + optional bytes data = 3; + optional uint32 command_number = 4; + optional uint32 num_commands = 5; +} + +message CMsgVoiceAudio { + optional .VoiceDataFormat_t format = 1 [default = VOICEDATA_FORMAT_STEAM]; + optional bytes voice_data = 2; + optional int32 sequence_bytes = 3; + optional uint32 section_number = 4; + optional uint32 sample_rate = 5; + optional uint32 uncompressed_sample_offset = 6; +} + +message CCLCMsg_VoiceData { + optional .CMsgVoiceAudio audio = 1; + optional fixed64 xuid = 2; + optional uint32 tick = 3; +} + +message CCLCMsg_BaselineAck { + optional int32 baseline_tick = 1; + optional int32 baseline_nr = 2; +} + +message CCLCMsg_ListenEvents { + repeated fixed32 event_mask = 1; +} + +message CCLCMsg_RespondCvarValue { + optional int32 cookie = 1; + optional int32 status_code = 2; + optional string name = 3; + optional string value = 4; +} + +message CCLCMsg_FileCRCCheck { + optional int32 code_path = 1; + optional string path = 2; + optional int32 code_filename = 3; + optional string filename = 4; + optional fixed32 crc = 5; +} + +message CCLCMsg_LoadingProgress { + optional int32 progress = 1; +} + +message CCLCMsg_SplitPlayerConnect { + optional string playername = 1; +} + +message CCLCMsg_ClientMessage { + optional int32 msg_type = 1; + optional bytes data = 2; +} + +message CCLCMsg_SplitPlayerDisconnect { + optional int32 slot = 1; +} + +message CCLCMsg_ServerStatus { + optional bool simplified = 1; +} + +message CCLCMsg_ServerPing { +} + +message CCLCMsg_RequestPause { + optional .RequestPause_t pause_type = 1 [default = RP_PAUSE]; + optional int32 pause_group = 2; +} + +message CCLCMsg_CmdKeyValues { + optional bytes data = 1; +} + +message CSVCMsg_ServerInfo { + optional int32 protocol = 1; + optional int32 server_count = 2; + optional bool is_dedicated = 3; + optional bool is_hltv = 4; + optional bool is_replay = 5; + optional int32 c_os = 6; + optional int32 max_clients = 10; + optional int32 max_classes = 11; + optional int32 player_slot = 12; + optional float tick_interval = 13; + optional string game_dir = 14; + optional string map_name = 15; + optional string sky_name = 16; + optional string host_name = 17; + optional string addon_name = 18; + optional .CSVCMsg_GameSessionConfiguration game_session_config = 19; + optional bytes game_session_manifest = 20; +} + +message CSVCMsg_ClassInfo { + message class_t { + optional int32 class_id = 1; + optional string data_table_name = 2; + optional string class_name = 3; + } + + optional bool create_on_client = 1; + repeated .CSVCMsg_ClassInfo.class_t classes = 2; +} + +message CSVCMsg_SetPause { + optional bool paused = 1; +} + +message CSVCMsg_VoiceInit { + optional int32 quality = 1; + optional string codec = 2; + optional int32 version = 3 [default = 0]; +} + +message CSVCMsg_Print { + optional string text = 1; +} + +message CSVCMsg_Sounds { + message sounddata_t { + optional sint32 origin_x = 1; + optional sint32 origin_y = 2; + optional sint32 origin_z = 3; + optional uint32 volume = 4; + optional float delay_value = 5; + optional int32 sequence_number = 6; + optional int32 entity_index = 7; + optional int32 channel = 8; + optional int32 pitch = 9; + optional int32 flags = 10; + optional uint32 sound_num = 11; + optional fixed32 sound_num_handle = 12; + optional int32 speaker_entity = 13; + optional int32 random_seed = 14; + optional int32 sound_level = 15; + optional bool is_sentence = 16; + optional bool is_ambient = 17; + optional uint32 guid = 18; + optional fixed64 sound_resource_id = 19; + } + + optional bool reliable_sound = 1; + repeated .CSVCMsg_Sounds.sounddata_t sounds = 2; +} + +message CSVCMsg_Prefetch { + optional int32 sound_index = 1; + optional .PrefetchType resource_type = 2 [default = PFT_SOUND]; +} + +message CSVCMsg_SetView { + optional int32 entity_index = 1; + optional int32 slot = 2; +} + +message CSVCMsg_FixAngle { + optional bool relative = 1; + optional .CMsgQAngle angle = 2; +} + +message CSVCMsg_CrosshairAngle { + optional .CMsgQAngle angle = 1; +} + +message CSVCMsg_BSPDecal { + optional .CMsgVector pos = 1; + optional int32 decal_texture_index = 2; + optional int32 entity_index = 3; + optional int32 model_index = 4; + optional bool low_priority = 5; +} + +message CSVCMsg_SplitScreen { + optional .ESplitScreenMessageType type = 1 [default = MSG_SPLITSCREEN_ADDUSER]; + optional int32 slot = 2; + optional int32 player_index = 3; +} + +message CSVCMsg_GetCvarValue { + optional int32 cookie = 1; + optional string cvar_name = 2; +} + +message CSVCMsg_Menu { + optional int32 dialog_type = 1; + optional bytes menu_key_values = 2; +} + +message CSVCMsg_SendTable { + message sendprop_t { + optional int32 type = 1; + optional string var_name = 2; + optional int32 flags = 3; + optional int32 priority = 4; + optional string dt_name = 5; + optional int32 num_elements = 6; + optional float low_value = 7; + optional float high_value = 8; + optional int32 num_bits = 9; + } + + optional bool is_end = 1; + optional string net_table_name = 2; + optional bool needs_decoder = 3; + repeated .CSVCMsg_SendTable.sendprop_t props = 4; +} + +message CSVCMsg_GameEventList { + message key_t { + optional int32 type = 1; + optional string name = 2; + } + + message descriptor_t { + optional int32 eventid = 1; + optional string name = 2; + repeated .CSVCMsg_GameEventList.key_t keys = 3; + } + + repeated .CSVCMsg_GameEventList.descriptor_t descriptors = 1; +} + +message CSVCMsg_PacketEntities { + optional int32 max_entries = 1; + optional int32 updated_entries = 2; + optional bool is_delta = 3; + optional bool update_baseline = 4; + optional int32 baseline = 5; + optional int32 delta_from = 6; + optional bytes entity_data = 7; + optional bool pending_full_frame = 8; + optional uint32 active_spawngroup_handle = 9; + optional uint32 max_spawngroup_creationsequence = 10; + optional uint32 last_cmd_number = 11; +} + +message CSVCMsg_TempEntities { + optional bool reliable = 1; + optional int32 num_entries = 2; + optional bytes entity_data = 3; +} + +message CSVCMsg_CreateStringTable { + optional string name = 1; + optional int32 num_entries = 2; + optional bool user_data_fixed_size = 3; + optional int32 user_data_size = 4; + optional int32 user_data_size_bits = 5; + optional int32 flags = 6; + optional bytes string_data = 7; + optional int32 uncompressed_size = 8; + optional bool data_compressed = 9; +} + +message CSVCMsg_UpdateStringTable { + optional int32 table_id = 1; + optional int32 num_changed_entries = 2; + optional bytes string_data = 3; +} + +message CSVCMsg_VoiceData { + optional .CMsgVoiceAudio audio = 1; + optional int32 client = 2; + optional bool proximity = 3; + optional fixed64 xuid = 4; + optional int32 audible_mask = 5; + optional uint32 tick = 6; +} + +message CSVCMsg_PacketReliable { + optional int32 tick = 1; + optional int32 messagessize = 2; + optional bool state = 3; +} + +message CSVCMsg_FullFrameSplit { + optional int32 tick = 1; + optional int32 section = 2; + optional int32 total = 3; + optional bytes data = 4; +} + +message CSVCMsg_HLTVStatus { + optional string master = 1; + optional int32 clients = 2; + optional int32 slots = 3; + optional int32 proxies = 4; +} + +message CSVCMsg_ServerSteamID { + optional uint64 steam_id = 1; +} + +message CSVCMsg_CmdKeyValues { + optional bytes data = 1; +} + +message CMsgIPCAddress { + optional fixed64 computer_guid = 1; + optional uint32 process_id = 2; +} + +message CMsgServerPeer { + optional int32 player_slot = 1; + optional fixed64 steamid = 2; + optional .CMsgIPCAddress ipc = 3; + optional bool they_hear_you = 4; + optional bool you_hear_them = 5; + optional bool is_listenserver_host = 6; +} + +message CSVCMsg_PeerList { + repeated .CMsgServerPeer peer = 1; +} + +message CSVCMsg_ClearAllStringTables { + optional string mapname = 1; +} + +message ProtoFlattenedSerializerField_t { + optional int32 var_type_sym = 1; + optional int32 var_name_sym = 2; + optional int32 bit_count = 3; + optional float low_value = 4; + optional float high_value = 5; + optional int32 encode_flags = 6; + optional int32 field_serializer_name_sym = 7; + optional int32 field_serializer_version = 8; + optional int32 send_node_sym = 9; + optional int32 var_encoder_sym = 10; +} + +message ProtoFlattenedSerializer_t { + optional int32 serializer_name_sym = 1; + optional int32 serializer_version = 2; + repeated int32 fields_index = 3; +} + +message CSVCMsg_FlattenedSerializer { + repeated .ProtoFlattenedSerializer_t serializers = 1; + repeated string symbols = 2; + repeated .ProtoFlattenedSerializerField_t fields = 3; +} + +message CSVCMsg_StopSound { + optional fixed32 guid = 1; +} + +message CBidirMsg_RebroadcastGameEvent { + optional bool posttoserver = 1; + optional int32 buftype = 2; + optional uint32 clientbitcount = 3; + optional uint64 receivingclients = 4; +} + +message CBidirMsg_RebroadcastSource { + optional int32 eventsource = 1; +} + +message SerializedNetAddress_t { + required bytes serializedAddress = 1; +} + +message CBidirMsg_RelayInfo { + enum Operation_t { + RIO_REQUEST_RELAY = 0; + RIO_WILL_RELAY = 1; + RIO_NO_ROUTE = 2; + RIO_REJECT_RELAY = 3; + RIO_ESTABLISH_CONNECTION = 4; + } + + required .CBidirMsg_RelayInfo.Operation_t operation = 1 [default = RIO_REQUEST_RELAY]; + optional .SerializedNetAddress_t serializedTargetAddress = 2; + optional uint32 additionalHops = 3; +} + +message SignedPayload_t { + required bytes payloadData = 1; + required uint32 signature = 2; + required bool bPayloadEncrypted = 3; +} + +message CBidirMsg_RelayPacket { + message SignedDestinationAddress_t { + required .SerializedNetAddress_t serializedAddr = 1; + required uint32 signature = 2; + optional bytes encryptedPayloadKey = 3; + } + + required uint32 prevhopcount = 1; + required .SerializedNetAddress_t originalSender = 2; + required .SignedPayload_t signedPayload = 3; + repeated .CBidirMsg_RelayPacket.SignedDestinationAddress_t recipientList = 4; +} + +message CMsgServerNetworkStats { + message Port { + optional int32 port = 1; + optional string name = 2; + } + + message Player { + optional uint64 steamid = 1; + optional string remote_addr = 2; + optional int32 ping_stddev_ms = 3; + optional int32 ping_avg_ms = 4; + optional float packet_loss_pct = 5; + optional bool is_bot = 6; + } + + optional bool dedicated = 1; + optional int32 cpu_usage = 2; + optional int32 memory_used_mb = 3; + optional int32 memory_free_mb = 4; + optional int32 uptime = 5; + optional int32 spawn_count = 6; + optional int32 num_clients = 8; + optional int32 num_bots = 9; + optional int32 num_spectators = 10; + optional int32 num_tv_relays = 11; + optional float fps = 12; + repeated .CMsgServerNetworkStats.Port ports = 17; + optional float avg_latency_out = 18; + optional float avg_latency_in = 19; + optional float avg_packets_out = 20; + optional float avg_packets_in = 21; + optional float avg_loss_out = 22; + optional float avg_loss_in = 23; + optional float avg_data_out = 24; + optional float avg_data_in = 25; + optional uint64 total_data_in = 26; + optional uint64 total_packets_in = 27; + optional uint64 total_data_out = 28; + optional uint64 total_packets_out = 29; + repeated .CMsgServerNetworkStats.Player players = 30; +} diff --git a/Protobufs/artifact/network_connection.proto b/Protobufs/artifact/network_connection.proto new file mode 100644 index 0000000..eaf5cd3 --- /dev/null +++ b/Protobufs/artifact/network_connection.proto @@ -0,0 +1,117 @@ +import "google/protobuf/descriptor.proto"; + +option cc_generic_services = false; + +extend .google.protobuf.EnumValueOptions { + optional string network_connection_token = 50500; +} + +enum ENetworkDisconnectionReason { + NETWORK_DISCONNECT_INVALID = 0; + NETWORK_DISCONNECT_SHUTDOWN = 1; + NETWORK_DISCONNECT_DISCONNECT_BY_USER = 2 [(network_connection_token) = "#GameUI_Disconnect_User"]; + NETWORK_DISCONNECT_DISCONNECT_BY_SERVER = 3 [(network_connection_token) = "#GameUI_Disconnect_Server"]; + NETWORK_DISCONNECT_LOST = 4 [(network_connection_token) = "#GameUI_Disconnect_ConnectionLost"]; + NETWORK_DISCONNECT_OVERFLOW = 5 [(network_connection_token) = "#GameUI_Disconnect_ConnectionOverflow"]; + NETWORK_DISCONNECT_STEAM_BANNED = 6 [(network_connection_token) = "#GameUI_Disconnect_SteamIDBanned"]; + NETWORK_DISCONNECT_STEAM_INUSE = 7 [(network_connection_token) = "#GameUI_Disconnect_SteamIDInUse"]; + NETWORK_DISCONNECT_STEAM_TICKET = 8 [(network_connection_token) = "#GameUI_Disconnect_SteamTicket"]; + NETWORK_DISCONNECT_STEAM_LOGON = 9 [(network_connection_token) = "#GameUI_Disconnect_SteamLogon"]; + NETWORK_DISCONNECT_STEAM_AUTHCANCELLED = 10 [(network_connection_token) = "#GameUI_Disconnect_SteamLogon"]; + NETWORK_DISCONNECT_STEAM_AUTHALREADYUSED = 11 [(network_connection_token) = "#GameUI_Disconnect_SteamLogon"]; + NETWORK_DISCONNECT_STEAM_AUTHINVALID = 12 [(network_connection_token) = "#GameUI_Disconnect_SteamLogon"]; + NETWORK_DISCONNECT_STEAM_VACBANSTATE = 13 [(network_connection_token) = "#GameUI_Disconnect_SteamVAC"]; + NETWORK_DISCONNECT_STEAM_LOGGED_IN_ELSEWHERE = 14 [(network_connection_token) = "#GameUI_Disconnect_SteamInUse"]; + NETWORK_DISCONNECT_STEAM_VAC_CHECK_TIMEDOUT = 15 [(network_connection_token) = "#GameUI_Disconnect_SteamTimeOut"]; + NETWORK_DISCONNECT_STEAM_DROPPED = 16 [(network_connection_token) = "#GameUI_Disconnect_SteamDropped"]; + NETWORK_DISCONNECT_STEAM_OWNERSHIP = 17 [(network_connection_token) = "#GameUI_Disconnect_SteamOwnership"]; + NETWORK_DISCONNECT_SERVERINFO_OVERFLOW = 18 [(network_connection_token) = "#GameUI_Disconnect_ServerInfoOverflow"]; + NETWORK_DISCONNECT_TICKMSG_OVERFLOW = 19 [(network_connection_token) = "#GameUI_Disconnect_TickMessage"]; + NETWORK_DISCONNECT_STRINGTABLEMSG_OVERFLOW = 20 [(network_connection_token) = "#GameUI_Disconnect_StringTableMessage"]; + NETWORK_DISCONNECT_DELTAENTMSG_OVERFLOW = 21 [(network_connection_token) = "#GameUI_Disconnect_DeltaEntMessage"]; + NETWORK_DISCONNECT_TEMPENTMSG_OVERFLOW = 22 [(network_connection_token) = "#GameUI_Disconnect_TempEntMessage"]; + NETWORK_DISCONNECT_SOUNDSMSG_OVERFLOW = 23 [(network_connection_token) = "#GameUI_Disconnect_SoundsMessage"]; + NETWORK_DISCONNECT_SNAPSHOTOVERFLOW = 24 [(network_connection_token) = "#GameUI_Disconnect_SnapshotOverflow"]; + NETWORK_DISCONNECT_SNAPSHOTERROR = 25 [(network_connection_token) = "#GameUI_Disconnect_SnapshotError"]; + NETWORK_DISCONNECT_RELIABLEOVERFLOW = 26 [(network_connection_token) = "#GameUI_Disconnect_ReliableOverflow"]; + NETWORK_DISCONNECT_BADDELTATICK = 27 [(network_connection_token) = "#GameUI_Disconnect_BadClientDeltaTick"]; + NETWORK_DISCONNECT_NOMORESPLITS = 28 [(network_connection_token) = "#GameUI_Disconnect_NoMoreSplits"]; + NETWORK_DISCONNECT_TIMEDOUT = 29 [(network_connection_token) = "#GameUI_Disconnect_TimedOut"]; + NETWORK_DISCONNECT_DISCONNECTED = 30 [(network_connection_token) = "#GameUI_Disconnect_Disconnected"]; + NETWORK_DISCONNECT_LEAVINGSPLIT = 31 [(network_connection_token) = "#GameUI_Disconnect_LeavingSplit"]; + NETWORK_DISCONNECT_DIFFERENTCLASSTABLES = 32 [(network_connection_token) = "#GameUI_Disconnect_DifferentClassTables"]; + NETWORK_DISCONNECT_BADRELAYPASSWORD = 33 [(network_connection_token) = "#GameUI_Disconnect_BadRelayPassword"]; + NETWORK_DISCONNECT_BADSPECTATORPASSWORD = 34 [(network_connection_token) = "#GameUI_Disconnect_BadSpectatorPassword"]; + NETWORK_DISCONNECT_HLTVRESTRICTED = 35 [(network_connection_token) = "#GameUI_Disconnect_HLTVRestricted"]; + NETWORK_DISCONNECT_NOSPECTATORS = 36 [(network_connection_token) = "#GameUI_Disconnect_NoSpectators"]; + NETWORK_DISCONNECT_HLTVUNAVAILABLE = 37 [(network_connection_token) = "#GameUI_Disconnect_HLTVUnavailable"]; + NETWORK_DISCONNECT_HLTVSTOP = 38 [(network_connection_token) = "#GameUI_Disconnect_HLTVStop"]; + NETWORK_DISCONNECT_KICKED = 39 [(network_connection_token) = "#GameUI_Disconnect_Kicked"]; + NETWORK_DISCONNECT_BANADDED = 40 [(network_connection_token) = "#GameUI_Disconnect_BanAdded"]; + NETWORK_DISCONNECT_KICKBANADDED = 41 [(network_connection_token) = "#GameUI_Disconnect_KickBanAdded"]; + NETWORK_DISCONNECT_HLTVDIRECT = 42 [(network_connection_token) = "#GameUI_Disconnect_HLTVDirect"]; + NETWORK_DISCONNECT_PURESERVER_CLIENTEXTRA = 43 [(network_connection_token) = "#GameUI_Disconnect_PureServer_ClientExtra"]; + NETWORK_DISCONNECT_PURESERVER_MISMATCH = 44 [(network_connection_token) = "#GameUI_Disconnect_PureServer_Mismatch"]; + NETWORK_DISCONNECT_USERCMD = 45 [(network_connection_token) = "#GameUI_Disconnect_UserCmd"]; + NETWORK_DISCONNECT_REJECTED_BY_GAME = 46 [(network_connection_token) = "#GameUI_Disconnect_RejectedByGame"]; + NETWORK_DISCONNECT_MESSAGE_PARSE_ERROR = 47 [(network_connection_token) = "#GameUI_Disconnect_MessageParseError"]; + NETWORK_DISCONNECT_INVALID_MESSAGE_ERROR = 48 [(network_connection_token) = "#GameUI_Disconnect_InvalidMessageError"]; + NETWORK_DISCONNECT_BAD_SERVER_PASSWORD = 49 [(network_connection_token) = "#GameUI_Disconnect_BadServerPassword"]; + NETWORK_DISCONNECT_DIRECT_CONNECT_RESERVATION = 50; + NETWORK_DISCONNECT_CONNECTION_FAILURE = 51 [(network_connection_token) = "#GameUI_Disconnect_ConnectionFailure"]; + NETWORK_DISCONNECT_NO_PEER_GROUP_HANDLERS = 52 [(network_connection_token) = "#GameUI_Disconnect_NoPeerGroupHandlers"]; + NETWORK_DISCONNECT_RECONNECTION = 53; + NETWORK_DISCONNECT_LOOPSHUTDOWN = 54 [(network_connection_token) = "#GameUI_Disconnect_LoopShutdown"]; + NETWORK_DISCONNECT_LOOPDEACTIVATE = 55 [(network_connection_token) = "#GameUI_Disconnect_LoopDeactivate"]; + NETWORK_DISCONNECT_HOST_ENDGAME = 56 [(network_connection_token) = "#GameUI_Disconnect_Host_EndGame"]; + NETWORK_DISCONNECT_LOOP_LEVELLOAD_ACTIVATE = 57 [(network_connection_token) = "#GameUI_Disconnect_LoopLevelLoadActivate"]; + NETWORK_DISCONNECT_CREATE_SERVER_FAILED = 58 [(network_connection_token) = "#GameUI_Disconnect_CreateServerFailed"]; + NETWORK_DISCONNECT_EXITING = 59 [(network_connection_token) = "#GameUI_Disconnect_ExitingEngine"]; + NETWORK_DISCONNECT_REQUEST_HOSTSTATE_IDLE = 60 [(network_connection_token) = "#GameUI_Disconnect_Request_HSIdle"]; + NETWORK_DISCONNECT_REQUEST_HOSTSTATE_HLTVRELAY = 61 [(network_connection_token) = "#GameUI_Disconnect_Request_HLTVRelay"]; + NETWORK_DISCONNECT_CLIENT_CONSISTENCY_FAIL = 62 [(network_connection_token) = "#GameUI_ClientConsistencyFail"]; + NETWORK_DISCONNECT_CLIENT_UNABLE_TO_CRC_MAP = 63 [(network_connection_token) = "#GameUI_ClientUnableToCRCMap"]; + NETWORK_DISCONNECT_CLIENT_NO_MAP = 64 [(network_connection_token) = "#GameUI_ClientNoMap"]; + NETWORK_DISCONNECT_CLIENT_DIFFERENT_MAP = 65 [(network_connection_token) = "#GameUI_ClientDifferentMap"]; + NETWORK_DISCONNECT_SERVER_REQUIRES_STEAM = 66 [(network_connection_token) = "#GameUI_ServerRequireSteams"]; + NETWORK_DISCONNECT_STEAM_DENY_MISC = 67 [(network_connection_token) = "#GameUI_Disconnect_SteamDeny_Misc"]; + NETWORK_DISCONNECT_STEAM_DENY_BAD_ANTI_CHEAT = 68 [(network_connection_token) = "#GameUI_Disconnect_SteamDeny_BadAntiCheat"]; + NETWORK_DISCONNECT_SERVER_SHUTDOWN = 69 [(network_connection_token) = "#GameUI_Disconnect_ServerShutdown"]; + NETWORK_DISCONNECT_SPLITPACKET_SEND_OVERFLOW = 70 [(network_connection_token) = "#GameUI_Disconnect_Splitpacket_Send_Overflow"]; + NETWORK_DISCONNECT_REPLAY_INCOMPATIBLE = 71 [(network_connection_token) = "#GameUI_Disconnect_ReplayIncompatible"]; + NETWORK_DISCONNECT_CONNECT_REQUEST_TIMEDOUT = 72 [(network_connection_token) = "#GameUI_Disconnect_ConnectionTimedout"]; + NETWORK_DISCONNECT_SERVER_INCOMPATIBLE = 73 [(network_connection_token) = "#GameUI_Disconnect_ServerIncompatible"]; + NETWORK_DISCONNECT_LOCALPROBLEM_MANYRELAYS = 74 [(network_connection_token) = "#GameUI_Disconnect_LocalProblem_ManyRelays"]; + NETWORK_DISCONNECT_LOCALPROBLEM_HOSTEDSERVERPRIMARYRELAY = 75 [(network_connection_token) = "#GameUI_Disconnect_LocalProblem_HostedServerPrimaryRelay"]; + NETWORK_DISCONNECT_LOCALPROBLEM_NETWORKCONFIG = 76 [(network_connection_token) = "#GameUI_Disconnect_LocalProblem_NetworkConfig"]; + NETWORK_DISCONNECT_LOCALPROBLEM_OTHER = 77 [(network_connection_token) = "#GameUI_Disconnect_LocalProblem_Other"]; + NETWORK_DISCONNECT_REMOTE_TIMEOUT = 79 [(network_connection_token) = "#GameUI_Disconnect_RemoteProblem_Timeout"]; + NETWORK_DISCONNECT_REMOTE_TIMEOUT_CONNECTING = 80 [(network_connection_token) = "#GameUI_Disconnect_RemoteProblem_TimeoutConnecting"]; + NETWORK_DISCONNECT_REMOTE_OTHER = 81 [(network_connection_token) = "#GameUI_Disconnect_RemoteProblem_Other"]; + NETWORK_DISCONNECT_REMOTE_BADCRYPT = 82 [(network_connection_token) = "#GameUI_Disconnect_RemoteProblem_BadCrypt"]; + NETWORK_DISCONNECT_REMOTE_CERTNOTTRUSTED = 83 [(network_connection_token) = "#GameUI_Disconnect_RemoteProblem_BadCert"]; + NETWORK_DISCONNECT_UNUSUAL = 84 [(network_connection_token) = "#GameUI_Disconnect_Unusual"]; + NETWORK_DISCONNECT_INTERNAL_ERROR = 85 [(network_connection_token) = "#GameUI_Disconnect_InternalError"]; + NETWORK_DISCONNECT_REJECT_BADCHALLENGE = 128 [(network_connection_token) = "#GameUI_ServerRejectBadChallenge"]; + NETWORK_DISCONNECT_REJECT_NOLOBBY = 129 [(network_connection_token) = "#GameUI_ServerNoLobby"]; + NETWORK_DISCONNECT_REJECT_BACKGROUND_MAP = 130 [(network_connection_token) = "#Valve_Reject_Background_Map"]; + NETWORK_DISCONNECT_REJECT_SINGLE_PLAYER = 131 [(network_connection_token) = "#Valve_Reject_Single_Player"]; + NETWORK_DISCONNECT_REJECT_HIDDEN_GAME = 132 [(network_connection_token) = "#Valve_Reject_Hidden_Game"]; + NETWORK_DISCONNECT_REJECT_LANRESTRICT = 133 [(network_connection_token) = "#GameUI_ServerRejectLANRestrict"]; + NETWORK_DISCONNECT_REJECT_BADPASSWORD = 134 [(network_connection_token) = "#GameUI_ServerRejectBadPassword"]; + NETWORK_DISCONNECT_REJECT_SERVERFULL = 135 [(network_connection_token) = "#GameUI_ServerRejectServerFull"]; + NETWORK_DISCONNECT_REJECT_INVALIDRESERVATION = 136 [(network_connection_token) = "#GameUI_ServerRejectInvalidReservation"]; + NETWORK_DISCONNECT_REJECT_FAILEDCHANNEL = 137 [(network_connection_token) = "#GameUI_ServerRejectFailedChannel"]; + NETWORK_DISCONNECT_REJECT_CONNECT_FROM_LOBBY = 138 [(network_connection_token) = "#Valve_Reject_Connect_From_Lobby"]; + NETWORK_DISCONNECT_REJECT_RESERVED_FOR_LOBBY = 139 [(network_connection_token) = "#Valve_Reject_Reserved_For_Lobby"]; + NETWORK_DISCONNECT_REJECT_INVALIDKEYLENGTH = 140 [(network_connection_token) = "#GameUI_ServerReject_InvalidKeyLength"]; + NETWORK_DISCONNECT_REJECT_OLDPROTOCOL = 141 [(network_connection_token) = "#GameUI_ServerRejectOldProtocol"]; + NETWORK_DISCONNECT_REJECT_NEWPROTOCOL = 142 [(network_connection_token) = "#GameUI_ServerRejectNewProtocol"]; + NETWORK_DISCONNECT_REJECT_INVALIDCONNECTION = 143 [(network_connection_token) = "#GameUI_ServerRejectInvalidConnection"]; + NETWORK_DISCONNECT_REJECT_INVALIDCERTLEN = 144 [(network_connection_token) = "#GameUI_ServerRejectInvalidCertLen"]; + NETWORK_DISCONNECT_REJECT_INVALIDSTEAMCERTLEN = 145 [(network_connection_token) = "#GameUI_ServerRejectInvalidSteamCertLen"]; + NETWORK_DISCONNECT_REJECT_STEAM = 146 [(network_connection_token) = "#GameUI_ServerRejectSteam"]; + NETWORK_DISCONNECT_REJECT_SERVERAUTHDISABLED = 147 [(network_connection_token) = "#GameUI_ServerAuthDisabled"]; + NETWORK_DISCONNECT_REJECT_SERVERCDKEYAUTHINVALID = 148 [(network_connection_token) = "#GameUI_ServerCDKeyAuthInvalid"]; + NETWORK_DISCONNECT_REJECT_BANNED = 149 [(network_connection_token) = "#GameUI_ServerRejectBanned"]; +} diff --git a/Protobufs/artifact/networkbasetypes.proto b/Protobufs/artifact/networkbasetypes.proto new file mode 100644 index 0000000..c0cc3f3 --- /dev/null +++ b/Protobufs/artifact/networkbasetypes.proto @@ -0,0 +1,206 @@ +import "network_connection.proto"; + +option cc_generic_services = false; + +enum NET_Messages { + net_NOP = 0; + net_Disconnect = 1; + net_SplitScreenUser = 3; + net_Tick = 4; + net_StringCmd = 5; + net_SetConVar = 6; + net_SignonState = 7; + net_SpawnGroup_Load = 8; + net_SpawnGroup_ManifestUpdate = 9; + net_SpawnGroup_SetCreationTick = 11; + net_SpawnGroup_Unload = 12; + net_SpawnGroup_LoadCompleted = 13; +} + +enum SpawnGroupFlags_t { + SPAWN_GROUP_LOAD_ENTITIES_FROM_SAVE = 1; + SPAWN_GROUP_DONT_SPAWN_ENTITIES = 2; + SPAWN_GROUP_SYNCHRONOUS_SPAWN = 4; + SPAWN_GROUP_IS_INITIAL_SPAWN_GROUP = 8; + SPAWN_GROUP_CREATE_CLIENT_ONLY_ENTITIES = 16; + SPAWN_GROUP_BLOCK_UNTIL_LOADED = 64; + SPAWN_GROUP_LOAD_STREAMING_DATA = 128; + SPAWN_GROUP_CREATE_NEW_SCENE_WORLD = 256; +} + +message CMsgVector { + optional float x = 1; + optional float y = 2; + optional float z = 3; +} + +message CMsgVector2D { + optional float x = 1; + optional float y = 2; +} + +message CMsgQAngle { + optional float x = 1; + optional float y = 2; + optional float z = 3; +} + +message CMsgPlayerInfo { + optional string name = 1; + optional fixed64 xuid = 2; + optional int32 userid = 3; + optional fixed64 steamid = 4; + optional bool fakeplayer = 5; + optional bool ishltv = 6; +} + +message CMsg_CVars { + message CVar { + optional string name = 1; + optional string value = 2; + } + + repeated .CMsg_CVars.CVar cvars = 1; +} + +message CNETMsg_NOP { +} + +message CNETMsg_SplitScreenUser { + optional int32 slot = 1; +} + +message CNETMsg_Disconnect { + optional .ENetworkDisconnectionReason reason = 2 [default = NETWORK_DISCONNECT_INVALID]; +} + +message CNETMsg_Tick { + optional uint32 tick = 1; + optional uint32 host_frametime = 2; + optional uint32 host_frametime_std_deviation = 3; + optional uint32 host_computationtime = 4; + optional uint32 host_computationtime_std_deviation = 5; + optional uint32 host_framestarttime_std_deviation = 6; + optional uint32 host_loss = 7; +} + +message CNETMsg_StringCmd { + optional string command = 1; +} + +message CNETMsg_SetConVar { + optional .CMsg_CVars convars = 1; +} + +message CNETMsg_SignonState { + optional uint32 signon_state = 1; + optional uint32 spawn_count = 2; + optional uint32 num_server_players = 3; + repeated string players_networkids = 4; + optional string map_name = 5; + optional string addons = 6; +} + +message CSVCMsg_GameEvent { + message key_t { + optional int32 type = 1; + optional string val_string = 2; + optional float val_float = 3; + optional int32 val_long = 4; + optional int32 val_short = 5; + optional int32 val_byte = 6; + optional bool val_bool = 7; + optional uint64 val_uint64 = 8; + } + + optional string event_name = 1; + optional int32 eventid = 2; + repeated .CSVCMsg_GameEvent.key_t keys = 3; +} + +message CSVCMsgList_GameEvents { + message event_t { + optional int32 tick = 1; + optional .CSVCMsg_GameEvent event = 2; + } + + repeated .CSVCMsgList_GameEvents.event_t events = 1; +} + +message CSVCMsg_UserMessage { + optional int32 msg_type = 1; + optional bytes msg_data = 2; +} + +message CSVCMsgList_UserMessages { + message usermsg_t { + optional int32 tick = 1; + optional .CSVCMsg_UserMessage msg = 2; + } + + repeated .CSVCMsgList_UserMessages.usermsg_t usermsgs = 1; +} + +message CNETMsg_SpawnGroup_Load { + optional string worldname = 1; + optional string entitylumpname = 2; + optional string entityfiltername = 3; + optional uint32 spawngrouphandle = 4; + optional uint32 spawngroupownerhandle = 5; + optional .CMsgVector world_offset_pos = 6; + optional .CMsgQAngle world_offset_angle = 7; + optional bytes spawngroupmanifest = 8; + optional uint32 flags = 9; + optional int32 tickcount = 10; + optional bool manifestincomplete = 11; + optional string localnamefixup = 12; + optional string parentnamefixup = 13; + optional int32 manifestloadpriority = 14; + optional uint32 worldgroupid = 15; + optional uint32 creationsequence = 16; + optional string savegamefilename = 17; + optional uint32 spawngroupparenthandle = 18; +} + +message CNETMsg_SpawnGroup_ManifestUpdate { + optional uint32 spawngrouphandle = 1; + optional bytes spawngroupmanifest = 2; + optional bool manifestincomplete = 3; +} + +message CNETMsg_SpawnGroup_SetCreationTick { + optional uint32 spawngrouphandle = 1; + optional int32 tickcount = 2; + optional uint32 creationsequence = 3; +} + +message CNETMsg_SpawnGroup_Unload { + optional uint32 spawngrouphandle = 1; + optional uint32 flags = 2; + optional int32 tickcount = 3; +} + +message CNETMsg_SpawnGroup_LoadCompleted { + optional uint32 spawngrouphandle = 1; +} + +message CSVCMsg_GameSessionConfiguration { + optional bool is_multiplayer = 1; + optional bool is_loadsavegame = 2; + optional bool is_background_map = 3; + optional bool is_headless = 4; + optional uint32 min_client_limit = 5; + optional uint32 max_client_limit = 6; + optional uint32 max_clients = 7; + optional fixed32 tick_interval = 8; + optional string hostname = 9; + optional string savegamename = 10; + optional string s1_mapname = 11; + optional string gamemode = 12; + optional string server_ip_address = 13; + optional bytes data = 14; + optional bool is_localonly = 15; + optional bool is_transition = 16; + optional string previouslevel = 17; + optional string landmarkname = 18; +} diff --git a/Protobufs/artifact/networksystem_protomessages.proto b/Protobufs/artifact/networksystem_protomessages.proto new file mode 100644 index 0000000..cff50e9 --- /dev/null +++ b/Protobufs/artifact/networksystem_protomessages.proto @@ -0,0 +1,19 @@ +option cc_generic_services = false; + +message NetMessageSplitscreenUserChanged { + optional uint32 slot = 1; +} + +message NetMessageConnectionClosed { + optional uint32 reason = 1; +} + +message NetMessageConnectionCrashed { + optional uint32 reason = 1; +} + +message NetMessagePacketStart { +} + +message NetMessagePacketEnd { +} diff --git a/Protobufs/artifact/steamdatagram_messages_auth.proto b/Protobufs/artifact/steamdatagram_messages_auth.proto new file mode 100644 index 0000000..1e8a63e --- /dev/null +++ b/Protobufs/artifact/steamdatagram_messages_auth.proto @@ -0,0 +1,38 @@ +option optimize_for = SPEED; +option cc_generic_services = false; + +message CMsgSteamDatagramRelayAuthTicket { + message ExtraField { + optional string name = 1; + optional string string_value = 2; + optional sint64 int64_value = 3; + optional fixed64 fixed64_value = 5; + } + + optional fixed32 time_expiry = 1; + optional bytes authorized_client_identity = 12; + optional bytes gameserver_identity = 13; + optional fixed32 authorized_public_ip = 3; + optional bytes gameserver_address = 11; + optional uint32 app_id = 7; + optional uint32 virtual_port = 10; + repeated .CMsgSteamDatagramRelayAuthTicket.ExtraField extra_fields = 8; + optional fixed64 legacy_authorized_steam_id = 2; + optional fixed64 legacy_gameserver_steam_id = 4; + optional fixed64 legacy_gameserver_net_id = 5; + optional fixed32 legacy_gameserver_pop_id = 9; + optional bytes DELETED_signature = 6; +} + +message CMsgSteamDatagramSignedRelayAuthTicket { + optional fixed64 reserved_do_not_use = 1; + optional fixed64 key_id = 2; + optional bytes ticket = 3; + optional bytes signature = 4; +} + +message CMsgSteamDatagramCachedCredentialsForApp { + optional bytes private_key = 1; + optional bytes cert = 2; + repeated bytes relay_tickets = 3; +} diff --git a/Protobufs/artifact/steamdatagram_messages_sdr.proto b/Protobufs/artifact/steamdatagram_messages_sdr.proto new file mode 100644 index 0000000..8d3fd41 --- /dev/null +++ b/Protobufs/artifact/steamdatagram_messages_sdr.proto @@ -0,0 +1,441 @@ +import "steamnetworkingsockets_messages_certs.proto"; +import "steamnetworkingsockets_messages.proto"; + +option optimize_for = SPEED; +option cc_generic_services = false; + +enum ESteamDatagramMsgID { + k_ESteamDatagramMsg_Invalid = 0; + k_ESteamDatagramMsg_RouterPingRequest = 1; + k_ESteamDatagramMsg_RouterPingReply = 2; + k_ESteamDatagramMsg_GameserverPingRequest = 3; + k_ESteamDatagramMsg_GameserverPingReply = 4; + k_ESteamDatagramMsg_GameserverSessionRequest = 5; + k_ESteamDatagramMsg_GameserverSessionEstablished = 6; + k_ESteamDatagramMsg_NoSession = 7; + k_ESteamDatagramMsg_Diagnostic = 8; + k_ESteamDatagramMsg_DataClientToRouter = 9; + k_ESteamDatagramMsg_DataRouterToServer = 10; + k_ESteamDatagramMsg_DataServerToRouter = 11; + k_ESteamDatagramMsg_DataRouterToClient = 12; + k_ESteamDatagramMsg_Stats = 13; + k_ESteamDatagramMsg_ClientPingSampleRequest = 14; + k_ESteamDatagramMsg_ClientPingSampleReply = 15; + k_ESteamDatagramMsg_ClientToRouterSwitchedPrimary = 16; + k_ESteamDatagramMsg_RelayHealth = 17; + k_ESteamDatagramMsg_ConnectRequest = 18; + k_ESteamDatagramMsg_ConnectOK = 19; + k_ESteamDatagramMsg_ConnectionClosed = 20; + k_ESteamDatagramMsg_NoConnection = 21; + k_ESteamDatagramMsg_RelayToRelayPingRequest = 22; + k_ESteamDatagramMsg_RelayToRelayPingReply = 23; + k_ESteamDatagramMsg_P2PSessionRequest = 24; + k_ESteamDatagramMsg_P2PSessionEstablished = 25; + k_ESteamDatagramMsg_P2PStatsClient = 26; + k_ESteamDatagramMsg_P2PStatsRelay = 27; + k_ESteamDatagramMsg_P2PBadRoute = 28; +} + +message CMsgSteamDatagramRouterPingReply { + message RouteException { + optional fixed32 data_center_id = 1; + optional uint32 flags = 2; + optional uint32 penalty = 3; + } + + optional fixed32 client_timestamp = 1; + repeated fixed32 latency_datacenter_ids = 2 [packed = true]; + repeated uint32 latency_ping_ms = 3 [packed = true]; + optional fixed32 your_public_ip = 4; + optional fixed32 server_time = 5; + optional fixed64 challenge = 6; + optional uint32 seconds_until_shutdown = 7; + optional fixed32 client_cookie = 8; + optional uint32 scoring_penalty_relay_cluster = 9; + repeated .CMsgSteamDatagramRouterPingReply.RouteException route_exceptions = 10; +} + +message CMsgSteamDatagramGameserverPing { + optional fixed32 router_timestamp = 4; + optional fixed64 dummy_pad = 99; +} + +message CMsgSteamDatagramNoSessionRelayToClient { + optional fixed32 connection_id = 7; + optional fixed32 your_public_ip = 2; + optional fixed32 server_time = 3; + optional fixed64 challenge = 4; + optional uint32 seconds_until_shutdown = 5; +} + +message CMsgSteamDatagramNoSessionRelayToPeer { + optional uint32 legacy_relay_session_id = 1; + optional fixed32 from_relay_session_id = 2; + optional fixed32 from_connection_id = 7; + optional fixed64 kludge_pad = 99; +} + +message CMsgSteamDatagramClientPingSampleRequest { + optional fixed32 connection_id = 1; +} + +message CMsgSteamDatagramClientPingSampleReply { + message RoutingCluster { + optional fixed32 id = 1; + optional uint32 front_ping_ms = 2; + optional uint32 e2e_ping_ms = 3; + } + + message DataCenter { + optional fixed32 data_center_id = 1; + optional fixed32 via_relay_id = 2; + optional uint32 e2e_ping_ms = 3; + } + + optional fixed32 connection_id = 1; + repeated .CMsgSteamDatagramClientPingSampleReply.RoutingCluster routing_clusters = 2; + repeated .CMsgSteamDatagramClientPingSampleReply.DataCenter data_centers = 3; +} + +message CMsgSteamDatagramClientSwitchedPrimary { + message RouterQuality { + optional uint32 score = 1; + optional uint32 front_ping = 2; + optional uint32 back_ping = 3; + optional uint32 seconds_until_down = 4; + } + + optional fixed32 connection_id = 1; + optional fixed32 from_ip = 2; + optional uint32 from_port = 3; + optional fixed32 from_router_cluster = 4; + optional uint32 from_active_time = 5; + optional uint32 from_active_packets_recv = 6; + optional string from_dropped_reason = 7; + optional uint32 gap_ms = 8; + optional .CMsgSteamDatagramClientSwitchedPrimary.RouterQuality from_quality_now = 9; + optional .CMsgSteamDatagramClientSwitchedPrimary.RouterQuality to_quality_now = 10; + optional .CMsgSteamDatagramClientSwitchedPrimary.RouterQuality from_quality_then = 11; + optional .CMsgSteamDatagramClientSwitchedPrimary.RouterQuality to_quality_then = 12; +} + +message CMsgSteamDatagramConnectRequest { + optional fixed32 connection_id = 1; + optional fixed64 my_timestamp = 4; + optional uint32 ping_est_ms = 5; + optional uint32 virtual_port = 9; + optional uint32 gameserver_relay_session_id = 2; + optional .CMsgSteamDatagramSessionCryptInfoSigned crypt = 6; + optional .CMsgSteamDatagramCertificateSigned cert = 7; + optional uint32 protocol_version = 8; + optional fixed64 legacy_client_steam_id = 3; +} + +message CMsgSteamDatagramConnectOK { + optional fixed32 client_connection_id = 1; + optional fixed32 server_connection_id = 7; + optional fixed64 your_timestamp = 3; + optional uint32 delay_time_usec = 4; + optional uint32 gameserver_relay_session_id = 2; + optional .CMsgSteamDatagramSessionCryptInfoSigned crypt = 5; + optional .CMsgSteamDatagramCertificateSigned cert = 6; + optional uint32 protocol_version = 8; +} + +message CMsgSteamDatagramConnectionClosed { + enum ERelayMode { + None = 0; + EndToEnd = 1; + ClosedByPeer = 2; + } + + optional fixed32 to_connection_id = 7; + optional fixed32 from_connection_id = 8; + optional .CMsgSteamNetworkingIdentity from_identity = 13; + optional fixed64 legacy_from_steam_id = 3; + optional uint32 legacy_gameserver_relay_session_id = 2; + optional fixed32 to_relay_session_id = 9; + optional fixed32 from_relay_session_id = 10; + optional bytes forward_target_relay_routing_token = 11; + optional uint32 forward_target_revision = 12; + optional .CMsgSteamDatagramConnectionClosed.ERelayMode relay_mode = 4 [default = None]; + optional string debug = 5; + optional uint32 reason_code = 6; +} + +message CMsgSteamDatagramNoConnection { + optional fixed32 to_connection_id = 5; + optional fixed32 from_connection_id = 6; + optional uint32 legacy_gameserver_relay_session_id = 2; + optional fixed32 to_relay_session_id = 9; + optional fixed32 from_relay_session_id = 10; + optional fixed64 from_steam_id = 3; + optional bool end_to_end = 4; + optional fixed32 dummy_pad = 1023; +} + +message CMsgSteamDatagramGameserverSessionRequest { + optional bytes ticket = 1; + optional fixed32 challenge_time = 3; + optional fixed64 challenge = 4; + optional fixed32 client_connection_id = 5; + optional fixed32 server_connection_id = 8; + optional uint32 network_config_version = 6; + optional uint32 protocol_version = 7; +} + +message CMsgSteamDatagramGameserverSessionEstablished { + optional fixed32 connection_id = 1; + optional fixed64 gameserver_steam_id = 3; + optional uint32 seconds_until_shutdown = 4; + optional uint32 seq_num_r2c = 6; +} + +message CMsgSteamDatagramConnectionStatsClientToRouter { + enum Flags { + ACK_REQUEST_RELAY = 1; + ACK_REQUEST_E2E = 2; + ACK_REQUEST_IMMEDIATE = 4; + } + + optional .CMsgSteamDatagramConnectionQuality quality_relay = 1; + optional .CMsgSteamDatagramConnectionQuality quality_e2e = 2; + repeated fixed32 ack_relay = 4; + repeated fixed32 legacy_ack_e2e = 5; + optional uint32 flags = 6; + optional fixed32 client_connection_id = 8; + optional uint32 seq_num_c2r = 9; + optional uint32 seq_num_c2s = 10; +} + +message CMsgSteamDatagramConnectionStatsRouterToClient { + enum Flags { + ACK_REQUEST_RELAY = 1; + ACK_REQUEST_E2E = 2; + ACK_REQUEST_IMMEDIATE = 4; + } + + optional .CMsgSteamDatagramConnectionQuality quality_relay = 1; + optional .CMsgSteamDatagramConnectionQuality quality_e2e = 2; + optional uint32 seconds_until_shutdown = 6; + optional fixed32 migrate_request_ip = 10; + optional uint32 migrate_request_port = 11; + optional uint32 scoring_penalty_relay_cluster = 12; + repeated fixed32 ack_relay = 13; + repeated fixed32 legacy_ack_e2e = 14; + optional uint32 flags = 15; + optional fixed32 client_connection_id = 7; + optional uint32 seq_num_r2c = 8; + optional uint32 seq_num_s2c = 9; +} + +message CMsgSteamDatagramConnectionStatsRouterToServer { + enum Flags { + ACK_REQUEST_RELAY = 1; + ACK_REQUEST_E2E = 2; + ACK_REQUEST_IMMEDIATE = 4; + } + + optional .CMsgSteamDatagramConnectionQuality quality_relay = 1; + optional .CMsgSteamDatagramConnectionQuality quality_e2e = 2; + repeated fixed32 ack_relay = 10; + repeated fixed32 legacy_ack_e2e = 11; + optional uint32 flags = 12; + optional uint32 seq_num_r2s = 5; + optional uint32 seq_num_c2s = 6; + optional fixed64 client_steam_id = 7; + optional uint32 relay_session_id = 8; + optional fixed32 client_connection_id = 9; + optional fixed32 server_connection_id = 13; +} + +message CMsgSteamDatagramConnectionStatsServerToRouter { + enum Flags { + ACK_REQUEST_RELAY = 1; + ACK_REQUEST_E2E = 2; + ACK_REQUEST_IMMEDIATE = 4; + } + + optional .CMsgSteamDatagramConnectionQuality quality_relay = 1; + optional .CMsgSteamDatagramConnectionQuality quality_e2e = 2; + repeated fixed32 ack_relay = 8; + repeated fixed32 legacy_ack_e2e = 9; + optional uint32 flags = 10; + optional uint32 seq_num_s2r = 3; + optional uint32 seq_num_s2c = 4; + optional fixed64 client_steam_id = 5; + optional uint32 relay_session_id = 6; + optional fixed32 client_connection_id = 7; + optional fixed32 server_connection_id = 11; +} + +message CMsgSteamDatagramP2PSessionRequestBody { + optional fixed32 challenge_time = 1; + optional fixed64 challenge = 2; + optional fixed32 client_connection_id = 3; + optional fixed64 peer_steam_id = 4; + optional fixed32 peer_connection_id = 5; + optional uint32 protocol_version = 8; + optional uint32 network_config_version = 9; + optional fixed32 public_ip = 10; +} + +message CMsgSteamDatagramP2PSessionRequest { + optional .CMsgSteamDatagramCertificateSigned cert = 1; + optional bytes body = 2; + optional bytes signature = 3; +} + +message CMsgSteamDatagramP2PSessionEstablished { + optional fixed32 connection_id = 1; + optional uint32 seconds_until_shutdown = 3; + optional bytes relay_routing_token = 4; + optional uint32 seq_num_r2c = 5; +} + +message CMsgSteamDatagramP2PRoutes { + message RelayCluster { + optional fixed32 pop_id = 1; + optional uint32 ping_ms = 2; + optional uint32 score_penalty = 3; + optional bytes session_relay_routing_token = 4; + } + + message Route { + optional fixed32 my_pop_id = 1; + optional fixed32 your_pop_id = 2; + optional uint32 score = 3; + } + + repeated .CMsgSteamDatagramP2PRoutes.RelayCluster relay_clusters = 1; + repeated .CMsgSteamDatagramP2PRoutes.Route routes = 2; + optional uint32 revision = 3; +} + +message CMsgSteamDatagramP2PRendezvous { + optional fixed32 to_connection_id = 1; + optional .CMsgSteamDatagramP2PRoutes routes = 2; + optional uint32 ack_peer_routes_revision = 3; + optional .CMsgSteamDatagramConnectRequest connect_request = 4; + optional .CMsgSteamDatagramConnectOK connect_ok = 5; + optional .CMsgSteamDatagramConnectionClosed connection_closed = 6; + optional bytes failed_relay_routing_token = 7; +} + +message CMsgSteamDatagramConnectionStatsP2PClientToRouter { + enum Flags { + ACK_REQUEST_RELAY = 1; + ACK_REQUEST_E2E = 2; + ACK_REQUEST_IMMEDIATE = 4; + } + + optional .CMsgSteamDatagramConnectionQuality quality_relay = 1; + optional .CMsgSteamDatagramConnectionQuality quality_e2e = 2; + repeated fixed32 ack_relay = 3; + repeated fixed32 legacy_ack_e2e = 4; + optional uint32 flags = 5; + optional bytes forward_target_relay_routing_token = 6; + optional uint32 forward_target_revision = 7; + optional bytes routes = 8; + optional uint32 ack_peer_routes_revision = 9; + optional fixed32 connection_id = 10; + optional uint32 seq_num_c2r = 11; + optional uint32 seq_num_e2e = 12; +} + +message CMsgSteamDatagramConnectionStatsP2PRouterToClient { + enum Flags { + ACK_REQUEST_RELAY = 1; + ACK_REQUEST_E2E = 2; + ACK_REQUEST_IMMEDIATE = 4; + } + + optional .CMsgSteamDatagramConnectionQuality quality_relay = 1; + optional .CMsgSteamDatagramConnectionQuality quality_e2e = 2; + optional uint32 seconds_until_shutdown = 3; + optional fixed32 migrate_request_ip = 4; + optional uint32 migrate_request_port = 5; + optional uint32 scoring_penalty_relay_cluster = 6; + repeated fixed32 ack_relay = 7; + repeated fixed32 legacy_ack_e2e = 8; + optional uint32 flags = 9; + optional uint32 ack_forward_target_revision = 10; + optional bytes routes = 11; + optional uint32 ack_peer_routes_revision = 12; + optional fixed32 connection_id = 13; + optional uint32 seq_num_r2c = 14; + optional uint32 seq_num_e2e = 15; +} + +message CMsgSteamDatagramP2PBadRouteRouterToClient { + optional fixed32 connection_id = 1; + optional bytes failed_relay_routing_token = 2; + optional uint32 ack_forward_target_revision = 3; + optional fixed64 kludge_pad = 99; +} + +message CMsgSteamDatagramRelayToRelayPing { + optional fixed32 request_timestamp = 1; + optional fixed32 request_date = 2; + optional fixed32 my_pop_id = 3; + optional fixed32 your_pop_id = 4; + optional fixed32 checksum = 5; +} + +message CMsgSteamDatagramDataCenterState { + message Server { + optional string address = 1; + optional uint32 ping_ms = 2; + } + + message DataCenter { + optional string code = 1; + repeated .CMsgSteamDatagramDataCenterState.Server server_sample = 2; + repeated .CMsgSteamDatagramDataCenterState.Server relay_sample = 3; + } + + repeated .CMsgSteamDatagramDataCenterState.DataCenter data_centers = 1; +} + +message CMsgSteamDatagramRouterHealth { + message DataCenter { + optional fixed32 datacenter_id = 1; + optional uint32 state = 2; + } + + optional float cpu_load = 1; + optional uint32 active_sessions = 2; + optional uint32 data_pkts_sec = 3; + optional uint32 other_pkts_sec = 4; + optional uint32 seconds_until_shutdown = 5; + optional float cpu_cost_per_user = 8; + optional float cpu_cost_per_packet = 9; + repeated .CMsgSteamDatagramRouterHealth.DataCenter data_centers = 6; + optional fixed64 magic = 7; +} + +message CMsgSteamDatagramConnectionStatsP2PRouterToRouter { + enum Flags { + ACK_REQUEST_RELAY = 1; + ACK_REQUEST_E2E = 2; + ACK_REQUEST_IMMEDIATE = 4; + } + + optional .CMsgSteamDatagramConnectionQuality quality_relay = 1; + optional .CMsgSteamDatagramConnectionQuality quality_e2e = 2; + repeated fixed32 ack_relay = 3; + repeated fixed32 legacy_ack_e2e = 4; + optional uint32 flags = 5; + optional uint32 ack_forward_target_revision = 6; + optional bytes routes = 7; + optional uint32 ack_peer_routes_revision = 8; + optional uint32 seq_num_r2r = 26; + optional uint32 seq_num_e2e = 27; + optional fixed32 from_relay_session_id = 22; + optional fixed32 to_relay_session_id = 25; +} + +message CMsgSteamDatagramP2PBadRouteRouterToRouter { + optional fixed32 from_relay_session_id = 1; + optional fixed64 kludge_pad = 99; +} diff --git a/Protobufs/artifact/steammessages.proto b/Protobufs/artifact/steammessages.proto new file mode 100644 index 0000000..83f59d5 --- /dev/null +++ b/Protobufs/artifact/steammessages.proto @@ -0,0 +1,636 @@ +import "google/protobuf/descriptor.proto"; + +option optimize_for = SPEED; +option cc_generic_services = false; + +extend .google.protobuf.FieldOptions { + optional bool key_field = 60000 [default = false]; +} + +extend .google.protobuf.MessageOptions { + optional int32 msgpool_soft_limit = 60000 [default = 32]; + optional int32 msgpool_hard_limit = 60001 [default = 384]; +} + +enum GCProtoBufMsgSrc { + GCProtoBufMsgSrc_Unspecified = 0; + GCProtoBufMsgSrc_FromSystem = 1; + GCProtoBufMsgSrc_FromSteamID = 2; + GCProtoBufMsgSrc_FromGC = 3; + GCProtoBufMsgSrc_ReplySystem = 4; + GCProtoBufMsgSrc_SpoofedSteamID = 5; +} + +message CMsgProtoBufHeader { + option (msgpool_soft_limit) = 256; + option (msgpool_hard_limit) = 1024; + + optional fixed64 client_steam_id = 1; + optional int32 client_session_id = 2; + optional uint32 source_app_id = 3; + optional fixed64 job_id_source = 10 [default = 18446744073709551615]; + optional fixed64 job_id_target = 11 [default = 18446744073709551615]; + optional string target_job_name = 12; + optional int32 eresult = 13 [default = 2]; + optional string error_message = 14; + optional .GCProtoBufMsgSrc gc_msg_src = 200 [default = GCProtoBufMsgSrc_Unspecified]; + optional uint32 gc_dir_index_source = 201; +} + +message CMsgWebAPIKey { + optional uint32 status = 1 [default = 255]; + optional uint32 account_id = 2 [default = 0]; + optional uint32 publisher_group_id = 3 [default = 0]; + optional uint32 key_id = 4; + optional string domain = 5; +} + +message CMsgHttpRequest { + message RequestHeader { + optional string name = 1; + optional string value = 2; + } + + message QueryParam { + optional string name = 1; + optional bytes value = 2; + } + + optional uint32 request_method = 1; + optional string hostname = 2; + optional string url = 3; + repeated .CMsgHttpRequest.RequestHeader headers = 4; + repeated .CMsgHttpRequest.QueryParam get_params = 5; + repeated .CMsgHttpRequest.QueryParam post_params = 6; + optional bytes body = 7; + optional uint32 absolute_timeout = 8; +} + +message CMsgWebAPIRequest { + optional string UNUSED_job_name = 1; + optional string interface_name = 2; + optional string method_name = 3; + optional uint32 version = 4; + optional .CMsgWebAPIKey api_key = 5; + optional .CMsgHttpRequest request = 6; + optional uint32 routing_app_id = 7; +} + +message CMsgHttpResponse { + message ResponseHeader { + optional string name = 1; + optional string value = 2; + } + + optional uint32 status_code = 1; + repeated .CMsgHttpResponse.ResponseHeader headers = 2; + optional bytes body = 3; +} + +message CMsgAMFindAccounts { + optional uint32 search_type = 1; + optional string search_string = 2; +} + +message CMsgAMFindAccountsResponse { + repeated fixed64 steam_id = 1; +} + +message CMsgNotifyWatchdog { + optional uint32 source = 1; + optional uint32 alert_type = 2; + optional bool critical = 4; + optional uint32 time = 5; + optional uint32 appid = 6; + optional string text = 7; + optional string recipient = 12; +} + +message CMsgAMGetLicenses { + optional fixed64 steamid = 1; +} + +message CMsgPackageLicense { + optional uint32 package_id = 1; + optional uint32 time_created = 2; + optional uint32 owner_id = 3; +} + +message CMsgAMGetLicensesResponse { + repeated .CMsgPackageLicense license = 1; + optional uint32 result = 2; +} + +message CMsgAMGetUserGameStats { + optional fixed64 steam_id = 1; + optional fixed64 game_id = 2; + repeated uint32 stats = 3; +} + +message CMsgAMGetUserGameStatsResponse { + message Stats { + optional uint32 stat_id = 1; + optional uint32 stat_value = 2; + } + + message Achievement_Blocks { + optional uint32 achievement_id = 1; + optional uint32 achievement_bit_id = 2; + optional fixed32 unlock_time = 3; + } + + optional fixed64 steam_id = 1; + optional fixed64 game_id = 2; + optional int32 eresult = 3 [default = 2]; + repeated .CMsgAMGetUserGameStatsResponse.Stats stats = 4; + repeated .CMsgAMGetUserGameStatsResponse.Achievement_Blocks achievement_blocks = 5; +} + +message CMsgGCGetCommandList { + optional uint32 app_id = 1; + optional string command_prefix = 2; +} + +message CMsgGCGetCommandListResponse { + repeated string command_name = 1; +} + +message CGCMsgMemCachedGet { + repeated string keys = 1; +} + +message CGCMsgMemCachedGetResponse { + message ValueTag { + optional bool found = 1; + optional bytes value = 2; + } + + repeated .CGCMsgMemCachedGetResponse.ValueTag values = 1; +} + +message CGCMsgMemCachedSet { + message KeyPair { + optional string name = 1; + optional bytes value = 2; + } + + repeated .CGCMsgMemCachedSet.KeyPair keys = 1; +} + +message CGCMsgMemCachedDelete { + repeated string keys = 1; +} + +message CGCMsgMemCachedStats { +} + +message CGCMsgMemCachedStatsResponse { + optional uint64 curr_connections = 1; + optional uint64 cmd_get = 2; + optional uint64 cmd_set = 3; + optional uint64 cmd_flush = 4; + optional uint64 get_hits = 5; + optional uint64 get_misses = 6; + optional uint64 delete_hits = 7; + optional uint64 delete_misses = 8; + optional uint64 bytes_read = 9; + optional uint64 bytes_written = 10; + optional uint64 limit_maxbytes = 11; + optional uint64 curr_items = 12; + optional uint64 evictions = 13; + optional uint64 bytes = 14; +} + +message CGCMsgSQLStats { + optional uint32 schema_catalog = 1; +} + +message CGCMsgSQLStatsResponse { + optional uint32 threads = 1; + optional uint32 threads_connected = 2; + optional uint32 threads_active = 3; + optional uint32 operations_submitted = 4; + optional uint32 prepared_statements_executed = 5; + optional uint32 non_prepared_statements_executed = 6; + optional uint32 deadlock_retries = 7; + optional uint32 operations_timed_out_in_queue = 8; + optional uint32 errors = 9; +} + +message CMsgAMAddFreeLicense { + optional fixed64 steamid = 1; + optional uint32 ip_public = 2; + optional uint32 packageid = 3; + optional string store_country_code = 4; +} + +message CMsgAMAddFreeLicenseResponse { + optional int32 eresult = 1 [default = 2]; + optional int32 purchase_result_detail = 2; + optional fixed64 transid = 3; +} + +message CGCMsgGetIPLocation { + repeated fixed32 ips = 1; +} + +message CIPLocationInfo { + optional uint32 ip = 1; + optional float latitude = 2; + optional float longitude = 3; + optional string country = 4; + optional string state = 5; + optional string city = 6; +} + +message CGCMsgGetIPLocationResponse { + repeated .CIPLocationInfo infos = 1; +} + +message CGCMsgGetIPASN { + repeated fixed32 ips = 1; +} + +message CIPASNInfo { + optional fixed32 ip = 1; + optional uint32 asn = 2; +} + +message CGCMsgGetIPASNResponse { + repeated .CIPASNInfo infos = 1; +} + +message CGCMsgSystemStatsSchema { + optional uint32 gc_app_id = 1; + optional bytes schema_kv = 2; +} + +message CGCMsgGetSystemStats { +} + +message CGCMsgGetSystemStatsResponse { + optional uint32 gc_app_id = 1; + optional bytes stats_kv = 2; + optional uint32 active_jobs = 3; + optional uint32 yielding_jobs = 4; + optional uint32 user_sessions = 5; + optional uint32 game_server_sessions = 6; + optional uint32 socaches = 7; + optional uint32 socaches_to_unload = 8; + optional uint32 socaches_loading = 9; + optional uint32 writeback_queue = 10; + optional uint32 steamid_locks = 11; + optional uint32 logon_queue = 12; + optional uint32 logon_jobs = 13; +} + +message CMsgAMSendEmail { + message ReplacementToken { + optional string token_name = 1; + optional string token_value = 2; + } + + message PersonaNameReplacementToken { + optional fixed64 steamid = 1; + optional string token_name = 2; + } + + optional fixed64 steamid = 1; + optional uint32 email_msg_type = 2; + optional uint32 email_format = 3; + repeated .CMsgAMSendEmail.PersonaNameReplacementToken persona_name_tokens = 5; + optional uint32 source_gc = 6; + repeated .CMsgAMSendEmail.ReplacementToken tokens = 7; +} + +message CMsgAMSendEmailResponse { + optional uint32 eresult = 1 [default = 2]; +} + +message CMsgGCGetEmailTemplate { + optional uint32 app_id = 1; + optional uint32 email_msg_type = 2; + optional int32 email_lang = 3; + optional int32 email_format = 4; +} + +message CMsgGCGetEmailTemplateResponse { + optional uint32 eresult = 1 [default = 2]; + optional bool template_exists = 2; + optional string template = 3; +} + +message CMsgAMGrantGuestPasses2 { + optional fixed64 steam_id = 1; + optional uint32 package_id = 2; + optional int32 passes_to_grant = 3; + optional int32 days_to_expiration = 4; + optional int32 action = 5; +} + +message CMsgAMGrantGuestPasses2Response { + optional int32 eresult = 1 [default = 2]; + optional int32 passes_granted = 2 [default = 0]; +} + +message CGCSystemMsg_GetAccountDetails { + option (msgpool_soft_limit) = 128; + option (msgpool_hard_limit) = 512; + + optional fixed64 steamid = 1; + optional uint32 appid = 2; +} + +message CGCSystemMsg_GetAccountDetails_Response { + option (msgpool_soft_limit) = 128; + option (msgpool_hard_limit) = 512; + + optional uint32 eresult_deprecated = 1 [default = 2]; + optional string account_name = 2; + optional string persona_name = 3; + optional bool is_profile_created = 26; + optional bool is_profile_public = 4; + optional bool is_inventory_public = 5; + optional bool is_vac_banned = 7; + optional bool is_cyber_cafe = 8; + optional bool is_school_account = 9; + optional bool is_limited = 10; + optional bool is_subscribed = 11; + optional uint32 package = 12; + optional bool is_free_trial_account = 13; + optional uint32 free_trial_expiration = 14; + optional bool is_low_violence = 15; + optional bool is_account_locked_down = 16; + optional bool is_community_banned = 17; + optional bool is_trade_banned = 18; + optional uint32 trade_ban_expiration = 19; + optional uint32 accountid = 20; + optional uint32 suspension_end_time = 21; + optional string currency = 22; + optional uint32 steam_level = 23; + optional uint32 friend_count = 24; + optional uint32 account_creation_time = 25; + optional bool is_steamguard_enabled = 27; + optional bool is_phone_verified = 28; + optional bool is_two_factor_auth_enabled = 29; + optional uint32 two_factor_enabled_time = 30; + optional uint32 phone_verification_time = 31; + optional uint64 phone_id = 33; + optional bool is_phone_identifying = 34; + optional uint32 rt_identity_linked = 35; + optional uint32 rt_birth_date = 36; + optional string txn_country_code = 37; +} + +message CMsgGCGetPersonaNames { + repeated fixed64 steamids = 1; +} + +message CMsgGCGetPersonaNames_Response { + message PersonaName { + optional fixed64 steamid = 1; + optional string persona_name = 2; + } + + repeated .CMsgGCGetPersonaNames_Response.PersonaName succeeded_lookups = 1; + repeated fixed64 failed_lookup_steamids = 2; +} + +message CMsgGCCheckFriendship { + optional fixed64 steamid_left = 1; + optional fixed64 steamid_right = 2; +} + +message CMsgGCCheckFriendship_Response { + optional bool success = 1; + optional bool found_friendship = 2; +} + +message CMsgGCGetAppFriendsList { + optional fixed64 steamid = 1; + optional bool include_friendship_timestamps = 2; +} + +message CMsgGCGetAppFriendsList_Response { + optional bool success = 1; + repeated fixed64 steamids = 2; + repeated fixed32 friendship_timestamps = 3; + repeated fixed32 last_playtimes = 4; +} + +message CMsgGCMsgMasterSetDirectory { + message SubGC { + optional uint32 dir_index = 1; + optional string name = 2; + optional string box = 3; + optional string command_line = 4; + optional string gc_binary = 5; + } + + optional uint32 master_dir_index = 1; + repeated .CMsgGCMsgMasterSetDirectory.SubGC dir = 2; +} + +message CMsgGCMsgMasterSetDirectory_Response { + optional int32 eresult = 1 [default = 2]; + optional string message = 2; +} + +message CMsgGCMsgWebAPIJobRequestForwardResponse { + optional uint32 dir_index = 1; +} + +message CGCSystemMsg_GetPurchaseTrust_Request { + optional fixed64 steamid = 1; +} + +message CGCSystemMsg_GetPurchaseTrust_Response { + optional bool has_prior_purchase_history = 1; + optional bool has_no_recent_password_resets = 2; + optional bool is_wallet_cash_trusted = 3; + optional uint32 time_all_trusted = 4; +} + +message CMsgGCHAccountVacStatusChange { + optional fixed64 steam_id = 1; + optional uint32 app_id = 2; + optional uint32 rtime_vacban_starts = 3; + optional bool is_banned_now = 4; + optional bool is_banned_future = 5; +} + +message CMsgGCGetPartnerAccountLink { + optional fixed64 steamid = 1; +} + +message CMsgGCGetPartnerAccountLink_Response { + optional uint32 pwid = 1; + optional uint32 nexonid = 2; +} + +message CMsgGCRoutingInfo { + enum RoutingMethod { + RANDOM = 0; + DISCARD = 1; + CLIENT_STEAMID = 2; + PROTOBUF_FIELD_UINT64 = 3; + WEBAPI_PARAM = 4; + WEBAPI_PARAM_STEAMID_ACCOUNTID = 5; + } + + repeated uint32 dir_index = 1; + optional .CMsgGCRoutingInfo.RoutingMethod method = 2 [default = RANDOM]; + optional .CMsgGCRoutingInfo.RoutingMethod fallback = 3 [default = DISCARD]; + optional uint32 protobuf_field = 4; + optional string webapi_param = 5; +} + +message CMsgGCMsgMasterSetWebAPIRouting { + message Entry { + optional string interface_name = 1; + optional string method_name = 2; + optional .CMsgGCRoutingInfo routing = 3; + } + + repeated .CMsgGCMsgMasterSetWebAPIRouting.Entry entries = 1; +} + +message CMsgGCMsgMasterSetClientMsgRouting { + message Entry { + optional uint32 msg_type = 1; + optional .CMsgGCRoutingInfo routing = 2; + } + + repeated .CMsgGCMsgMasterSetClientMsgRouting.Entry entries = 1; +} + +message CMsgGCMsgMasterSetWebAPIRouting_Response { + optional int32 eresult = 1 [default = 2]; +} + +message CMsgGCMsgMasterSetClientMsgRouting_Response { + optional int32 eresult = 1 [default = 2]; +} + +message CMsgGCMsgSetOptions { + message MessageRange { + required uint32 low = 1; + required uint32 high = 2; + } + + enum Option { + NOTIFY_USER_SESSIONS = 0; + NOTIFY_SERVER_SESSIONS = 1; + NOTIFY_ACHIEVEMENTS = 2; + NOTIFY_VAC_ACTION = 3; + } + + enum GCSQLVersion { + GCSQL_VERSION_BASELINE = 1; + GCSQL_VERSION_BOOLTYPE = 2; + } + + repeated .CMsgGCMsgSetOptions.Option options = 1; + repeated .CMsgGCMsgSetOptions.MessageRange client_msg_ranges = 2; + optional .CMsgGCMsgSetOptions.GCSQLVersion gcsql_version = 3 [default = GCSQL_VERSION_BASELINE]; +} + +message CMsgGCHUpdateSession { + message ExtraField { + optional string name = 1; + optional string value = 2; + } + + optional fixed64 steam_id = 1; + optional uint32 app_id = 2; + optional bool online = 3; + optional fixed64 server_steam_id = 4; + optional uint32 server_addr = 5; + optional uint32 server_port = 6; + optional uint32 os_type = 7; + optional uint32 client_addr = 8; + repeated .CMsgGCHUpdateSession.ExtraField extra_fields = 9; +} + +message CMsgNotificationOfSuspiciousActivity { + message MultipleGameInstances { + optional uint32 app_instance_count = 1; + repeated fixed64 other_steamids = 2; + } + + optional fixed64 steamid = 1; + optional uint32 appid = 2; + optional .CMsgNotificationOfSuspiciousActivity.MultipleGameInstances multiple_instances = 3; +} + +message CMsgDPPartnerMicroTxns { + message PartnerMicroTxn { + optional uint32 init_time = 1; + optional uint32 last_update_time = 2; + optional uint64 txn_id = 3; + optional uint32 account_id = 4; + optional uint32 line_item = 5; + optional uint64 item_id = 6; + optional uint32 def_index = 7; + optional uint64 price = 8; + optional uint64 tax = 9; + optional uint64 price_usd = 10; + optional uint64 tax_usd = 11; + optional uint32 purchase_type = 12; + optional uint32 steam_txn_type = 13; + optional string country_code = 14; + optional string region_code = 15; + optional int32 quantity = 16; + optional uint64 ref_trans_id = 17; + } + + message PartnerInfo { + optional uint32 partner_id = 1; + optional string partner_name = 2; + optional string currency_code = 3; + optional string currency_name = 4; + } + + optional uint32 appid = 1; + optional string gc_name = 2; + optional .CMsgDPPartnerMicroTxns.PartnerInfo partner = 3; + repeated .CMsgDPPartnerMicroTxns.PartnerMicroTxn transactions = 4; +} + +message CMsgDPPartnerMicroTxnsResponse { + enum EErrorCode { + k_MsgValid = 0; + k_MsgInvalidAppID = 1; + k_MsgInvalidPartnerInfo = 2; + k_MsgNoTransactions = 3; + k_MsgSQLFailure = 4; + k_MsgPartnerInfoDiscrepancy = 5; + k_MsgTransactionInsertFailed = 7; + k_MsgAlreadyRunning = 8; + k_MsgInvalidTransactionData = 9; + } + + optional uint32 eresult = 1 [default = 2]; + optional .CMsgDPPartnerMicroTxnsResponse.EErrorCode eerrorcode = 2 [default = k_MsgValid]; +} + +message CMsgGCHVacVerificationChange { + optional fixed64 steamid = 1; + optional uint32 appid = 2; + optional bool is_verified = 3; +} + +message CMsgGCHAccountTwoFactorChange { + optional fixed64 steamid = 1; + optional uint32 appid = 2; + optional bool twofactor_enabled = 3; +} + +message CMsgGCCheckClanMembership { + optional fixed64 steamid = 1; + optional uint32 clanid = 2; +} + +message CMsgGCCheckClanMembership_Response { + optional bool ismember = 1; +} diff --git a/Protobufs/artifact/steammessages_base.proto b/Protobufs/artifact/steammessages_base.proto new file mode 100644 index 0000000..3d9744e --- /dev/null +++ b/Protobufs/artifact/steammessages_base.proto @@ -0,0 +1,83 @@ +import "google/protobuf/descriptor.proto"; + +option optimize_for = SPEED; +option cc_generic_services = false; + +extend .google.protobuf.MessageOptions { + optional int32 msgpool_soft_limit = 50000 [default = 32]; + optional int32 msgpool_hard_limit = 50001 [default = 384]; +} + +message CMsgProtoBufHeader { + optional fixed64 steamid = 1; + optional int32 client_sessionid = 2; + optional uint32 routing_appid = 3; + optional fixed64 jobid_source = 10 [default = 18446744073709551615]; + optional fixed64 jobid_target = 11 [default = 18446744073709551615]; + optional string target_job_name = 12; + optional int32 seq_num = 24; + optional int32 eresult = 13 [default = 2]; + optional string error_message = 14; + optional uint32 ip = 15; + optional uint32 auth_account_flags = 16; + optional uint32 token_source = 22; + optional bool admin_spoofing_user = 23; + optional int32 transport_error = 17 [default = 1]; + optional uint64 messageid = 18 [default = 18446744073709551615]; + optional uint32 publisher_group_id = 19; + optional uint32 sysid = 20; + optional uint64 trace_tag = 21; + optional uint32 webapi_key_id = 25; +} + +message CMsgMulti { + optional uint32 size_unzipped = 1; + optional bytes message_body = 2; +} + +message CMsgProtobufWrapped { + optional bytes message_body = 1; +} + +message CMsgAuthTicket { + optional uint32 estate = 1; + optional uint32 eresult = 2 [default = 2]; + optional fixed64 steamid = 3; + optional fixed64 gameid = 4; + optional uint32 h_steam_pipe = 5; + optional uint32 ticket_crc = 6; + optional bytes ticket = 7; +} + +message CCDDBAppDetailCommon { + optional uint32 appid = 1; + optional string name = 2; + optional string icon = 3; + optional string logo = 4; + optional string logo_small = 5; + optional bool tool = 6; + optional bool demo = 7; + optional bool media = 8; + optional bool community_visible_stats = 9; + optional string friendly_name = 10; + optional string propagation = 11; + optional bool has_adult_content = 12; +} + +message CMsgAppRights { + optional bool edit_info = 1; + optional bool publish = 2; + optional bool view_error_data = 3; + optional bool download = 4; + optional bool upload_cdkeys = 5; + optional bool generate_cdkeys = 6; + optional bool view_financials = 7; + optional bool manage_ceg = 8; + optional bool manage_signing = 9; + optional bool manage_cdkeys = 10; + optional bool edit_marketing = 11; + optional bool economy_support = 12; + optional bool economy_support_supervisor = 13; + optional bool manage_pricing = 14; + optional bool broadcast_live = 15; +} diff --git a/Protobufs/artifact/steammessages_cloud.steamworkssdk.proto b/Protobufs/artifact/steammessages_cloud.steamworkssdk.proto new file mode 100644 index 0000000..7e4e759 --- /dev/null +++ b/Protobufs/artifact/steammessages_cloud.steamworkssdk.proto @@ -0,0 +1,68 @@ +import "steammessages_unified_base.steamworkssdk.proto"; + +message CCloud_GetUploadServerInfo_Request { + optional uint32 appid = 1 [(description) = "App ID to which a file will be uploaded to."]; +} + +message CCloud_GetUploadServerInfo_Response { + optional string server_url = 1; +} + +message CCloud_GetFileDetails_Request { + optional uint64 ugcid = 1 [(description) = "ID of the Cloud file to get details for."]; + optional uint32 appid = 2 [(description) = "App ID the file belongs to."]; +} + +message CCloud_UserFile { + optional uint32 appid = 1; + optional uint64 ugcid = 2; + optional string filename = 3; + optional uint64 timestamp = 4; + optional uint32 file_size = 5; + optional string url = 6; + optional fixed64 steamid_creator = 7; +} + +message CCloud_GetFileDetails_Response { + optional .CCloud_UserFile details = 1; +} + +message CCloud_EnumerateUserFiles_Request { + optional uint32 appid = 1 [(description) = "App ID to enumerate the files of."]; + optional bool extended_details = 2 [(description) = "(Optional) Get extended details back on the files found. Defaults to only returned the app Id and UGC Id of the files found."]; + optional uint32 count = 3 [(description) = "(Optional) Maximum number of results to return on this call. Defaults to a maximum of 500 files returned."]; + optional uint32 start_index = 4 [(description) = "(Optional) Starting index to begin enumeration at. Defaults to the beginning of the list."]; +} + +message CCloud_EnumerateUserFiles_Response { + repeated .CCloud_UserFile files = 1; + optional uint32 total_files = 2; +} + +message CCloud_Delete_Request { + optional string filename = 1; + optional uint32 appid = 2 [(description) = "App ID the file belongs to."]; +} + +message CCloud_Delete_Response { +} + +service Cloud { + option (service_description) = "A service for Steam Cloud operations."; + + rpc GetUploadServerInfo (.CCloud_GetUploadServerInfo_Request) returns (.CCloud_GetUploadServerInfo_Response) { + option (method_description) = "Returns the URL of the proper cloud server for a user."; + } + + rpc GetFileDetails (.CCloud_GetFileDetails_Request) returns (.CCloud_GetFileDetails_Response) { + option (method_description) = "Returns details on a Cloud file."; + } + + rpc EnumerateUserFiles (.CCloud_EnumerateUserFiles_Request) returns (.CCloud_EnumerateUserFiles_Response) { + option (method_description) = "Enumerates Cloud files for a user of a given app ID. Returns up to 500 files at a time."; + } + + rpc Delete (.CCloud_Delete_Request) returns (.CCloud_Delete_Response) { + option (method_description) = "Deletes a file from the user's cloud."; + } +} diff --git a/Protobufs/artifact/steammessages_oauth.steamworkssdk.proto b/Protobufs/artifact/steammessages_oauth.steamworkssdk.proto new file mode 100644 index 0000000..ee6449d --- /dev/null +++ b/Protobufs/artifact/steammessages_oauth.steamworkssdk.proto @@ -0,0 +1,18 @@ +import "steammessages_unified_base.steamworkssdk.proto"; + +message COAuthToken_ImplicitGrantNoPrompt_Request { + optional string clientid = 1 [(description) = "Client ID for which to count the number of issued tokens"]; +} + +message COAuthToken_ImplicitGrantNoPrompt_Response { + optional string access_token = 1 [(description) = "OAuth Token, granted on success"]; + optional string redirect_uri = 2 [(description) = "Redirection URI provided during client registration."]; +} + +service OAuthToken { + option (service_description) = "Service containing methods to manage OAuth tokens"; + + rpc ImplicitGrantNoPrompt (.COAuthToken_ImplicitGrantNoPrompt_Request) returns (.COAuthToken_ImplicitGrantNoPrompt_Response) { + option (method_description) = "Grants an implicit OAuth token (grant type 'token') for the specified client ID on behalf of a user without prompting"; + } +} diff --git a/Protobufs/artifact/steammessages_publishedfile.steamworkssdk.proto b/Protobufs/artifact/steammessages_publishedfile.steamworkssdk.proto new file mode 100644 index 0000000..96d60af --- /dev/null +++ b/Protobufs/artifact/steammessages_publishedfile.steamworkssdk.proto @@ -0,0 +1,233 @@ +import "steammessages_unified_base.steamworkssdk.proto"; + +message CPublishedFile_Subscribe_Request { + optional uint64 publishedfileid = 1; + optional uint32 list_type = 2; + optional int32 appid = 3; + optional bool notify_client = 4; +} + +message CPublishedFile_Subscribe_Response { +} + +message CPublishedFile_Unsubscribe_Request { + optional uint64 publishedfileid = 1; + optional uint32 list_type = 2; + optional int32 appid = 3; + optional bool notify_client = 4; +} + +message CPublishedFile_Unsubscribe_Response { +} + +message CPublishedFile_Publish_Request { + optional uint32 appid = 1 [(description) = "App Id this file is being published FROM."]; + optional uint32 consumer_appid = 2 [(description) = "App Id this file is being published TO."]; + optional string cloudfilename = 3 [(description) = "Name of the file to publish in the user's cloud."]; + optional string preview_cloudfilename = 4 [(description) = "Name of the file to use as the published file's preview."]; + optional string title = 5 [(description) = "Text title for the published file."]; + optional string file_description = 6 [(description) = "Text description for the published file."]; + optional uint32 file_type = 7 [(description) = "(EWorkshopFileType) Type of Workshop file to publish."]; + optional string consumer_shortcut_name = 8 [(description) = "Shortcut name for the published file."]; + optional string youtube_username = 9 [(description) = "(Optional) User's YouTube account username."]; + optional string youtube_videoid = 10 [(description) = "(Optional) Video Id of a YouTube video for this published file."]; + optional uint32 visibility = 11 [(description) = "(ERemoteStoragePublishedFileVisibility) Visibility of the published file (private, friends, public, etc.)"]; + optional string redirect_uri = 12 [(description) = "(Optional) If supplied, the resulting published file's Id is appended to the URI."]; + repeated string tags = 13 [(description) = "Array of text tags to apply to the published file."]; + optional string collection_type = 14 [(description) = "(Optional) Type of collection the published file represents."]; + optional string game_type = 15 [(description) = "(Optional) Type of game the published file represents."]; + optional string url = 16 [(description) = "(Optional) If this represents a game, this is the URL to that game's page."]; +} + +message CPublishedFile_Publish_Response { + optional uint64 publishedfileid = 1; + optional string redirect_uri = 2; +} + +message CPublishedFile_GetDetails_Request { + repeated fixed64 publishedfileids = 1 [(description) = "Set of published file Ids to retrieve details for."]; + optional bool includetags = 2 [(description) = "If true, return tag information in the returned details."]; + optional bool includeadditionalpreviews = 3 [(description) = "If true, return preview information in the returned details."]; + optional bool includechildren = 4 [(description) = "If true, return children in the returned details."]; + optional bool includekvtags = 5 [(description) = "If true, return key value tags in the returned details."]; + optional bool includevotes = 6 [(description) = "If true, return vote data in the returned details."]; + optional bool short_description = 8 [(description) = "If true, return a short description instead of the full description."]; +} + +message PublishedFileDetails { + message Tag { + optional string tag = 1; + optional bool adminonly = 2; + } + + message Preview { + optional uint64 previewid = 1; + optional uint32 sortorder = 2; + optional string url = 3; + optional uint32 size = 4; + optional string filename = 5; + optional string youtubevideoid = 6; + } + + message Child { + optional uint64 publishedfileid = 1; + optional uint32 sortorder = 2; + optional uint32 file_type = 3; + } + + message KVTag { + optional string key = 1; + optional string value = 2; + } + + message VoteData { + optional float score = 1; + optional uint32 votes_up = 2; + optional uint32 votes_down = 3; + } + + optional uint32 result = 1; + optional uint64 publishedfileid = 2; + optional fixed64 creator = 3; + optional uint32 creator_appid = 4; + optional uint32 consumer_appid = 5; + optional uint32 consumer_shortcutid = 6; + optional string filename = 7; + optional uint64 file_size = 8; + optional uint64 preview_file_size = 9; + optional string file_url = 10; + optional string preview_url = 11; + optional string youtubevideoid = 12; + optional string url = 13; + optional fixed64 hcontent_file = 14; + optional fixed64 hcontent_preview = 15; + optional string title = 16; + optional string file_description = 17; + optional string short_description = 18; + optional uint32 time_created = 19; + optional uint32 time_updated = 20; + optional uint32 visibility = 21; + optional uint32 flags = 22; + optional bool workshop_file = 23; + optional bool workshop_accepted = 24; + optional bool show_subscribe_all = 25; + optional int32 num_comments_developer = 26; + optional int32 num_comments_public = 27; + optional bool banned = 28; + optional string ban_reason = 29; + optional fixed64 banner = 30; + optional bool can_be_deleted = 31; + optional bool incompatible = 32; + optional string app_name = 33; + optional uint32 file_type = 34; + optional bool can_subscribe = 35; + optional uint32 subscriptions = 36; + optional uint32 favorited = 37; + optional uint32 followers = 38; + optional uint32 lifetime_subscriptions = 39; + optional uint32 lifetime_favorited = 40; + optional uint32 lifetime_followers = 41; + optional uint32 views = 42; + optional uint32 image_width = 43; + optional uint32 image_height = 44; + optional string image_url = 45; + optional bool spoiler_tag = 46; + optional uint32 shortcutid = 47; + optional string shortcutname = 48; + optional uint32 num_children = 49; + optional uint32 num_reports = 50; + repeated .PublishedFileDetails.Preview previews = 51; + repeated .PublishedFileDetails.Tag tags = 52; + repeated .PublishedFileDetails.Child children = 53; + repeated .PublishedFileDetails.KVTag kvtags = 54; + optional .PublishedFileDetails.VoteData vote_data = 55; + optional uint32 time_subscribed = 56 [(description) = "Only valid in PublishedFile.GetUserFiles and not normal PublishedFile.GetDetail calls"]; +} + +message CPublishedFile_GetDetails_Response { + repeated .PublishedFileDetails publishedfiledetails = 1; +} + +message CPublishedFile_GetUserFiles_Request { + optional uint32 appid = 1 [(description) = "App Id to retrieve published files from."]; + optional uint32 page = 3 [default = 1, (description) = "(Optional) Starting page for results."]; + optional uint32 numperpage = 4 [default = 1, (description) = "(Optional) The number of results, per page to return."]; + optional string sortmethod = 6 [default = "lastupdated", (description) = "(Optional) Sorting method to use on returned values."]; + optional bool totalonly = 7 [(description) = "(Optional) If true, only return the total number of files that satisfy this query."]; + optional uint32 privacy = 9 [(description) = "(optional) Filter by privacy settings."]; + optional bool ids_only = 10 [(description) = "(Optional) If true, only return the published file ids of files that satisfy this query."]; + repeated string requiredtags = 11 [(description) = "(Optional) Tags that must be present on a published file to satisfy the query."]; + repeated string excludedtags = 12 [(description) = "(Optional) Tags that must NOT be present on a published file to satisfy the query."]; +} + +message CPublishedFile_GetUserFiles_Response { + message App { + optional uint32 appid = 1; + optional string name = 2; + optional uint32 shortcutid = 3; + optional bool private = 4; + } + + optional uint32 total = 1; + optional uint32 startindex = 2; + repeated .PublishedFileDetails publishedfiledetails = 3; + repeated .CPublishedFile_GetUserFiles_Response.App apps = 4; +} + +message CPublishedFile_Update_Request { + optional uint32 appid = 1 [(description) = "App Id this published file belongs to."]; + optional fixed64 publishedfileid = 2 [(description) = "Published file id of the file we'd like update."]; + optional string title = 3 [(description) = "(Optional) Title of the published file."]; + optional string file_description = 4 [(description) = "(Optional) Description of the published file."]; + optional uint32 visibility = 5 [(description) = "(Optional) Visibility of the published file."]; + repeated string tags = 6 [(description) = "(Optional) Set of tags for the published file."]; + optional string filename = 7 [(description) = "(Optional) Filename for the published file."]; + optional string preview_filename = 8 [(description) = "(Optional) Preview filename for the published file."]; +} + +message CPublishedFile_Update_Response { +} + +message CPublishedFile_RefreshVotingQueue_Request { + optional uint32 appid = 1; + optional uint32 matching_file_type = 2 [(description) = "EPublishedFileInfoMatchingFileType"]; + repeated string tags = 3 [(description) = "Include files that have all the tags or any of the tags if match_all_tags is set to false."]; + optional bool match_all_tags = 4 [default = true, (description) = "If true, then files must have all the tags specified. If false, then must have at least one of the tags specified."]; + repeated string excluded_tags = 5 [(description) = "Exclude any files that have any of these tags."]; + optional uint32 desired_queue_size = 6 [(description) = "Desired number of items in the voting queue. May be clamped by the server"]; +} + +message CPublishedFile_RefreshVotingQueue_Response { +} + +service PublishedFile { + option (service_description) = "A service to access published file data"; + + rpc Subscribe (.CPublishedFile_Subscribe_Request) returns (.CPublishedFile_Subscribe_Response) { + option (method_description) = "Subscribes the user to the published file"; + } + + rpc Unsubscribe (.CPublishedFile_Unsubscribe_Request) returns (.CPublishedFile_Unsubscribe_Response) { + option (method_description) = "Unsubscribes the user from the published file"; + } + + rpc Publish (.CPublishedFile_Publish_Request) returns (.CPublishedFile_Publish_Response) { + option (method_description) = "Publishes a clouded user file to the Workshop."; + } + + rpc GetDetails (.CPublishedFile_GetDetails_Request) returns (.CPublishedFile_GetDetails_Response) { + option (method_description) = "Retrieves information about a set of published files."; + } + + rpc GetUserFiles (.CPublishedFile_GetUserFiles_Request) returns (.CPublishedFile_GetUserFiles_Response) { + option (method_description) = "Retrieves files published by a user."; + } + + rpc Update (.CPublishedFile_Update_Request) returns (.CPublishedFile_Update_Response) { + option (method_description) = "Updates information about a published file."; + } + + rpc RefreshVotingQueue (.CPublishedFile_RefreshVotingQueue_Request) returns (.CPublishedFile_RefreshVotingQueue_Response) { + option (method_description) = "Refresh the voting queue for the user"; + } +} diff --git a/Protobufs/artifact/steammessages_unified_base.steamworkssdk.proto b/Protobufs/artifact/steammessages_unified_base.steamworkssdk.proto new file mode 100644 index 0000000..84ab32a --- /dev/null +++ b/Protobufs/artifact/steammessages_unified_base.steamworkssdk.proto @@ -0,0 +1,30 @@ +import "google/protobuf/descriptor.proto"; + +option optimize_for = SPEED; +option cc_generic_services = false; + +extend .google.protobuf.FieldOptions { + optional string description = 50000; +} + +extend .google.protobuf.ServiceOptions { + optional string service_description = 50000; + optional .EProtoExecutionSite service_execution_site = 50008 [default = k_EProtoExecutionSiteUnknown]; +} + +extend .google.protobuf.MethodOptions { + optional string method_description = 50000; +} + +extend .google.protobuf.EnumOptions { + optional string enum_description = 50000; +} + +extend .google.protobuf.EnumValueOptions { + optional string enum_value_description = 50000; +} + +enum EProtoExecutionSite { + k_EProtoExecutionSiteUnknown = 0; + k_EProtoExecutionSiteSteamClient = 3; +} diff --git a/Protobufs/artifact/steamnetworkingsockets_messages.proto b/Protobufs/artifact/steamnetworkingsockets_messages.proto new file mode 100644 index 0000000..44bd031 --- /dev/null +++ b/Protobufs/artifact/steamnetworkingsockets_messages.proto @@ -0,0 +1,113 @@ +option optimize_for = SPEED; +option cc_generic_services = false; + +message CMsgSteamDatagramSessionCryptInfo { + enum EKeyType { + INVALID = 0; + CURVE25519 = 1; + } + + optional .CMsgSteamDatagramSessionCryptInfo.EKeyType key_type = 1 [default = INVALID]; + optional bytes key_data = 2; + optional fixed64 nonce = 3; + optional bool is_snp = 4; +} + +message CMsgSteamDatagramSessionCryptInfoSigned { + optional bytes info = 1; + optional bytes signature = 2; +} + +message CMsgSteamDatagramDiagnostic { + optional uint32 severity = 1; + optional string text = 2; +} + +message CMsgSteamDatagramLinkInstantaneousStats { + optional uint32 out_packets_per_sec_x10 = 1; + optional uint32 out_bytes_per_sec = 2; + optional uint32 in_packets_per_sec_x10 = 3; + optional uint32 in_bytes_per_sec = 4; + optional uint32 ping_ms = 5; + optional uint32 packets_dropped_pct = 6; + optional uint32 packets_weird_sequence_pct = 7; + optional uint32 peak_jitter_usec = 8; +} + +message CMsgSteamDatagramLinkLifetimeStats { + optional uint64 packets_sent = 3; + optional uint64 kb_sent = 4; + optional uint64 packets_recv = 5; + optional uint64 kb_recv = 6; + optional uint64 packets_recv_sequenced = 7; + optional uint64 packets_recv_dropped = 8; + optional uint64 packets_recv_out_of_order = 9; + optional uint64 packets_recv_duplicate = 10; + optional uint64 packets_recv_lurch = 11; + optional uint32 quality_histogram_100 = 21; + optional uint32 quality_histogram_99 = 22; + optional uint32 quality_histogram_97 = 23; + optional uint32 quality_histogram_95 = 24; + optional uint32 quality_histogram_90 = 25; + optional uint32 quality_histogram_75 = 26; + optional uint32 quality_histogram_50 = 27; + optional uint32 quality_histogram_1 = 28; + optional uint32 quality_histogram_dead = 29; + optional uint32 quality_ntile_2nd = 30; + optional uint32 quality_ntile_5th = 31; + optional uint32 quality_ntile_25th = 32; + optional uint32 quality_ntile_50th = 33; + optional uint32 ping_histogram_25 = 41; + optional uint32 ping_histogram_50 = 42; + optional uint32 ping_histogram_75 = 43; + optional uint32 ping_histogram_100 = 44; + optional uint32 ping_histogram_125 = 45; + optional uint32 ping_histogram_150 = 46; + optional uint32 ping_histogram_200 = 47; + optional uint32 ping_histogram_300 = 48; + optional uint32 ping_histogram_max = 49; + optional uint32 ping_ntile_5th = 50; + optional uint32 ping_ntile_50th = 51; + optional uint32 ping_ntile_75th = 52; + optional uint32 ping_ntile_95th = 53; + optional uint32 ping_ntile_98th = 54; + optional uint32 jitter_histogram_negligible = 61; + optional uint32 jitter_histogram_1 = 62; + optional uint32 jitter_histogram_2 = 63; + optional uint32 jitter_histogram_5 = 64; + optional uint32 jitter_histogram_10 = 65; + optional uint32 jitter_histogram_20 = 66; + optional uint32 txspeed_max = 67; + optional uint32 txspeed_histogram_16 = 68; + optional uint32 txspeed_histogram_32 = 69; + optional uint32 txspeed_histogram_64 = 70; + optional uint32 txspeed_histogram_128 = 71; + optional uint32 txspeed_histogram_256 = 72; + optional uint32 txspeed_histogram_512 = 73; + optional uint32 txspeed_histogram_1024 = 74; + optional uint32 txspeed_histogram_max = 75; + optional uint32 txspeed_ntile_5th = 76; + optional uint32 txspeed_ntile_50th = 77; + optional uint32 txspeed_ntile_75th = 78; + optional uint32 txspeed_ntile_95th = 79; + optional uint32 txspeed_ntile_98th = 80; + optional uint32 rxspeed_max = 81; + optional uint32 rxspeed_histogram_16 = 82; + optional uint32 rxspeed_histogram_32 = 83; + optional uint32 rxspeed_histogram_64 = 84; + optional uint32 rxspeed_histogram_128 = 85; + optional uint32 rxspeed_histogram_256 = 86; + optional uint32 rxspeed_histogram_512 = 87; + optional uint32 rxspeed_histogram_1024 = 88; + optional uint32 rxspeed_histogram_max = 89; + optional uint32 rxspeed_ntile_5th = 90; + optional uint32 rxspeed_ntile_50th = 91; + optional uint32 rxspeed_ntile_75th = 92; + optional uint32 rxspeed_ntile_95th = 93; + optional uint32 rxspeed_ntile_98th = 94; +} + +message CMsgSteamDatagramConnectionQuality { + optional .CMsgSteamDatagramLinkInstantaneousStats instantaneous = 1; + optional .CMsgSteamDatagramLinkLifetimeStats lifetime = 2; +} diff --git a/Protobufs/artifact/steamnetworkingsockets_messages_certs.proto b/Protobufs/artifact/steamnetworkingsockets_messages_certs.proto new file mode 100644 index 0000000..0956618 --- /dev/null +++ b/Protobufs/artifact/steamnetworkingsockets_messages_certs.proto @@ -0,0 +1,32 @@ +option optimize_for = SPEED; +option cc_generic_services = false; + +message CMsgSteamNetworkingIdentity { + optional fixed64 steam_id = 16; + optional string xbox_pairwise_id = 17; + optional bytes generic_bytes = 2; + optional string generic_string = 3; + optional bytes ipv6_and_port = 4; +} + +message CMsgSteamDatagramCertificate { + enum EKeyType { + INVALID = 0; + ED25519 = 1; + } + + optional .CMsgSteamDatagramCertificate.EKeyType key_type = 1 [default = INVALID]; + optional bytes key_data = 2; + optional fixed64 legacy_steam_id = 4; + optional .CMsgSteamNetworkingIdentity identity = 11; + repeated fixed32 gameserver_datacenter_ids = 5; + optional fixed32 time_created = 8; + optional fixed32 time_expiry = 9; + optional uint32 app_id = 10; +} + +message CMsgSteamDatagramCertificateSigned { + optional bytes cert = 4; + optional fixed64 ca_key_id = 5; + optional bytes ca_signature = 6; +} diff --git a/Protobufs/artifact/steamnetworkingsockets_messages_udp.proto b/Protobufs/artifact/steamnetworkingsockets_messages_udp.proto new file mode 100644 index 0000000..e62945b --- /dev/null +++ b/Protobufs/artifact/steamnetworkingsockets_messages_udp.proto @@ -0,0 +1,76 @@ +import "steamnetworkingsockets_messages_certs.proto"; +import "steamnetworkingsockets_messages.proto"; + +option optimize_for = SPEED; +option cc_generic_services = false; + +enum ESteamNetworkingUDPMsgID { + k_ESteamNetworkingUDPMsg_ChallengeRequest = 32; + k_ESteamNetworkingUDPMsg_ChallengeReply = 33; + k_ESteamNetworkingUDPMsg_ConnectRequest = 34; + k_ESteamNetworkingUDPMsg_ConnectOK = 35; + k_ESteamNetworkingUDPMsg_ConnectionClosed = 36; + k_ESteamNetworkingUDPMsg_NoConnection = 37; +} + +message CMsgSteamSockets_UDP_ChallengeRequest { + optional fixed32 connection_id = 1; + optional fixed64 my_timestamp = 3; + optional uint32 protocol_version = 4; +} + +message CMsgSteamSockets_UDP_ChallengeReply { + optional fixed32 connection_id = 1; + optional fixed64 challenge = 2; + optional fixed64 your_timestamp = 3; + optional uint32 protocol_version = 4; +} + +message CMsgSteamSockets_UDP_ConnectRequest { + optional fixed32 client_connection_id = 1; + optional fixed64 challenge = 2; + optional fixed64 my_timestamp = 5; + optional uint32 ping_est_ms = 6; + optional .CMsgSteamDatagramSessionCryptInfoSigned crypt = 7; + optional .CMsgSteamDatagramCertificateSigned cert = 4; + optional uint32 protocol_version = 8; + optional .CMsgSteamNetworkingIdentity identity = 9; + optional fixed64 legacy_client_steam_id = 3; +} + +message CMsgSteamSockets_UDP_ConnectOK { + optional fixed32 client_connection_id = 1; + optional fixed32 server_connection_id = 5; + optional fixed64 your_timestamp = 3; + optional uint32 delay_time_usec = 4; + optional .CMsgSteamDatagramSessionCryptInfoSigned crypt = 7; + optional .CMsgSteamDatagramCertificateSigned cert = 8; + optional uint32 protocol_version = 9; + optional .CMsgSteamNetworkingIdentity identity = 10; + optional fixed64 legacy_server_steam_id = 2; +} + +message CMsgSteamSockets_UDP_ConnectionClosed { + optional fixed32 to_connection_id = 4; + optional fixed32 from_connection_id = 5; + optional string debug = 2; + optional uint32 reason_code = 3; +} + +message CMsgSteamSockets_UDP_NoConnection { + optional fixed32 from_connection_id = 2; + optional fixed32 to_connection_id = 3; +} + +message CMsgSteamSockets_UDP_Stats { + enum Flags { + ACK_REQUEST_E2E = 2; + ACK_REQUEST_IMMEDIATE = 4; + } + + optional .CMsgSteamDatagramConnectionQuality stats = 1; + optional uint32 flags = 3; + optional fixed32 to_connection_id = 9; + optional fixed32 from_connection_id = 10; + optional uint32 seq_num = 4; +} diff --git a/Protobufs/artifact/te.proto b/Protobufs/artifact/te.proto new file mode 100644 index 0000000..6b7be60 --- /dev/null +++ b/Protobufs/artifact/te.proto @@ -0,0 +1,257 @@ +import "networkbasetypes.proto"; + +option optimize_for = SPEED; +option cc_generic_services = false; + +enum ETEProtobufIds { + TE_EffectDispatchId = 400; + TE_ArmorRicochetId = 401; + TE_BeamEntPointId = 402; + TE_BeamEntsId = 403; + TE_BeamPointsId = 404; + TE_BeamRingId = 405; + TE_BSPDecalId = 407; + TE_BubblesId = 408; + TE_BubbleTrailId = 409; + TE_DecalId = 410; + TE_WorldDecalId = 411; + TE_EnergySplashId = 412; + TE_FizzId = 413; + TE_ShatterSurfaceId = 414; + TE_GlowSpriteId = 415; + TE_ImpactId = 416; + TE_MuzzleFlashId = 417; + TE_BloodStreamId = 418; + TE_ExplosionId = 419; + TE_DustId = 420; + TE_LargeFunnelId = 421; + TE_SparksId = 422; + TE_PhysicsPropId = 423; + TE_PlayerDecalId = 424; + TE_ProjectedDecalId = 425; + TE_SmokeId = 426; +} + +message CMsgTEArmorRicochet { + optional .CMsgVector pos = 1; + optional .CMsgVector dir = 2; +} + +message CMsgTEBaseBeam { + optional fixed64 modelindex = 1; + optional fixed64 haloindex = 2; + optional uint32 startframe = 3; + optional uint32 framerate = 4; + optional float life = 5; + optional float width = 6; + optional float endwidth = 7; + optional uint32 fadelength = 8; + optional float amplitude = 9; + optional fixed32 color = 10; + optional uint32 speed = 11; + optional uint32 flags = 12; +} + +message CMsgTEBeamEntPoint { + optional .CMsgTEBaseBeam base = 1; + optional uint32 startentity = 2; + optional uint32 endentity = 3; + optional .CMsgVector start = 4; + optional .CMsgVector end = 5; +} + +message CMsgTEBeamEnts { + optional .CMsgTEBaseBeam base = 1; + optional uint32 startentity = 2; + optional uint32 endentity = 3; +} + +message CMsgTEBeamPoints { + optional .CMsgTEBaseBeam base = 1; + optional .CMsgVector start = 2; + optional .CMsgVector end = 3; +} + +message CMsgTEBeamRing { + optional .CMsgTEBaseBeam base = 1; + optional uint32 startentity = 2; + optional uint32 endentity = 3; +} + +message CMsgTEBSPDecal { + optional .CMsgVector origin = 1; + optional .CMsgVector normal = 2; + optional .CMsgVector saxis = 3; + optional uint32 entity = 4; + optional uint32 index = 5; +} + +message CMsgTEBubbles { + optional .CMsgVector mins = 1; + optional .CMsgVector maxs = 2; + optional float height = 3; + optional uint32 count = 4; + optional float speed = 5; +} + +message CMsgTEBubbleTrail { + optional .CMsgVector mins = 1; + optional .CMsgVector maxs = 2; + optional float waterz = 3; + optional uint32 count = 4; + optional float speed = 5; +} + +message CMsgTEDecal { + optional .CMsgVector origin = 1; + optional .CMsgVector start = 2; + optional uint32 entity = 3; + optional uint32 hitbox = 4; + optional uint32 index = 5; +} + +message CMsgEffectData { + optional .CMsgVector origin = 1; + optional .CMsgVector start = 2; + optional .CMsgVector normal = 3; + optional .CMsgQAngle angles = 4; + optional fixed32 entity = 5; + optional fixed32 otherentity = 6; + optional float scale = 7; + optional float magnitude = 8; + optional float radius = 9; + optional fixed32 surfaceprop = 10; + optional fixed64 effectindex = 11; + optional uint32 damagetype = 12; + optional uint32 material = 13; + optional uint32 hitbox = 14; + optional uint32 color = 15; + optional uint32 flags = 16; + optional int32 attachmentindex = 17; + optional uint32 effectname = 18; + optional uint32 attachmentname = 19; +} + +message CMsgTEEffectDispatch { + optional .CMsgEffectData effectdata = 1; +} + +message CMsgTEEnergySplash { + optional .CMsgVector pos = 1; + optional .CMsgVector dir = 2; + optional bool explosive = 3; +} + +message CMsgTEFizz { + optional uint32 entity = 1; + optional uint32 density = 2; + optional int32 current = 3; +} + +message CMsgTEShatterSurface { + optional .CMsgVector origin = 1; + optional .CMsgQAngle angles = 2; + optional .CMsgVector force = 3; + optional .CMsgVector forcepos = 4; + optional float width = 5; + optional float height = 6; + optional float shardsize = 7; + optional uint32 surfacetype = 8; + optional fixed32 frontcolor = 9; + optional fixed32 backcolor = 10; +} + +message CMsgTEGlowSprite { + optional .CMsgVector origin = 1; + optional float scale = 2; + optional float life = 3; + optional uint32 brightness = 4; +} + +message CMsgTEImpact { + optional .CMsgVector origin = 1; + optional .CMsgVector normal = 2; + optional uint32 type = 3; +} + +message CMsgTEMuzzleFlash { + optional .CMsgVector origin = 1; + optional .CMsgQAngle angles = 2; + optional float scale = 3; + optional uint32 type = 4; +} + +message CMsgTEBloodStream { + optional .CMsgVector origin = 1; + optional .CMsgVector direction = 2; + optional fixed32 color = 3; + optional uint32 amount = 4; +} + +message CMsgTEExplosion { + optional .CMsgVector origin = 1; + optional uint32 framerate = 2; + optional uint32 flags = 3; + optional .CMsgVector normal = 4; + optional uint32 materialtype = 5; + optional uint32 radius = 6; + optional uint32 magnitude = 7; + optional float scale = 8; + optional bool affect_ragdolls = 9; +} + +message CMsgTEDust { + optional .CMsgVector origin = 1; + optional float size = 2; + optional float speed = 3; + optional .CMsgVector direction = 4; +} + +message CMsgTELargeFunnel { + optional .CMsgVector origin = 1; + optional uint32 reversed = 2; +} + +message CMsgTESparks { + optional .CMsgVector origin = 1; + optional uint32 magnitude = 2; + optional uint32 length = 3; + optional .CMsgVector direction = 4; +} + +message CMsgTEPhysicsProp { + optional .CMsgVector origin = 1; + optional .CMsgVector velocity = 2; + optional .CMsgQAngle angles = 3; + optional fixed32 skin = 4; + optional uint32 flags = 5; + optional uint32 effects = 6; + optional fixed32 color = 7; + optional fixed64 modelindex = 8; + optional uint32 unused_breakmodelsnottomake = 9; + optional float scale = 10; +} + +message CMsgTEPlayerDecal { + optional .CMsgVector origin = 1; + optional uint32 player = 2; + optional uint32 entity = 3; +} + +message CMsgTEProjectedDecal { + optional .CMsgVector origin = 1; + optional .CMsgQAngle angles = 2; + optional uint32 index = 3; + optional float distance = 4; +} + +message CMsgTESmoke { + optional .CMsgVector origin = 1; + optional float scale = 2; +} + +message CMsgTEWorldDecal { + optional .CMsgVector origin = 1; + optional .CMsgVector normal = 2; + optional uint32 index = 3; +} diff --git a/Protobufs/artifact/uifontfile_format.proto b/Protobufs/artifact/uifontfile_format.proto new file mode 100644 index 0000000..e9c11ea --- /dev/null +++ b/Protobufs/artifact/uifontfile_format.proto @@ -0,0 +1,16 @@ +option optimize_for = SPEED; +option cc_generic_services = false; + +message CUIFontFilePB { + optional string font_file_name = 1; + optional bytes opentype_font_data = 2; +} + +message CUIFontFilePackagePB { + message CUIEncryptedFontFilePB { + optional bytes encrypted_contents = 1; + } + + required uint32 package_version = 1; + repeated .CUIFontFilePackagePB.CUIEncryptedFontFilePB encrypted_font_files = 2; +} diff --git a/Protobufs/artifact/usermessages.proto b/Protobufs/artifact/usermessages.proto new file mode 100644 index 0000000..f398076 --- /dev/null +++ b/Protobufs/artifact/usermessages.proto @@ -0,0 +1,473 @@ +import "networkbasetypes.proto"; + +option optimize_for = SPEED; +option cc_generic_services = false; + +enum EBaseUserMessages { + UM_AchievementEvent = 101; + UM_CloseCaption = 102; + UM_CloseCaptionDirect = 103; + UM_CurrentTimescale = 104; + UM_DesiredTimescale = 105; + UM_Fade = 106; + UM_GameTitle = 107; + UM_HintText = 109; + UM_HudMsg = 110; + UM_HudText = 111; + UM_KeyHintText = 112; + UM_ColoredText = 113; + UM_RequestState = 114; + UM_ResetHUD = 115; + UM_Rumble = 116; + UM_SayText = 117; + UM_SayText2 = 118; + UM_SayTextChannel = 119; + UM_Shake = 120; + UM_ShakeDir = 121; + UM_TextMsg = 124; + UM_ScreenTilt = 125; + UM_Train = 126; + UM_VGUIMenu = 127; + UM_VoiceMask = 128; + UM_VoiceSubtitle = 129; + UM_SendAudio = 130; + UM_ItemPickup = 131; + UM_AmmoDenied = 132; + UM_CrosshairAngle = 133; + UM_ShowMenu = 134; + UM_CreditsMsg = 135; + UM_CloseCaptionPlaceholder = 142; + UM_CameraTransition = 143; + UM_AudioParameter = 144; + UM_ParticleManager = 145; + UM_HudError = 146; + UM_CustomGameEvent = 148; + UM_HandHapticPulse = 149; + UM_AnimGraphUpdate = 150; + UM_HandHapticPulsePrecise = 151; + UM_MAX_BASE = 200; +} + +enum EBaseEntityMessages { + EM_PlayJingle = 136; + EM_ScreenOverlay = 137; + EM_RemoveAllDecals = 138; + EM_PropagateForce = 139; + EM_DoSpark = 140; + EM_FixAngle = 141; +} + +enum eRollType { + ROLL_NONE = -1; + ROLL_STATS = 0; + ROLL_CREDITS = 1; + ROLL_LATE_JOIN_LOGO = 2; + ROLL_OUTTRO = 3; +} + +enum PARTICLE_MESSAGE { + GAME_PARTICLE_MANAGER_EVENT_CREATE = 0; + GAME_PARTICLE_MANAGER_EVENT_UPDATE = 1; + GAME_PARTICLE_MANAGER_EVENT_UPDATE_FORWARD = 2; + GAME_PARTICLE_MANAGER_EVENT_UPDATE_ORIENTATION = 3; + GAME_PARTICLE_MANAGER_EVENT_UPDATE_FALLBACK = 4; + GAME_PARTICLE_MANAGER_EVENT_UPDATE_ENT = 5; + GAME_PARTICLE_MANAGER_EVENT_UPDATE_OFFSET = 6; + GAME_PARTICLE_MANAGER_EVENT_DESTROY = 7; + GAME_PARTICLE_MANAGER_EVENT_DESTROY_INVOLVING = 8; + GAME_PARTICLE_MANAGER_EVENT_RELEASE = 9; + GAME_PARTICLE_MANAGER_EVENT_LATENCY = 10; + GAME_PARTICLE_MANAGER_EVENT_SHOULD_DRAW = 11; + GAME_PARTICLE_MANAGER_EVENT_FROZEN = 12; + GAME_PARTICLE_MANAGER_EVENT_CHANGE_CONTROL_POINT_ATTACHMENT = 13; + GAME_PARTICLE_MANAGER_EVENT_UPDATE_ENTITY_POSITION = 14; + GAME_PARTICLE_MANAGER_EVENT_SET_FOW_PROPERTIES = 15; + GAME_PARTICLE_MANAGER_EVENT_SET_TEXT = 16; + GAME_PARTICLE_MANAGER_EVENT_SET_SHOULD_CHECK_FOW = 17; +} + +enum EHapticPulseType { + VR_HAND_HAPTIC_PULSE_LIGHT = 0; + VR_HAND_HAPTIC_PULSE_MEDIUM = 1; + VR_HAND_HAPTIC_PULSE_STRONG = 2; +} + +message CUserMessageAchievementEvent { + optional uint32 achievement = 1; +} + +message CUserMessageCloseCaption { + optional fixed32 hash = 1; + optional float duration = 2; + optional bool from_player = 3; + optional int32 ent_index = 4; +} + +message CUserMessageCloseCaptionDirect { + optional fixed32 hash = 1; + optional float duration = 2; + optional bool from_player = 3; + optional int32 ent_index = 4; +} + +message CUserMessageCloseCaptionPlaceholder { + optional string string = 1; + optional float duration = 2; + optional bool from_player = 3; + optional int32 ent_index = 4; +} + +message CUserMessageCurrentTimescale { + optional float current = 1; +} + +message CUserMessageDesiredTimescale { + optional float desired = 1; + optional float acceleration = 2; + optional float minblendrate = 3; + optional float blenddeltamultiplier = 4; +} + +message CUserMessageFade { + optional uint32 duration = 1; + optional uint32 hold_time = 2; + optional uint32 flags = 3; + optional fixed32 color = 4; +} + +message CUserMessageShake { + optional uint32 command = 1; + optional float amplitude = 2; + optional float frequency = 3; + optional float duration = 4; +} + +message CUserMessageShakeDir { + optional .CUserMessageShake shake = 1; + optional .CMsgVector direction = 2; +} + +message CUserMessageScreenTilt { + optional uint32 command = 1; + optional bool ease_in_out = 2; + optional .CMsgVector angle = 3; + optional float duration = 4; + optional float time = 5; +} + +message CUserMessageSayText { + optional uint32 playerindex = 1; + optional string text = 2; + optional bool chat = 3; +} + +message CUserMessageSayText2 { + optional uint32 entityindex = 1; + optional bool chat = 2; + optional string messagename = 3; + optional string param1 = 4; + optional string param2 = 5; + optional string param3 = 6; + optional string param4 = 7; +} + +message CUserMessageHudMsg { + optional uint32 channel = 1; + optional float x = 2; + optional float y = 3; + optional fixed32 color1 = 4; + optional fixed32 color2 = 5; + optional uint32 effect = 6; + optional float fade_in_time = 7; + optional float fade_out_time = 8; + optional float hold_time = 9; + optional float fx_time = 10; + optional string message = 11; +} + +message CUserMessageHudText { + optional string message = 1; +} + +message CUserMessageTextMsg { + optional uint32 dest = 1; + repeated string param = 2; +} + +message CUserMessageGameTitle { +} + +message CUserMessageResetHUD { +} + +message CUserMessageSendAudio { + optional string soundname = 1; + optional bool stop = 2; +} + +message CUserMessageAudioParameter { + optional uint32 parameter_type = 1; + optional uint32 name_hash_code = 2; + optional float value = 3; + optional uint32 int_value = 4; +} + +message CUserMessageVoiceMask { + repeated uint32 gamerules_masks = 1; + repeated uint32 ban_masks = 2; + optional bool mod_enable = 3; +} + +message CUserMessageRequestState { +} + +message CUserMessageHintText { + optional string message = 1; +} + +message CUserMessageKeyHintText { + repeated string messages = 1; +} + +message CUserMessageVoiceSubtitle { + optional int32 player = 1; + optional int32 menu = 2; + optional int32 item = 3; +} + +message CUserMessageVGUIMenu { + message Keys { + optional string name = 1; + optional string value = 2; + } + + optional string name = 1; + optional bool show = 2; + repeated .CUserMessageVGUIMenu.Keys keys = 3; +} + +message CUserMessageRumble { + optional int32 index = 1; + optional int32 data = 2; + optional int32 flags = 3; +} + +message CUserMessageTrain { + optional uint32 position = 1; +} + +message CUserMessageSayTextChannel { + optional int32 player = 1; + optional int32 channel = 2; + optional string text = 3; +} + +message CUserMessageColoredText { + optional uint32 color = 1; + optional string text = 2; + optional bool reset = 3; + optional int32 context_player_id = 4; + optional int32 context_value = 5; + optional int32 context_team_id = 6; +} + +message CUserMessageItemPickup { + optional string itemname = 1; +} + +message CUserMessageAmmoDenied { + optional uint32 ammo_id = 1; +} + +message CUserMessageCrosshairAngle { + optional .CMsgQAngle angcrosshair = 1; +} + +message CUserMessageShowMenu { + optional uint32 validslots = 1; + optional uint32 displaytime = 2; + optional bool needmore = 3; + optional string menustring = 4; +} + +message CUserMessageCreditsMsg { + optional .eRollType rolltype = 1 [default = ROLL_NONE]; + optional float logo_length = 2; +} + +message CEntityMessagePlayJingle { +} + +message CEntityMessageScreenOverlay { + optional bool start_effect = 1; +} + +message CEntityMessageRemoveAllDecals { + optional bool remove_decals = 1; +} + +message CEntityMessagePropagateForce { + optional .CMsgVector impulse = 1; +} + +message CEntityMessageDoSpark { + optional .CMsgVector origin = 1; + optional uint32 entityindex = 2; + optional float radius = 3; + optional fixed32 color = 4; + optional uint32 beams = 5; + optional float thick = 6; + optional float duration = 7; +} + +message CEntityMessageFixAngle { + optional bool relative = 1; + optional .CMsgQAngle angle = 2; +} + +message CUserMessageCameraTransition { + message Transition_DataDriven { + optional string filename = 1; + optional int32 attach_ent_index = 2; + } + + optional uint32 camera_type = 1; + optional float duration = 2; + optional .CUserMessageCameraTransition.Transition_DataDriven params_data_driven = 3; +} + +message CUserMsg_ParticleManager { + message ReleaseParticleIndex { + } + + message CreateParticle { + optional fixed64 particle_name_index = 1; + optional int32 attach_type = 2; + optional int32 entity_handle = 3; + optional int32 entity_handle_for_modifiers = 4; + } + + message DestroyParticle { + optional bool destroy_immediately = 1; + } + + message DestroyParticleInvolving { + optional bool destroy_immediately = 1; + optional int32 entity_handle = 3; + } + + message UpdateParticle { + optional int32 control_point = 1; + optional .CMsgVector position = 2; + } + + message UpdateParticleFwd { + optional int32 control_point = 1; + optional .CMsgVector forward = 2; + } + + message UpdateParticleOrient { + optional int32 control_point = 1; + optional .CMsgVector forward = 2; + optional .CMsgVector right = 3 [deprecated = true]; + optional .CMsgVector up = 4; + optional .CMsgVector left = 5; + } + + message UpdateParticleFallback { + optional int32 control_point = 1; + optional .CMsgVector position = 2; + } + + message UpdateParticleOffset { + optional int32 control_point = 1; + optional .CMsgVector origin_offset = 2; + optional .CMsgQAngle angle_offset = 3; + } + + message UpdateParticleEnt { + optional int32 control_point = 1; + optional int32 entity_handle = 2; + optional int32 attach_type = 3; + optional int32 attachment = 4; + optional .CMsgVector fallback_position = 5; + optional bool include_wearables = 6; + } + + message UpdateParticleSetFrozen { + optional bool set_frozen = 1; + } + + message UpdateParticleShouldDraw { + optional bool should_draw = 1; + } + + message ChangeControlPointAttachment { + optional int32 attachment_old = 1; + optional int32 attachment_new = 2; + optional int32 entity_handle = 3; + } + + message UpdateEntityPosition { + optional int32 entity_handle = 1; + optional .CMsgVector position = 2; + } + + message SetParticleFoWProperties { + optional int32 fow_control_point = 1; + optional int32 fow_control_point2 = 2; + optional float fow_radius = 3; + } + + message SetParticleShouldCheckFoW { + optional bool check_fow = 1; + } + + message SetParticleText { + optional string text = 1; + } + + required .PARTICLE_MESSAGE type = 1 [default = GAME_PARTICLE_MANAGER_EVENT_CREATE]; + required uint32 index = 2; + optional .CUserMsg_ParticleManager.ReleaseParticleIndex release_particle_index = 3; + optional .CUserMsg_ParticleManager.CreateParticle create_particle = 4; + optional .CUserMsg_ParticleManager.DestroyParticle destroy_particle = 5; + optional .CUserMsg_ParticleManager.DestroyParticleInvolving destroy_particle_involving = 6; + optional .CUserMsg_ParticleManager.UpdateParticle update_particle = 7; + optional .CUserMsg_ParticleManager.UpdateParticleFwd update_particle_fwd = 8; + optional .CUserMsg_ParticleManager.UpdateParticleOrient update_particle_orient = 9; + optional .CUserMsg_ParticleManager.UpdateParticleFallback update_particle_fallback = 10; + optional .CUserMsg_ParticleManager.UpdateParticleOffset update_particle_offset = 11; + optional .CUserMsg_ParticleManager.UpdateParticleEnt update_particle_ent = 12; + optional .CUserMsg_ParticleManager.UpdateParticleShouldDraw update_particle_should_draw = 14; + optional .CUserMsg_ParticleManager.UpdateParticleSetFrozen update_particle_set_frozen = 15; + optional .CUserMsg_ParticleManager.ChangeControlPointAttachment change_control_point_attachment = 16; + optional .CUserMsg_ParticleManager.UpdateEntityPosition update_entity_position = 17; + optional .CUserMsg_ParticleManager.SetParticleFoWProperties set_particle_fow_properties = 18; + optional .CUserMsg_ParticleManager.SetParticleText set_particle_text = 19; + optional .CUserMsg_ParticleManager.SetParticleShouldCheckFoW set_particle_should_check_fow = 20; +} + +message CUserMsg_HudError { + optional int32 order_id = 1; +} + +message CUserMsg_CustomGameEvent { + optional string event_name = 1; + optional bytes data = 2; +} + +message CUserMessageHapticPulse { + optional int32 hand_id = 1; + optional .EHapticPulseType pulse_type = 2 [default = VR_HAND_HAPTIC_PULSE_LIGHT]; +} + +message CUserMessageHapticPulsePrecise { + optional int32 hand_id = 1; + optional int32 pulse_duration = 2; +} + +message CUserMessageAnimStateGraphState { + optional int32 entity_index = 1; + optional bytes data = 2; +} diff --git a/Protobufs/csgo/base_gcmessages.proto b/Protobufs/csgo/base_gcmessages.proto new file mode 100644 index 0000000..5452295 --- /dev/null +++ b/Protobufs/csgo/base_gcmessages.proto @@ -0,0 +1,571 @@ +import "steammessages.proto"; + +enum EGCBaseMsg { + k_EMsgGCSystemMessage = 4001; + k_EMsgGCReplicateConVars = 4002; + k_EMsgGCConVarUpdated = 4003; + k_EMsgGCInQueue = 4008; + k_EMsgGCInviteToParty = 4501; + k_EMsgGCInvitationCreated = 4502; + k_EMsgGCPartyInviteResponse = 4503; + k_EMsgGCKickFromParty = 4504; + k_EMsgGCLeaveParty = 4505; + k_EMsgGCServerAvailable = 4506; + k_EMsgGCClientConnectToServer = 4507; + k_EMsgGCGameServerInfo = 4508; + k_EMsgGCError = 4509; + k_EMsgGCReplay_UploadedToYouTube = 4510; + k_EMsgGCLANServerAvailable = 4511; +} + +enum EGCBaseProtoObjectTypes { + k_EProtoObjectPartyInvite = 1001; + k_EProtoObjectLobbyInvite = 1002; +} + +enum GC_BannedWordType { + GC_BANNED_WORD_DISABLE_WORD = 0; + GC_BANNED_WORD_ENABLE_WORD = 1; +} + +message CGCStorePurchaseInit_LineItem { + optional uint32 item_def_id = 1; + optional uint32 quantity = 2; + optional uint32 cost_in_local_currency = 3; + optional uint32 purchase_type = 4; + optional uint64 supplemental_data = 5; +} + +message CMsgGCStorePurchaseInit { + optional string country = 1; + optional int32 language = 2; + optional int32 currency = 3; + repeated .CGCStorePurchaseInit_LineItem line_items = 4; +} + +message CMsgGCStorePurchaseInitResponse { + optional int32 result = 1; + optional uint64 txn_id = 2; + optional string url = 3; + repeated uint64 item_ids = 4; +} + +message CSOPartyInvite { + optional uint64 group_id = 1 [(key_field) = true]; + optional fixed64 sender_id = 2; + optional string sender_name = 3; +} + +message CSOLobbyInvite { + optional uint64 group_id = 1 [(key_field) = true]; + optional fixed64 sender_id = 2; + optional string sender_name = 3; +} + +message CMsgSystemBroadcast { + optional string message = 1; +} + +message CMsgInviteToParty { + optional fixed64 steam_id = 1; + optional uint32 client_version = 2; + optional uint32 team_invite = 3; +} + +message CMsgInvitationCreated { + optional uint64 group_id = 1; + optional fixed64 steam_id = 2; +} + +message CMsgPartyInviteResponse { + optional uint64 party_id = 1; + optional bool accept = 2; + optional uint32 client_version = 3; + optional uint32 team_invite = 4; +} + +message CMsgKickFromParty { + optional fixed64 steam_id = 1; +} + +message CMsgLeaveParty { +} + +message CMsgServerAvailable { +} + +message CMsgLANServerAvailable { + optional fixed64 lobby_id = 1; +} + +message CSOEconGameAccountClient { + optional uint32 additional_backpack_slots = 1 [default = 0]; + optional fixed32 bonus_xp_timestamp_refresh = 12; + optional uint32 bonus_xp_usedflags = 13; + optional uint32 elevated_state = 14; + optional uint32 elevated_timestamp = 15; +} + +message CSOItemCriteriaCondition { + optional int32 op = 1; + optional string field = 2; + optional bool required = 3; + optional float float_value = 4; + optional string string_value = 5; +} + +message CSOItemCriteria { + optional uint32 item_level = 1; + optional int32 item_quality = 2; + optional bool item_level_set = 3; + optional bool item_quality_set = 4; + optional uint32 initial_inventory = 5; + optional uint32 initial_quantity = 6; + optional bool ignore_enabled_flag = 8; + repeated .CSOItemCriteriaCondition conditions = 9; + optional int32 item_rarity = 10; + optional bool item_rarity_set = 11; + optional bool recent_only = 12; +} + +message CSOItemRecipe { + optional uint32 def_index = 1; + optional string name = 2; + optional string n_a = 3; + optional string desc_inputs = 4; + optional string desc_outputs = 5; + optional string di_a = 6; + optional string di_b = 7; + optional string di_c = 8; + optional string do_a = 9; + optional string do_b = 10; + optional string do_c = 11; + optional bool requires_all_same_class = 12; + optional bool requires_all_same_slot = 13; + optional int32 class_usage_for_output = 14; + optional int32 slot_usage_for_output = 15; + optional int32 set_for_output = 16; + repeated .CSOItemCriteria input_items_criteria = 20; + repeated .CSOItemCriteria output_items_criteria = 21; + repeated uint32 input_item_dupe_counts = 22; +} + +message CMsgDevNewItemRequest { + optional fixed64 receiver = 1; + optional .CSOItemCriteria criteria = 2; +} + +message CMsgIncrementKillCountAttribute { + optional fixed32 killer_account_id = 1; + optional fixed32 victim_account_id = 2; + optional uint64 item_id = 3; + optional uint32 event_type = 4; + optional uint32 amount = 5; +} + +message CMsgApplySticker { + optional uint64 sticker_item_id = 1; + optional uint64 item_item_id = 2; + optional uint32 sticker_slot = 3; + optional uint32 baseitem_defidx = 4; + optional float sticker_wear = 5; + optional float sticker_rotation = 6; + optional float sticker_scale = 7; + optional float sticker_offset_x = 8; + optional float sticker_offset_y = 9; +} + +message CMsgModifyItemAttribute { + optional uint64 item_id = 1; + optional uint32 attr_defidx = 2; + optional uint32 attr_value = 3; +} + +message CMsgApplyStatTrakSwap { + optional uint64 tool_item_id = 1; + optional uint64 item_1_item_id = 2; + optional uint64 item_2_item_id = 3; +} + +message CMsgApplyStrangePart { + optional uint64 strange_part_item_id = 1; + optional uint64 item_item_id = 2; +} + +message CMsgApplyPennantUpgrade { + optional uint64 upgrade_item_id = 1; + optional uint64 pennant_item_id = 2; +} + +message CMsgApplyEggEssence { + optional uint64 essence_item_id = 1; + optional uint64 egg_item_id = 2; +} + +message CSOEconItemAttribute { + optional uint32 def_index = 1; + optional uint32 value = 2; + optional bytes value_bytes = 3; +} + +message CSOEconItemEquipped { + optional uint32 new_class = 1; + optional uint32 new_slot = 2; +} + +message CSOEconItem { + optional uint64 id = 1; + optional uint32 account_id = 2; + optional uint32 inventory = 3; + optional uint32 def_index = 4; + optional uint32 quantity = 5; + optional uint32 level = 6; + optional uint32 quality = 7; + optional uint32 flags = 8 [default = 0]; + optional uint32 origin = 9; + optional string custom_name = 10; + optional string custom_desc = 11; + repeated .CSOEconItemAttribute attribute = 12; + optional .CSOEconItem interior_item = 13; + optional bool in_use = 14 [default = false]; + optional uint32 style = 15 [default = 0]; + optional uint64 original_id = 16 [default = 0]; + repeated .CSOEconItemEquipped equipped_state = 18; + optional uint32 rarity = 19; +} + +message CMsgAdjustItemEquippedState { + optional uint64 item_id = 1; + optional uint32 new_class = 2; + optional uint32 new_slot = 3; + optional bool swap = 4; +} + +message CMsgAdjustItemEquippedStateMulti { + repeated uint64 t_equips = 1; + repeated uint64 ct_equips = 2; + repeated uint64 noteam_equips = 3; +} + +message CMsgSortItems { + optional uint32 sort_type = 1; +} + +message CSOEconClaimCode { + optional uint32 account_id = 1; + optional uint32 code_type = 2; + optional uint32 time_acquired = 3; + optional string code = 4; +} + +message CMsgStoreGetUserData { + optional fixed32 price_sheet_version = 1; + optional int32 currency = 2; +} + +message CMsgStoreGetUserDataResponse { + optional int32 result = 1; + optional int32 currency_deprecated = 2; + optional string country_deprecated = 3; + optional fixed32 price_sheet_version = 4; + optional bytes price_sheet = 8; +} + +message CMsgUpdateItemSchema { + optional bytes items_game = 1; + optional fixed32 item_schema_version = 2; + optional string items_game_url = 4; +} + +message CMsgGCError { + optional string error_text = 1; +} + +message CMsgRequestInventoryRefresh { +} + +message CMsgConVarValue { + optional string name = 1; + optional string value = 2; +} + +message CMsgReplicateConVars { + repeated .CMsgConVarValue convars = 1; +} + +message CMsgUseItem { + optional uint64 item_id = 1; + optional fixed64 target_steam_id = 2; + repeated uint32 gift__potential_targets = 3; + optional uint32 duel__class_lock = 4; + optional fixed64 initiator_steam_id = 5; +} + +message CMsgReplayUploadedToYouTube { + optional string youtube_url = 1; + optional string youtube_account_name = 2; + optional uint64 session_id = 3; +} + +message CMsgConsumableExhausted { + optional int32 item_def_id = 1; +} + +message CMsgItemAcknowledged__DEPRECATED { + optional uint32 account_id = 1; + optional uint32 inventory = 2; + optional uint32 def_index = 3; + optional uint32 quality = 4; + optional uint32 rarity = 5; + optional uint32 origin = 6; + optional uint64 item_id = 7; +} + +message CMsgSetItemPositions { + message ItemPosition { + optional uint32 legacy_item_id = 1; + optional uint32 position = 2; + optional uint64 item_id = 3; + } + + repeated .CMsgSetItemPositions.ItemPosition item_positions = 1; +} + +message CMsgGCReportAbuse { + optional fixed64 target_steam_id = 1; + optional string description = 4; + optional uint64 gid = 5; + optional uint32 abuse_type = 2; + optional uint32 content_type = 3; + optional fixed32 target_game_server_ip = 6; + optional uint32 target_game_server_port = 7; +} + +message CMsgGCReportAbuseResponse { + optional fixed64 target_steam_id = 1; + optional uint32 result = 2; + optional string error_message = 3; +} + +message CMsgGCNameItemNotification { + optional fixed64 player_steamid = 1; + optional uint32 item_def_index = 2; + optional string item_name_custom = 3; +} + +message CMsgGCClientDisplayNotification { + optional string notification_title_localization_key = 1; + optional string notification_body_localization_key = 2; + repeated string body_substring_keys = 3; + repeated string body_substring_values = 4; +} + +message CMsgGCShowItemsPickedUp { + optional fixed64 player_steamid = 1; +} + +message CMsgGCIncrementKillCountResponse { + optional uint32 killer_account_id = 1 [(key_field) = true]; + optional uint32 num_kills = 2; + optional uint32 item_def = 3; + optional uint32 level_type = 4; +} + +message CSOEconItemDropRateBonus { + optional uint32 account_id = 1; + optional fixed32 expiration_date = 2; + optional float bonus = 3; + optional uint32 bonus_count = 4; + optional uint64 item_id = 5; + optional uint32 def_index = 6; +} + +message CSOEconItemLeagueViewPass { + optional uint32 account_id = 1 [(key_field) = true]; + optional uint32 league_id = 2 [(key_field) = true]; + optional uint32 admin = 3; + optional uint32 itemindex = 4; +} + +message CSOEconItemEventTicket { + optional uint32 account_id = 1; + optional uint32 event_id = 2; + optional uint64 item_id = 3; +} + +message CMsgGCItemPreviewItemBoughtNotification { + optional uint32 item_def_index = 1; +} + +message CMsgGCStorePurchaseCancel { + optional uint64 txn_id = 1; +} + +message CMsgGCStorePurchaseCancelResponse { + optional uint32 result = 1; +} + +message CMsgGCStorePurchaseFinalize { + optional uint64 txn_id = 1; +} + +message CMsgGCStorePurchaseFinalizeResponse { + optional uint32 result = 1; + repeated uint64 item_ids = 2; +} + +message CMsgGCBannedWordListRequest { + optional uint32 ban_list_group_id = 1; + optional uint32 word_id = 2; +} + +message CMsgGCRequestAnnouncements { +} + +message CMsgGCRequestAnnouncementsResponse { + optional string announcement_title = 1; + optional string announcement = 2; + optional string nextmatch_title = 3; + optional string nextmatch = 4; +} + +message CMsgGCBannedWord { + optional uint32 word_id = 1; + optional .GC_BannedWordType word_type = 2 [default = GC_BANNED_WORD_DISABLE_WORD]; + optional string word = 3; +} + +message CMsgGCBannedWordListResponse { + optional uint32 ban_list_group_id = 1; + repeated .CMsgGCBannedWord word_list = 2; +} + +message CMsgGCToGCBannedWordListBroadcast { + optional .CMsgGCBannedWordListResponse broadcast = 1; +} + +message CMsgGCToGCBannedWordListUpdated { + optional uint32 group_id = 1; +} + +message CSOEconDefaultEquippedDefinitionInstanceClient { + optional uint32 account_id = 1 [(key_field) = true]; + optional uint32 item_definition = 2; + optional uint32 class_id = 3 [(key_field) = true]; + optional uint32 slot_id = 4 [(key_field) = true]; +} + +message CMsgGCToGCDirtySDOCache { + optional uint32 sdo_type = 1; + optional uint64 key_uint64 = 2; +} + +message CMsgGCToGCDirtyMultipleSDOCache { + optional uint32 sdo_type = 1; + repeated uint64 key_uint64 = 2; +} + +message CMsgGCCollectItem { + optional uint64 collection_item_id = 1; + optional uint64 subject_item_id = 2; +} + +message CMsgSDONoMemcached { +} + +message CMsgGCToGCUpdateSQLKeyValue { + optional string key_name = 1; +} + +message CMsgGCToGCIsTrustedServer { + optional fixed64 steam_id = 1; +} + +message CMsgGCToGCIsTrustedServerResponse { + optional bool is_trusted = 1; +} + +message CMsgGCToGCBroadcastConsoleCommand { + optional string con_command = 1; +} + +message CMsgGCServerVersionUpdated { + optional uint32 server_version = 1; +} + +message CMsgGCClientVersionUpdated { + optional uint32 client_version = 1; +} + +message CMsgGCToGCWebAPIAccountChanged { +} + +message CMsgGCToGCRequestPassportItemGrant { + optional fixed64 steam_id = 1; + optional uint32 league_id = 2; + optional int32 reward_flag = 3; +} + +message CMsgGameServerInfo { + enum ServerType { + UNSPECIFIED = 0; + GAME = 1; + PROXY = 2; + } + + optional fixed32 server_public_ip_addr = 1; + optional fixed32 server_private_ip_addr = 2; + optional uint32 server_port = 3; + optional uint32 server_tv_port = 4; + optional string server_key = 5; + optional bool server_hibernation = 6; + optional .CMsgGameServerInfo.ServerType server_type = 7 [default = UNSPECIFIED]; + optional uint32 server_region = 8; + optional float server_loadavg = 9; + optional float server_tv_broadcast_time = 10; + optional float server_game_time = 11; + optional fixed64 server_relay_connected_steam_id = 12; + optional uint32 relay_slots_max = 13; + optional int32 relays_connected = 14; + optional int32 relay_clients_connected = 15; + optional fixed64 relayed_game_server_steam_id = 16; + optional uint32 parent_relay_count = 17; + optional fixed64 tv_secret_code = 18; +} + +message CSOEconEquipSlot { + optional uint32 account_id = 1 [(key_field) = true]; + optional uint32 class_id = 2 [(key_field) = true]; + optional uint32 slot_id = 3 [(key_field) = true]; + optional uint64 item_id = 4; + optional uint32 item_definition = 5; +} + +message CMsgAdjustEquipSlot { + optional uint32 class_id = 1; + optional uint32 slot_id = 2; + optional uint64 item_id = 3; +} + +message CMsgAdjustEquipSlots { + repeated .CMsgAdjustEquipSlot slots = 1; + optional uint32 change_num = 2; +} + +message CMsgOpenCrate { + optional uint64 tool_item_id = 1; + optional uint64 subject_item_id = 2; + optional bool for_rental = 3; +} + +message CSOEconRentalHistory { + optional uint32 account_id = 1 [(key_field) = true]; + optional uint64 crate_item_id = 2 [(key_field) = true]; + optional uint32 crate_def_index = 3; + optional uint32 issue_date = 4; + optional uint32 expiration_date = 5; +} + +message CMsgAcknowledgeRentalExpiration { + optional uint64 crate_item_id = 1; +} diff --git a/Protobufs/csgo/base_gcmessages_csgo.proto b/Protobufs/csgo/base_gcmessages_csgo.proto new file mode 100644 index 0000000..2173f25 --- /dev/null +++ b/Protobufs/csgo/base_gcmessages_csgo.proto @@ -0,0 +1,547 @@ +import "steammessages.proto"; + +enum EGCBaseMsg { + k_EMsgGCSystemMessage = 4001; + k_EMsgGCReplicateConVars = 4002; + k_EMsgGCConVarUpdated = 4003; + k_EMsgGCInQueue = 4008; + k_EMsgGCInviteToParty = 4501; + k_EMsgGCInvitationCreated = 4502; + k_EMsgGCPartyInviteResponse = 4503; + k_EMsgGCKickFromParty = 4504; + k_EMsgGCLeaveParty = 4505; + k_EMsgGCServerAvailable = 4506; + k_EMsgGCClientConnectToServer = 4507; + k_EMsgGCGameServerInfo = 4508; + k_EMsgGCError = 4509; + k_EMsgGCReplay_UploadedToYouTube = 4510; + k_EMsgGCLANServerAvailable = 4511; +} + +enum EGCBaseProtoObjectTypes { + k_EProtoObjectPartyInvite = 1001; + k_EProtoObjectLobbyInvite = 1002; +} + +enum GC_BannedWordType { + GC_BANNED_WORD_DISABLE_WORD = 0; + GC_BANNED_WORD_ENABLE_WORD = 1; +} + +message CGCStorePurchaseInit_LineItem { + optional uint32 item_def_id = 1; + optional uint32 quantity = 2; + optional uint32 cost_in_local_currency = 3; + optional uint32 purchase_type = 4; +} + +message CMsgGCStorePurchaseInit { + optional string country = 1; + optional int32 language = 2; + optional int32 currency = 3; + repeated .CGCStorePurchaseInit_LineItem line_items = 4; +} + +message CMsgGCStorePurchaseInitResponse { + optional int32 result = 1; + optional uint64 txn_id = 2; + optional string url = 3; + repeated uint64 item_ids = 4; +} + +message CSOPartyInvite { + optional uint64 group_id = 1 [(key_field) = true]; + optional fixed64 sender_id = 2; + optional string sender_name = 3; +} + +message CSOLobbyInvite { + optional uint64 group_id = 1 [(key_field) = true]; + optional fixed64 sender_id = 2; + optional string sender_name = 3; +} + +message CMsgSystemBroadcast { + optional string message = 1; +} + +message CMsgInviteToParty { + optional fixed64 steam_id = 1; + optional uint32 client_version = 2; + optional uint32 team_invite = 3; +} + +message CMsgInvitationCreated { + optional uint64 group_id = 1; + optional fixed64 steam_id = 2; +} + +message CMsgPartyInviteResponse { + optional uint64 party_id = 1; + optional bool accept = 2; + optional uint32 client_version = 3; + optional uint32 team_invite = 4; +} + +message CMsgKickFromParty { + optional fixed64 steam_id = 1; +} + +message CMsgLeaveParty { +} + +message CMsgServerAvailable { +} + +message CMsgLANServerAvailable { + optional fixed64 lobby_id = 1; +} + +message CSOEconGameAccountClient { + optional uint32 additional_backpack_slots = 1 [default = 0]; + optional fixed32 bonus_xp_timestamp_refresh = 12; + optional uint32 bonus_xp_usedflags = 13; + optional uint32 elevated_state = 14; + optional uint32 elevated_timestamp = 15; +} + +message CSOItemCriteriaCondition { + optional int32 op = 1; + optional string field = 2; + optional bool required = 3; + optional float float_value = 4; + optional string string_value = 5; +} + +message CSOItemCriteria { + optional uint32 item_level = 1; + optional int32 item_quality = 2; + optional bool item_level_set = 3; + optional bool item_quality_set = 4; + optional uint32 initial_inventory = 5; + optional uint32 initial_quantity = 6; + optional bool ignore_enabled_flag = 8; + repeated .CSOItemCriteriaCondition conditions = 9; + optional int32 item_rarity = 10; + optional bool item_rarity_set = 11; + optional bool recent_only = 12; +} + +message CSOItemRecipe { + optional uint32 def_index = 1; + optional string name = 2; + optional string n_a = 3; + optional string desc_inputs = 4; + optional string desc_outputs = 5; + optional string di_a = 6; + optional string di_b = 7; + optional string di_c = 8; + optional string do_a = 9; + optional string do_b = 10; + optional string do_c = 11; + optional bool requires_all_same_class = 12; + optional bool requires_all_same_slot = 13; + optional int32 class_usage_for_output = 14; + optional int32 slot_usage_for_output = 15; + optional int32 set_for_output = 16; + repeated .CSOItemCriteria input_items_criteria = 20; + repeated .CSOItemCriteria output_items_criteria = 21; + repeated uint32 input_item_dupe_counts = 22; +} + +message CMsgDevNewItemRequest { + optional fixed64 receiver = 1; + optional .CSOItemCriteria criteria = 2; +} + +message CMsgIncrementKillCountAttribute { + optional fixed32 killer_account_id = 1; + optional fixed32 victim_account_id = 2; + optional uint64 item_id = 3; + optional uint32 event_type = 4; + optional uint32 amount = 5; +} + +message CMsgApplySticker { + optional uint64 sticker_item_id = 1; + optional uint64 item_item_id = 2; + optional uint32 sticker_slot = 3; + optional uint32 baseitem_defidx = 4; + optional float sticker_wear = 5; +} + +message CMsgModifyItemAttribute { + optional uint64 item_id = 1; + optional uint32 attr_defidx = 2; + optional uint32 attr_value = 3; +} + +message CMsgApplyStatTrakSwap { + optional uint64 tool_item_id = 1; + optional uint64 item_1_item_id = 2; + optional uint64 item_2_item_id = 3; +} + +message CMsgApplyStrangePart { + optional uint64 strange_part_item_id = 1; + optional uint64 item_item_id = 2; +} + +message CMsgApplyPennantUpgrade { + optional uint64 upgrade_item_id = 1; + optional uint64 pennant_item_id = 2; +} + +message CMsgApplyEggEssence { + optional uint64 essence_item_id = 1; + optional uint64 egg_item_id = 2; +} + +message CSOEconItemAttribute { + optional uint32 def_index = 1; + optional uint32 value = 2; + optional bytes value_bytes = 3; +} + +message CSOEconItemEquipped { + optional uint32 new_class = 1; + optional uint32 new_slot = 2; +} + +message CSOEconItem { + optional uint64 id = 1; + optional uint32 account_id = 2; + optional uint32 inventory = 3; + optional uint32 def_index = 4; + optional uint32 quantity = 5; + optional uint32 level = 6; + optional uint32 quality = 7; + optional uint32 flags = 8 [default = 0]; + optional uint32 origin = 9; + optional string custom_name = 10; + optional string custom_desc = 11; + repeated .CSOEconItemAttribute attribute = 12; + optional .CSOEconItem interior_item = 13; + optional bool in_use = 14 [default = false]; + optional uint32 style = 15 [default = 0]; + optional uint64 original_id = 16 [default = 0]; + repeated .CSOEconItemEquipped equipped_state = 18; + optional uint32 rarity = 19; +} + +message CMsgAdjustItemEquippedState { + optional uint64 item_id = 1; + optional uint32 new_class = 2; + optional uint32 new_slot = 3; + optional bool swap = 4; +} + +message CMsgAdjustItemEquippedStateMulti { + repeated uint64 t_equips = 1; + repeated uint64 ct_equips = 2; + repeated uint64 noteam_equips = 3; +} + +message CMsgSortItems { + optional uint32 sort_type = 1; +} + +message CSOEconClaimCode { + optional uint32 account_id = 1; + optional uint32 code_type = 2; + optional uint32 time_acquired = 3; + optional string code = 4; +} + +message CMsgStoreGetUserData { + optional fixed32 price_sheet_version = 1; + optional int32 currency = 2; +} + +message CMsgStoreGetUserDataResponse { + optional int32 result = 1; + optional int32 currency_deprecated = 2; + optional string country_deprecated = 3; + optional fixed32 price_sheet_version = 4; + optional bytes price_sheet = 8; +} + +message CMsgUpdateItemSchema { + optional bytes items_game = 1; + optional fixed32 item_schema_version = 2; + optional string items_game_url = 4; +} + +message CMsgGCError { + optional string error_text = 1; +} + +message CMsgRequestInventoryRefresh { +} + +message CMsgConVarValue { + optional string name = 1; + optional string value = 2; +} + +message CMsgReplicateConVars { + repeated .CMsgConVarValue convars = 1; +} + +message CMsgUseItem { + optional uint64 item_id = 1; + optional fixed64 target_steam_id = 2; + repeated uint32 gift__potential_targets = 3; + optional uint32 duel__class_lock = 4; + optional fixed64 initiator_steam_id = 5; +} + +message CMsgReplayUploadedToYouTube { + optional string youtube_url = 1; + optional string youtube_account_name = 2; + optional uint64 session_id = 3; +} + +message CMsgConsumableExhausted { + optional int32 item_def_id = 1; +} + +message CMsgItemAcknowledged__DEPRECATED { + optional uint32 account_id = 1; + optional uint32 inventory = 2; + optional uint32 def_index = 3; + optional uint32 quality = 4; + optional uint32 rarity = 5; + optional uint32 origin = 6; + optional uint64 item_id = 7; +} + +message CMsgSetItemPositions { + message ItemPosition { + optional uint32 legacy_item_id = 1; + optional uint32 position = 2; + optional uint64 item_id = 3; + } + + repeated .CMsgSetItemPositions.ItemPosition item_positions = 1; +} + +message CMsgGCReportAbuse { + optional fixed64 target_steam_id = 1; + optional string description = 4; + optional uint64 gid = 5; + optional uint32 abuse_type = 2; + optional uint32 content_type = 3; + optional fixed32 target_game_server_ip = 6; + optional uint32 target_game_server_port = 7; +} + +message CMsgGCReportAbuseResponse { + optional fixed64 target_steam_id = 1; + optional uint32 result = 2; + optional string error_message = 3; +} + +message CMsgGCNameItemNotification { + optional fixed64 player_steamid = 1; + optional uint32 item_def_index = 2; + optional string item_name_custom = 3; +} + +message CMsgGCClientDisplayNotification { + optional string notification_title_localization_key = 1; + optional string notification_body_localization_key = 2; + repeated string body_substring_keys = 3; + repeated string body_substring_values = 4; +} + +message CMsgGCShowItemsPickedUp { + optional fixed64 player_steamid = 1; +} + +message CMsgGCIncrementKillCountResponse { + optional uint32 killer_account_id = 1 [(key_field) = true]; + optional uint32 num_kills = 2; + optional uint32 item_def = 3; + optional uint32 level_type = 4; +} + +message CSOEconItemDropRateBonus { + optional uint32 account_id = 1; + optional fixed32 expiration_date = 2; + optional float bonus = 3; + optional uint32 bonus_count = 4; + optional uint64 item_id = 5; + optional uint32 def_index = 6; +} + +message CSOEconItemLeagueViewPass { + optional uint32 account_id = 1 [(key_field) = true]; + optional uint32 league_id = 2 [(key_field) = true]; + optional uint32 admin = 3; + optional uint32 itemindex = 4; +} + +message CSOEconItemEventTicket { + optional uint32 account_id = 1; + optional uint32 event_id = 2; + optional uint64 item_id = 3; +} + +message CMsgGCItemPreviewItemBoughtNotification { + optional uint32 item_def_index = 1; +} + +message CMsgGCStorePurchaseCancel { + optional uint64 txn_id = 1; +} + +message CMsgGCStorePurchaseCancelResponse { + optional uint32 result = 1; +} + +message CMsgGCStorePurchaseFinalize { + optional uint64 txn_id = 1; +} + +message CMsgGCStorePurchaseFinalizeResponse { + optional uint32 result = 1; + repeated uint64 item_ids = 2; +} + +message CMsgGCBannedWordListRequest { + optional uint32 ban_list_group_id = 1; + optional uint32 word_id = 2; +} + +message CMsgGCRequestAnnouncements { +} + +message CMsgGCRequestAnnouncementsResponse { + optional string announcement_title = 1; + optional string announcement = 2; + optional string nextmatch_title = 3; + optional string nextmatch = 4; +} + +message CMsgGCBannedWord { + optional uint32 word_id = 1; + optional .GC_BannedWordType word_type = 2 [default = GC_BANNED_WORD_DISABLE_WORD]; + optional string word = 3; +} + +message CMsgGCBannedWordListResponse { + optional uint32 ban_list_group_id = 1; + repeated .CMsgGCBannedWord word_list = 2; +} + +message CMsgGCToGCBannedWordListBroadcast { + optional .CMsgGCBannedWordListResponse broadcast = 1; +} + +message CMsgGCToGCBannedWordListUpdated { + optional uint32 group_id = 1; +} + +message CSOEconDefaultEquippedDefinitionInstanceClient { + optional uint32 account_id = 1 [(key_field) = true]; + optional uint32 item_definition = 2; + optional uint32 class_id = 3 [(key_field) = true]; + optional uint32 slot_id = 4 [(key_field) = true]; +} + +message CMsgGCToGCDirtySDOCache { + optional uint32 sdo_type = 1; + optional uint64 key_uint64 = 2; +} + +message CMsgGCToGCDirtyMultipleSDOCache { + optional uint32 sdo_type = 1; + repeated uint64 key_uint64 = 2; +} + +message CMsgGCCollectItem { + optional uint64 collection_item_id = 1; + optional uint64 subject_item_id = 2; +} + +message CMsgSDONoMemcached { +} + +message CMsgGCToGCUpdateSQLKeyValue { + optional string key_name = 1; +} + +message CMsgGCToGCIsTrustedServer { + optional fixed64 steam_id = 1; +} + +message CMsgGCToGCIsTrustedServerResponse { + optional bool is_trusted = 1; +} + +message CMsgGCToGCBroadcastConsoleCommand { + optional string con_command = 1; +} + +message CMsgGCServerVersionUpdated { + optional uint32 server_version = 1; +} + +message CMsgGCClientVersionUpdated { + optional uint32 client_version = 1; +} + +message CMsgGCToGCWebAPIAccountChanged { +} + +message CMsgGCToGCRequestPassportItemGrant { + optional fixed64 steam_id = 1; + optional uint32 league_id = 2; + optional int32 reward_flag = 3; +} + +message CMsgGameServerInfo { + enum ServerType { + UNSPECIFIED = 0; + GAME = 1; + PROXY = 2; + } + + optional fixed32 server_public_ip_addr = 1; + optional fixed32 server_private_ip_addr = 2; + optional uint32 server_port = 3; + optional uint32 server_tv_port = 4; + optional string server_key = 5; + optional bool server_hibernation = 6; + optional .CMsgGameServerInfo.ServerType server_type = 7 [default = UNSPECIFIED]; + optional uint32 server_region = 8; + optional float server_loadavg = 9; + optional float server_tv_broadcast_time = 10; + optional float server_game_time = 11; + optional fixed64 server_relay_connected_steam_id = 12; + optional uint32 relay_slots_max = 13; + optional int32 relays_connected = 14; + optional int32 relay_clients_connected = 15; + optional fixed64 relayed_game_server_steam_id = 16; + optional uint32 parent_relay_count = 17; + optional fixed64 tv_secret_code = 18; +} + +message CSOEconEquipSlot { + optional uint32 account_id = 1 [(key_field) = true]; + optional uint32 class_id = 2 [(key_field) = true]; + optional uint32 slot_id = 3 [(key_field) = true]; + optional uint64 item_id = 4; + optional uint32 item_definition = 5; +} + +message CMsgAdjustEquipSlot { + optional uint32 class_id = 1; + optional uint32 slot_id = 2; + optional uint64 item_id = 3; +} + +message CMsgAdjustEquipSlots { + repeated .CMsgAdjustEquipSlot slots = 1; +} diff --git a/Protobufs/csgo/c_peer2peer_netmessages.proto b/Protobufs/csgo/c_peer2peer_netmessages.proto new file mode 100644 index 0000000..9c869f2 --- /dev/null +++ b/Protobufs/csgo/c_peer2peer_netmessages.proto @@ -0,0 +1,55 @@ +import "netmessages.proto"; +import "networkbasetypes.proto"; + +enum P2P_Messages { + p2p_TextMessage = 256; + p2p_Voice = 257; + p2p_Ping = 258; + p2p_VRAvatarPosition = 259; + p2p_WatchSynchronization = 260; +} + +message CP2P_TextMessage { + optional bytes text = 1; +} + +message CSteam_Voice_Encoding { + optional bytes voice_data = 1; +} + +message CP2P_Voice { + enum Handler_Flags { + Played_Audio = 1; + } + + optional .CMsgVoiceAudio audio = 1; + optional uint32 broadcast_group = 2; +} + +message CP2P_Ping { + required uint64 send_time = 1; + required bool is_reply = 2; +} + +message CP2P_VRAvatarPosition { + message COrientation { + optional .CMsgVector pos = 1; + optional .CMsgQAngle ang = 2; + } + + repeated .CP2P_VRAvatarPosition.COrientation body_parts = 1; + optional int32 hat_id = 2; + optional int32 scene_id = 3; + optional int32 world_scale = 4; +} + +message CP2P_WatchSynchronization { + optional int32 demo_tick = 1; + optional bool paused = 2; + optional uint64 tv_listen_voice_indices = 3; + optional int32 dota_spectator_mode = 4; + optional bool dota_spectator_watching_broadcaster = 5; + optional int32 dota_spectator_hero_index = 6; + optional int32 dota_spectator_autospeed = 7; + optional int32 dota_replay_speed = 8; +} diff --git a/Protobufs/csgo/clientmessages.proto b/Protobufs/csgo/clientmessages.proto new file mode 100644 index 0000000..484ae57 --- /dev/null +++ b/Protobufs/csgo/clientmessages.proto @@ -0,0 +1,53 @@ +enum EBaseClientMessages { + CM_CustomGameEvent = 280; + CM_CustomGameEventBounce = 281; + CM_ClientUIEvent = 282; + CM_DevPaletteVisibilityChanged = 283; + CM_WorldUIControllerHasPanelChanged = 284; + CM_RotateAnchor = 285; + CM_ListenForResponseFound = 286; + CM_MAX_BASE = 300; +} + +enum EClientUIEvent { + EClientUIEvent_Invalid = 0; + EClientUIEvent_DialogFinished = 1; + EClientUIEvent_FireOutput = 2; +} + +message CClientMsg_CustomGameEvent { + optional string event_name = 1; + optional bytes data = 2; +} + +message CClientMsg_CustomGameEventBounce { + optional string event_name = 1; + optional bytes data = 2; + optional int32 player_slot = 3 [default = -1]; +} + +message CClientMsg_ClientUIEvent { + optional .EClientUIEvent event = 1 [default = EClientUIEvent_Invalid]; + optional uint32 ent_ehandle = 2; + optional uint32 client_ehandle = 3; + optional string data1 = 4; + optional string data2 = 5; +} + +message CClientMsg_DevPaletteVisibilityChangedEvent { + optional bool visible = 1; +} + +message CClientMsg_WorldUIControllerHasPanelChangedEvent { + optional bool has_panel = 1; + optional uint32 client_ehandle = 2; + optional uint32 literal_hand_type = 3; +} + +message CClientMsg_RotateAnchor { + optional float angle = 1; +} + +message CClientMsg_ListenForResponseFound { + optional int32 player_slot = 1 [default = -1]; +} diff --git a/Protobufs/csgo/connectionless_netmessages.proto b/Protobufs/csgo/connectionless_netmessages.proto new file mode 100644 index 0000000..10f7a9e --- /dev/null +++ b/Protobufs/csgo/connectionless_netmessages.proto @@ -0,0 +1,17 @@ +import "netmessages.proto"; + +message C2S_CONNECT_Message { + optional uint32 host_version = 1; + optional uint32 auth_protocol = 2; + optional uint32 challenge_number = 3; + optional fixed64 reservation_cookie = 4; + optional bool low_violence = 5; + optional bytes encrypted_password = 6; + repeated .CCLCMsg_SplitPlayerConnect splitplayers = 7; + optional bytes auth_steam = 8; + optional string challenge_context = 9; +} + +message C2S_CONNECTION_Message { + optional string addon_name = 1; +} diff --git a/Protobufs/csgo/cs_gameevents.proto b/Protobufs/csgo/cs_gameevents.proto new file mode 100644 index 0000000..eb6a8fe --- /dev/null +++ b/Protobufs/csgo/cs_gameevents.proto @@ -0,0 +1,35 @@ +import "networkbasetypes.proto"; + +enum ECsgoGameEvents { + GE_PlayerAnimEventId = 450; + GE_RadioIconEventId = 451; + GE_FireBulletsId = 452; +} + +message CMsgTEPlayerAnimEvent { + optional fixed32 player = 1 [default = 16777215]; + optional uint32 event = 2; + optional int32 data = 3; +} + +message CMsgTERadioIcon { + optional fixed32 player = 1 [default = 16777215]; +} + +message CMsgTEFireBullets { + optional .CMsgVector origin = 1; + optional .CMsgQAngle angles = 2; + optional uint32 weapon_id = 3 [default = 16777215]; + optional uint32 mode = 4; + optional uint32 seed = 5; + optional fixed32 player = 6 [default = 16777215]; + optional float inaccuracy = 7; + optional float recoil_index = 8; + optional float spread = 9; + optional int32 sound_type = 10; + optional uint32 item_def_index = 11; + optional fixed32 sound_dsp_effect = 12; + optional .CMsgVector ent_origin = 13; + optional uint32 num_bullets_remaining = 14; + optional uint32 attack_type = 15; +} diff --git a/Protobufs/csgo/cs_usercmd.proto b/Protobufs/csgo/cs_usercmd.proto new file mode 100644 index 0000000..223a4f7 --- /dev/null +++ b/Protobufs/csgo/cs_usercmd.proto @@ -0,0 +1,35 @@ +import "networkbasetypes.proto"; +import "usercmd.proto"; + +message CSGOInterpolationInfoPB { + optional int32 src_tick = 1 [default = -1]; + optional int32 dst_tick = 2 [default = -1]; + optional float frac = 3 [default = 0]; +} + +message CSGOInputHistoryEntryPB { + optional .CMsgQAngle view_angles = 2; + optional int32 render_tick_count = 4; + optional float render_tick_fraction = 5; + optional int32 player_tick_count = 6; + optional float player_tick_fraction = 7; + optional .CSGOInterpolationInfoPB cl_interp = 12; + optional .CSGOInterpolationInfoPB sv_interp0 = 13; + optional .CSGOInterpolationInfoPB sv_interp1 = 14; + optional .CSGOInterpolationInfoPB player_interp = 15; + optional int32 frame_number = 20; + optional int32 target_ent_index = 8 [default = -1]; + optional .CMsgVector shoot_position = 3; + optional .CMsgVector target_head_pos_check = 9; + optional .CMsgVector target_abs_pos_check = 10; + optional .CMsgQAngle target_abs_ang_check = 11; +} + +message CSGOUserCmdPB { + optional .CBaseUserCmdPB base = 1; + repeated .CSGOInputHistoryEntryPB input_history = 2; + optional int32 attack1_start_history_index = 6 [default = -1]; + optional int32 attack2_start_history_index = 7 [default = -1]; + optional int32 attack3_start_history_index = 8 [default = -1]; + optional bool left_hand_desired = 9 [default = false]; +} diff --git a/Protobufs/csgo/cstrike15_gcmessages.proto b/Protobufs/csgo/cstrike15_gcmessages.proto new file mode 100644 index 0000000..e31ce28 --- /dev/null +++ b/Protobufs/csgo/cstrike15_gcmessages.proto @@ -0,0 +1,1439 @@ +import "steammessages.proto"; +import "engine_gcmessages.proto"; +import "gcsdk_gcmessages.proto"; + +enum ECsgoGCMsg { + k_EMsgGCCStrike15_v2_Base = 9100; + k_EMsgGCCStrike15_v2_MatchmakingStart = 9101; + k_EMsgGCCStrike15_v2_MatchmakingStop = 9102; + k_EMsgGCCStrike15_v2_MatchmakingClient2ServerPing = 9103; + k_EMsgGCCStrike15_v2_MatchmakingGC2ClientUpdate = 9104; + k_EMsgGCCStrike15_v2_MatchmakingServerReservationResponse = 9106; + k_EMsgGCCStrike15_v2_MatchmakingGC2ClientReserve = 9107; + k_EMsgGCCStrike15_v2_MatchmakingClient2GCHello = 9109; + k_EMsgGCCStrike15_v2_MatchmakingGC2ClientHello = 9110; + k_EMsgGCCStrike15_v2_MatchmakingGC2ClientAbandon = 9112; + k_EMsgGCCStrike15_v2_MatchmakingOperator2GCBlogUpdate = 9117; + k_EMsgGCCStrike15_v2_ServerNotificationForUserPenalty = 9118; + k_EMsgGCCStrike15_v2_ClientReportPlayer = 9119; + k_EMsgGCCStrike15_v2_ClientReportServer = 9120; + k_EMsgGCCStrike15_v2_ClientCommendPlayer = 9121; + k_EMsgGCCStrike15_v2_ClientReportResponse = 9122; + k_EMsgGCCStrike15_v2_ClientCommendPlayerQuery = 9123; + k_EMsgGCCStrike15_v2_ClientCommendPlayerQueryResponse = 9124; + k_EMsgGCCStrike15_v2_WatchInfoUsers = 9126; + k_EMsgGCCStrike15_v2_ClientRequestPlayersProfile = 9127; + k_EMsgGCCStrike15_v2_PlayersProfile = 9128; + k_EMsgGCCStrike15_v2_PlayerOverwatchCaseUpdate = 9131; + k_EMsgGCCStrike15_v2_PlayerOverwatchCaseAssignment = 9132; + k_EMsgGCCStrike15_v2_PlayerOverwatchCaseStatus = 9133; + k_EMsgGCCStrike15_v2_GC2ClientTextMsg = 9134; + k_EMsgGCCStrike15_v2_Client2GCTextMsg = 9135; + k_EMsgGCCStrike15_v2_MatchEndRunRewardDrops = 9136; + k_EMsgGCCStrike15_v2_MatchEndRewardDropsNotification = 9137; + k_EMsgGCCStrike15_v2_ClientRequestWatchInfoFriends2 = 9138; + k_EMsgGCCStrike15_v2_MatchList = 9139; + k_EMsgGCCStrike15_v2_MatchListRequestCurrentLiveGames = 9140; + k_EMsgGCCStrike15_v2_MatchListRequestRecentUserGames = 9141; + k_EMsgGCCStrike15_v2_GC2ServerReservationUpdate = 9142; + k_EMsgGCCStrike15_v2_ClientVarValueNotificationInfo = 9144; + k_EMsgGCCStrike15_v2_MatchListRequestTournamentGames = 9146; + k_EMsgGCCStrike15_v2_MatchListRequestFullGameInfo = 9147; + k_EMsgGCCStrike15_v2_GiftsLeaderboardRequest = 9148; + k_EMsgGCCStrike15_v2_GiftsLeaderboardResponse = 9149; + k_EMsgGCCStrike15_v2_ServerVarValueNotificationInfo = 9150; + k_EMsgGCCStrike15_v2_ClientSubmitSurveyVote = 9152; + k_EMsgGCCStrike15_v2_Server2GCClientValidate = 9153; + k_EMsgGCCStrike15_v2_MatchListRequestLiveGameForUser = 9154; + k_EMsgGCCStrike15_v2_Client2GCEconPreviewDataBlockRequest = 9156; + k_EMsgGCCStrike15_v2_Client2GCEconPreviewDataBlockResponse = 9157; + k_EMsgGCCStrike15_v2_AccountPrivacySettings = 9158; + k_EMsgGCCStrike15_v2_SetMyActivityInfo = 9159; + k_EMsgGCCStrike15_v2_MatchListRequestTournamentPredictions = 9160; + k_EMsgGCCStrike15_v2_MatchListUploadTournamentPredictions = 9161; + k_EMsgGCCStrike15_v2_DraftSummary = 9162; + k_EMsgGCCStrike15_v2_ClientRequestJoinFriendData = 9163; + k_EMsgGCCStrike15_v2_ClientRequestJoinServerData = 9164; + k_EMsgGCCStrike15_v2_ClientRequestNewMission = 9165; + k_EMsgGCCStrike15_v2_GC2ClientTournamentInfo = 9167; + k_EMsgGC_GlobalGame_Subscribe = 9168; + k_EMsgGC_GlobalGame_Unsubscribe = 9169; + k_EMsgGC_GlobalGame_Play = 9170; + k_EMsgGCCStrike15_v2_AcknowledgePenalty = 9171; + k_EMsgGCCStrike15_v2_Client2GCRequestPrestigeCoin = 9172; + k_EMsgGCCStrike15_v2_GC2ClientGlobalStats = 9173; + k_EMsgGCCStrike15_v2_Client2GCStreamUnlock = 9174; + k_EMsgGCCStrike15_v2_FantasyRequestClientData = 9175; + k_EMsgGCCStrike15_v2_FantasyUpdateClientData = 9176; + k_EMsgGCCStrike15_v2_GCToClientSteamdatagramTicket = 9177; + k_EMsgGCCStrike15_v2_ClientToGCRequestTicket = 9178; + k_EMsgGCCStrike15_v2_ClientToGCRequestElevate = 9179; + k_EMsgGCCStrike15_v2_GlobalChat = 9180; + k_EMsgGCCStrike15_v2_GlobalChat_Subscribe = 9181; + k_EMsgGCCStrike15_v2_GlobalChat_Unsubscribe = 9182; + k_EMsgGCCStrike15_v2_ClientAuthKeyCode = 9183; + k_EMsgGCCStrike15_v2_GotvSyncPacket = 9184; + k_EMsgGCCStrike15_v2_ClientPlayerDecalSign = 9185; + k_EMsgGCCStrike15_v2_ClientLogonFatalError = 9187; + k_EMsgGCCStrike15_v2_ClientPollState = 9188; + k_EMsgGCCStrike15_v2_Party_Register = 9189; + k_EMsgGCCStrike15_v2_Party_Unregister = 9190; + k_EMsgGCCStrike15_v2_Party_Search = 9191; + k_EMsgGCCStrike15_v2_Party_Invite = 9192; + k_EMsgGCCStrike15_v2_Account_RequestCoPlays = 9193; + k_EMsgGCCStrike15_v2_ClientGCRankUpdate = 9194; + k_EMsgGCCStrike15_v2_ClientRequestOffers = 9195; + k_EMsgGCCStrike15_v2_ClientAccountBalance = 9196; + k_EMsgGCCStrike15_v2_ClientPartyJoinRelay = 9197; + k_EMsgGCCStrike15_v2_ClientPartyWarning = 9198; + k_EMsgGCCStrike15_v2_SetEventFavorite = 9200; + k_EMsgGCCStrike15_v2_GetEventFavorites_Request = 9201; + k_EMsgGCCStrike15_v2_ClientPerfReport = 9202; + k_EMsgGCCStrike15_v2_GetEventFavorites_Response = 9203; + k_EMsgGCCStrike15_v2_ClientRequestSouvenir = 9204; + k_EMsgGCCStrike15_v2_ClientReportValidation = 9205; + k_EMsgGCCStrike15_v2_GC2ClientRefuseSecureMode = 9206; + k_EMsgGCCStrike15_v2_GC2ClientRequestValidation = 9207; + k_EMsgGCCStrike15_v2_ClientRedeemMissionReward = 9209; + k_EMsgGCCStrike15_ClientDeepStats = 9210; + k_EMsgGCCStrike15_StartAgreementSessionInGame = 9211; + k_EMsgGCCStrike15_v2_GC2ClientInitSystem = 9212; + k_EMsgGCCStrike15_v2_GC2ClientInitSystem_Response = 9213; + k_EMsgGCCStrike15_v2_PrivateQueues = 9214; + k_EMsgGCCStrike15_v2_MatchListTournamentOperatorMgmt = 9215; + k_EMsgGCCStrike15_v2_BetaEnrollment = 9217; + k_EMsgGCCStrike15_v2_SetPlayerLeaderboardSafeName = 9218; + k_EMsgGCCStrike15_v2_ClientRedeemFreeReward = 9219; + k_EMsgGCCStrike15_v2_ClientNetworkConfig = 9220; +} + +enum ECsgoSteamUserStat { + k_ECsgoSteamUserStat_XpEarnedGames = 1; + k_ECsgoSteamUserStat_MatchWinsCompetitive = 2; + k_ECsgoSteamUserStat_SurvivedDangerZone = 3; +} + +enum EClientReportingVersion { + k_EClientReportingVersion_OldVersion = 0; + k_EClientReportingVersion_BetaVersion = 1; + k_EClientReportingVersion_SupportsTrustedMode = 2; +} + +enum EInitSystemResult { + k_EInitSystemResult_Invalid = 0; + k_EInitSystemResult_Success = 1; + k_EInitSystemResult_None = 2; + k_EInitSystemResult_NotFound = 3; + k_EInitSystemResult_Existing = 4; + k_EInitSystemResult_FailedOpen = 5; + k_EInitSystemResult_Mismatch = 6; + k_EInitSystemResult_FailedInit = 7; + k_EInitSystemResult_Max = 8; +} + +message GameServerPing { + optional int32 ping = 2; + optional uint32 ip = 3; + optional uint32 instances = 5; +} + +message DataCenterPing { + optional fixed32 data_center_id = 1; + optional sint32 ping = 2; +} + +message DetailedSearchStatistic { + optional uint32 game_type = 1; + optional uint32 search_time_avg = 2; + optional uint32 players_searching = 4; +} + +message TournamentPlayer { + optional uint32 account_id = 1; + optional string player_nick = 2; + optional string player_name = 3; + optional uint32 player_dob = 4; + optional string player_flag = 5; + optional string player_location = 6; + optional string player_desc = 7; +} + +message TournamentTeam { + optional int32 team_id = 1; + optional string team_tag = 2; + optional string team_flag = 3; + optional string team_name = 4; + repeated .TournamentPlayer players = 5; +} + +message TournamentEvent { + optional int32 event_id = 1; + optional string event_tag = 2; + optional string event_name = 3; + optional uint32 event_time_start = 4; + optional uint32 event_time_end = 5; + optional int32 event_public = 6; + optional int32 event_stage_id = 7; + optional string event_stage_name = 8; + optional uint32 active_section_id = 9; +} + +message GlobalStatistics { + optional uint32 players_online = 1; + optional uint32 servers_online = 2; + optional uint32 players_searching = 3; + optional uint32 servers_available = 4; + optional uint32 ongoing_matches = 5; + optional uint32 search_time_avg = 6; + repeated .DetailedSearchStatistic search_statistics = 7; + optional string main_post_url = 8; + optional uint32 required_appid_version = 9; + optional uint32 pricesheet_version = 10; + optional uint32 twitch_streams_version = 11; + optional uint32 active_tournament_eventid = 12; + optional uint32 active_survey_id = 13; + optional uint32 rtime32_cur = 14; + optional uint32 rtime32_event_start = 15; + optional uint32 required_appid_version2 = 16; +} + +message OperationalStatisticDescription { + optional string name = 1; + optional uint32 idkey = 2; +} + +message OperationalStatisticElement { + optional uint32 idkey = 1; + repeated int32 values = 2; +} + +message OperationalStatisticsPacket { + optional int32 packetid = 1; + optional int32 mstimestamp = 2; + repeated .OperationalStatisticElement values = 3; +} + +message OperationalVarValue { + optional string name = 1; + optional int32 ivalue = 2; + optional float fvalue = 3; + optional bytes svalue = 4; +} + +message PlayerRankingInfo { + message PerMapRank { + optional uint32 map_id = 1; + optional uint32 rank_id = 2; + optional uint32 wins = 3; + } + + optional uint32 account_id = 1; + optional uint32 rank_id = 2; + optional uint32 wins = 3; + optional float rank_change = 4; + optional uint32 rank_type_id = 6; + optional uint32 tv_control = 7; + optional uint64 rank_window_stats = 8; + optional string leaderboard_name = 9; + optional uint32 rank_if_win = 10; + optional uint32 rank_if_lose = 11; + optional uint32 rank_if_tie = 12; + repeated .PlayerRankingInfo.PerMapRank per_map_rank = 13; + optional uint32 leaderboard_name_status = 14; +} + +message PlayerCommendationInfo { + optional uint32 cmd_friendly = 1; + optional uint32 cmd_teaching = 2; + optional uint32 cmd_leader = 4; +} + +message PlayerMedalsInfo { + repeated uint32 display_items_defidx = 7; + optional uint32 featured_display_item_defidx = 8; +} + +message AccountActivity { + optional uint32 activity = 1; + optional uint32 mode = 2; + optional uint32 map = 3; + optional uint64 matchid = 4; +} + +message TournamentMatchSetup { + optional int32 event_id = 1; + optional int32 team_id_ct = 2; + optional int32 team_id_t = 3; + optional int32 event_stage_id = 4; +} + +message ServerHltvInfo { + optional uint32 tv_udp_port = 1; + optional uint64 tv_watch_key = 2; + optional uint32 tv_slots = 3; + optional uint32 tv_clients = 4; + optional uint32 tv_proxies = 5; + optional uint32 tv_time = 6; + optional uint32 game_type = 8; + optional string game_mapgroup = 9; + optional string game_map = 10; + optional uint64 tv_master_steamid = 11; + optional uint32 tv_local_slots = 12; + optional uint32 tv_local_clients = 13; + optional uint32 tv_local_proxies = 14; + optional uint32 tv_relay_slots = 15; + optional uint32 tv_relay_clients = 16; + optional uint32 tv_relay_proxies = 17; + optional uint32 tv_relay_address = 18; + optional uint32 tv_relay_port = 19; + optional uint64 tv_relay_steamid = 20; + optional uint32 flags = 21; +} + +message IpAddressMask { + optional uint32 a = 1; + optional uint32 b = 2; + optional uint32 c = 3; + optional uint32 d = 4; + optional uint32 bits = 5; + optional uint32 token = 6; +} + +message CMsgCsgoSteamUserStatChange { + optional int32 ecsgosteamuserstat = 1; + optional int32 delta = 2; + optional bool absolute = 3; +} + +message XpProgressData { + optional uint32 xp_points = 1; + optional int32 xp_category = 2; +} + +message MatchEndItemUpdates { + optional uint64 item_id = 1; + optional uint32 item_attr_defidx = 2; + optional uint32 item_attr_delta_value = 3; +} + +message ScoreLeaderboardData { + message Entry { + optional uint32 tag = 1; + optional uint32 val = 2; + } + + message AccountEntries { + optional uint32 accountid = 1; + repeated .ScoreLeaderboardData.Entry entries = 2; + } + + optional uint64 quest_id = 1; + optional uint32 score = 2; + repeated .ScoreLeaderboardData.AccountEntries accountentries = 3; + repeated .ScoreLeaderboardData.Entry matchentries = 5; + optional string leaderboard_name = 6; +} + +message PlayerQuestData { + message QuestItemData { + optional uint64 quest_id = 1; + optional int32 quest_normal_points_earned = 2; + optional int32 quest_bonus_points_earned = 3; + } + + optional uint32 quester_account_id = 1; + repeated .PlayerQuestData.QuestItemData quest_item_data = 2; + repeated .XpProgressData xp_progress_data = 3; + optional uint32 time_played = 4; + optional uint32 mm_game_mode = 5; + repeated .MatchEndItemUpdates item_updates = 6; + optional bool operation_points_eligible = 7; + repeated .CMsgCsgoSteamUserStatChange userstatchanges = 8; +} + +message DeepPlayerStatsEntry { + optional uint32 accountid = 1; + optional uint64 match_id = 2; + optional uint32 mm_game_mode = 3; + optional uint32 mapid = 4; + optional bool b_starting_ct = 5; + optional uint32 match_outcome = 6; + optional uint32 rounds_won = 7; + optional uint32 rounds_lost = 8; + optional uint32 stat_score = 9; + optional uint32 stat_deaths = 12; + optional uint32 stat_mvps = 13; + optional uint32 enemy_kills = 14; + optional uint32 enemy_headshots = 15; + optional uint32 enemy_2ks = 16; + optional uint32 enemy_3ks = 17; + optional uint32 enemy_4ks = 18; + optional uint32 total_damage = 19; + optional uint32 engagements_entry_count = 23; + optional uint32 engagements_entry_wins = 24; + optional uint32 engagements_1v1_count = 25; + optional uint32 engagements_1v1_wins = 26; + optional uint32 engagements_1v2_count = 27; + optional uint32 engagements_1v2_wins = 28; + optional uint32 utility_count = 29; + optional uint32 utility_success = 30; + optional uint32 flash_count = 32; + optional uint32 flash_success = 33; + repeated uint32 mates = 34; +} + +message DeepPlayerMatchEvent { + optional uint32 accountid = 1; + optional uint64 match_id = 2; + optional uint32 event_id = 3; + optional uint32 event_type = 4; + optional bool b_playing_ct = 5; + optional int32 user_pos_x = 6; + optional int32 user_pos_y = 7; + optional int32 user_pos_z = 12; + optional uint32 user_defidx = 8; + optional int32 other_pos_x = 9; + optional int32 other_pos_y = 10; + optional int32 other_pos_z = 13; + optional uint32 other_defidx = 11; + optional int32 event_data = 14; +} + +message CMsgGC_ServerQuestUpdateData { + repeated .PlayerQuestData player_quest_data = 1; + optional bytes binary_data = 2; + optional uint32 mm_game_mode = 3; + optional .ScoreLeaderboardData missionlbsdata = 4; + optional uint32 flags = 5; +} + +message CMsgGCCStrike15_v2_MatchmakingGC2ServerConfirm { + optional uint32 token = 1; + optional uint32 stamp = 2; + optional uint64 exchange = 3; + optional uint32 retry = 4; +} + +message CMsgGCCStrike15_v2_GC2ServerReservationUpdate { + optional uint32 viewers_external_total = 1; + optional uint32 viewers_external_steam = 2; +} + +message CMsgGCCStrike15_v2_MatchmakingStart { + repeated uint32 account_ids = 1; + optional uint32 game_type = 2; + optional string ticket_data = 3; + optional uint32 client_version = 4; + optional .TournamentMatchSetup tournament_match = 5; + optional bool prime_only = 6; + optional uint32 tv_control = 7; + optional uint64 lobby_id = 8; +} + +message CMsgGCCStrike15_v2_MatchmakingStop { + optional int32 abandon = 1; +} + +message CMsgGCCStrike15_v2_MatchmakingGC2ClientUpdate_Note { + optional int32 type = 1; + optional int32 region_id = 2; + optional float region_r = 3; + optional float distance = 4; +} + +message CMsgGCCStrike15_v2_MatchmakingClient2ServerPing { + repeated .GameServerPing gameserverpings = 1; + optional int32 offset_index = 2; + optional int32 final_batch = 3; + repeated .DataCenterPing data_center_pings = 4; + optional uint32 max_ping = 5; + optional fixed32 test_token = 6; + optional bytes search_key = 7; + repeated .CMsgGCCStrike15_v2_MatchmakingGC2ClientUpdate_Note notes = 8; + optional string debug_message = 9; +} + +message CMsgGCCStrike15_v2_MatchmakingGC2ClientUpdate { + optional int32 matchmaking = 1; + repeated uint32 waiting_account_id_sessions = 2; + optional string error = 3; + repeated uint32 ongoingmatch_account_id_sessions = 6; + optional .GlobalStatistics global_stats = 7; + repeated uint32 failping_account_id_sessions = 8; + repeated uint32 penalty_account_id_sessions = 9; + repeated uint32 failready_account_id_sessions = 10; + repeated uint32 vacbanned_account_id_sessions = 11; + optional .IpAddressMask server_ipaddress_mask = 12; + repeated .CMsgGCCStrike15_v2_MatchmakingGC2ClientUpdate_Note notes = 13; + repeated uint32 penalty_account_id_sessions_green = 14; + repeated uint32 insufficientlevel_sessions = 15; + repeated uint32 vsncheck_account_id_sessions = 16; + repeated uint32 launcher_mismatch_sessions = 17; + repeated uint32 insecure_account_id_sessions = 18; +} + +message CDataGCCStrike15_v2_TournamentMatchDraft { + message Entry { + optional int32 mapid = 1; + optional int32 team_id_ct = 2; + } + + optional int32 event_id = 1; + optional int32 event_stage_id = 2; + optional int32 team_id_0 = 3; + optional int32 team_id_1 = 4; + optional int32 maps_count = 5; + optional int32 maps_current = 6; + optional int32 team_id_start = 7; + optional int32 team_id_veto1 = 8; + optional int32 team_id_pickn = 9; + repeated .CDataGCCStrike15_v2_TournamentMatchDraft.Entry drafts = 10; + repeated int32 vote_mapid_0 = 11; + repeated int32 vote_mapid_1 = 12; + repeated int32 vote_mapid_2 = 13; + repeated int32 vote_mapid_3 = 14; + repeated int32 vote_mapid_4 = 15; + repeated int32 vote_mapid_5 = 16; + repeated int32 vote_starting_side = 17; + optional int32 vote_phase = 18; + optional float vote_phase_start = 19; + optional float vote_phase_length = 20; +} + +message CPreMatchInfoData { + message TeamStats { + optional int32 match_info_idxtxt = 1; + optional string match_info_txt = 2; + repeated string match_info_teams = 3; + } + + optional int32 predictions_pct = 1; + optional .CDataGCCStrike15_v2_TournamentMatchDraft draft = 4; + repeated .CPreMatchInfoData.TeamStats stats = 5; + repeated int32 wins = 6; +} + +message CMsgGCCStrike15_v2_MatchmakingGC2ServerReserve { + repeated uint32 account_ids = 1; + optional uint32 game_type = 2; + optional uint64 match_id = 3; + optional uint32 server_version = 4; + optional uint32 flags = 18; + repeated .PlayerRankingInfo rankings = 5; + optional uint64 encryption_key = 6; + optional uint64 encryption_key_pub = 7; + repeated uint32 party_ids = 8; + repeated .IpAddressMask whitelist = 9; + optional uint64 tv_master_steamid = 10; + optional .TournamentEvent tournament_event = 11; + repeated .TournamentTeam tournament_teams = 12; + repeated uint32 tournament_casters_account_ids = 13; + optional uint64 tv_relay_steamid = 14; + optional .CPreMatchInfoData pre_match_data = 15; + optional uint32 rtime32_event_start = 16; + optional uint32 tv_control = 17; + repeated .OperationalVarValue op_var_values = 19; + optional uint32 socache_control = 20; +} + +message CMsgGCCStrike15_v2_MatchmakingServerReservationResponse { + optional uint64 reservationid = 1; + optional .CMsgGCCStrike15_v2_MatchmakingGC2ServerReserve reservation = 2; + optional string map = 3; + optional uint64 gc_reservation_sent = 4; + optional uint32 server_version = 5; + optional .ServerHltvInfo tv_info = 6; + repeated uint32 reward_player_accounts = 7; + repeated uint32 idle_player_accounts = 8; + optional uint32 reward_item_attr_def_idx = 9; + optional uint32 reward_item_attr_value = 10; + optional uint32 reward_item_attr_reward_idx = 11; + optional uint32 reward_drop_list = 12; + optional string tournament_tag = 13; + optional uint32 legacy_steamdatagram_port = 14; + optional uint32 steamdatagram_routing = 17; + optional fixed32 test_token = 15; + optional uint32 flags = 16; + optional uint32 system_load = 18; + optional uint32 cpus_online = 19; +} + +message CMsgGCCStrike15_v2_MatchmakingGC2ClientReserve { + optional uint64 serverid = 1; + optional uint32 direct_udp_ip = 2; + optional uint32 direct_udp_port = 3; + optional uint64 reservationid = 4; + optional .CMsgGCCStrike15_v2_MatchmakingGC2ServerReserve reservation = 5; + optional string map = 6; + optional string server_address = 7; + optional .DataCenterPing gs_ping = 8; + optional uint32 gs_location_id = 9; +} + +message CMsgGCCStrike15_v2_MatchmakingServerRoundStats { + message DropInfo { + optional uint32 account_mvp = 1; + } + + optional uint64 reservationid = 1; + optional .CMsgGCCStrike15_v2_MatchmakingGC2ServerReserve reservation = 2; + optional string map = 3; + optional int32 round = 4; + repeated int32 kills = 5; + repeated int32 assists = 6; + repeated int32 deaths = 7; + repeated int32 scores = 8; + repeated int32 pings = 9; + optional int32 round_result = 10; + optional int32 match_result = 11; + repeated int32 team_scores = 12; + optional .CMsgGCCStrike15_v2_MatchmakingGC2ServerConfirm confirm = 13; + optional int32 reservation_stage = 14; + optional int32 match_duration = 15; + repeated int32 enemy_kills = 16; + repeated int32 enemy_headshots = 17; + repeated int32 enemy_3ks = 18; + repeated int32 enemy_4ks = 19; + repeated int32 enemy_5ks = 20; + repeated int32 mvps = 21; + optional uint32 spectators_count = 22; + optional uint32 spectators_count_tv = 23; + optional uint32 spectators_count_lnk = 24; + repeated int32 enemy_kills_agg = 25; + optional .CMsgGCCStrike15_v2_MatchmakingServerRoundStats.DropInfo drop_info = 26; + optional bool b_switched_teams = 27; + repeated int32 enemy_2ks = 28; + repeated int32 player_spawned = 29; + repeated int32 team_spawn_count = 30; + optional uint32 max_rounds = 31; + optional int32 map_id = 32; +} + +message CMsgGCCStrike15_v2_MatchmakingClient2GCHello { +} + +message CMsgGCCStrike15_v2_MatchmakingGC2ClientHello { + optional uint32 account_id = 1; + optional .CMsgGCCStrike15_v2_MatchmakingGC2ClientReserve ongoingmatch = 2; + optional .GlobalStatistics global_stats = 3; + optional uint32 penalty_seconds = 4; + optional uint32 penalty_reason = 5; + optional int32 vac_banned = 6; + optional .PlayerRankingInfo ranking = 7; + optional .PlayerCommendationInfo commendation = 8; + optional .PlayerMedalsInfo medals = 9; + optional .TournamentEvent my_current_event = 10; + repeated .TournamentTeam my_current_event_teams = 11; + optional .TournamentTeam my_current_team = 12; + repeated .TournamentEvent my_current_event_stages = 13; + optional uint32 survey_vote = 14; + optional .AccountActivity activity = 15; + optional int32 player_level = 17; + optional int32 player_cur_xp = 18; + optional int32 player_xp_bonus_flags = 19; + repeated .PlayerRankingInfo rankings = 20; + optional uint64 owcaseid = 21; +} + +message CMsgGCCStrike15_v2_AccountPrivacySettings { + message Setting { + optional uint32 setting_type = 1; + optional uint32 setting_value = 2; + } + + repeated .CMsgGCCStrike15_v2_AccountPrivacySettings.Setting settings = 1; +} + +message CMsgGCCStrike15_v2_MatchmakingGC2ClientAbandon { + optional uint32 account_id = 1; + optional .CMsgGCCStrike15_v2_MatchmakingGC2ClientReserve abandoned_match = 2; + optional uint32 penalty_seconds = 3; + optional uint32 penalty_reason = 4; +} + +message CMsgGCCStrike15_v2_ClientGCRankUpdate { + repeated .PlayerRankingInfo rankings = 1; +} + +message CMsgGCCStrike15_v2_MatchmakingOperator2GCBlogUpdate { + optional string main_post_url = 1; +} + +message CMsgGCCStrike15_v2_ServerNotificationForUserPenalty { + optional uint32 account_id = 1; + optional uint32 reason = 2; + optional uint32 seconds = 3; + optional bool communication_cooldown = 4; +} + +message CMsgGCCStrike15_v2_ClientReportPlayer { + optional uint32 account_id = 1; + optional uint32 rpt_aimbot = 2; + optional uint32 rpt_wallhack = 3; + optional uint32 rpt_speedhack = 4; + optional uint32 rpt_teamharm = 5; + optional uint32 rpt_textabuse = 6; + optional uint32 rpt_voiceabuse = 7; + optional uint64 match_id = 8; + optional bool report_from_demo = 9; +} + +message CMsgGCCStrike15_v2_ClientCommendPlayer { + optional uint32 account_id = 1; + optional uint64 match_id = 8; + optional .PlayerCommendationInfo commendation = 9; + optional uint32 tokens = 10; +} + +message CMsgGCCStrike15_v2_ClientReportServer { + optional uint32 rpt_poorperf = 1; + optional uint32 rpt_abusivemodels = 2; + optional uint32 rpt_badmotd = 3; + optional uint32 rpt_listingabuse = 4; + optional uint32 rpt_inventoryabuse = 5; + optional uint64 match_id = 8; +} + +message CMsgGCCStrike15_v2_ClientReportResponse { + optional uint64 confirmation_id = 1; + optional uint32 account_id = 2; + optional uint32 server_ip = 3; + optional uint32 response_type = 4; + optional uint32 response_result = 5; + optional uint32 tokens = 6; +} + +message CMsgGCCStrike15_v2_ClientRequestWatchInfoFriends { + optional uint32 request_id = 1; + repeated uint32 account_ids = 2; + optional uint64 serverid = 3; + optional uint64 matchid = 4; + optional uint32 client_launcher = 5; + repeated .DataCenterPing data_center_pings = 6; +} + +message WatchableMatchInfo { + optional uint32 server_ip = 1; + optional uint32 tv_port = 2; + optional uint32 tv_spectators = 3; + optional uint32 tv_time = 4; + optional bytes tv_watch_password = 5; + optional uint64 cl_decryptdata_key = 6; + optional uint64 cl_decryptdata_key_pub = 7; + optional uint32 game_type = 8; + optional string game_mapgroup = 9; + optional string game_map = 10; + optional uint64 server_id = 11; + optional uint64 match_id = 12; + optional uint64 reservation_id = 13; +} + +message CMsgGCCStrike15_v2_ClientRequestJoinFriendData { + optional uint32 version = 1; + optional uint32 account_id = 2; + optional uint32 join_token = 3; + optional uint32 join_ipp = 4; + optional .CMsgGCCStrike15_v2_MatchmakingGC2ClientReserve res = 5; + optional string errormsg = 6; +} + +message CMsgGCCStrike15_v2_ClientRequestJoinServerData { + optional uint32 version = 1; + optional uint32 account_id = 2; + optional uint64 serverid = 3; + optional uint32 server_ip = 4; + optional uint32 server_port = 5; + optional .CMsgGCCStrike15_v2_MatchmakingGC2ClientReserve res = 6; + optional string errormsg = 7; +} + +message CMsgGCCstrike15_v2_ClientRequestNewMission { + optional uint32 mission_id = 2; + optional uint32 campaign_id = 3; +} + +message CMsgGCCstrike15_v2_ClientRedeemMissionReward { + optional uint32 campaign_id = 1; + optional uint32 redeem_id = 2; + optional uint32 redeemable_balance = 3; + optional uint32 expected_cost = 4; +} + +message CMsgGCCstrike15_v2_ClientRedeemFreeReward { + optional uint32 generation_time = 1; + optional uint32 redeemable_balance = 2; + repeated uint64 items = 3; +} + +message CMsgGCCstrike15_v2_GC2ServerNotifyXPRewarded { + repeated .XpProgressData xp_progress_data = 1; + optional uint32 account_id = 2; + optional uint32 current_xp = 3; + optional uint32 current_level = 4; + optional uint32 upgraded_defidx = 5; + optional uint32 operation_points_awarded = 6; + optional uint32 free_rewards = 7; + optional uint32 xp_trail_remaining = 8; + optional int32 xp_trail_xp_needed = 9; + optional uint32 xp_trail_level = 10; +} + +message CMsgGCCStrike15_v2_ClientNetworkConfig { + optional bytes data = 1; +} + +message CMsgGCCStrike15_ClientDeepStats { + message DeepStatsRange { + optional uint32 begin = 1; + optional uint32 end = 2; + optional bool frozen = 3; + } + + message DeepStatsMatch { + optional .DeepPlayerStatsEntry player = 1; + repeated .DeepPlayerMatchEvent events = 2; + } + + optional uint32 account_id = 1; + optional .CMsgGCCStrike15_ClientDeepStats.DeepStatsRange range = 2; + repeated .CMsgGCCStrike15_ClientDeepStats.DeepStatsMatch matches = 3; +} + +message CMsgGCCStrike15_v2_WatchInfoUsers { + optional uint32 request_id = 1; + repeated uint32 account_ids = 2; + repeated .WatchableMatchInfo watchable_match_infos = 3; + optional uint32 extended_timeout = 5; +} + +message CMsgGCCStrike15_v2_ClientRequestPlayersProfile { + optional uint32 request_id__deprecated = 1; + repeated uint32 account_ids__deprecated = 2; + optional uint32 account_id = 3; + optional uint32 request_level = 4; +} + +message CMsgGCCStrike15_v2_PlayersProfile { + optional uint32 request_id = 1; + repeated .CMsgGCCStrike15_v2_MatchmakingGC2ClientHello account_profiles = 2; +} + +message CMsgGCCStrike15_v2_PlayerOverwatchCaseUpdate { + optional uint64 caseid = 1; + optional uint32 suspectid = 3; + optional uint32 fractionid = 4; + optional uint32 rpt_aimbot = 5; + optional uint32 rpt_wallhack = 6; + optional uint32 rpt_speedhack = 7; + optional uint32 rpt_teamharm = 8; + optional uint32 reason = 9; +} + +message CMsgGCCStrike15_v2_PlayerOverwatchCaseAssignment { + optional uint64 caseid = 1; + optional string caseurl = 2; + optional uint32 verdict = 3; + optional uint32 timestamp = 4; + optional uint32 throttleseconds = 5; + optional uint32 suspectid = 6; + optional uint32 fractionid = 7; + optional uint32 numrounds = 8; + optional uint32 fractionrounds = 9; + optional int32 streakconvictions = 10; + optional uint32 reason = 11; +} + +message CMsgGCCStrike15_v2_PlayerOverwatchCaseStatus { + optional uint64 caseid = 1; + optional uint32 statusid = 2; +} + +message CClientHeaderOverwatchEvidence { + optional uint32 accountid = 1; + optional uint64 caseid = 2; +} + +message CMsgGCCStrike15_v2_GC2ClientTextMsg { + optional uint32 id = 1; + optional uint32 type = 2; + optional bytes payload = 3; +} + +message CMsgGCCStrike15_v2_Client2GCTextMsg { + optional uint32 id = 1; + repeated bytes args = 2; +} + +message CMsgGCCStrike15_v2_MatchEndRunRewardDrops { + optional .CMsgGCCStrike15_v2_MatchmakingServerReservationResponse serverinfo = 3; + optional .CMsgGC_ServerQuestUpdateData match_end_quest_data = 4; +} + +message CEconItemPreviewDataBlock { + message Sticker { + optional uint32 slot = 1; + optional uint32 sticker_id = 2; + optional float wear = 3; + optional float scale = 4; + optional float rotation = 5; + optional uint32 tint_id = 6; + optional float offset_x = 7; + optional float offset_y = 8; + } + + optional uint32 accountid = 1; + optional uint64 itemid = 2; + optional uint32 defindex = 3; + optional uint32 paintindex = 4; + optional uint32 rarity = 5; + optional uint32 quality = 6; + optional uint32 paintwear = 7; + optional uint32 paintseed = 8; + optional uint32 killeaterscoretype = 9; + optional uint32 killeatervalue = 10; + optional string customname = 11; + repeated .CEconItemPreviewDataBlock.Sticker stickers = 12; + optional uint32 inventory = 13; + optional uint32 origin = 14; + optional uint32 questid = 15; + optional uint32 dropreason = 16; + optional uint32 musicindex = 17; + optional int32 entindex = 18; + optional uint32 petindex = 19; + repeated .CEconItemPreviewDataBlock.Sticker keychains = 20; +} + +message CMsgGCCStrike15_v2_MatchEndRewardDropsNotification { + optional .CEconItemPreviewDataBlock iteminfo = 6; +} + +message CMsgItemAcknowledged { + optional .CEconItemPreviewDataBlock iteminfo = 1; +} + +message CMsgGCCStrike15_v2_Client2GCEconPreviewDataBlockRequest { + optional uint64 param_s = 1; + optional uint64 param_a = 2; + optional uint64 param_d = 3; + optional uint64 param_m = 4; +} + +message CMsgGCCStrike15_v2_Client2GCEconPreviewDataBlockResponse { + optional .CEconItemPreviewDataBlock iteminfo = 1; +} + +message CMsgGCCStrike15_v2_MatchListRequestCurrentLiveGames { +} + +message CMsgGCCStrike15_v2_MatchListRequestLiveGameForUser { + optional uint32 accountid = 1; +} + +message CMsgGCCStrike15_v2_MatchListRequestRecentUserGames { + optional uint32 accountid = 1; +} + +message CMsgGCCStrike15_v2_MatchListRequestTournamentGames { + optional int32 eventid = 1; +} + +message CMsgGCCStrike15_v2_MatchListRequestFullGameInfo { + optional uint64 matchid = 1; + optional uint64 outcomeid = 2; + optional uint32 token = 3; +} + +message CDataGCCStrike15_v2_MatchInfo { + optional uint64 matchid = 1; + optional uint32 matchtime = 2; + optional .WatchableMatchInfo watchablematchinfo = 3; + optional .CMsgGCCStrike15_v2_MatchmakingServerRoundStats roundstats_legacy = 4; + repeated .CMsgGCCStrike15_v2_MatchmakingServerRoundStats roundstatsall = 5; +} + +message CDataGCCStrike15_v2_TournamentGroupTeam { + optional int32 team_id = 1; + optional int32 score = 2; + optional bool correctpick = 3; +} + +message CDataGCCStrike15_v2_TournamentGroup { + message Picks { + repeated int32 pickids = 1; + } + + optional uint32 groupid = 1; + optional string name = 2; + optional string desc = 3; + optional uint32 picks__deprecated = 4; + repeated .CDataGCCStrike15_v2_TournamentGroupTeam teams = 5; + repeated int32 stage_ids = 6; + optional uint32 picklockuntiltime = 7; + optional uint32 pickableteams = 8; + optional uint32 points_per_pick = 9; + repeated .CDataGCCStrike15_v2_TournamentGroup.Picks picks = 10; +} + +message CDataGCCStrike15_v2_TournamentSection { + optional uint32 sectionid = 1; + optional string name = 2; + optional string desc = 3; + repeated .CDataGCCStrike15_v2_TournamentGroup groups = 4; +} + +message CDataGCCStrike15_v2_TournamentInfo { + repeated .CDataGCCStrike15_v2_TournamentSection sections = 1; + optional .TournamentEvent tournament_event = 2; + repeated .TournamentTeam tournament_teams = 3; +} + +message CMsgGCCStrike15_v2_MatchList { + optional uint32 msgrequestid = 1; + optional uint32 accountid = 2; + optional uint32 servertime = 3; + repeated .CDataGCCStrike15_v2_MatchInfo matches = 4; + repeated .TournamentTeam streams = 5; + optional .CDataGCCStrike15_v2_TournamentInfo tournamentinfo = 6; +} + +message CMsgGCCStrike15_v2_MatchListTournamentOperatorMgmt { + optional int32 eventid = 1; + repeated .CDataGCCStrike15_v2_MatchInfo matches = 2; + optional uint32 accountid = 3; +} + +message CMsgGCCStrike15_v2_Predictions { + message GroupMatchTeamPick { + optional int32 sectionid = 1; + optional int32 groupid = 2; + optional int32 index = 3; + optional int32 teamid = 4; + optional uint64 itemid = 5; + } + + optional uint32 event_id = 1; + repeated .CMsgGCCStrike15_v2_Predictions.GroupMatchTeamPick group_match_team_picks = 2; +} + +message CMsgGCCStrike15_v2_Fantasy { + message FantasySlot { + optional int32 type = 1; + optional int32 pick = 2; + optional uint64 itemid = 3; + } + + message FantasyTeam { + optional int32 sectionid = 1; + repeated .CMsgGCCStrike15_v2_Fantasy.FantasySlot slots = 2; + } + + optional uint32 event_id = 1; + repeated .CMsgGCCStrike15_v2_Fantasy.FantasyTeam teams = 2; +} + +message CAttribute_String { + optional string value = 1; +} + +message CMsgLegacySource1ClientWelcome { + message Location { + optional float latitude = 1; + optional float longitude = 2; + optional string country = 3; + } + + optional uint32 version = 1; + optional bytes game_data = 2; + repeated .CMsgSOCacheSubscribed outofdate_subscribed_caches = 3; + repeated .CMsgSOCacheSubscriptionCheck uptodate_subscribed_caches = 4; + optional .CMsgLegacySource1ClientWelcome.Location location = 5; + optional bytes game_data2 = 6; + optional uint32 rtime32_gc_welcome_timestamp = 7; + optional uint32 currency = 8; + optional uint32 balance = 9; + optional string balance_url = 10; + optional string txn_country_code = 11; +} + +message CMsgCStrike15Welcome { + optional uint32 store_item_hash = 5; + optional uint32 timeplayedconsecutively = 6; + optional uint32 time_first_played = 10; + optional uint32 last_time_played = 12; + optional uint32 last_ip_address = 13; + optional uint64 gscookieid = 18; + optional uint64 uniqueid = 19; +} + +message CMsgGCCStrike15_v2_ClientVarValueNotificationInfo { + optional string value_name = 1; + optional int32 value_int = 2; + optional uint32 server_addr = 3; + optional uint32 server_port = 4; + repeated string choked_blocks = 5; +} + +message CMsgGCCStrike15_v2_ServerVarValueNotificationInfo { + optional uint32 accountid = 1; + repeated uint32 viewangles = 2; + optional uint32 type = 3; + repeated uint32 userdata = 4; +} + +message CMsgGCCStrike15_v2_GiftsLeaderboardRequest { +} + +message CMsgGCCStrike15_v2_GiftsLeaderboardResponse { + message GiftLeaderboardEntry { + optional uint32 accountid = 1; + optional uint32 gifts = 2; + } + + optional uint32 servertime = 1; + optional uint32 time_period_seconds = 2; + optional uint32 total_gifts_given = 3; + optional uint32 total_givers = 4; + repeated .CMsgGCCStrike15_v2_GiftsLeaderboardResponse.GiftLeaderboardEntry entries = 5; +} + +message CMsgGCCStrike15_v2_ClientSubmitSurveyVote { + optional uint32 survey_id = 1; + optional uint32 vote = 2; +} + +message CMsgGCCStrike15_v2_Server2GCClientValidate { + optional uint32 accountid = 1; +} + +message CMsgGCCStrike15_v2_GC2ClientTournamentInfo { + optional uint32 eventid = 1; + optional uint32 stageid = 2; + optional uint32 game_type = 3; + repeated uint32 teamids = 4; +} + +message CSOEconCoupon { + optional uint32 entryid = 1 [(key_field) = true]; + optional uint32 defidx = 2; + optional fixed32 expiration_date = 3; +} + +message CSOAccountItemPersonalStore { + optional uint32 generation_time = 1 [(key_field) = true]; + optional uint32 redeemable_balance = 2; + repeated uint64 items = 3; +} + +message CSOQuestProgress { + optional uint32 questid = 1 [(key_field) = true]; + optional uint32 points_remaining = 2; + optional uint32 bonus_points = 3; +} + +message CSOAccountSeasonalOperation { + optional uint32 season_value = 1 [(key_field) = true]; + optional uint32 tier_unlocked = 2; + optional uint32 premium_tiers = 3; + optional uint32 mission_id = 4; + optional uint32 missions_completed = 5; + optional uint32 redeemable_balance = 6; + optional uint32 season_pass_time = 7; +} + +message CSOAccountRecurringSubscription { + optional uint32 time_next_cycle = 1; + optional uint32 time_initiated = 2; +} + +message CSOPersonaDataPublic { + optional int32 player_level = 1; + optional .PlayerCommendationInfo commendation = 2; + optional bool elevated_state = 3; + optional uint32 xp_trail_timestamp_refresh = 4; + optional uint32 xp_trail_level = 5; +} + +message CMsgGC_GlobalGame_Subscribe { + optional uint64 ticket = 1; +} + +message CMsgGC_GlobalGame_Unsubscribe { + optional int32 timeleft = 1; +} + +message CMsgGC_GlobalGame_Play { + optional uint64 ticket = 1; + optional uint32 gametimems = 2; + optional uint32 msperpoint = 3; +} + +message CMsgGCCStrike15_v2_AcknowledgePenalty { + optional int32 acknowledged = 1; +} + +message CMsgGCCStrike15_v2_Client2GCRequestPrestigeCoin { + optional uint32 defindex = 1; + optional uint64 upgradeid = 2; + optional uint32 hours = 3; + optional uint32 prestigetime = 4; +} + +message CMsgGCCStrike15_v2_Client2GCStreamUnlock { + optional uint64 ticket = 1; + optional int32 os = 2; +} + +message CMsgGCCStrike15_v2_ClientToGCRequestElevate { + optional uint32 stage = 1; +} + +message CMsgGCCStrike15_v2_ClientToGCChat { + optional uint64 match_id = 1; + optional string text = 2; +} + +message CMsgGCCStrike15_v2_GCToClientChat { + optional uint32 account_id = 1; + optional string text = 2; +} + +message CMsgGCCStrike15_v2_ClientAuthKeyCode { + optional uint32 eventid = 1; + optional string code = 2; +} + +message CMsgGCCStrike15_GotvSyncPacket { + optional .CEngineGotvSyncPacket data = 1; +} + +message PlayerDecalDigitalSignature { + optional bytes signature = 1; + optional uint32 accountid = 2; + optional uint32 rtime = 3; + repeated float endpos = 4; + repeated float startpos = 5; + repeated float left = 6; + optional uint32 tx_defidx = 7; + optional int32 entindex = 8; + optional uint32 hitbox = 9; + optional float creationtime = 10; + optional uint32 equipslot = 11; + optional uint32 trace_id = 12; + repeated float normal = 13; + optional uint32 tint_id = 14; +} + +message CMsgGCCStrike15_v2_ClientPlayerDecalSign { + optional .PlayerDecalDigitalSignature data = 1; + optional uint64 itemid = 2; +} + +message CMsgGCCStrike15_v2_BetaEnrollment { + optional uint32 eresult = 1; +} + +message CMsgGCCStrike15_v2_ClientLogonFatalError { + optional uint32 errorcode = 1; + optional string message = 2; + optional string country = 3; +} + +message CMsgGCCStrike15_v2_ClientPollState { + optional uint32 pollid = 1; + repeated string names = 2; + repeated int32 values = 3; +} + +message CMsgGCCStrike15_v2_Party_Register { + optional uint32 id = 1; + optional uint32 ver = 2; + optional uint32 apr = 3; + optional uint32 ark = 4; + optional uint32 nby = 5; + optional uint32 grp = 6; + optional uint32 slots = 7; + optional uint32 launcher = 8; + optional uint32 game_type = 9; +} + +message CMsgGCCStrike15_v2_Party_Search { + optional uint32 ver = 1; + optional uint32 apr = 2; + optional uint32 ark = 3; + repeated uint32 grps = 4; + optional uint32 launcher = 5; + optional uint32 game_type = 6; +} + +message CMsgGCCStrike15_v2_Party_SearchResults { + message Entry { + optional uint32 id = 1; + optional uint32 grp = 2; + optional uint32 game_type = 3; + optional uint32 apr = 4; + optional uint32 ark = 5; + optional uint32 loc = 6; + optional uint32 accountid = 7; + } + + repeated .CMsgGCCStrike15_v2_Party_SearchResults.Entry entries = 1; +} + +message CMsgGCCStrike15_v2_Party_Invite { + optional uint32 accountid = 1; + optional uint32 lobbyid = 2; +} + +message CMsgGCCStrike15_v2_Account_RequestCoPlays { + message Player { + optional uint32 accountid = 1; + optional uint32 rtcoplay = 2; + optional bool online = 3; + } + + repeated .CMsgGCCStrike15_v2_Account_RequestCoPlays.Player players = 1; + optional uint32 servertime = 2; +} + +message CMsgGCCStrike15_v2_ClientToGCRequestTicket { + optional fixed64 authorized_steam_id = 1; + optional fixed32 authorized_public_ip = 2; + optional fixed64 gameserver_steam_id = 3; + optional string gameserver_sdr_routing = 5; +} + +message CMsgGCToClientSteamDatagramTicket { + optional bytes serialized_ticket = 16; +} + +message CMsgGCCStrike15_v2_ClientRequestOffers { +} + +message CMsgGCCStrike15_v2_ClientRequestSouvenir { + optional uint64 itemid = 1; + optional uint64 matchid = 2; + optional int32 eventid = 3; +} + +message CMsgGCCStrike15_v2_ClientAccountBalance { + optional uint64 amount = 1; + optional string url = 2; +} + +message CMsgGCCStrike15_v2_ClientPartyJoinRelay { + optional uint32 accountid = 1; + optional uint64 lobbyid = 2; +} + +message CMsgGCCStrike15_v2_ClientPartyWarning { + message Entry { + optional uint32 accountid = 1; + optional uint32 warntype = 2; + } + + repeated .CMsgGCCStrike15_v2_ClientPartyWarning.Entry entries = 1; +} + +message CMsgGCCStrike15_v2_SetEventFavorite { + optional uint64 eventid = 1; + optional bool is_favorite = 2; +} + +message CMsgGCCStrike15_v2_GetEventFavorites_Request { + optional bool all_events = 1; +} + +message CMsgGCCStrike15_v2_GetEventFavorites_Response { + optional bool all_events = 1; + optional string json_favorites = 2; + optional string json_featured = 3; +} + +message CMsgGCCStrike15_v2_ClientPerfReport { + message Entry { + optional uint32 perfcounter = 1; + optional uint32 length = 2; + optional bytes reference = 3; + optional bytes actual = 4; + optional uint32 sourceid = 5; + optional uint32 status = 6; + } + + repeated .CMsgGCCStrike15_v2_ClientPerfReport.Entry entries = 1; +} + +message CVDiagnostic { + optional uint32 id = 1; + optional uint32 extended = 2; + optional uint64 value = 3; + optional string string_value = 4; +} + +message CMsgGCCStrike15_v2_ClientReportValidation { + optional string file_report = 1; + optional string command_line = 2; + optional uint32 total_files = 3; + optional uint32 internal_error = 4; + optional uint32 trust_time = 5; + optional uint32 count_pending = 6; + optional uint32 count_completed = 7; + optional uint32 process_id = 8; + optional int32 osversion = 9; + optional uint32 clientreportversion = 10; + optional uint32 status_id = 11; + optional uint32 diagnostic1 = 12; + optional uint64 diagnostic2 = 13; + optional uint64 diagnostic3 = 14; + optional string last_launch_data = 15; + optional uint32 report_count = 16; + optional uint64 client_time = 17; + optional uint64 diagnostic4 = 18; + optional uint64 diagnostic5 = 19; + repeated .CVDiagnostic diagnostics = 20; +} + +message CMsgGCCStrike15_v2_GC2ClientRefuseSecureMode { + optional string file_report = 1; + optional bool offer_insecure_mode = 2; + optional bool offer_secure_mode = 3; + optional bool show_unsigned_ui = 4; + optional bool kick_user = 5; + optional bool show_trusted_ui = 6; + optional bool show_warning_not_trusted = 7; + optional bool show_warning_not_trusted_2 = 8; + optional string files_prevented_trusted = 9; +} + +message CMsgGCCStrike15_v2_GC2ClientRequestValidation { + optional bool full_report = 1; + optional string module = 2; +} + +message CMsgGCCStrike15_v2_GC2ClientInitSystem { + optional bool load = 1; + optional string name = 2; + optional string outputname = 3; + optional bytes key_data = 4; + optional bytes sha_hash = 5; + optional int32 cookie = 6; + optional string manifest = 7; + optional bytes system_package = 8; + optional bool load_system = 9; +} + +message CMsgGCCStrike15_v2_GC2ClientInitSystem_Response { + optional bool success = 1; + optional string diagnostic = 2; + optional bytes sha_hash = 3; + optional int32 response = 4; + optional int32 error_code1 = 5; + optional int32 error_code2 = 6; + optional int64 handle = 7; + optional .EInitSystemResult einit_result = 8 [default = k_EInitSystemResult_Invalid]; + optional int32 aux_system1 = 9; + optional int32 aux_system2 = 10; +} + +message CMsgGCCStrike15_v2_SetPlayerLeaderboardSafeName { + optional string leaderboard_safe_name = 1; +} diff --git a/Protobufs/csgo/cstrike15_usermessages.proto b/Protobufs/csgo/cstrike15_usermessages.proto new file mode 100644 index 0000000..f3a1038 --- /dev/null +++ b/Protobufs/csgo/cstrike15_usermessages.proto @@ -0,0 +1,601 @@ +import "networkbasetypes.proto"; +import "cstrike15_gcmessages.proto"; + +enum ECstrike15UserMessages { + CS_UM_VGUIMenu = 301; + CS_UM_Geiger = 302; + CS_UM_Train = 303; + CS_UM_HudText = 304; + CS_UM_SayText = 305; + CS_UM_SayText2 = 306; + CS_UM_TextMsg = 307; + CS_UM_HudMsg = 308; + CS_UM_ResetHud = 309; + CS_UM_GameTitle = 310; + CS_UM_Shake = 312; + CS_UM_Fade = 313; + CS_UM_Rumble = 314; + CS_UM_CloseCaption = 315; + CS_UM_CloseCaptionDirect = 316; + CS_UM_SendAudio = 317; + CS_UM_RawAudio = 318; + CS_UM_VoiceMask = 319; + CS_UM_RequestState = 320; + CS_UM_Damage = 321; + CS_UM_RadioText = 322; + CS_UM_HintText = 323; + CS_UM_KeyHintText = 324; + CS_UM_ProcessSpottedEntityUpdate = 325; + CS_UM_ReloadEffect = 326; + CS_UM_AdjustMoney = 327; + CS_UM_UpdateTeamMoney = 328; + CS_UM_StopSpectatorMode = 329; + CS_UM_KillCam = 330; + CS_UM_DesiredTimescale = 331; + CS_UM_CurrentTimescale = 332; + CS_UM_AchievementEvent = 333; + CS_UM_MatchEndConditions = 334; + CS_UM_DisconnectToLobby = 335; + CS_UM_PlayerStatsUpdate = 336; + CS_UM_WarmupHasEnded = 338; + CS_UM_ClientInfo = 339; + CS_UM_XRankGet = 340; + CS_UM_XRankUpd = 341; + CS_UM_CallVoteFailed = 345; + CS_UM_VoteStart = 346; + CS_UM_VotePass = 347; + CS_UM_VoteFailed = 348; + CS_UM_VoteSetup = 349; + CS_UM_ServerRankRevealAll = 350; + CS_UM_SendLastKillerDamageToClient = 351; + CS_UM_ServerRankUpdate = 352; + CS_UM_ItemPickup = 353; + CS_UM_ShowMenu = 354; + CS_UM_BarTime = 355; + CS_UM_AmmoDenied = 356; + CS_UM_MarkAchievement = 357; + CS_UM_MatchStatsUpdate = 358; + CS_UM_ItemDrop = 359; + CS_UM_GlowPropTurnOff = 360; + CS_UM_SendPlayerItemDrops = 361; + CS_UM_RoundBackupFilenames = 362; + CS_UM_SendPlayerItemFound = 363; + CS_UM_ReportHit = 364; + CS_UM_XpUpdate = 365; + CS_UM_QuestProgress = 366; + CS_UM_ScoreLeaderboardData = 367; + CS_UM_PlayerDecalDigitalSignature = 368; + CS_UM_WeaponSound = 369; + CS_UM_UpdateScreenHealthBar = 370; + CS_UM_EntityOutlineHighlight = 371; + CS_UM_SSUI = 372; + CS_UM_SurvivalStats = 373; + CS_UM_DisconnectToLobby2 = 374; + CS_UM_EndOfMatchAllPlayersData = 375; + CS_UM_PostRoundDamageReport = 376; + CS_UM_RoundEndReportData = 379; + CS_UM_CurrentRoundOdds = 380; + CS_UM_DeepStats = 381; + CS_UM_ShootInfo = 383; + CS_UM_CounterStrafe = 385; +} + +enum ECSUsrMsg_DisconnectToLobby_Action { + k_ECSUsrMsg_DisconnectToLobby_Action_Default = 0; + k_ECSUsrMsg_DisconnectToLobby_Action_GoQueue = 1; +} + +message CCSUsrMsg_VGUIMenu { + message Keys { + optional string name = 1; + optional string value = 2; + } + + optional string name = 1; + optional bool show = 2; + repeated .CCSUsrMsg_VGUIMenu.Keys keys = 3; +} + +message CCSUsrMsg_Geiger { + optional int32 range = 1; +} + +message CCSUsrMsg_Train { + optional int32 train = 1; +} + +message CCSUsrMsg_HudText { + optional string text = 1; +} + +message CCSUsrMsg_HudMsg { + optional int32 channel = 1; + optional .CMsgVector2D pos = 2; + optional .CMsgRGBA clr1 = 3; + optional .CMsgRGBA clr2 = 4; + optional int32 effect = 5; + optional float fade_in_time = 6; + optional float fade_out_time = 7; + optional float hold_time = 9; + optional float fx_time = 10; + optional string text = 11; +} + +message CCSUsrMsg_Shake { + optional int32 command = 1; + optional float local_amplitude = 2; + optional float frequency = 3; + optional float duration = 4; +} + +message CCSUsrMsg_Fade { + optional int32 duration = 1; + optional int32 hold_time = 2; + optional int32 flags = 3; + optional .CMsgRGBA clr = 4; +} + +message CCSUsrMsg_Rumble { + optional int32 index = 1; + optional int32 data = 2; + optional int32 flags = 3; +} + +message CCSUsrMsg_CloseCaption { + optional uint32 hash = 1; + optional int32 duration = 2; + optional bool from_player = 3; + optional string cctoken = 4; +} + +message CCSUsrMsg_CloseCaptionDirect { + optional uint32 hash = 1; + optional int32 duration = 2; + optional bool from_player = 3; +} + +message CCSUsrMsg_SendAudio { + optional string radio_sound = 1; +} + +message CCSUsrMsg_RawAudio { + optional int32 pitch = 1; + optional int32 entidx = 2 [default = -1]; + optional float duration = 3; + optional string voice_filename = 4; +} + +message CCSUsrMsg_VoiceMask { + message PlayerMask { + optional int32 game_rules_mask = 1; + optional int32 ban_masks = 2; + } + + repeated .CCSUsrMsg_VoiceMask.PlayerMask player_masks = 1; + optional bool player_mod_enable = 2; +} + +message CCSUsrMsg_Damage { + optional int32 amount = 1; + optional .CMsgVector inflictor_world_pos = 2; + optional int32 victim_entindex = 3 [default = -1]; +} + +message CCSUsrMsg_RadioText { + optional int32 msg_dst = 1; + optional int32 client = 2 [default = -1]; + optional string msg_name = 3; + repeated string params = 4; +} + +message CCSUsrMsg_HintText { + optional string message = 1; +} + +message CCSUsrMsg_KeyHintText { + repeated string messages = 1; +} + +message CCSUsrMsg_ProcessSpottedEntityUpdate { + message SpottedEntityUpdate { + optional int32 entity_idx = 1 [default = -1]; + optional int32 class_id = 2; + optional int32 origin_x = 3; + optional int32 origin_y = 4; + optional int32 origin_z = 5; + optional int32 angle_y = 6; + optional bool defuser = 7; + optional bool player_has_defuser = 8; + optional bool player_has_c4 = 9; + } + + optional bool new_update = 1; + repeated .CCSUsrMsg_ProcessSpottedEntityUpdate.SpottedEntityUpdate entity_updates = 2; +} + +message CCSUsrMsg_SendPlayerItemDrops { + repeated .CEconItemPreviewDataBlock entity_updates = 1; +} + +message CCSUsrMsg_SendPlayerItemFound { + optional .CEconItemPreviewDataBlock iteminfo = 1; + optional int32 playerslot = 2 [default = -1]; +} + +message CCSUsrMsg_ReloadEffect { + optional int32 entidx = 1 [default = -1]; + optional int32 actanim = 2; + optional float origin_x = 3; + optional float origin_y = 4; + optional float origin_z = 5; +} + +message CCSUsrMsg_WeaponSound { + optional int32 entidx = 1 [default = -1]; + optional float origin_x = 2; + optional float origin_y = 3; + optional float origin_z = 4; + optional string sound = 5; + optional float game_timestamp = 6; + optional fixed32 source_soundscapeid = 7; +} + +message CCSUsrMsg_UpdateScreenHealthBar { + optional int32 entidx = 1 [default = -1]; + optional float healthratio_old = 2; + optional float healthratio_new = 3; + optional int32 style = 4; +} + +message CCSUsrMsg_EntityOutlineHighlight { + optional int32 entidx = 1 [default = -1]; + optional bool removehighlight = 2; +} + +message CCSUsrMsg_AdjustMoney { + optional int32 amount = 1; +} + +message CCSUsrMsg_ReportHit { + optional float pos_x = 1; + optional float pos_y = 2; + optional float timestamp = 4; + optional float pos_z = 3; +} + +message CCSUsrMsg_KillCam { + optional int32 obs_mode = 1; + optional int32 first_target = 2 [default = -1]; + optional int32 second_target = 3 [default = -1]; +} + +message CCSUsrMsg_DesiredTimescale { + optional float desired_timescale = 1; + optional float duration_realtime_sec = 2; + optional int32 interpolator_type = 3; + optional float start_blend_time = 4; +} + +message CCSUsrMsg_CurrentTimescale { + optional float cur_timescale = 1; +} + +message CCSUsrMsg_AchievementEvent { + optional int32 achievement = 1; + optional int32 count = 2; + optional int32 user_id = 3; +} + +message CCSUsrMsg_MatchEndConditions { + optional int32 fraglimit = 1; + optional int32 mp_maxrounds = 2; + optional int32 mp_winlimit = 3; + optional float mp_timelimit = 4; +} + +message CCSUsrMsg_PlayerStatsUpdate { + message Stat { + optional int32 idx = 1; + optional int32 delta = 2; + } + + optional int32 version = 1; + repeated .CCSUsrMsg_PlayerStatsUpdate.Stat stats = 4; + optional uint32 ehandle = 5; + optional int32 crc = 6; +} + +message CCSUsrMsg_QuestProgress { + optional uint32 quest_id = 1; + optional uint32 normal_points = 2; + optional uint32 bonus_points = 3; + optional bool is_event_quest = 4; +} + +message CCSUsrMsg_ScoreLeaderboardData { + optional .ScoreLeaderboardData data = 1; +} + +message CCSUsrMsg_PlayerDecalDigitalSignature { + optional .PlayerDecalDigitalSignature data = 1; +} + +message CCSUsrMsg_XRankGet { + optional int32 mode_idx = 1; + optional int32 controller = 2; +} + +message CCSUsrMsg_XRankUpd { + optional int32 mode_idx = 1; + optional int32 controller = 2; + optional int32 ranking = 3; +} + +message CCSUsrMsg_CallVoteFailed { + optional int32 reason = 1; + optional int32 time = 2; +} + +message CCSUsrMsg_VoteStart { + optional int32 team = 1; + optional int32 player_slot = 2 [default = -1]; + optional int32 vote_type = 3; + optional string disp_str = 4; + optional string details_str = 5; + optional string other_team_str = 6; + optional bool is_yes_no_vote = 7; + optional int32 player_slot_target = 8 [default = -1]; +} + +message CCSUsrMsg_VotePass { + optional int32 team = 1; + optional int32 vote_type = 2; + optional string disp_str = 3; + optional string details_str = 4; +} + +message CCSUsrMsg_VoteFailed { + optional int32 team = 1; + optional int32 reason = 2; +} + +message CCSUsrMsg_VoteSetup { + repeated string potential_issues = 1; +} + +message CCSUsrMsg_SendLastKillerDamageToClient { + optional int32 num_hits_given = 1; + optional int32 damage_given = 2; + optional int32 num_hits_taken = 3; + optional int32 damage_taken = 4; + optional int32 actual_damage_given = 5; + optional int32 actual_damage_taken = 6; +} + +message CCSUsrMsg_ServerRankUpdate { + message RankUpdate { + optional int32 account_id = 1; + optional int32 rank_old = 2; + optional int32 rank_new = 3; + optional int32 num_wins = 4; + optional float rank_change = 5; + optional int32 rank_type_id = 6; + } + + repeated .CCSUsrMsg_ServerRankUpdate.RankUpdate rank_update = 1; +} + +message CCSUsrMsg_XpUpdate { + optional .CMsgGCCstrike15_v2_GC2ServerNotifyXPRewarded data = 1; +} + +message CCSUsrMsg_ItemPickup { + optional string item = 1; +} + +message CCSUsrMsg_ShowMenu { + optional int32 bits_valid_slots = 1; + optional int32 display_time = 2; + optional string menu_string = 3; +} + +message CCSUsrMsg_BarTime { + optional string time = 1; +} + +message CCSUsrMsg_AmmoDenied { + optional int32 ammoidx = 1; +} + +message CCSUsrMsg_MarkAchievement { + optional string achievement = 1; +} + +message CCSUsrMsg_MatchStatsUpdate { + optional string update = 1; +} + +message CCSUsrMsg_ItemDrop { + optional int64 itemid = 1; + optional bool death = 2; +} + +message CCSUsrMsg_GlowPropTurnOff { + optional int32 entidx = 1 [default = -1]; +} + +message CCSUsrMsg_RoundBackupFilenames { + optional int32 count = 1; + optional int32 index = 2; + optional string filename = 3; + optional string nicename = 4; +} + +message CCSUsrMsg_SSUI { + optional bool show = 1; + optional float start_time = 2; + optional float end_time = 3; +} + +message CCSUsrMsg_SurvivalStats { + message Fact { + optional int32 type = 1; + optional int32 display = 2; + optional int32 value = 3; + optional float interestingness = 4; + } + + message Placement { + optional uint64 xuid = 1; + optional int32 teamnumber = 2; + optional int32 placement = 3; + } + + message Damage { + optional uint64 xuid = 1; + optional int32 to = 2; + optional int32 to_hits = 3; + optional int32 from = 4; + optional int32 from_hits = 5; + } + + optional uint64 xuid = 1; + repeated .CCSUsrMsg_SurvivalStats.Fact facts = 2; + repeated .CCSUsrMsg_SurvivalStats.Placement users = 3; + repeated .CCSUsrMsg_SurvivalStats.Damage damages = 5; + optional int32 ticknumber = 4; +} + +message CCSUsrMsg_EndOfMatchAllPlayersData { + message Accolade { + optional int32 eaccolade = 1; + optional float value = 2; + optional int32 position = 3; + } + + message PlayerData { + optional int32 slot = 1 [default = -1]; + optional uint64 xuid = 2; + optional string name = 3; + optional int32 teamnumber = 4; + optional .CCSUsrMsg_EndOfMatchAllPlayersData.Accolade nomination = 5; + repeated .CEconItemPreviewDataBlock items = 6; + optional int32 playercolor = 7; + optional bool isbot = 8; + } + + repeated .CCSUsrMsg_EndOfMatchAllPlayersData.PlayerData allplayerdata = 1; + optional int32 scene = 2; +} + +message CCSUsrMsg_RoundEndReportData { + message RerEvent { + message Victim { + optional int32 team_number = 1; + optional int32 playerslot = 2 [default = -1]; + optional uint64 xuid = 3; + optional int32 color = 4; + optional bool is_bot = 5; + optional bool is_dead = 6; + } + + message Objective { + optional int32 type = 1; + } + + message Damage { + optional int32 other_playerslot = 1 [default = -1]; + optional uint64 other_xuid = 2; + optional int32 health_removed = 3; + optional int32 num_hits = 4; + optional int32 return_health_removed = 5; + optional int32 return_num_hits = 6; + } + + optional float timestamp = 1; + optional int32 terrorist_odds = 2; + optional int32 ct_alive = 3; + optional int32 t_alive = 4; + optional .CCSUsrMsg_RoundEndReportData.RerEvent.Victim victim_data = 5; + optional .CCSUsrMsg_RoundEndReportData.RerEvent.Objective objective_data = 6; + repeated .CCSUsrMsg_RoundEndReportData.RerEvent.Damage all_damage_data = 7; + } + + message InitialConditions { + optional int32 ct_equip_value = 1; + optional int32 t_equip_value = 2; + optional int32 terrorist_odds = 3; + } + + optional .CCSUsrMsg_RoundEndReportData.InitialConditions init_conditions = 1; + repeated .CCSUsrMsg_RoundEndReportData.RerEvent all_rer_event_data = 2; +} + +message CCSUsrMsg_PostRoundDamageReport { + optional uint64 other_xuid = 1; + optional int32 given_kill_type = 2; + optional int32 given_health_removed = 3; + optional int32 given_num_hits = 4; + optional int32 taken_kill_type = 5; + optional int32 taken_health_removed = 6; + optional int32 taken_num_hits = 7; +} + +message CCSUsrMsg_CurrentRoundOdds { + optional int32 odds = 1; +} + +message CCSUsrMsg_DeepStats { + optional .CMsgGCCStrike15_ClientDeepStats stats = 1; +} + +message CCSUsrMsg_ShootInfo { + optional int32 frame_number = 1; + repeated .CMsgTransform hitbox_transforms = 2; + optional .CMsgVector shoot_pos = 3; + optional .CMsgQAngle shoot_dir = 4; +} + +message CCSUsrMsg_ResetHud { + optional bool reset = 1; +} + +message CCSUsrMsg_GameTitle { + optional int32 dummy = 1; +} + +message CCSUsrMsg_RequestState { + optional int32 dummy = 1; +} + +message CCSUsrMsg_StopSpectatorMode { + optional int32 dummy = 1; +} + +message CCSUsrMsg_DisconnectToLobby { + optional int32 dummy = 1; +} + +message CCSUsrMsg_WarmupHasEnded { + optional int32 dummy = 1; +} + +message CCSUsrMsg_ClientInfo { + optional int32 dummy = 1; +} + +message CCSUsrMsg_ServerRankRevealAll { + optional int32 seconds_till_shutdown = 1; + optional .CMsgGCCStrike15_v2_MatchmakingGC2ServerReserve reservation = 2; +} + +message CCSUsrMsgPreMatchSayText { + optional uint32 account_id = 1; + optional string text = 2; + optional bool all_chat = 3; +} + +message CCSUsrMsg_CounterStrafe { + optional int32 press_to_release_ns = 1; + optional int32 total_keys_down = 2; +} diff --git a/Protobufs/csgo/demo.proto b/Protobufs/csgo/demo.proto new file mode 100644 index 0000000..7a1d472 --- /dev/null +++ b/Protobufs/csgo/demo.proto @@ -0,0 +1,173 @@ +enum EDemoCommands { + DEM_Error = -1; + DEM_Stop = 0; + DEM_FileHeader = 1; + DEM_FileInfo = 2; + DEM_SyncTick = 3; + DEM_SendTables = 4; + DEM_ClassInfo = 5; + DEM_StringTables = 6; + DEM_Packet = 7; + DEM_SignonPacket = 8; + DEM_ConsoleCmd = 9; + DEM_CustomData = 10; + DEM_CustomDataCallbacks = 11; + DEM_UserCmd = 12; + DEM_FullPacket = 13; + DEM_SaveGame = 14; + DEM_SpawnGroups = 15; + DEM_AnimationData = 16; + DEM_AnimationHeader = 17; + DEM_Max = 18; + DEM_IsCompressed = 64; +} + +message CDemoFileHeader { + required string demo_file_stamp = 1; + optional int32 network_protocol = 2; + optional string server_name = 3; + optional string client_name = 4; + optional string map_name = 5; + optional string game_directory = 6; + optional int32 fullpackets_version = 7; + optional bool allow_clientside_entities = 8; + optional bool allow_clientside_particles = 9; + optional string addons = 10; + optional string demo_version_name = 11; + optional string demo_version_guid = 12; + optional int32 build_num = 13; + optional string game = 14; + optional int32 server_start_tick = 15; +} + +message CGameInfo { + message CDotaGameInfo { + message CPlayerInfo { + optional string hero_name = 1; + optional string player_name = 2; + optional bool is_fake_client = 3; + optional uint64 steamid = 4; + optional int32 game_team = 5; + } + + message CHeroSelectEvent { + optional bool is_pick = 1; + optional uint32 team = 2; + optional uint32 hero_id = 3; + } + + optional uint64 match_id = 1; + optional int32 game_mode = 2; + optional int32 game_winner = 3; + repeated .CGameInfo.CDotaGameInfo.CPlayerInfo player_info = 4; + optional uint32 leagueid = 5; + repeated .CGameInfo.CDotaGameInfo.CHeroSelectEvent picks_bans = 6; + optional uint32 radiant_team_id = 7; + optional uint32 dire_team_id = 8; + optional string radiant_team_tag = 9; + optional string dire_team_tag = 10; + optional uint32 end_time = 11; + } + + message CCSGameInfo { + repeated int32 round_start_ticks = 1; + } + + optional .CGameInfo.CDotaGameInfo dota = 4; + optional .CGameInfo.CCSGameInfo cs = 5; +} + +message CDemoFileInfo { + optional float playback_time = 1; + optional int32 playback_ticks = 2; + optional int32 playback_frames = 3; + optional .CGameInfo game_info = 4; +} + +message CDemoPacket { + optional bytes data = 3; +} + +message CDemoFullPacket { + optional .CDemoStringTables string_table = 1; + optional .CDemoPacket packet = 2; +} + +message CDemoSaveGame { + optional bytes data = 1; + optional fixed64 steam_id = 2; + optional fixed64 signature = 3; + optional int32 version = 4; +} + +message CDemoSyncTick { +} + +message CDemoConsoleCmd { + optional string cmdstring = 1; +} + +message CDemoSendTables { + optional bytes data = 1; +} + +message CDemoClassInfo { + message class_t { + optional int32 class_id = 1; + optional string network_name = 2; + optional string table_name = 3; + } + + repeated .CDemoClassInfo.class_t classes = 1; +} + +message CDemoCustomData { + optional int32 callback_index = 1; + optional bytes data = 2; +} + +message CDemoCustomDataCallbacks { + repeated string save_id = 1; +} + +message CDemoAnimationHeader { + optional sint32 entity_id = 1; + optional int32 tick = 2; + optional bytes data = 3; +} + +message CDemoAnimationData { + optional sint32 entity_id = 1; + optional int32 start_tick = 2; + optional int32 end_tick = 3; + optional bytes data = 4; + optional int64 data_checksum = 5; +} + +message CDemoStringTables { + message items_t { + optional string str = 1; + optional bytes data = 2; + } + + message table_t { + optional string table_name = 1; + repeated .CDemoStringTables.items_t items = 2; + repeated .CDemoStringTables.items_t items_clientside = 3; + optional int32 table_flags = 4; + } + + repeated .CDemoStringTables.table_t tables = 1; +} + +message CDemoStop { +} + +message CDemoUserCmd { + optional int32 cmd_number = 1; + optional bytes data = 2; +} + +message CDemoSpawnGroups { + repeated bytes msgs = 3; +} diff --git a/Protobufs/csgo/econ_gcmessages.proto b/Protobufs/csgo/econ_gcmessages.proto new file mode 100644 index 0000000..05080ba --- /dev/null +++ b/Protobufs/csgo/econ_gcmessages.proto @@ -0,0 +1,230 @@ +import "steammessages.proto"; + +enum EGCItemMsg { + k_EMsgGCBase = 1000; + k_EMsgGCSetItemPosition = 1001; + k_EMsgGCCraft = 1002; + k_EMsgGCCraftResponse = 1003; + k_EMsgGCDelete = 1004; + k_EMsgGCVerifyCacheSubscription = 1005; + k_EMsgGCNameItem = 1006; + k_EMsgGCUnlockCrate = 1007; + k_EMsgGCUnlockCrateResponse = 1008; + k_EMsgGCPaintItem = 1009; + k_EMsgGCPaintItemResponse = 1010; + k_EMsgGCGoldenWrenchBroadcast = 1011; + k_EMsgGCMOTDRequest = 1012; + k_EMsgGCMOTDRequestResponse = 1013; + k_EMsgGCAddItemToSocket_DEPRECATED = 1014; + k_EMsgGCAddItemToSocketResponse_DEPRECATED = 1015; + k_EMsgGCAddSocketToBaseItem_DEPRECATED = 1016; + k_EMsgGCAddSocketToItem_DEPRECATED = 1017; + k_EMsgGCAddSocketToItemResponse_DEPRECATED = 1018; + k_EMsgGCNameBaseItem = 1019; + k_EMsgGCNameBaseItemResponse = 1020; + k_EMsgGCRemoveSocketItem_DEPRECATED = 1021; + k_EMsgGCRemoveSocketItemResponse_DEPRECATED = 1022; + k_EMsgGCCustomizeItemTexture = 1023; + k_EMsgGCCustomizeItemTextureResponse = 1024; + k_EMsgGCUseItemRequest = 1025; + k_EMsgGCUseItemResponse = 1026; + k_EMsgGCGiftedItems_DEPRECATED = 1027; + k_EMsgGCRemoveItemName = 1030; + k_EMsgGCRemoveItemPaint = 1031; + k_EMsgGCGiftWrapItem = 1032; + k_EMsgGCGiftWrapItemResponse = 1033; + k_EMsgGCDeliverGift = 1034; + k_EMsgGCDeliverGiftResponseGiver = 1035; + k_EMsgGCDeliverGiftResponseReceiver = 1036; + k_EMsgGCUnwrapGiftRequest = 1037; + k_EMsgGCUnwrapGiftResponse = 1038; + k_EMsgGCSetItemStyle = 1039; + k_EMsgGCUsedClaimCodeItem = 1040; + k_EMsgGCSortItems = 1041; + k_EMsgGC_RevolvingLootList_DEPRECATED = 1042; + k_EMsgGCLookupAccount = 1043; + k_EMsgGCLookupAccountResponse = 1044; + k_EMsgGCLookupAccountName = 1045; + k_EMsgGCLookupAccountNameResponse = 1046; + k_EMsgGCUpdateItemSchema = 1049; + k_EMsgGCRemoveCustomTexture = 1051; + k_EMsgGCRemoveCustomTextureResponse = 1052; + k_EMsgGCRemoveMakersMark = 1053; + k_EMsgGCRemoveMakersMarkResponse = 1054; + k_EMsgGCRemoveUniqueCraftIndex = 1055; + k_EMsgGCRemoveUniqueCraftIndexResponse = 1056; + k_EMsgGCSaxxyBroadcast = 1057; + k_EMsgGCBackpackSortFinished = 1058; + k_EMsgGCAdjustItemEquippedState = 1059; + k_EMsgGCCollectItem = 1061; + k_EMsgGCItemAcknowledged__DEPRECATED = 1062; + k_EMsgGC_ReportAbuse = 1065; + k_EMsgGC_ReportAbuseResponse = 1066; + k_EMsgGCNameItemNotification = 1068; + k_EMsgGCApplyConsumableEffects = 1069; + k_EMsgGCConsumableExhausted = 1070; + k_EMsgGCShowItemsPickedUp = 1071; + k_EMsgGCClientDisplayNotification = 1072; + k_EMsgGCApplyStrangePart = 1073; + k_EMsgGC_IncrementKillCountAttribute = 1074; + k_EMsgGC_IncrementKillCountResponse = 1075; + k_EMsgGCApplyPennantUpgrade = 1076; + k_EMsgGCSetItemPositions = 1077; + k_EMsgGCApplyEggEssence = 1078; + k_EMsgGCNameEggEssenceResponse = 1079; + k_EMsgGCPaintKitItem = 1080; + k_EMsgGCPaintKitBaseItem = 1081; + k_EMsgGCPaintKitItemResponse = 1082; + k_EMsgGCGiftedItems = 1083; + k_EMsgGCUnlockItemStyle = 1084; + k_EMsgGCUnlockItemStyleResponse = 1085; + k_EMsgGCApplySticker = 1086; + k_EMsgGCItemAcknowledged = 1087; + k_EMsgGCStatTrakSwap = 1088; + k_EMsgGCUserTrackTimePlayedConsecutively = 1089; + k_EMsgGCItemCustomizationNotification = 1090; + k_EMsgGCModifyItemAttribute = 1091; + k_EMsgGCCasketItemAdd = 1092; + k_EMsgGCCasketItemExtract = 1093; + k_EMsgGCCasketItemLoadContents = 1094; + k_EMsgGCTradingBase = 1500; + k_EMsgGCTrading_InitiateTradeRequest = 1501; + k_EMsgGCTrading_InitiateTradeResponse = 1502; + k_EMsgGCTrading_StartSession = 1503; + k_EMsgGCTrading_SetItem = 1504; + k_EMsgGCTrading_RemoveItem = 1505; + k_EMsgGCTrading_UpdateTradeInfo = 1506; + k_EMsgGCTrading_SetReadiness = 1507; + k_EMsgGCTrading_ReadinessResponse = 1508; + k_EMsgGCTrading_SessionClosed = 1509; + k_EMsgGCTrading_CancelSession = 1510; + k_EMsgGCTrading_TradeChatMsg = 1511; + k_EMsgGCTrading_ConfirmOffer = 1512; + k_EMsgGCTrading_TradeTypingChatMsg = 1513; + k_EMsgGCServerBrowser_FavoriteServer = 1601; + k_EMsgGCServerBrowser_BlacklistServer = 1602; + k_EMsgGCServerRentalsBase = 1700; + k_EMsgGCItemPreviewCheckStatus = 1701; + k_EMsgGCItemPreviewStatusResponse = 1702; + k_EMsgGCItemPreviewRequest = 1703; + k_EMsgGCItemPreviewRequestResponse = 1704; + k_EMsgGCItemPreviewExpire = 1705; + k_EMsgGCItemPreviewExpireNotification = 1706; + k_EMsgGCItemPreviewItemBoughtNotification = 1707; + k_EMsgGCDev_NewItemRequest = 2001; + k_EMsgGCDev_NewItemRequestResponse = 2002; + k_EMsgGCDev_PaintKitDropItem = 2003; + k_EMsgGCDev_SchemaReservationRequest = 2004; + k_EMsgGCStoreGetUserData = 2500; + k_EMsgGCStoreGetUserDataResponse = 2501; + k_EMsgGCStorePurchaseInit_DEPRECATED = 2502; + k_EMsgGCStorePurchaseInitResponse_DEPRECATED = 2503; + k_EMsgGCStorePurchaseFinalize = 2504; + k_EMsgGCStorePurchaseFinalizeResponse = 2505; + k_EMsgGCStorePurchaseCancel = 2506; + k_EMsgGCStorePurchaseCancelResponse = 2507; + k_EMsgGCStorePurchaseQueryTxn = 2508; + k_EMsgGCStorePurchaseQueryTxnResponse = 2509; + k_EMsgGCStorePurchaseInit = 2510; + k_EMsgGCStorePurchaseInitResponse = 2511; + k_EMsgGCBannedWordListRequest = 2512; + k_EMsgGCBannedWordListResponse = 2513; + k_EMsgGCToGCBannedWordListBroadcast = 2514; + k_EMsgGCToGCBannedWordListUpdated = 2515; + k_EMsgGCToGCDirtySDOCache = 2516; + k_EMsgGCToGCDirtyMultipleSDOCache = 2517; + k_EMsgGCToGCUpdateSQLKeyValue = 2518; + k_EMsgGCToGCIsTrustedServer = 2519; + k_EMsgGCToGCIsTrustedServerResponse = 2520; + k_EMsgGCToGCBroadcastConsoleCommand = 2521; + k_EMsgGCServerVersionUpdated = 2522; + k_EMsgGCToGCWebAPIAccountChanged = 2524; + k_EMsgGCRequestAnnouncements = 2525; + k_EMsgGCRequestAnnouncementsResponse = 2526; + k_EMsgGCRequestPassportItemGrant = 2527; + k_EMsgGCClientVersionUpdated = 2528; + k_EMsgGCAdjustItemEquippedStateMulti = 2529; + k_EMsgGCRecurringSubscriptionStatus = 2530; + k_EMsgGCAdjustEquipSlotsManual = 2531; + k_EMsgGCAdjustEquipSlotsShuffle = 2532; + k_EMsgGCNameItemAndEquip = 2533; + k_EMsgGCOpenCrate = 2534; + k_EMsgGCAcknowledgeRentalExpiration = 2535; +} + +enum EGCMsgResponse { + k_EGCMsgResponseOK = 0; + k_EGCMsgResponseDenied = 1; + k_EGCMsgResponseServerError = 2; + k_EGCMsgResponseTimeout = 3; + k_EGCMsgResponseInvalid = 4; + k_EGCMsgResponseNoMatch = 5; + k_EGCMsgResponseUnknownError = 6; + k_EGCMsgResponseNotLoggedOn = 7; + k_EGCMsgFailedToCreate = 8; + k_EGCMsgLimitExceeded = 9; + k_EGCMsgCommitUnfinalized = 10; +} + +enum EUnlockStyle { + k_UnlockStyle_Succeeded = 0; + k_UnlockStyle_Failed_PreReq = 1; + k_UnlockStyle_Failed_CantAfford = 2; + k_UnlockStyle_Failed_CantCommit = 3; + k_UnlockStyle_Failed_CantLockCache = 4; + k_UnlockStyle_Failed_CantAffordAttrib = 5; +} + +enum EGCItemCustomizationNotification { + k_EGCItemCustomizationNotification_NameItem = 1006; + k_EGCItemCustomizationNotification_UnlockCrate = 1007; + k_EGCItemCustomizationNotification_XRayItemReveal = 1008; + k_EGCItemCustomizationNotification_XRayItemClaim = 1009; + k_EGCItemCustomizationNotification_CasketTooFull = 1011; + k_EGCItemCustomizationNotification_CasketContents = 1012; + k_EGCItemCustomizationNotification_CasketAdded = 1013; + k_EGCItemCustomizationNotification_CasketRemoved = 1014; + k_EGCItemCustomizationNotification_CasketInvFull = 1015; + k_EGCItemCustomizationNotification_NameBaseItem = 1019; + k_EGCItemCustomizationNotification_RemoveItemName = 1030; + k_EGCItemCustomizationNotification_RemoveSticker = 1053; + k_EGCItemCustomizationNotification_ApplySticker = 1086; + k_EGCItemCustomizationNotification_StatTrakSwap = 1088; + k_EGCItemCustomizationNotification_RemovePatch = 1089; + k_EGCItemCustomizationNotification_ApplyPatch = 1090; + k_EGCItemCustomizationNotification_ActivateFanToken = 9178; + k_EGCItemCustomizationNotification_ActivateOperationCoin = 9179; + k_EGCItemCustomizationNotification_GraffitiUnseal = 9185; + k_EGCItemCustomizationNotification_GenerateSouvenir = 9204; + k_EGCItemCustomizationNotification_ClientRedeemMissionReward = 9209; + k_EGCItemCustomizationNotification_ClientRedeemFreeReward = 9219; +} + +message CMsgGCGiftedItems { + optional uint32 accountid = 1; + optional uint32 giftdefindex = 2; + optional uint32 max_gifts_possible = 3; + optional uint32 num_eligible_recipients = 4; + repeated uint32 recipients_accountids = 5; +} + +message CMsgGCDev_SchemaReservationRequest { + optional string schema_typename = 1; + optional string instance_name = 2; + optional uint64 context = 3; + optional uint64 id = 4; +} + +message CMsgCasketItem { + optional uint64 casket_item_id = 1; + optional uint64 item_item_id = 2; +} + +message CMsgGCUserTrackTimePlayedConsecutively { + optional uint32 state = 1; +} + +message CMsgGCItemCustomizationNotification { + repeated uint64 item_id = 1; + optional uint32 request = 2; +} diff --git a/Protobufs/csgo/engine_gcmessages.proto b/Protobufs/csgo/engine_gcmessages.proto new file mode 100644 index 0000000..7f81bb6 --- /dev/null +++ b/Protobufs/csgo/engine_gcmessages.proto @@ -0,0 +1,14 @@ +import "google/protobuf/descriptor.proto"; + +message CEngineGotvSyncPacket { + optional uint64 match_id = 1; + optional uint32 instance_id = 2; + optional uint32 signupfragment = 3; + optional uint32 currentfragment = 4; + optional float tickrate = 5; + optional uint32 tick = 6; + optional float rtdelay = 8; + optional float rcvage = 9; + optional float keyframe_interval = 10; + optional uint32 cdndelay = 11; +} diff --git a/Protobufs/csgo/enums_clientserver.proto b/Protobufs/csgo/enums_clientserver.proto new file mode 100644 index 0000000..5b12d10 --- /dev/null +++ b/Protobufs/csgo/enums_clientserver.proto @@ -0,0 +1,1547 @@ +option optimize_for = SPEED; +option cc_generic_services = false; + +enum EMsg { + option allow_alias = true; + k_EMsgInvalid = 0; + k_EMsgMulti = 1; + k_EMsgProtobufWrapped = 2; + k_EMsgBaseGeneral = 100; + k_EMsgGenericReply = 100; + k_EMsgDestJobFailed = 113; + k_EMsgAlert = 115; + k_EMsgSCIDRequest = 120; + k_EMsgSCIDResponse = 121; + k_EMsgJobHeartbeat = 123; + k_EMsgHubConnect = 124; + k_EMsgSubscribe = 126; + k_EMRouteMessage = 127; + k_EMsgWGRequest = 130; + k_EMsgWGResponse = 131; + k_EMsgKeepAlive = 132; + k_EMsgWebAPIJobRequest = 133; + k_EMsgWebAPIJobResponse = 134; + k_EMsgClientSessionStart = 135; + k_EMsgClientSessionEnd = 136; + k_EMsgClientSessionUpdate = 137; + k_EMsgStatsDeprecated = 138; + k_EMsgPing = 139; + k_EMsgPingResponse = 140; + k_EMsgStats = 141; + k_EMsgRequestFullStatsBlock = 142; + k_EMsgLoadDBOCacheItem = 143; + k_EMsgLoadDBOCacheItemResponse = 144; + k_EMsgInvalidateDBOCacheItems = 145; + k_EMsgServiceMethod = 146; + k_EMsgServiceMethodResponse = 147; + k_EMsgClientPackageVersions = 148; + k_EMsgTimestampRequest = 149; + k_EMsgTimestampResponse = 150; + k_EMsgServiceMethodCallFromClient = 151; + k_EMsgServiceMethodSendToClient = 152; + k_EMsgBaseShell = 200; + k_EMsgAssignSysID = 200; + k_EMsgExit = 201; + k_EMsgDirRequest = 202; + k_EMsgDirResponse = 203; + k_EMsgZipRequest = 204; + k_EMsgZipResponse = 205; + k_EMsgUpdateRecordResponse = 215; + k_EMsgUpdateCreditCardRequest = 221; + k_EMsgUpdateUserBanResponse = 225; + k_EMsgPrepareToExit = 226; + k_EMsgContentDescriptionUpdate = 227; + k_EMsgTestResetServer = 228; + k_EMsgUniverseChanged = 229; + k_EMsgShellConfigInfoUpdate = 230; + k_EMsgRequestWindowsEventLogEntries = 233; + k_EMsgProvideWindowsEventLogEntries = 234; + k_EMsgShellSearchLogs = 235; + k_EMsgShellSearchLogsResponse = 236; + k_EMsgShellCheckWindowsUpdates = 237; + k_EMsgShellCheckWindowsUpdatesResponse = 238; + k_EMsgTestFlushDelayedSQL = 240; + k_EMsgTestFlushDelayedSQLResponse = 241; + k_EMsgEnsureExecuteScheduledTask_TEST = 242; + k_EMsgEnsureExecuteScheduledTaskResponse_TEST = 243; + k_EMsgUpdateScheduledTaskEnableState_TEST = 244; + k_EMsgUpdateScheduledTaskEnableStateResponse_TEST = 245; + k_EMsgContentDescriptionDeltaUpdate = 246; + k_EMsgGMShellAndServerAddressUpdates = 247; + k_EMsgBaseGM = 300; + k_EMsgHeartbeat = 300; + k_EMsgShellFailed = 301; + k_EMsgExitShells = 307; + k_EMsgExitShell = 308; + k_EMsgGracefulExitShell = 309; + k_EMsgLicenseProcessingComplete = 316; + k_EMsgSetTestFlag = 317; + k_EMsgQueuedEmailsComplete = 318; + k_EMsgGMDRMSync = 320; + k_EMsgPhysicalBoxInventory = 321; + k_EMsgUpdateConfigFile = 322; + k_EMsgTestInitDB = 323; + k_EMsgGMWriteConfigToSQL = 324; + k_EMsgGMLoadActivationCodes = 325; + k_EMsgGMQueueForFBS = 326; + k_EMsgGMSchemaConversionResults = 327; + k_EMsgGMWriteShellFailureToSQL = 329; + k_EMsgGMWriteStatsToSOS = 330; + k_EMsgGMGetServiceMethodRouting = 331; + k_EMsgGMGetServiceMethodRoutingResponse = 332; + k_EMsgGMTestNextBuildSchemaConversion = 334; + k_EMsgGMTestNextBuildSchemaConversionResponse = 335; + k_EMsgExpectShellRestart = 336; + k_EMsgHotFixProgress = 337; + k_EMsgGMStatsForwardToAdminConnections = 338; + k_EMsgGMGetModifiedConVars = 339; + k_EMsgGMGetModifiedConVarsResponse = 340; + k_EMsgBaseAIS = 400; + k_EMsgAISRequestContentDescription = 402; + k_EMsgAISUpdateAppInfo = 403; + k_EMsgAISGetPackageChangeNumber = 405; + k_EMsgAISGetPackageChangeNumberResponse = 406; + k_EMsgAIGetAppGCFlags = 423; + k_EMsgAIGetAppGCFlagsResponse = 424; + k_EMsgAIGetAppList = 425; + k_EMsgAIGetAppListResponse = 426; + k_EMsgAISGetCouponDefinition = 429; + k_EMsgAISGetCouponDefinitionResponse = 430; + k_EMsgAISUpdateSubordinateContentDescription = 431; + k_EMsgAISUpdateSubordinateContentDescriptionResponse = 432; + k_EMsgAISTestEnableGC = 433; + k_EMsgBaseAM = 500; + k_EMsgAMUpdateUserBanRequest = 504; + k_EMsgAMAddLicense = 505; + k_EMsgAMSendSystemIMToUser = 508; + k_EMsgAMExtendLicense = 509; + k_EMsgAMAddMinutesToLicense = 510; + k_EMsgAMCancelLicense = 511; + k_EMsgAMInitPurchase = 512; + k_EMsgAMPurchaseResponse = 513; + k_EMsgAMGetFinalPrice = 514; + k_EMsgAMGetFinalPriceResponse = 515; + k_EMsgAMGetLegacyGameKey = 516; + k_EMsgAMGetLegacyGameKeyResponse = 517; + k_EMsgAMFindHungTransactions = 518; + k_EMsgAMSetAccountTrustedRequest = 519; + k_EMsgAMCancelPurchase = 522; + k_EMsgAMNewChallenge = 523; + k_EMsgAMLoadOEMTickets = 524; + k_EMsgAMFixPendingPurchase = 525; + k_EMsgAMFixPendingPurchaseResponse = 526; + k_EMsgAMIsUserBanned = 527; + k_EMsgAMRegisterKey = 528; + k_EMsgAMLoadActivationCodes = 529; + k_EMsgAMLoadActivationCodesResponse = 530; + k_EMsgAMLookupKeyResponse = 531; + k_EMsgAMLookupKey = 532; + k_EMsgAMChatCleanup = 533; + k_EMsgAMClanCleanup = 534; + k_EMsgAMFixPendingRefund = 535; + k_EMsgAMReverseChargeback = 536; + k_EMsgAMReverseChargebackResponse = 537; + k_EMsgAMClanCleanupList = 538; + k_EMsgAMGetLicenses = 539; + k_EMsgAMGetLicensesResponse = 540; + k_EMsgAMSendCartRepurchase = 541; + k_EMsgAMSendCartRepurchaseResponse = 542; + k_EMsgAllowUserToPlayQuery = 550; + k_EMsgAllowUserToPlayResponse = 551; + k_EMsgAMVerfiyUser = 552; + k_EMsgAMClientNotPlaying = 553; + k_EMsgAMClientRequestFriendship = 554; + k_EMsgAMRelayPublishStatus = 555; + k_EMsgAMInitPurchaseResponse = 560; + k_EMsgAMRevokePurchaseResponse = 561; + k_EMsgAMRefreshGuestPasses = 563; + k_EMsgAMGrantGuestPasses = 566; + k_EMsgAMClanDataUpdated = 567; + k_EMsgAMReloadAccount = 568; + k_EMsgAMClientChatMsgRelay = 569; + k_EMsgAMChatMulti = 570; + k_EMsgAMClientChatInviteRelay = 571; + k_EMsgAMChatInvite = 572; + k_EMsgAMClientJoinChatRelay = 573; + k_EMsgAMClientChatMemberInfoRelay = 574; + k_EMsgAMPublishChatMemberInfo = 575; + k_EMsgAMClientAcceptFriendInvite = 576; + k_EMsgAMChatEnter = 577; + k_EMsgAMClientPublishRemovalFromSource = 578; + k_EMsgAMChatActionResult = 579; + k_EMsgAMFindAccounts = 580; + k_EMsgAMFindAccountsResponse = 581; + k_EMsgAMIsAccountNameInUse = 582; + k_EMsgAMIsAccountNameInUseResponse = 583; + k_EMsgAMSetAccountFlags = 584; + k_EMsgAMCreateClan = 586; + k_EMsgAMCreateClanResponse = 587; + k_EMsgAMGetClanDetails = 588; + k_EMsgAMGetClanDetailsResponse = 589; + k_EMsgAMSetPersonaName = 590; + k_EMsgAMSetAvatar = 591; + k_EMsgAMAuthenticateUser = 592; + k_EMsgAMAuthenticateUserResponse = 593; + k_EMsgAMP2PIntroducerMessage = 596; + k_EMsgClientChatAction = 597; + k_EMsgAMClientChatActionRelay = 598; + k_EMsgBaseVS = 600; + k_EMsgReqChallenge = 600; + k_EMsgVACResponse = 601; + k_EMsgReqChallengeTest = 602; + k_EMsgVSMarkCheat = 604; + k_EMsgVSAddCheat = 605; + k_EMsgVSPurgeCodeModDB = 606; + k_EMsgVSGetChallengeResults = 607; + k_EMsgVSChallengeResultText = 608; + k_EMsgVSReportLingerer = 609; + k_EMsgVSRequestManagedChallenge = 610; + k_EMsgVSLoadDBFinished = 611; + k_EMsgBaseDRMS = 625; + k_EMsgDRMBuildBlobRequest = 628; + k_EMsgDRMBuildBlobResponse = 629; + k_EMsgDRMResolveGuidRequest = 630; + k_EMsgDRMResolveGuidResponse = 631; + k_EMsgDRMVariabilityReport = 633; + k_EMsgDRMVariabilityReportResponse = 634; + k_EMsgDRMStabilityReport = 635; + k_EMsgDRMStabilityReportResponse = 636; + k_EMsgDRMDetailsReportRequest = 637; + k_EMsgDRMDetailsReportResponse = 638; + k_EMsgDRMProcessFile = 639; + k_EMsgDRMAdminUpdate = 640; + k_EMsgDRMAdminUpdateResponse = 641; + k_EMsgDRMSync = 642; + k_EMsgDRMSyncResponse = 643; + k_EMsgDRMProcessFileResponse = 644; + k_EMsgDRMEmptyGuidCache = 645; + k_EMsgDRMEmptyGuidCacheResponse = 646; + k_EMsgBaseCS = 650; + k_EMsgBaseClient = 700; + k_EMsgClientLogOn_Deprecated = 701; + k_EMsgClientAnonLogOn_Deprecated = 702; + k_EMsgClientHeartBeat = 703; + k_EMsgClientVACResponse = 704; + k_EMsgClientGamesPlayed_obsolete = 705; + k_EMsgClientLogOff = 706; + k_EMsgClientNoUDPConnectivity = 707; + k_EMsgClientConnectionStats = 710; + k_EMsgClientPingResponse = 712; + k_EMsgClientRemoveFriend = 714; + k_EMsgClientGamesPlayedNoDataBlob = 715; + k_EMsgClientChangeStatus = 716; + k_EMsgClientVacStatusResponse = 717; + k_EMsgClientFriendMsg = 718; + k_EMsgClientGameConnect_obsolete = 719; + k_EMsgClientGamesPlayed2_obsolete = 720; + k_EMsgClientGameEnded_obsolete = 721; + k_EMsgClientSystemIM = 726; + k_EMsgClientSystemIMAck = 727; + k_EMsgClientGetLicenses = 728; + k_EMsgClientGetLegacyGameKey = 730; + k_EMsgClientContentServerLogOn_Deprecated = 731; + k_EMsgClientAckVACBan2 = 732; + k_EMsgClientGetPurchaseReceipts = 736; + k_EMsgClientGamesPlayed3_obsolete = 738; + k_EMsgClientAckGuestPass = 740; + k_EMsgClientRedeemGuestPass = 741; + k_EMsgClientGamesPlayed = 742; + k_EMsgClientRegisterKey = 743; + k_EMsgClientInviteUserToClan = 744; + k_EMsgClientAcknowledgeClanInvite = 745; + k_EMsgClientPurchaseWithMachineID = 746; + k_EMsgClientAppUsageEvent = 747; + k_EMsgClientLogOnResponse = 751; + k_EMsgClientSetHeartbeatRate = 755; + k_EMsgClientNotLoggedOnDeprecated = 756; + k_EMsgClientLoggedOff = 757; + k_EMsgGSApprove = 758; + k_EMsgGSDeny = 759; + k_EMsgGSKick = 760; + k_EMsgClientPurchaseResponse = 763; + k_EMsgClientPing = 764; + k_EMsgClientNOP = 765; + k_EMsgClientPersonaState = 766; + k_EMsgClientFriendsList = 767; + k_EMsgClientAccountInfo = 768; + k_EMsgClientNewsUpdate = 771; + k_EMsgClientGameConnectDeny = 773; + k_EMsgGSStatusReply = 774; + k_EMsgClientGameConnectTokens = 779; + k_EMsgClientLicenseList = 780; + k_EMsgClientVACBanStatus = 782; + k_EMsgClientCMList = 783; + k_EMsgClientEncryptPct = 784; + k_EMsgClientGetLegacyGameKeyResponse = 785; + k_EMsgClientAddFriend = 791; + k_EMsgClientAddFriendResponse = 792; + k_EMsgClientAckGuestPassResponse = 796; + k_EMsgClientRedeemGuestPassResponse = 797; + k_EMsgClientUpdateGuestPassesList = 798; + k_EMsgClientChatMsg = 799; + k_EMsgClientChatInvite = 800; + k_EMsgClientJoinChat = 801; + k_EMsgClientChatMemberInfo = 802; + k_EMsgClientLogOnWithCredentials_Deprecated = 803; + k_EMsgClientPasswordChangeResponse = 805; + k_EMsgClientChatEnter = 807; + k_EMsgClientFriendRemovedFromSource = 808; + k_EMsgClientCreateChat = 809; + k_EMsgClientCreateChatResponse = 810; + k_EMsgClientP2PIntroducerMessage = 813; + k_EMsgClientChatActionResult = 814; + k_EMsgClientRequestFriendData = 815; + k_EMsgClientGetUserStats = 818; + k_EMsgClientGetUserStatsResponse = 819; + k_EMsgClientStoreUserStats = 820; + k_EMsgClientStoreUserStatsResponse = 821; + k_EMsgClientClanState = 822; + k_EMsgClientServiceModule = 830; + k_EMsgClientServiceCall = 831; + k_EMsgClientServiceCallResponse = 832; + k_EMsgClientNatTraversalStatEvent = 839; + k_EMsgClientSteamUsageEvent = 842; + k_EMsgClientCheckPassword = 845; + k_EMsgClientResetPassword = 846; + k_EMsgClientCheckPasswordResponse = 848; + k_EMsgClientResetPasswordResponse = 849; + k_EMsgClientSessionToken = 850; + k_EMsgClientDRMProblemReport = 851; + k_EMsgClientSetIgnoreFriend = 855; + k_EMsgClientSetIgnoreFriendResponse = 856; + k_EMsgClientGetAppOwnershipTicket = 857; + k_EMsgClientGetAppOwnershipTicketResponse = 858; + k_EMsgClientGetLobbyListResponse = 860; + k_EMsgClientServerList = 880; + k_EMsgClientDRMBlobRequest = 896; + k_EMsgClientDRMBlobResponse = 897; + k_EMsgBaseGameServer = 900; + k_EMsgGSDisconnectNotice = 901; + k_EMsgGSStatus = 903; + k_EMsgGSUserPlaying = 905; + k_EMsgGSStatus2 = 906; + k_EMsgGSStatusUpdate_Unused = 907; + k_EMsgGSServerType = 908; + k_EMsgGSPlayerList = 909; + k_EMsgGSGetUserAchievementStatus = 910; + k_EMsgGSGetUserAchievementStatusResponse = 911; + k_EMsgGSGetPlayStats = 918; + k_EMsgGSGetPlayStatsResponse = 919; + k_EMsgGSGetUserGroupStatus = 920; + k_EMsgAMGetUserGroupStatus = 921; + k_EMsgAMGetUserGroupStatusResponse = 922; + k_EMsgGSGetUserGroupStatusResponse = 923; + k_EMsgGSGetReputation = 936; + k_EMsgGSGetReputationResponse = 937; + k_EMsgGSAssociateWithClan = 938; + k_EMsgGSAssociateWithClanResponse = 939; + k_EMsgGSComputeNewPlayerCompatibility = 940; + k_EMsgGSComputeNewPlayerCompatibilityResponse = 941; + k_EMsgBaseAdmin = 1000; + k_EMsgAdminCmd = 1000; + k_EMsgAdminCmdResponse = 1004; + k_EMsgAdminLogListenRequest = 1005; + k_EMsgAdminLogEvent = 1006; + k_EMsgUniverseData = 1010; + k_EMsgAdminSpew = 1019; + k_EMsgAdminConsoleTitle = 1020; + k_EMsgAdminGCSpew = 1023; + k_EMsgAdminGCCommand = 1024; + k_EMsgAdminGCGetCommandList = 1025; + k_EMsgAdminGCGetCommandListResponse = 1026; + k_EMsgFBSConnectionData = 1027; + k_EMsgAdminMsgSpew = 1028; + k_EMsgBaseFBS = 1100; + k_EMsgFBSReqVersion = 1100; + k_EMsgFBSVersionInfo = 1101; + k_EMsgFBSForceRefresh = 1102; + k_EMsgFBSForceBounce = 1103; + k_EMsgFBSDeployPackage = 1104; + k_EMsgFBSDeployResponse = 1105; + k_EMsgFBSUpdateBootstrapper = 1106; + k_EMsgFBSSetState = 1107; + k_EMsgFBSApplyOSUpdates = 1108; + k_EMsgFBSRunCMDScript = 1109; + k_EMsgFBSRebootBox = 1110; + k_EMsgFBSSetBigBrotherMode = 1111; + k_EMsgFBSMinidumpServer = 1112; + k_EMsgFBSDeployHotFixPackage = 1114; + k_EMsgFBSDeployHotFixResponse = 1115; + k_EMsgFBSDownloadHotFix = 1116; + k_EMsgFBSDownloadHotFixResponse = 1117; + k_EMsgFBSUpdateTargetConfigFile = 1118; + k_EMsgFBSApplyAccountCred = 1119; + k_EMsgFBSApplyAccountCredResponse = 1120; + k_EMsgFBSSetShellCount = 1121; + k_EMsgFBSTerminateShell = 1122; + k_EMsgFBSQueryGMForRequest = 1123; + k_EMsgFBSQueryGMResponse = 1124; + k_EMsgFBSTerminateZombies = 1125; + k_EMsgFBSInfoFromBootstrapper = 1126; + k_EMsgFBSRebootBoxResponse = 1127; + k_EMsgFBSBootstrapperPackageRequest = 1128; + k_EMsgFBSBootstrapperPackageResponse = 1129; + k_EMsgFBSBootstrapperGetPackageChunk = 1130; + k_EMsgFBSBootstrapperGetPackageChunkResponse = 1131; + k_EMsgFBSBootstrapperPackageTransferProgress = 1132; + k_EMsgFBSRestartBootstrapper = 1133; + k_EMsgFBSPauseFrozenDumps = 1134; + k_EMsgBaseFileXfer = 1200; + k_EMsgFileXferRequest = 1200; + k_EMsgFileXferResponse = 1201; + k_EMsgFileXferData = 1202; + k_EMsgFileXferEnd = 1203; + k_EMsgFileXferDataAck = 1204; + k_EMsgBaseChannelAuth = 1300; + k_EMsgChannelAuthChallenge = 1300; + k_EMsgChannelAuthResponse = 1301; + k_EMsgChannelAuthResult = 1302; + k_EMsgChannelEncryptRequest = 1303; + k_EMsgChannelEncryptResponse = 1304; + k_EMsgChannelEncryptResult = 1305; + k_EMsgBaseBS = 1400; + k_EMsgBSPurchaseStart = 1401; + k_EMsgBSPurchaseResponse = 1402; + k_EMsgBSAuthenticateCCTrans = 1403; + k_EMsgBSAuthenticateCCTransResponse = 1404; + k_EMsgBSSettleComplete = 1406; + k_EMsgBSInitPayPalTxn = 1408; + k_EMsgBSInitPayPalTxnResponse = 1409; + k_EMsgBSGetPayPalUserInfo = 1410; + k_EMsgBSGetPayPalUserInfoResponse = 1411; + k_EMsgBSPaymentInstrBan = 1417; + k_EMsgBSPaymentInstrBanResponse = 1418; + k_EMsgBSInitGCBankXferTxn = 1421; + k_EMsgBSInitGCBankXferTxnResponse = 1422; + k_EMsgBSCommitGCTxn = 1425; + k_EMsgBSQueryTransactionStatus = 1426; + k_EMsgBSQueryTransactionStatusResponse = 1427; + k_EMsgBSQueryTxnExtendedInfo = 1433; + k_EMsgBSQueryTxnExtendedInfoResponse = 1434; + k_EMsgBSUpdateConversionRates = 1435; + k_EMsgBSPurchaseRunFraudChecks = 1437; + k_EMsgBSPurchaseRunFraudChecksResponse = 1438; + k_EMsgBSQueryBankInformation = 1440; + k_EMsgBSQueryBankInformationResponse = 1441; + k_EMsgBSValidateXsollaSignature = 1445; + k_EMsgBSValidateXsollaSignatureResponse = 1446; + k_EMsgBSQiwiWalletInvoice = 1448; + k_EMsgBSQiwiWalletInvoiceResponse = 1449; + k_EMsgBSUpdateInventoryFromProPack = 1450; + k_EMsgBSUpdateInventoryFromProPackResponse = 1451; + k_EMsgBSSendShippingRequest = 1452; + k_EMsgBSSendShippingRequestResponse = 1453; + k_EMsgBSGetProPackOrderStatus = 1454; + k_EMsgBSGetProPackOrderStatusResponse = 1455; + k_EMsgBSCheckJobRunning = 1456; + k_EMsgBSCheckJobRunningResponse = 1457; + k_EMsgBSResetPackagePurchaseRateLimit = 1458; + k_EMsgBSResetPackagePurchaseRateLimitResponse = 1459; + k_EMsgBSUpdatePaymentData = 1460; + k_EMsgBSUpdatePaymentDataResponse = 1461; + k_EMsgBSGetBillingAddress = 1462; + k_EMsgBSGetBillingAddressResponse = 1463; + k_EMsgBSGetCreditCardInfo = 1464; + k_EMsgBSGetCreditCardInfoResponse = 1465; + k_EMsgBSRemoveExpiredPaymentData = 1468; + k_EMsgBSRemoveExpiredPaymentDataResponse = 1469; + k_EMsgBSConvertToCurrentKeys = 1470; + k_EMsgBSConvertToCurrentKeysResponse = 1471; + k_EMsgBSInitPurchase = 1472; + k_EMsgBSInitPurchaseResponse = 1473; + k_EMsgBSCompletePurchase = 1474; + k_EMsgBSCompletePurchaseResponse = 1475; + k_EMsgBSPruneCardUsageStats = 1476; + k_EMsgBSPruneCardUsageStatsResponse = 1477; + k_EMsgBSStoreBankInformation = 1478; + k_EMsgBSStoreBankInformationResponse = 1479; + k_EMsgBSVerifyPOSAKey = 1480; + k_EMsgBSVerifyPOSAKeyResponse = 1481; + k_EMsgBSReverseRedeemPOSAKey = 1482; + k_EMsgBSReverseRedeemPOSAKeyResponse = 1483; + k_EMsgBSQueryFindCreditCard = 1484; + k_EMsgBSQueryFindCreditCardResponse = 1485; + k_EMsgBSStatusInquiryPOSAKey = 1486; + k_EMsgBSStatusInquiryPOSAKeyResponse = 1487; + k_EMsgBSBoaCompraConfirmProductDelivery = 1494; + k_EMsgBSBoaCompraConfirmProductDeliveryResponse = 1495; + k_EMsgBSGenerateBoaCompraMD5 = 1496; + k_EMsgBSGenerateBoaCompraMD5Response = 1497; + k_EMsgBSCommitWPTxn = 1498; + k_EMsgBSCommitAdyenTxn = 1499; + k_EMsgBaseATS = 1500; + k_EMsgATSStartStressTest = 1501; + k_EMsgATSStopStressTest = 1502; + k_EMsgATSRunFailServerTest = 1503; + k_EMsgATSUFSPerfTestTask = 1504; + k_EMsgATSUFSPerfTestResponse = 1505; + k_EMsgATSCycleTCM = 1506; + k_EMsgATSInitDRMSStressTest = 1507; + k_EMsgATSCallTest = 1508; + k_EMsgATSCallTestReply = 1509; + k_EMsgATSStartExternalStress = 1510; + k_EMsgATSExternalStressJobStart = 1511; + k_EMsgATSExternalStressJobQueued = 1512; + k_EMsgATSExternalStressJobRunning = 1513; + k_EMsgATSExternalStressJobStopped = 1514; + k_EMsgATSExternalStressJobStopAll = 1515; + k_EMsgATSExternalStressActionResult = 1516; + k_EMsgATSStarted = 1517; + k_EMsgATSCSPerfTestTask = 1518; + k_EMsgATSCSPerfTestResponse = 1519; + k_EMsgBaseDP = 1600; + k_EMsgDPSetPublishingState = 1601; + k_EMsgDPUniquePlayersStat = 1603; + k_EMsgDPStreamingUniquePlayersStat = 1604; + k_EMsgDPBlockingStats = 1607; + k_EMsgDPNatTraversalStats = 1608; + k_EMsgDPCloudStats = 1612; + k_EMsgDPGetPlayerCount = 1615; + k_EMsgDPGetPlayerCountResponse = 1616; + k_EMsgDPGameServersPlayersStats = 1617; + k_EMsgClientDPCheckSpecialSurvey = 1620; + k_EMsgClientDPCheckSpecialSurveyResponse = 1621; + k_EMsgClientDPSendSpecialSurveyResponse = 1622; + k_EMsgClientDPSendSpecialSurveyResponseReply = 1623; + k_EMsgDPStoreSaleStatistics = 1624; + k_EMsgDPPartnerMicroTxns = 1628; + k_EMsgDPPartnerMicroTxnsResponse = 1629; + k_EMsgDPVRUniquePlayersStat = 1631; + k_EMsgBaseCM = 1700; + k_EMsgCMSetAllowState = 1701; + k_EMsgCMSpewAllowState = 1702; + k_EMsgCMSessionRejected = 1703; + k_EMsgCMSetSecrets = 1704; + k_EMsgCMGetSecrets = 1705; + k_EMsgBaseGC = 2200; + k_EMsgGCCmdRevive = 2203; + k_EMsgGCCmdDown = 2206; + k_EMsgGCCmdDeploy = 2207; + k_EMsgGCCmdDeployResponse = 2208; + k_EMsgGCCmdSwitch = 2209; + k_EMsgAMRefreshSessions = 2210; + k_EMsgGCAchievementAwarded = 2212; + k_EMsgGCSystemMessage = 2213; + k_EMsgGCCmdStatus = 2216; + k_EMsgGCRegisterWebInterfaces_Deprecated = 2217; + k_EMsgGCGetAccountDetails_DEPRECATED = 2218; + k_EMsgGCInterAppMessage = 2219; + k_EMsgGCGetEmailTemplate = 2220; + k_EMsgGCGetEmailTemplateResponse = 2221; + k_EMsgGCHRelay = 2222; + k_EMsgGCHRelayToClient = 2223; + k_EMsgGCHUpdateSession = 2224; + k_EMsgGCHRequestUpdateSession = 2225; + k_EMsgGCHRequestStatus = 2226; + k_EMsgGCHRequestStatusResponse = 2227; + k_EMsgGCHAccountVacStatusChange = 2228; + k_EMsgGCHSpawnGC = 2229; + k_EMsgGCHSpawnGCResponse = 2230; + k_EMsgGCHKillGC = 2231; + k_EMsgGCHKillGCResponse = 2232; + k_EMsgGCHAccountTradeBanStatusChange = 2233; + k_EMsgGCHAccountLockStatusChange = 2234; + k_EMsgGCHVacVerificationChange = 2235; + k_EMsgGCHAccountPhoneNumberChange = 2236; + k_EMsgGCHAccountTwoFactorChange = 2237; + k_EMsgGCHInviteUserToLobby = 2238; + k_EMsgGCHUpdateMultipleSessions = 2239; + k_EMsgGCHMarkAppSessionsAuthoritative = 2240; + k_EMsgGCHRecurringSubscriptionStatusChange = 2241; + k_EMsgGCHAppCheersReceived = 2242; + k_EMsgGCHAppCheersGetAllowedTypes = 2243; + k_EMsgGCHAppCheersGetAllowedTypesResponse = 2244; + k_EMsgGCHRoutingRulesFromGCHtoGM = 2245; + k_EMsgGCHRoutingRulesToGCHfromGM = 2246; + k_EMsgUpdateCMMessageRateRules = 2247; + k_EMsgBaseP2P = 2500; + k_EMsgP2PIntroducerMessage = 2502; + k_EMsgBaseSM = 2900; + k_EMsgSMExpensiveReport = 2902; + k_EMsgSMHourlyReport = 2903; + k_EMsgSMPartitionRenames = 2905; + k_EMsgSMMonitorSpace = 2906; + k_EMsgSMTestNextBuildSchemaConversion = 2907; + k_EMsgSMTestNextBuildSchemaConversionResponse = 2908; + k_EMsgBaseTest = 3000; + k_EMsgFailServer = 3000; + k_EMsgJobHeartbeatTest = 3001; + k_EMsgJobHeartbeatTestResponse = 3002; + k_EMsgBaseFTSRange = 3100; + k_EMsgBaseCCSRange = 3150; + k_EMsgCCSDeleteAllCommentsByAuthor = 3161; + k_EMsgCCSDeleteAllCommentsByAuthorResponse = 3162; + k_EMsgBaseLBSRange = 3200; + k_EMsgLBSSetScore = 3201; + k_EMsgLBSSetScoreResponse = 3202; + k_EMsgLBSFindOrCreateLB = 3203; + k_EMsgLBSFindOrCreateLBResponse = 3204; + k_EMsgLBSGetLBEntries = 3205; + k_EMsgLBSGetLBEntriesResponse = 3206; + k_EMsgLBSGetLBList = 3207; + k_EMsgLBSGetLBListResponse = 3208; + k_EMsgLBSSetLBDetails = 3209; + k_EMsgLBSDeleteLB = 3210; + k_EMsgLBSDeleteLBEntry = 3211; + k_EMsgLBSResetLB = 3212; + k_EMsgLBSResetLBResponse = 3213; + k_EMsgLBSDeleteLBResponse = 3214; + k_EMsgBaseOGS = 3400; + k_EMsgOGSBeginSession = 3401; + k_EMsgOGSBeginSessionResponse = 3402; + k_EMsgOGSEndSession = 3403; + k_EMsgOGSEndSessionResponse = 3404; + k_EMsgOGSWriteAppSessionRow = 3406; + k_EMsgBaseBRP = 3600; + k_EMsgBRPPostTransactionTax = 3629; + k_EMsgBRPPostTransactionTaxResponse = 3630; + k_EMsgBaseAMRange2 = 4000; + k_EMsgAMCreateChat = 4001; + k_EMsgAMCreateChatResponse = 4002; + k_EMsgAMSetProfileURL = 4005; + k_EMsgAMGetAccountEmailAddress = 4006; + k_EMsgAMGetAccountEmailAddressResponse = 4007; + k_EMsgAMRequestClanData = 4008; + k_EMsgAMRouteToClients = 4009; + k_EMsgAMLeaveClan = 4010; + k_EMsgAMClanPermissions = 4011; + k_EMsgAMClanPermissionsResponse = 4012; + k_EMsgAMCreateClanEventDummyForRateLimiting = 4013; + k_EMsgAMUpdateClanEventDummyForRateLimiting = 4015; + k_EMsgAMSetClanPermissionSettings = 4021; + k_EMsgAMSetClanPermissionSettingsResponse = 4022; + k_EMsgAMGetClanPermissionSettings = 4023; + k_EMsgAMGetClanPermissionSettingsResponse = 4024; + k_EMsgAMPublishChatRoomInfo = 4025; + k_EMsgClientChatRoomInfo = 4026; + k_EMsgAMGetClanHistory = 4039; + k_EMsgAMGetClanHistoryResponse = 4040; + k_EMsgAMGetClanPermissionBits = 4041; + k_EMsgAMGetClanPermissionBitsResponse = 4042; + k_EMsgAMSetClanPermissionBits = 4043; + k_EMsgAMSetClanPermissionBitsResponse = 4044; + k_EMsgAMSessionInfoRequest = 4045; + k_EMsgAMSessionInfoResponse = 4046; + k_EMsgAMValidateWGToken = 4047; + k_EMsgAMGetClanRank = 4050; + k_EMsgAMGetClanRankResponse = 4051; + k_EMsgAMSetClanRank = 4052; + k_EMsgAMSetClanRankResponse = 4053; + k_EMsgAMGetClanPOTW = 4054; + k_EMsgAMGetClanPOTWResponse = 4055; + k_EMsgAMSetClanPOTW = 4056; + k_EMsgAMSetClanPOTWResponse = 4057; + k_EMsgAMDumpUser = 4059; + k_EMsgAMKickUserFromClan = 4060; + k_EMsgAMAddFounderToClan = 4061; + k_EMsgAMValidateWGTokenResponse = 4062; + k_EMsgAMSetAccountDetails = 4064; + k_EMsgAMGetChatBanList = 4065; + k_EMsgAMGetChatBanListResponse = 4066; + k_EMsgAMUnBanFromChat = 4067; + k_EMsgAMSetClanDetails = 4068; + k_EMsgUGSGetUserGameStats = 4073; + k_EMsgUGSGetUserGameStatsResponse = 4074; + k_EMsgAMCheckClanMembership = 4075; + k_EMsgAMGetClanMembers = 4076; + k_EMsgAMGetClanMembersResponse = 4077; + k_EMsgAMNotifyChatOfClanChange = 4079; + k_EMsgAMResubmitPurchase = 4080; + k_EMsgAMAddFriend = 4081; + k_EMsgAMAddFriendResponse = 4082; + k_EMsgAMRemoveFriend = 4083; + k_EMsgAMDumpClan = 4084; + k_EMsgAMChangeClanOwner = 4085; + k_EMsgAMCancelEasyCollect = 4086; + k_EMsgAMCancelEasyCollectResponse = 4087; + k_EMsgAMClansInCommon = 4090; + k_EMsgAMClansInCommonResponse = 4091; + k_EMsgAMIsValidAccountID = 4092; + k_EMsgAMWipeFriendsList = 4095; + k_EMsgAMSetIgnored = 4096; + k_EMsgAMClansInCommonCountResponse = 4097; + k_EMsgAMFriendsList = 4098; + k_EMsgAMFriendsListResponse = 4099; + k_EMsgAMFriendsInCommon = 4100; + k_EMsgAMFriendsInCommonResponse = 4101; + k_EMsgAMFriendsInCommonCountResponse = 4102; + k_EMsgAMClansInCommonCount = 4103; + k_EMsgAMChallengeVerdict = 4104; + k_EMsgAMChallengeNotification = 4105; + k_EMsgAMFindGSByIP = 4106; + k_EMsgAMFoundGSByIP = 4107; + k_EMsgAMGiftRevoked = 4108; + k_EMsgAMUserClanList = 4110; + k_EMsgAMUserClanListResponse = 4111; + k_EMsgAMGetAccountDetails2 = 4112; + k_EMsgAMGetAccountDetailsResponse2 = 4113; + k_EMsgAMSetCommunityProfileSettings = 4114; + k_EMsgAMSetCommunityProfileSettingsResponse = 4115; + k_EMsgAMGetCommunityPrivacyState = 4116; + k_EMsgAMGetCommunityPrivacyStateResponse = 4117; + k_EMsgAMCheckClanInviteRateLimiting = 4118; + k_EMsgUGSGetUserAchievementStatus = 4119; + k_EMsgAMGetIgnored = 4120; + k_EMsgAMGetIgnoredResponse = 4121; + k_EMsgAMSetIgnoredResponse = 4122; + k_EMsgAMSetFriendRelationshipNone = 4123; + k_EMsgAMGetFriendRelationship = 4124; + k_EMsgAMGetFriendRelationshipResponse = 4125; + k_EMsgAMServiceModulesCache = 4126; + k_EMsgAMServiceModulesCall = 4127; + k_EMsgAMServiceModulesCallResponse = 4128; + k_EMsgCommunityAddFriendNews = 4140; + k_EMsgAMFindClanUser = 4143; + k_EMsgAMFindClanUserResponse = 4144; + k_EMsgAMBanFromChat = 4145; + k_EMsgAMGetUserNewsSubscriptions = 4147; + k_EMsgAMGetUserNewsSubscriptionsResponse = 4148; + k_EMsgAMSetUserNewsSubscriptions = 4149; + k_EMsgAMSendQueuedEmails = 4152; + k_EMsgAMSetLicenseFlags = 4153; + k_EMsgCommunityDeleteUserNews = 4155; + k_EMsgAMGetAccountStatus = 4158; + k_EMsgAMGetAccountStatusResponse = 4159; + k_EMsgAMEditBanReason = 4160; + k_EMsgAMCheckClanMembershipResponse = 4161; + k_EMsgAMProbeClanMembershipList = 4162; + k_EMsgAMProbeClanMembershipListResponse = 4163; + k_EMsgUGSGetUserAchievementStatusResponse = 4164; + k_EMsgAMGetFriendsLobbies = 4165; + k_EMsgAMGetFriendsLobbiesResponse = 4166; + k_EMsgAMGetUserFriendNewsResponse = 4172; + k_EMsgCommunityGetUserFriendNews = 4173; + k_EMsgAMGetUserClansNewsResponse = 4174; + k_EMsgAMGetUserClansNews = 4175; + k_EMsgAMGetPreviousCBAccount = 4184; + k_EMsgAMGetPreviousCBAccountResponse = 4185; + k_EMsgAMGetUserLicenseHistory = 4190; + k_EMsgAMGetUserLicenseHistoryResponse = 4191; + k_EMsgAMSupportChangePassword = 4194; + k_EMsgAMSupportChangeEmail = 4195; + k_EMsgAMResetUserVerificationGSByIP = 4197; + k_EMsgAMUpdateGSPlayStats = 4198; + k_EMsgAMSupportEnableOrDisable = 4199; + k_EMsgAMGetPurchaseStatus = 4206; + k_EMsgAMSupportIsAccountEnabled = 4209; + k_EMsgAMSupportIsAccountEnabledResponse = 4210; + k_EMsgUGSGetUserStats = 4211; + k_EMsgAMGSSearch = 4213; + k_EMsgChatServerRouteFriendMsg = 4219; + k_EMsgAMTicketAuthRequestOrResponse = 4220; + k_EMsgAMAddFreeLicense = 4224; + k_EMsgAMValidateEmailLink = 4231; + k_EMsgAMValidateEmailLinkResponse = 4232; + k_EMsgUGSStoreUserStats = 4236; + k_EMsgAMDeleteStoredCard = 4241; + k_EMsgAMRevokeLegacyGameKeys = 4242; + k_EMsgAMGetWalletDetails = 4244; + k_EMsgAMGetWalletDetailsResponse = 4245; + k_EMsgAMDeleteStoredPaymentInfo = 4246; + k_EMsgAMGetStoredPaymentSummary = 4247; + k_EMsgAMGetStoredPaymentSummaryResponse = 4248; + k_EMsgAMGetWalletConversionRate = 4249; + k_EMsgAMGetWalletConversionRateResponse = 4250; + k_EMsgAMConvertWallet = 4251; + k_EMsgAMConvertWalletResponse = 4252; + k_EMsgAMSetPreApproval = 4255; + k_EMsgAMSetPreApprovalResponse = 4256; + k_EMsgAMCreateRefund = 4258; + k_EMsgAMCreateChargeback = 4260; + k_EMsgAMCreateDispute = 4262; + k_EMsgAMClearDispute = 4264; + k_EMsgAMCreateFinancialAdjustment = 4265; + k_EMsgAMPlayerNicknameList = 4266; + k_EMsgAMPlayerNicknameListResponse = 4267; + k_EMsgAMGetUserCurrentGameInfo = 4269; + k_EMsgAMGetUserCurrentGameInfoResponse = 4270; + k_EMsgAMGetGSPlayerList = 4271; + k_EMsgAMGetGSPlayerListResponse = 4272; + k_EMsgAMGetSteamIDForMicroTxn = 4278; + k_EMsgAMGetSteamIDForMicroTxnResponse = 4279; + k_EMsgAMSetPartnerMember = 4280; + k_EMsgAMRemovePublisherUser = 4281; + k_EMsgAMGetUserLicenseList = 4282; + k_EMsgAMGetUserLicenseListResponse = 4283; + k_EMsgAMReloadGameGroupPolicy = 4284; + k_EMsgAMAddFreeLicenseResponse = 4285; + k_EMsgAMVACStatusUpdate = 4286; + k_EMsgAMGetAccountDetails = 4287; + k_EMsgAMGetAccountDetailsResponse = 4288; + k_EMsgAMGetPlayerLinkDetails = 4289; + k_EMsgAMGetPlayerLinkDetailsResponse = 4290; + k_EMsgAMGetAccountFlagsForWGSpoofing = 4294; + k_EMsgAMGetAccountFlagsForWGSpoofingResponse = 4295; + k_EMsgAMGetClanOfficers = 4298; + k_EMsgAMGetClanOfficersResponse = 4299; + k_EMsgAMNameChange = 4300; + k_EMsgAMGetNameHistory = 4301; + k_EMsgAMGetNameHistoryResponse = 4302; + k_EMsgAMUpdateProviderStatus = 4305; + k_EMsgAMSupportRemoveAccountSecurity = 4307; + k_EMsgAMIsAccountInCaptchaGracePeriod = 4308; + k_EMsgAMIsAccountInCaptchaGracePeriodResponse = 4309; + k_EMsgAMAccountPS3Unlink = 4310; + k_EMsgAMAccountPS3UnlinkResponse = 4311; + k_EMsgUGSStoreUserStatsResponse = 4312; + k_EMsgAMGetAccountPSNInfo = 4313; + k_EMsgAMGetAccountPSNInfoResponse = 4314; + k_EMsgAMAuthenticatedPlayerList = 4315; + k_EMsgAMGetUserGifts = 4316; + k_EMsgAMGetUserGiftsResponse = 4317; + k_EMsgAMTransferLockedGifts = 4320; + k_EMsgAMTransferLockedGiftsResponse = 4321; + k_EMsgAMPlayerHostedOnGameServer = 4322; + k_EMsgAMGetAccountBanInfo = 4323; + k_EMsgAMGetAccountBanInfoResponse = 4324; + k_EMsgAMRecordBanEnforcement = 4325; + k_EMsgAMRollbackGiftTransfer = 4326; + k_EMsgAMRollbackGiftTransferResponse = 4327; + k_EMsgAMHandlePendingTransaction = 4328; + k_EMsgAMRequestClanDetails = 4329; + k_EMsgAMDeleteStoredPaypalAgreement = 4330; + k_EMsgAMGameServerUpdate = 4331; + k_EMsgAMGameServerRemove = 4332; + k_EMsgAMGetPaypalAgreements = 4333; + k_EMsgAMGetPaypalAgreementsResponse = 4334; + k_EMsgAMGameServerPlayerCompatibilityCheck = 4335; + k_EMsgAMGameServerPlayerCompatibilityCheckResponse = 4336; + k_EMsgAMRenewLicense = 4337; + k_EMsgAMGetAccountCommunityBanInfo = 4338; + k_EMsgAMGetAccountCommunityBanInfoResponse = 4339; + k_EMsgAMGameServerAccountChangePassword = 4340; + k_EMsgAMGameServerAccountDeleteAccount = 4341; + k_EMsgAMRenewAgreement = 4342; + k_EMsgAMXsollaPayment = 4344; + k_EMsgAMXsollaPaymentResponse = 4345; + k_EMsgAMAcctAllowedToPurchase = 4346; + k_EMsgAMAcctAllowedToPurchaseResponse = 4347; + k_EMsgAMSwapKioskDeposit = 4348; + k_EMsgAMSwapKioskDepositResponse = 4349; + k_EMsgAMSetUserGiftUnowned = 4350; + k_EMsgAMSetUserGiftUnownedResponse = 4351; + k_EMsgAMClaimUnownedUserGift = 4352; + k_EMsgAMClaimUnownedUserGiftResponse = 4353; + k_EMsgAMSetClanName = 4354; + k_EMsgAMSetClanNameResponse = 4355; + k_EMsgAMGrantCoupon = 4356; + k_EMsgAMGrantCouponResponse = 4357; + k_EMsgAMIsPackageRestrictedInUserCountry = 4358; + k_EMsgAMIsPackageRestrictedInUserCountryResponse = 4359; + k_EMsgAMHandlePendingTransactionResponse = 4360; + k_EMsgAMGrantGuestPasses2 = 4361; + k_EMsgAMGrantGuestPasses2Response = 4362; + k_EMsgAMGetPlayerBanDetails = 4365; + k_EMsgAMGetPlayerBanDetailsResponse = 4366; + k_EMsgAMFinalizePurchase = 4367; + k_EMsgAMFinalizePurchaseResponse = 4368; + k_EMsgAMPersonaChangeResponse = 4372; + k_EMsgAMGetClanDetailsForForumCreation = 4373; + k_EMsgAMGetClanDetailsForForumCreationResponse = 4374; + k_EMsgAMGetPendingNotificationCount = 4375; + k_EMsgAMGetPendingNotificationCountResponse = 4376; + k_EMsgAMPasswordHashUpgrade = 4377; + k_EMsgAMBoaCompraPayment = 4380; + k_EMsgAMBoaCompraPaymentResponse = 4381; + k_EMsgAMCompleteExternalPurchase = 4383; + k_EMsgAMCompleteExternalPurchaseResponse = 4384; + k_EMsgAMResolveNegativeWalletCredits = 4385; + k_EMsgAMResolveNegativeWalletCreditsResponse = 4386; + k_EMsgAMPlayerGetClanBasicDetails = 4389; + k_EMsgAMPlayerGetClanBasicDetailsResponse = 4390; + k_EMsgAMMOLPayment = 4391; + k_EMsgAMMOLPaymentResponse = 4392; + k_EMsgGetUserIPCountry = 4393; + k_EMsgGetUserIPCountryResponse = 4394; + k_EMsgNotificationOfSuspiciousActivity = 4395; + k_EMsgAMDegicaPayment = 4396; + k_EMsgAMDegicaPaymentResponse = 4397; + k_EMsgAMEClubPayment = 4398; + k_EMsgAMEClubPaymentResponse = 4399; + k_EMsgAMPayPalPaymentsHubPayment = 4400; + k_EMsgAMPayPalPaymentsHubPaymentResponse = 4401; + k_EMsgAMTwoFactorRecoverAuthenticatorRequest = 4402; + k_EMsgAMTwoFactorRecoverAuthenticatorResponse = 4403; + k_EMsgAMSmart2PayPayment = 4404; + k_EMsgAMSmart2PayPaymentResponse = 4405; + k_EMsgAMValidatePasswordResetCodeAndSendSmsRequest = 4406; + k_EMsgAMValidatePasswordResetCodeAndSendSmsResponse = 4407; + k_EMsgAMGetAccountResetDetailsRequest = 4408; + k_EMsgAMGetAccountResetDetailsResponse = 4409; + k_EMsgAMBitPayPayment = 4410; + k_EMsgAMBitPayPaymentResponse = 4411; + k_EMsgAMSendAccountInfoUpdate = 4412; + k_EMsgAMSendScheduledGift = 4413; + k_EMsgAMNodwinPayment = 4414; + k_EMsgAMNodwinPaymentResponse = 4415; + k_EMsgAMResolveWalletRevoke = 4416; + k_EMsgAMResolveWalletReverseRevoke = 4417; + k_EMsgAMFundedPayment = 4418; + k_EMsgAMFundedPaymentResponse = 4419; + k_EMsgAMRequestPersonaUpdateForChatServer = 4420; + k_EMsgAMPerfectWorldPayment = 4421; + k_EMsgAMPerfectWorldPaymentResponse = 4422; + k_EMsgAMECommPayPayment = 4423; + k_EMsgAMECommPayPaymentResponse = 4424; + k_EMsgAMSetRemoteClientID = 4425; + k_EMsgBasePSRange = 5000; + k_EMsgPSCreateShoppingCart = 5001; + k_EMsgPSCreateShoppingCartResponse = 5002; + k_EMsgPSIsValidShoppingCart = 5003; + k_EMsgPSIsValidShoppingCartResponse = 5004; + k_EMsgPSRemoveLineItemFromShoppingCart = 5007; + k_EMsgPSRemoveLineItemFromShoppingCartResponse = 5008; + k_EMsgPSGetShoppingCartContents = 5009; + k_EMsgPSGetShoppingCartContentsResponse = 5010; + k_EMsgPSAddWalletCreditToShoppingCart = 5011; + k_EMsgPSAddWalletCreditToShoppingCartResponse = 5012; + k_EMsgBaseUFSRange = 5200; + k_EMsgClientUFSUploadFileRequest = 5202; + k_EMsgClientUFSUploadFileResponse = 5203; + k_EMsgClientUFSUploadFileChunk = 5204; + k_EMsgClientUFSUploadFileFinished = 5205; + k_EMsgClientUFSGetFileListForApp = 5206; + k_EMsgClientUFSGetFileListForAppResponse = 5207; + k_EMsgClientUFSDownloadRequest = 5210; + k_EMsgClientUFSDownloadResponse = 5211; + k_EMsgClientUFSDownloadChunk = 5212; + k_EMsgClientUFSLoginRequest = 5213; + k_EMsgClientUFSLoginResponse = 5214; + k_EMsgUFSReloadPartitionInfo = 5215; + k_EMsgClientUFSTransferHeartbeat = 5216; + k_EMsgUFSSynchronizeFile = 5217; + k_EMsgUFSSynchronizeFileResponse = 5218; + k_EMsgClientUFSDeleteFileRequest = 5219; + k_EMsgClientUFSDeleteFileResponse = 5220; + k_EMsgClientUFSGetUGCDetails = 5226; + k_EMsgClientUFSGetUGCDetailsResponse = 5227; + k_EMsgUFSUpdateFileFlags = 5228; + k_EMsgUFSUpdateFileFlagsResponse = 5229; + k_EMsgClientUFSGetSingleFileInfo = 5230; + k_EMsgClientUFSGetSingleFileInfoResponse = 5231; + k_EMsgClientUFSShareFile = 5232; + k_EMsgClientUFSShareFileResponse = 5233; + k_EMsgUFSReloadAccount = 5234; + k_EMsgUFSReloadAccountResponse = 5235; + k_EMsgUFSUpdateRecordBatched = 5236; + k_EMsgUFSUpdateRecordBatchedResponse = 5237; + k_EMsgUFSMigrateFile = 5238; + k_EMsgUFSMigrateFileResponse = 5239; + k_EMsgUFSGetUGCURLs = 5240; + k_EMsgUFSGetUGCURLsResponse = 5241; + k_EMsgUFSHttpUploadFileFinishRequest = 5242; + k_EMsgUFSHttpUploadFileFinishResponse = 5243; + k_EMsgUFSDownloadStartRequest = 5244; + k_EMsgUFSDownloadStartResponse = 5245; + k_EMsgUFSDownloadChunkRequest = 5246; + k_EMsgUFSDownloadChunkResponse = 5247; + k_EMsgUFSDownloadFinishRequest = 5248; + k_EMsgUFSDownloadFinishResponse = 5249; + k_EMsgUFSFlushURLCache = 5250; + k_EMsgClientUFSUploadCommit = 5251; + k_EMsgClientUFSUploadCommitResponse = 5252; + k_EMsgUFSMigrateFileAppID = 5253; + k_EMsgUFSMigrateFileAppIDResponse = 5254; + k_EMsgBaseClient2 = 5400; + k_EMsgClientRequestForgottenPasswordEmail = 5401; + k_EMsgClientRequestForgottenPasswordEmailResponse = 5402; + k_EMsgClientCreateAccountResponse = 5403; + k_EMsgClientResetForgottenPassword = 5404; + k_EMsgClientResetForgottenPasswordResponse = 5405; + k_EMsgClientInformOfResetForgottenPassword = 5407; + k_EMsgClientInformOfResetForgottenPasswordResponse = 5408; + k_EMsgClientAnonUserLogOn_Deprecated = 5409; + k_EMsgClientGamesPlayedWithDataBlob = 5410; + k_EMsgClientUpdateUserGameInfo = 5411; + k_EMsgClientFileToDownload = 5412; + k_EMsgClientFileToDownloadResponse = 5413; + k_EMsgClientLBSSetScore = 5414; + k_EMsgClientLBSSetScoreResponse = 5415; + k_EMsgClientLBSFindOrCreateLB = 5416; + k_EMsgClientLBSFindOrCreateLBResponse = 5417; + k_EMsgClientLBSGetLBEntries = 5418; + k_EMsgClientLBSGetLBEntriesResponse = 5419; + k_EMsgClientChatDeclined = 5426; + k_EMsgClientFriendMsgIncoming = 5427; + k_EMsgClientAuthList_Deprecated = 5428; + k_EMsgClientTicketAuthComplete = 5429; + k_EMsgClientIsLimitedAccount = 5430; + k_EMsgClientRequestAuthList = 5431; + k_EMsgClientAuthList = 5432; + k_EMsgClientStat = 5433; + k_EMsgClientP2PConnectionInfo = 5434; + k_EMsgClientP2PConnectionFailInfo = 5435; + k_EMsgClientGetDepotDecryptionKey = 5438; + k_EMsgClientGetDepotDecryptionKeyResponse = 5439; + k_EMsgClientEnableTestLicense = 5443; + k_EMsgClientEnableTestLicenseResponse = 5444; + k_EMsgClientDisableTestLicense = 5445; + k_EMsgClientDisableTestLicenseResponse = 5446; + k_EMsgClientRequestValidationMail = 5448; + k_EMsgClientRequestValidationMailResponse = 5449; + k_EMsgClientCheckAppBetaPassword = 5450; + k_EMsgClientCheckAppBetaPasswordResponse = 5451; + k_EMsgClientToGC = 5452; + k_EMsgClientFromGC = 5453; + k_EMsgClientEmailAddrInfo = 5456; + k_EMsgClientPasswordChange3 = 5457; + k_EMsgClientEmailChange3 = 5458; + k_EMsgClientPersonalQAChange3 = 5459; + k_EMsgClientResetForgottenPassword3 = 5460; + k_EMsgClientRequestForgottenPasswordEmail3 = 5461; + k_EMsgClientNewLoginKey = 5463; + k_EMsgClientNewLoginKeyAccepted = 5464; + k_EMsgClientLogOnWithHash_Deprecated = 5465; + k_EMsgClientStoreUserStats2 = 5466; + k_EMsgClientStatsUpdated = 5467; + k_EMsgClientActivateOEMLicense = 5468; + k_EMsgClientRegisterOEMMachine = 5469; + k_EMsgClientRegisterOEMMachineResponse = 5470; + k_EMsgClientRequestedClientStats = 5480; + k_EMsgClientStat2Int32 = 5481; + k_EMsgClientStat2 = 5482; + k_EMsgClientVerifyPassword = 5483; + k_EMsgClientVerifyPasswordResponse = 5484; + k_EMsgClientDRMDownloadRequest = 5485; + k_EMsgClientDRMDownloadResponse = 5486; + k_EMsgClientDRMFinalResult = 5487; + k_EMsgClientGetFriendsWhoPlayGame = 5488; + k_EMsgClientGetFriendsWhoPlayGameResponse = 5489; + k_EMsgClientOGSBeginSession = 5490; + k_EMsgClientOGSBeginSessionResponse = 5491; + k_EMsgClientOGSEndSession = 5492; + k_EMsgClientOGSEndSessionResponse = 5493; + k_EMsgClientOGSWriteRow = 5494; + k_EMsgClientGetPeerContentInfo = 5495; + k_EMsgClientGetPeerContentInfoResponse = 5496; + k_EMsgClientStartPeerContentServer = 5497; + k_EMsgClientStartPeerContentServerResponse = 5498; + k_EMsgClientServerUnavailable = 5500; + k_EMsgClientServersAvailable = 5501; + k_EMsgClientRegisterAuthTicketWithCM = 5502; + k_EMsgClientGCMsgFailed = 5503; + k_EMsgClientMicroTxnAuthRequest = 5504; + k_EMsgClientMicroTxnAuthorize = 5505; + k_EMsgClientMicroTxnAuthorizeResponse = 5506; + k_EMsgClientGetMicroTxnInfo = 5508; + k_EMsgClientGetMicroTxnInfoResponse = 5509; + k_EMsgClientDeregisterWithServer = 5511; + k_EMsgClientSubscribeToPersonaFeed = 5512; + k_EMsgClientLogon = 5514; + k_EMsgClientGetClientDetails = 5515; + k_EMsgClientGetClientDetailsResponse = 5516; + k_EMsgClientReportOverlayDetourFailure = 5517; + k_EMsgClientGetClientAppList = 5518; + k_EMsgClientGetClientAppListResponse = 5519; + k_EMsgClientInstallClientApp = 5520; + k_EMsgClientInstallClientAppResponse = 5521; + k_EMsgClientUninstallClientApp = 5522; + k_EMsgClientUninstallClientAppResponse = 5523; + k_EMsgClientSetClientAppUpdateState = 5524; + k_EMsgClientSetClientAppUpdateStateResponse = 5525; + k_EMsgClientRequestEncryptedAppTicket = 5526; + k_EMsgClientRequestEncryptedAppTicketResponse = 5527; + k_EMsgClientWalletInfoUpdate = 5528; + k_EMsgClientLBSSetUGC = 5529; + k_EMsgClientLBSSetUGCResponse = 5530; + k_EMsgClientAMGetClanOfficers = 5531; + k_EMsgClientAMGetClanOfficersResponse = 5532; + k_EMsgClientFriendProfileInfo = 5535; + k_EMsgClientFriendProfileInfoResponse = 5536; + k_EMsgClientUpdateMachineAuth = 5537; + k_EMsgClientUpdateMachineAuthResponse = 5538; + k_EMsgClientReadMachineAuth = 5539; + k_EMsgClientReadMachineAuthResponse = 5540; + k_EMsgClientRequestMachineAuth = 5541; + k_EMsgClientRequestMachineAuthResponse = 5542; + k_EMsgClientScreenshotsChanged = 5543; + k_EMsgClientGetCDNAuthToken = 5546; + k_EMsgClientGetCDNAuthTokenResponse = 5547; + k_EMsgClientDownloadRateStatistics = 5548; + k_EMsgClientRequestAccountData = 5549; + k_EMsgClientRequestAccountDataResponse = 5550; + k_EMsgClientResetForgottenPassword4 = 5551; + k_EMsgClientHideFriend = 5552; + k_EMsgClientFriendsGroupsList = 5553; + k_EMsgClientGetClanActivityCounts = 5554; + k_EMsgClientGetClanActivityCountsResponse = 5555; + k_EMsgClientOGSReportString = 5556; + k_EMsgClientOGSReportBug = 5557; + k_EMsgClientSentLogs = 5558; + k_EMsgClientLogonGameServer = 5559; + k_EMsgAMClientCreateFriendsGroup = 5560; + k_EMsgAMClientCreateFriendsGroupResponse = 5561; + k_EMsgAMClientDeleteFriendsGroup = 5562; + k_EMsgAMClientDeleteFriendsGroupResponse = 5563; + k_EMsgAMClientManageFriendsGroup = 5564; + k_EMsgAMClientManageFriendsGroupResponse = 5565; + k_EMsgAMClientAddFriendToGroup = 5566; + k_EMsgAMClientAddFriendToGroupResponse = 5567; + k_EMsgAMClientRemoveFriendFromGroup = 5568; + k_EMsgAMClientRemoveFriendFromGroupResponse = 5569; + k_EMsgClientAMGetPersonaNameHistory = 5570; + k_EMsgClientAMGetPersonaNameHistoryResponse = 5571; + k_EMsgClientRequestFreeLicense = 5572; + k_EMsgClientRequestFreeLicenseResponse = 5573; + k_EMsgClientDRMDownloadRequestWithCrashData = 5574; + k_EMsgClientAuthListAck = 5575; + k_EMsgClientItemAnnouncements = 5576; + k_EMsgClientRequestItemAnnouncements = 5577; + k_EMsgClientFriendMsgEchoToSender = 5578; + k_EMsgClientCommentNotifications = 5582; + k_EMsgClientRequestCommentNotifications = 5583; + k_EMsgClientPersonaChangeResponse = 5584; + k_EMsgClientRequestWebAPIAuthenticateUserNonce = 5585; + k_EMsgClientRequestWebAPIAuthenticateUserNonceResponse = 5586; + k_EMsgClientPlayerNicknameList = 5587; + k_EMsgAMClientSetPlayerNickname = 5588; + k_EMsgAMClientSetPlayerNicknameResponse = 5589; + k_EMsgClientGetNumberOfCurrentPlayersDP = 5592; + k_EMsgClientGetNumberOfCurrentPlayersDPResponse = 5593; + k_EMsgClientServiceMethodLegacy = 5594; + k_EMsgClientServiceMethodLegacyResponse = 5595; + k_EMsgClientFriendUserStatusPublished = 5596; + k_EMsgClientCurrentUIMode = 5597; + k_EMsgClientVanityURLChangedNotification = 5598; + k_EMsgClientUserNotifications = 5599; + k_EMsgBaseDFS = 5600; + k_EMsgDFSGetFile = 5601; + k_EMsgDFSInstallLocalFile = 5602; + k_EMsgDFSConnection = 5603; + k_EMsgDFSConnectionReply = 5604; + k_EMsgClientDFSAuthenticateRequest = 5605; + k_EMsgClientDFSAuthenticateResponse = 5606; + k_EMsgClientDFSEndSession = 5607; + k_EMsgDFSPurgeFile = 5608; + k_EMsgDFSRouteFile = 5609; + k_EMsgDFSGetFileFromServer = 5610; + k_EMsgDFSAcceptedResponse = 5611; + k_EMsgDFSRequestPingback = 5612; + k_EMsgDFSRecvTransmitFile = 5613; + k_EMsgDFSSendTransmitFile = 5614; + k_EMsgDFSRequestPingback2 = 5615; + k_EMsgDFSResponsePingback2 = 5616; + k_EMsgClientDFSDownloadStatus = 5617; + k_EMsgDFSStartTransfer = 5618; + k_EMsgDFSTransferComplete = 5619; + k_EMsgDFSRouteFileResponse = 5620; + k_EMsgClientNetworkingCertRequest = 5621; + k_EMsgClientNetworkingCertRequestResponse = 5622; + k_EMsgClientChallengeRequest = 5623; + k_EMsgClientChallengeResponse = 5624; + k_EMsgBadgeCraftedNotification = 5625; + k_EMsgClientNetworkingMobileCertRequest = 5626; + k_EMsgClientNetworkingMobileCertRequestResponse = 5627; + k_EMsgBaseMDS = 5800; + k_EMsgMDSGetDepotDecryptionKey = 5812; + k_EMsgMDSGetDepotDecryptionKeyResponse = 5813; + k_EMsgMDSContentServerConfigRequest = 5827; + k_EMsgMDSContentServerConfig = 5828; + k_EMsgMDSGetDepotManifest = 5829; + k_EMsgMDSGetDepotManifestResponse = 5830; + k_EMsgMDSGetDepotManifestChunk = 5831; + k_EMsgMDSGetDepotChunk = 5832; + k_EMsgMDSGetDepotChunkResponse = 5833; + k_EMsgMDSGetDepotChunkChunk = 5834; + k_EMsgMDSToCSFlushChunk = 5844; + k_EMsgMDSMigrateChunk = 5847; + k_EMsgMDSMigrateChunkResponse = 5848; + k_EMsgMDSToCSFlushManifest = 5849; + k_EMsgCSBase = 6200; + k_EMsgCSPing = 6201; + k_EMsgCSPingResponse = 6202; + k_EMsgGMSBase = 6400; + k_EMsgGMSGameServerReplicate = 6401; + k_EMsgClientGMSServerQuery = 6403; + k_EMsgGMSClientServerQueryResponse = 6404; + k_EMsgAMGMSGameServerUpdate = 6405; + k_EMsgAMGMSGameServerRemove = 6406; + k_EMsgGameServerOutOfDate = 6407; + k_EMsgDeviceAuthorizationBase = 6500; + k_EMsgClientAuthorizeLocalDeviceRequest = 6501; + k_EMsgClientAuthorizeLocalDeviceResponse = 6502; + k_EMsgClientDeauthorizeDeviceRequest = 6503; + k_EMsgClientDeauthorizeDevice = 6504; + k_EMsgClientUseLocalDeviceAuthorizations = 6505; + k_EMsgClientGetAuthorizedDevices = 6506; + k_EMsgClientGetAuthorizedDevicesResponse = 6507; + k_EMsgAMNotifySessionDeviceAuthorized = 6508; + k_EMsgClientAuthorizeLocalDeviceNotification = 6509; + k_EMsgMMSBase = 6600; + k_EMsgClientMMSCreateLobby = 6601; + k_EMsgClientMMSCreateLobbyResponse = 6602; + k_EMsgClientMMSJoinLobby = 6603; + k_EMsgClientMMSJoinLobbyResponse = 6604; + k_EMsgClientMMSLeaveLobby = 6605; + k_EMsgClientMMSLeaveLobbyResponse = 6606; + k_EMsgClientMMSGetLobbyList = 6607; + k_EMsgClientMMSGetLobbyListResponse = 6608; + k_EMsgClientMMSSetLobbyData = 6609; + k_EMsgClientMMSSetLobbyDataResponse = 6610; + k_EMsgClientMMSGetLobbyData = 6611; + k_EMsgClientMMSLobbyData = 6612; + k_EMsgClientMMSSendLobbyChatMsg = 6613; + k_EMsgClientMMSLobbyChatMsg = 6614; + k_EMsgClientMMSSetLobbyOwner = 6615; + k_EMsgClientMMSSetLobbyOwnerResponse = 6616; + k_EMsgClientMMSSetLobbyGameServer = 6617; + k_EMsgClientMMSLobbyGameServerSet = 6618; + k_EMsgClientMMSUserJoinedLobby = 6619; + k_EMsgClientMMSUserLeftLobby = 6620; + k_EMsgClientMMSInviteToLobby = 6621; + k_EMsgClientMMSFlushFrenemyListCache = 6622; + k_EMsgClientMMSFlushFrenemyListCacheResponse = 6623; + k_EMsgClientMMSSetLobbyLinked = 6624; + k_EMsgClientMMSSetRatelimitPolicyOnClient = 6625; + k_EMsgClientMMSGetLobbyStatus = 6626; + k_EMsgClientMMSGetLobbyStatusResponse = 6627; + k_EMsgMMSGetLobbyList = 6628; + k_EMsgMMSGetLobbyListResponse = 6629; + k_EMsgNonStdMsgBase = 6800; + k_EMsgNonStdMsgMemcached = 6801; + k_EMsgNonStdMsgHTTPServer = 6802; + k_EMsgNonStdMsgHTTPClient = 6803; + k_EMsgNonStdMsgWGResponse = 6804; + k_EMsgNonStdMsgPHPSimulator = 6805; + k_EMsgNonStdMsgChase = 6806; + k_EMsgNonStdMsgDFSTransfer = 6807; + k_EMsgNonStdMsgTests = 6808; + k_EMsgNonStdMsgUMQpipeAAPL = 6809; + k_EMSgNonStdMsgSyslog = 6810; + k_EMsgNonStdMsgLogsink = 6811; + k_EMsgNonStdMsgSteam2Emulator = 6812; + k_EMsgNonStdMsgRTMPServer = 6813; + k_EMsgNonStdMsgWebSocket = 6814; + k_EMsgNonStdMsgRedis = 6815; + k_EMsgUDSBase = 7000; + k_EMsgClientUDSP2PSessionStarted = 7001; + k_EMsgClientUDSP2PSessionEnded = 7002; + k_EMsgUDSRenderUserAuth = 7003; + k_EMsgUDSRenderUserAuthResponse = 7004; + k_EMsgClientInviteToGame = 7005; + k_EMsgUDSHasSession = 7006; + k_EMsgUDSHasSessionResponse = 7007; + k_EMsgMPASBase = 7100; + k_EMsgMPASVacBanReset = 7101; + k_EMsgKGSBase = 7200; + k_EMsgUCMBase = 7300; + k_EMsgClientUCMAddScreenshot = 7301; + k_EMsgClientUCMAddScreenshotResponse = 7302; + k_EMsgUCMResetCommunityContent = 7307; + k_EMsgUCMResetCommunityContentResponse = 7308; + k_EMsgClientUCMDeleteScreenshot = 7309; + k_EMsgClientUCMDeleteScreenshotResponse = 7310; + k_EMsgClientUCMPublishFile = 7311; + k_EMsgClientUCMPublishFileResponse = 7312; + k_EMsgClientUCMDeletePublishedFile = 7315; + k_EMsgClientUCMDeletePublishedFileResponse = 7316; + k_EMsgClientUCMUpdatePublishedFile = 7325; + k_EMsgClientUCMUpdatePublishedFileResponse = 7326; + k_EMsgUCMUpdatePublishedFile = 7327; + k_EMsgUCMUpdatePublishedFileResponse = 7328; + k_EMsgUCMUpdatePublishedFileStat = 7331; + k_EMsgUCMReloadPublishedFile = 7337; + k_EMsgUCMReloadUserFileListCaches = 7338; + k_EMsgUCMPublishedFileReported = 7339; + k_EMsgUCMPublishedFilePreviewAdd = 7341; + k_EMsgUCMPublishedFilePreviewAddResponse = 7342; + k_EMsgUCMPublishedFilePreviewRemove = 7343; + k_EMsgUCMPublishedFilePreviewRemoveResponse = 7344; + k_EMsgUCMPublishedFileSubscribed = 7349; + k_EMsgUCMPublishedFileUnsubscribed = 7350; + k_EMsgUCMPublishFile = 7351; + k_EMsgUCMPublishFileResponse = 7352; + k_EMsgUCMPublishedFileChildAdd = 7353; + k_EMsgUCMPublishedFileChildAddResponse = 7354; + k_EMsgUCMPublishedFileChildRemove = 7355; + k_EMsgUCMPublishedFileChildRemoveResponse = 7356; + k_EMsgUCMPublishedFileParentChanged = 7359; + k_EMsgClientUCMSetUserPublishedFileAction = 7364; + k_EMsgClientUCMSetUserPublishedFileActionResponse = 7365; + k_EMsgClientUCMEnumeratePublishedFilesByUserAction = 7366; + k_EMsgClientUCMEnumeratePublishedFilesByUserActionResponse = 7367; + k_EMsgUCMGetUserSubscribedFiles = 7369; + k_EMsgUCMGetUserSubscribedFilesResponse = 7370; + k_EMsgUCMFixStatsPublishedFile = 7371; + k_EMsgClientUCMEnumerateUserSubscribedFilesWithUpdates = 7378; + k_EMsgClientUCMEnumerateUserSubscribedFilesWithUpdatesResponse = 7379; + k_EMsgUCMPublishedFileContentUpdated = 7380; + k_EMsgClientUCMPublishedFileUpdated = 7381; + k_EMsgFSBase = 7500; + k_EMsgClientRichPresenceUpload = 7501; + k_EMsgClientRichPresenceRequest = 7502; + k_EMsgClientRichPresenceInfo = 7503; + k_EMsgFSRichPresenceRequest = 7504; + k_EMsgFSRichPresenceResponse = 7505; + k_EMsgFSComputeFrenematrix = 7506; + k_EMsgFSComputeFrenematrixResponse = 7507; + k_EMsgFSPlayStatusNotification = 7508; + k_EMsgFSAddOrRemoveFollower = 7510; + k_EMsgFSAddOrRemoveFollowerResponse = 7511; + k_EMsgFSUpdateFollowingList = 7512; + k_EMsgFSCommentNotification = 7513; + k_EMsgFSCommentNotificationViewed = 7514; + k_EMsgClientFSGetFollowerCount = 7515; + k_EMsgClientFSGetFollowerCountResponse = 7516; + k_EMsgClientFSGetIsFollowing = 7517; + k_EMsgClientFSGetIsFollowingResponse = 7518; + k_EMsgClientFSEnumerateFollowingList = 7519; + k_EMsgClientFSEnumerateFollowingListResponse = 7520; + k_EMsgFSGetPendingNotificationCount = 7521; + k_EMsgFSGetPendingNotificationCountResponse = 7522; + k_EMsgClientChatOfflineMessageNotification = 7523; + k_EMsgClientChatRequestOfflineMessageCount = 7524; + k_EMsgClientChatGetFriendMessageHistory = 7525; + k_EMsgClientChatGetFriendMessageHistoryResponse = 7526; + k_EMsgClientChatGetFriendMessageHistoryForOfflineMessages = 7527; + k_EMsgClientFSGetFriendsSteamLevels = 7528; + k_EMsgClientFSGetFriendsSteamLevelsResponse = 7529; + k_EMsgAMRequestFriendData = 7530; + k_EMsgDRMRange2 = 7600; + k_EMsgCEGVersionSetEnableDisableRequest = 7600; + k_EMsgCEGVersionSetEnableDisableResponse = 7601; + k_EMsgCEGPropStatusDRMSRequest = 7602; + k_EMsgCEGPropStatusDRMSResponse = 7603; + k_EMsgCEGWhackFailureReportRequest = 7604; + k_EMsgCEGWhackFailureReportResponse = 7605; + k_EMsgDRMSFetchVersionSet = 7606; + k_EMsgDRMSFetchVersionSetResponse = 7607; + k_EMsgEconBase = 7700; + k_EMsgEconTrading_InitiateTradeRequest = 7701; + k_EMsgEconTrading_InitiateTradeProposed = 7702; + k_EMsgEconTrading_InitiateTradeResponse = 7703; + k_EMsgEconTrading_InitiateTradeResult = 7704; + k_EMsgEconTrading_StartSession = 7705; + k_EMsgEconTrading_CancelTradeRequest = 7706; + k_EMsgEconFlushInventoryCache = 7707; + k_EMsgEconFlushInventoryCacheResponse = 7708; + k_EMsgEconCDKeyProcessTransaction = 7711; + k_EMsgEconCDKeyProcessTransactionResponse = 7712; + k_EMsgEconGetErrorLogs = 7713; + k_EMsgEconGetErrorLogsResponse = 7714; + k_EMsgRMRange = 7800; + k_EMsgRMTestVerisignOTP = 7800; + k_EMsgRMTestVerisignOTPResponse = 7801; + k_EMsgRMDeleteMemcachedKeys = 7803; + k_EMsgRMRemoteInvoke = 7804; + k_EMsgBadLoginIPList = 7805; + k_EMsgRMMsgTraceAddTrigger = 7806; + k_EMsgRMMsgTraceRemoveTrigger = 7807; + k_EMsgRMMsgTraceEvent = 7808; + k_EMsgUGSBase = 7900; + k_EMsgUGSUpdateGlobalStats = 7900; + k_EMsgClientUGSGetGlobalStats = 7901; + k_EMsgClientUGSGetGlobalStatsResponse = 7902; + k_EMsgStoreBase = 8000; + k_EMsgUMQBase = 8100; + k_EMsgUMQLogonRequest = 8100; + k_EMsgUMQLogonResponse = 8101; + k_EMsgUMQLogoffRequest = 8102; + k_EMsgUMQLogoffResponse = 8103; + k_EMsgUMQSendChatMessage = 8104; + k_EMsgUMQIncomingChatMessage = 8105; + k_EMsgUMQPoll = 8106; + k_EMsgUMQPollResults = 8107; + k_EMsgUMQ2AM_ClientMsgBatch = 8108; + k_EMsgWorkshopBase = 8200; + k_EMsgWebAPIBase = 8300; + k_EMsgWebAPIValidateOAuth2Token = 8300; + k_EMsgWebAPIValidateOAuth2TokenResponse = 8301; + k_EMsgWebAPIRegisterGCInterfaces = 8303; + k_EMsgWebAPIInvalidateOAuthClientCache = 8304; + k_EMsgWebAPIInvalidateOAuthTokenCache = 8305; + k_EMsgWebAPISetSecrets = 8306; + k_EMsgBackpackBase = 8400; + k_EMsgBackpackAddToCurrency = 8401; + k_EMsgBackpackAddToCurrencyResponse = 8402; + k_EMsgCREBase = 8500; + k_EMsgCREItemVoteSummary = 8503; + k_EMsgCREItemVoteSummaryResponse = 8504; + k_EMsgCREUpdateUserPublishedItemVote = 8507; + k_EMsgCREUpdateUserPublishedItemVoteResponse = 8508; + k_EMsgCREGetUserPublishedItemVoteDetails = 8509; + k_EMsgCREGetUserPublishedItemVoteDetailsResponse = 8510; + k_EMsgSecretsBase = 8600; + k_EMsgSecretsRequestCredentialPair = 8600; + k_EMsgSecretsCredentialPairResponse = 8601; + k_EMsgBoxMonitorBase = 8700; + k_EMsgBoxMonitorReportRequest = 8700; + k_EMsgBoxMonitorReportResponse = 8701; + k_EMsgLogsinkBase = 8800; + k_EMsgLogsinkWriteReport = 8800; + k_EMsgPICSBase = 8900; + k_EMsgClientPICSChangesSinceRequest = 8901; + k_EMsgClientPICSChangesSinceResponse = 8902; + k_EMsgClientPICSProductInfoRequest = 8903; + k_EMsgClientPICSProductInfoResponse = 8904; + k_EMsgClientPICSAccessTokenRequest = 8905; + k_EMsgClientPICSAccessTokenResponse = 8906; + k_EMsgWorkerProcess = 9000; + k_EMsgWorkerProcessPingRequest = 9000; + k_EMsgWorkerProcessPingResponse = 9001; + k_EMsgWorkerProcessShutdown = 9002; + k_EMsgDRMWorkerProcess = 9100; + k_EMsgDRMWorkerProcessDRMAndSign = 9100; + k_EMsgDRMWorkerProcessDRMAndSignResponse = 9101; + k_EMsgDRMWorkerProcessSteamworksInfoRequest = 9102; + k_EMsgDRMWorkerProcessSteamworksInfoResponse = 9103; + k_EMsgDRMWorkerProcessInstallDRMDLLRequest = 9104; + k_EMsgDRMWorkerProcessInstallDRMDLLResponse = 9105; + k_EMsgDRMWorkerProcessSecretIdStringRequest = 9106; + k_EMsgDRMWorkerProcessSecretIdStringResponse = 9107; + k_EMsgDRMWorkerProcessInstallProcessedFilesRequest = 9110; + k_EMsgDRMWorkerProcessInstallProcessedFilesResponse = 9111; + k_EMsgDRMWorkerProcessExamineBlobRequest = 9112; + k_EMsgDRMWorkerProcessExamineBlobResponse = 9113; + k_EMsgDRMWorkerProcessDescribeSecretRequest = 9114; + k_EMsgDRMWorkerProcessDescribeSecretResponse = 9115; + k_EMsgDRMWorkerProcessBackfillOriginalRequest = 9116; + k_EMsgDRMWorkerProcessBackfillOriginalResponse = 9117; + k_EMsgDRMWorkerProcessValidateDRMDLLRequest = 9118; + k_EMsgDRMWorkerProcessValidateDRMDLLResponse = 9119; + k_EMsgDRMWorkerProcessValidateFileRequest = 9120; + k_EMsgDRMWorkerProcessValidateFileResponse = 9121; + k_EMsgDRMWorkerProcessSplitAndInstallRequest = 9122; + k_EMsgDRMWorkerProcessSplitAndInstallResponse = 9123; + k_EMsgDRMWorkerProcessGetBlobRequest = 9124; + k_EMsgDRMWorkerProcessGetBlobResponse = 9125; + k_EMsgDRMWorkerProcessEvaluateCrashRequest = 9126; + k_EMsgDRMWorkerProcessEvaluateCrashResponse = 9127; + k_EMsgDRMWorkerProcessAnalyzeFileRequest = 9128; + k_EMsgDRMWorkerProcessAnalyzeFileResponse = 9129; + k_EMsgDRMWorkerProcessUnpackBlobRequest = 9130; + k_EMsgDRMWorkerProcessUnpackBlobResponse = 9131; + k_EMsgDRMWorkerProcessInstallAllRequest = 9132; + k_EMsgDRMWorkerProcessInstallAllResponse = 9133; + k_EMsgTestWorkerProcess = 9200; + k_EMsgTestWorkerProcessLoadUnloadModuleRequest = 9200; + k_EMsgTestWorkerProcessLoadUnloadModuleResponse = 9201; + k_EMsgTestWorkerProcessServiceModuleCallRequest = 9202; + k_EMsgTestWorkerProcessServiceModuleCallResponse = 9203; + k_EMsgQuestServerBase = 9300; + k_EMsgClientGetEmoticonList = 9330; + k_EMsgClientEmoticonList = 9331; + k_EMsgSLCBase = 9400; + k_EMsgSLCUserSessionStatus = 9400; + k_EMsgSLCRequestUserSessionStatus = 9401; + k_EMsgSLCSharedLicensesLockStatus = 9402; + k_EMsgClientSharedLibraryLockStatus = 9405; + k_EMsgClientSharedLibraryStopPlaying = 9406; + k_EMsgSLCOwnerLibraryChanged = 9407; + k_EMsgSLCSharedLibraryChanged = 9408; + k_EMsgRemoteClientBase = 9500; + k_EMsgRemoteClientAuth_OBSOLETE = 9500; + k_EMsgRemoteClientAuthResponse_OBSOLETE = 9501; + k_EMsgRemoteClientAppStatus = 9502; + k_EMsgRemoteClientStartStream = 9503; + k_EMsgRemoteClientStartStreamResponse = 9504; + k_EMsgRemoteClientPing = 9505; + k_EMsgRemoteClientPingResponse = 9506; + k_EMsgClientUnlockH264 = 9507; + k_EMsgClientUnlockH264Response = 9508; + k_EMsgRemoteClientAcceptEULA = 9509; + k_EMsgRemoteClientGetControllerConfig = 9510; + k_EMsgRemoteClientGetControllerConfigResponse = 9511; + k_EMsgRemoteClientStreamingEnabled = 9512; + k_EMsgClientUnlockHEVC_OBSOLETE = 9513; + k_EMsgClientUnlockHEVCResponse_OBSOLETE = 9514; + k_EMsgRemoteClientStatusRequest = 9515; + k_EMsgRemoteClientStatusResponse = 9516; + k_EMsgClientConcurrentSessionsBase = 9600; + k_EMsgClientPlayingSessionState = 9600; + k_EMsgClientKickPlayingSession = 9601; + k_EMsgClientBroadcastBase = 9700; + k_EMsgClientBroadcastInit = 9700; + k_EMsgClientBroadcastFrames = 9701; + k_EMsgClientBroadcastDisconnect = 9702; + k_EMsgClientBroadcastUploadConfig = 9704; + k_EMsgBaseClient3 = 9800; + k_EMsgClientVoiceCallPreAuthorize = 9800; + k_EMsgClientVoiceCallPreAuthorizeResponse = 9801; + k_EMsgClientServerTimestampRequest = 9802; + k_EMsgClientServerTimestampResponse = 9803; + k_EMsgServiceMethodCallFromClientNonAuthed = 9804; + k_EMsgClientHello = 9805; + k_EMsgClientEnableOrDisableDownloads = 9806; + k_EMsgClientEnableOrDisableDownloadsResponse = 9807; + k_EMsgClientLANP2PBase = 9900; + k_EMsgClientLANP2PRequestChunk = 9900; + k_EMsgClientLANP2PRequestChunkResponse = 9901; + k_EMsgClientPeerChunkRequest = 9902; + k_EMsgClientPeerChunkResponse = 9903; + k_EMsgClientLANP2PMax = 9999; + k_EMsgBaseWatchdogServer = 10000; + k_EMsgNotifyWatchdog = 10000; + k_EMsgClientSiteLicenseBase = 10100; + k_EMsgClientSiteLicenseSiteInfoNotification = 10100; + k_EMsgClientSiteLicenseCheckout = 10101; + k_EMsgClientSiteLicenseCheckoutResponse = 10102; + k_EMsgClientSiteLicenseGetAvailableSeats = 10103; + k_EMsgClientSiteLicenseGetAvailableSeatsResponse = 10104; + k_EMsgClientSiteLicenseGetContentCacheInfo = 10105; + k_EMsgClientSiteLicenseGetContentCacheInfoResponse = 10106; + k_EMsgBaseChatServer = 12000; + k_EMsgChatServerGetPendingNotificationCount = 12000; + k_EMsgChatServerGetPendingNotificationCountResponse = 12001; + k_EMsgBaseSecretServer = 12100; + k_EMsgServerSecretChanged = 12100; + k_EMsgBaseWG = 12200; + k_EMsgWGConnectionProtocolError = 12200; + k_EMsgWGConnectionValidateUserToken = 12201; + k_EMsgWGConnectionValidateUserTokenResponse = 12202; + k_EMsgWGConnectionLegacyWGRequest = 12203; + k_EMsgWGConnectionLegacyWGResponse = 12204; +} + +enum EClientPersonaStateFlag { + k_EClientPersonaStateFlagStatus = 1; + k_EClientPersonaStateFlagPlayerName = 2; + k_EClientPersonaStateFlagQueryPort = 4; + k_EClientPersonaStateFlagSourceID = 8; + k_EClientPersonaStateFlagPresence = 16; + k_EClientPersonaStateFlagLastSeen = 64; + k_EClientPersonaStateFlagUserClanRank = 128; + k_EClientPersonaStateGameExtraInfo = 256; + k_EClientPersonaStateGameDataBlob = 512; + k_EClientPersonaStateFlagClanData = 1024; + k_EClientPersonaStateFlagFacebook = 2048; + k_EClientPersonaStateFlagRichPresence = 4096; + k_EClientPersonaStateFlagBroadcast = 8192; + k_EClientPersonaStateFlagWatching = 16384; +} + +enum EMsgClanAccountFlags { + k_EMsgClanAccountFlagPublic = 1; + k_EMsgClanAccountFlagLarge = 2; + k_EMsgClanAccountFlagLocked = 4; + k_EMsgClanAccountFlagDisabled = 8; + k_EMsgClanAccountFlagOGG = 16; +} + +enum ESteamReviewScore { + k_ESteamReviewScore_OverwhelminglyPositive = 9; + k_ESteamReviewScore_VeryPositive = 8; + k_ESteamReviewScore_Positive = 7; + k_ESteamReviewScore_MostlyPositive = 6; + k_ESteamReviewScore_Mixed = 5; + k_ESteamReviewScore_MostlyNegative = 4; + k_ESteamReviewScore_Negative = 3; + k_ESteamReviewScore_VeryNegative = 2; + k_ESteamReviewScore_OverwhelminglyNegative = 1; + k_ESteamReviewScore_None = 0; +} + +enum ECodecUsagePlatform { + k_ECodecUsagePlatformUnknown = 0; + k_ECodecUsagePlatformWindows = 1; + k_ECodecUsagePlatformMacOS = 2; + k_ECodecUsagePlatformLinux = 3; + k_ECodecUsagePlatformSteamDeck = 4; +} + +enum ECodecUsageReason { + k_ECodecUsageReasonUnknown = 0; + k_ECodecUsageReasonRemotePlay = 1; + k_ECodecUsageReasonBroadcasting = 2; + k_ECodecUsageReasonGameVideo = 3; +} diff --git a/Protobufs/csgo/fatdemo.proto b/Protobufs/csgo/fatdemo.proto new file mode 100644 index 0000000..0228c1d --- /dev/null +++ b/Protobufs/csgo/fatdemo.proto @@ -0,0 +1,125 @@ +import "networkbasetypes.proto"; + +enum EHitGroup { + EHG_Generic = 0; + EHG_Head = 1; + EHG_Chest = 2; + EHG_Stomach = 3; + EHG_LeftArm = 4; + EHG_RightArm = 5; + EHG_LeftLeg = 6; + EHG_RightLeg = 7; + EHG_Gear = 8; + EHG_Miss = 9; +} + +enum ETeam { + ET_Unknown = 0; + ET_Spectator = 1; + ET_Terrorist = 2; + ET_CT = 3; +} + +enum EWeaponType { + EWT_Knife = 0; + EWT_Pistol = 1; + EWT_SubMachineGun = 2; + EWT_Rifle = 3; + EWT_Shotgun = 4; + EWT_SniperRifle = 5; + EWT_MachineGun = 6; + EWT_C4 = 7; + EWT_Grenade = 8; + EWT_Equipment = 9; + EWT_StackableItem = 10; + EWT_Unknown = 11; +} + +message MLDict { + optional string key = 1; + optional string val_string = 2; + optional int32 val_int = 3; + optional float val_float = 4; +} + +message MLEvent { + optional string event_name = 1; + repeated .MLDict data = 2; +} + +message MLMatchState { + optional string game_mode = 1; + optional string phase = 2; + optional int32 round = 3; + optional int32 score_ct = 4; + optional int32 score_t = 5; +} + +message MLRoundState { + optional string phase = 1; + optional .ETeam win_team = 2 [default = ET_Unknown]; + optional string bomb_state = 3; +} + +message MLWeaponState { + optional int32 index = 1; + optional string name = 2; + optional .EWeaponType type = 3 [default = EWT_Knife]; + optional int32 ammo_clip = 4; + optional int32 ammo_clip_max = 5; + optional int32 ammo_reserve = 6; + optional string state = 7; + optional float recoil_index = 8; +} + +message MLPlayerState { + optional int32 account_id = 1; + optional int32 player_slot = 2 [default = -1]; + optional int32 entindex = 3; + optional string name = 4; + optional string clan = 5; + optional .ETeam team = 6 [default = ET_Unknown]; + optional .CMsgVector abspos = 7; + optional .CMsgQAngle eyeangle = 8; + optional .CMsgVector eyeangle_fwd = 9; + optional int32 health = 10; + optional int32 armor = 11; + optional float flashed = 12; + optional float smoked = 13; + optional int32 money = 14; + optional int32 round_kills = 15; + optional int32 round_killhs = 16; + optional float burning = 17; + optional bool helmet = 18; + optional bool defuse_kit = 19; + repeated .MLWeaponState weapons = 20; +} + +message MLGameState { + optional .MLMatchState match = 1; + optional .MLRoundState round = 2; + repeated .MLPlayerState players = 3; +} + +message MLDemoHeader { + optional string map_name = 1; + optional int32 tick_rate = 2; + optional uint32 version = 3; + optional uint32 steam_universe = 4; +} + +message MLTick { + optional int32 tick_count = 1; + optional .MLGameState state = 2; + repeated .MLEvent events = 3; +} + +message VacNetShot { + optional fixed64 steamid_player = 1; + optional int32 round_number = 2; + optional int32 hit_type = 3; + optional int32 weapon_type = 4; + optional float distance_to_hurt_target = 5; + repeated float delta_yaw_window = 6; + repeated float delta_pitch_window = 7; +} diff --git a/Protobufs/csgo/gameevents.proto b/Protobufs/csgo/gameevents.proto new file mode 100644 index 0000000..8bf8c05 --- /dev/null +++ b/Protobufs/csgo/gameevents.proto @@ -0,0 +1,120 @@ +import "networkbasetypes.proto"; + +enum EBaseGameEvents { + GE_VDebugGameSessionIDEvent = 200; + GE_PlaceDecalEvent = 201; + GE_ClearWorldDecalsEvent = 202; + GE_ClearEntityDecalsEvent = 203; + GE_ClearDecalsForSkeletonInstanceEvent = 204; + GE_Source1LegacyGameEventList = 205; + GE_Source1LegacyListenEvents = 206; + GE_Source1LegacyGameEvent = 207; + GE_SosStartSoundEvent = 208; + GE_SosStopSoundEvent = 209; + GE_SosSetSoundEventParams = 210; + GE_SosSetLibraryStackFields = 211; + GE_SosStopSoundEventHash = 212; +} + +message CMsgVDebugGameSessionIDEvent { + optional int32 clientid = 1; + optional string gamesessionid = 2; +} + +message CMsgPlaceDecalEvent { + optional .CMsgVector position = 1; + optional .CMsgVector normal = 2; + optional .CMsgVector saxis = 3; + optional uint32 decalmaterialindex = 4; + optional uint32 flags = 5; + optional fixed32 color = 6; + optional float width = 7; + optional float height = 8; + optional float depth = 9; + optional uint32 entityhandleindex = 10; + optional fixed32 skeletoninstancehash = 11; + optional int32 boneindex = 12; + optional bool translucenthit = 13; + optional bool is_adjacent = 14; +} + +message CMsgClearWorldDecalsEvent { + optional uint32 flagstoclear = 1; +} + +message CMsgClearEntityDecalsEvent { + optional uint32 flagstoclear = 1; +} + +message CMsgClearDecalsForSkeletonInstanceEvent { + optional uint32 flagstoclear = 1; + optional uint32 entityhandleindex = 2; + optional uint32 skeletoninstancehash = 3; +} + +message CMsgSource1LegacyGameEventList { + message key_t { + optional int32 type = 1; + optional string name = 2; + } + + message descriptor_t { + optional int32 eventid = 1; + optional string name = 2; + repeated .CMsgSource1LegacyGameEventList.key_t keys = 3; + } + + repeated .CMsgSource1LegacyGameEventList.descriptor_t descriptors = 1; +} + +message CMsgSource1LegacyListenEvents { + optional int32 playerslot = 1; + repeated uint32 eventarraybits = 2; +} + +message CMsgSource1LegacyGameEvent { + message key_t { + optional int32 type = 1; + optional string val_string = 2; + optional float val_float = 3; + optional int32 val_long = 4; + optional int32 val_short = 5; + optional int32 val_byte = 6; + optional bool val_bool = 7; + optional uint64 val_uint64 = 8; + } + + optional string event_name = 1; + optional int32 eventid = 2; + repeated .CMsgSource1LegacyGameEvent.key_t keys = 3; + optional int32 server_tick = 4; + optional int32 passthrough = 5; +} + +message CMsgSosStartSoundEvent { + optional int32 soundevent_guid = 1; + optional fixed32 soundevent_hash = 2; + optional int32 source_entity_index = 3 [default = -1]; + optional int32 seed = 4; + optional bytes packed_params = 5; + optional float start_time = 6; +} + +message CMsgSosStopSoundEvent { + optional int32 soundevent_guid = 1; +} + +message CMsgSosStopSoundEventHash { + optional fixed32 soundevent_hash = 1; + optional int32 source_entity_index = 2 [default = -1]; +} + +message CMsgSosSetSoundEventParams { + optional int32 soundevent_guid = 1; + optional bytes packed_params = 5; +} + +message CMsgSosSetLibraryStackFields { + optional fixed32 stack_hash = 1; + optional bytes packed_fields = 5; +} diff --git a/Protobufs/csgo/gcsdk_gcmessages.proto b/Protobufs/csgo/gcsdk_gcmessages.proto new file mode 100644 index 0000000..3ed729c --- /dev/null +++ b/Protobufs/csgo/gcsdk_gcmessages.proto @@ -0,0 +1,325 @@ +import "steammessages.proto"; + +enum GCClientLauncherType { + GCClientLauncherType_DEFAULT = 0; + GCClientLauncherType_PERFECTWORLD = 1; + GCClientLauncherType_STEAMCHINA = 2; + GCClientLauncherType_SOURCE2 = 3; +} + +enum GCConnectionStatus { + GCConnectionStatus_HAVE_SESSION = 0; + GCConnectionStatus_GC_GOING_DOWN = 1; + GCConnectionStatus_NO_SESSION = 2; + GCConnectionStatus_NO_SESSION_IN_LOGON_QUEUE = 3; + GCConnectionStatus_NO_STEAM = 4; +} + +message CMsgSOIDOwner { + optional uint32 type = 1; + optional uint64 id = 2; +} + +message CMsgSOSingleObject { + optional int32 type_id = 2; + optional bytes object_data = 3; + optional fixed64 version = 4; + optional .CMsgSOIDOwner owner_soid = 5; +} + +message CMsgSOMultipleObjects { + message SingleObject { + option (msgpool_soft_limit) = 256; + option (msgpool_hard_limit) = 1024; + + optional int32 type_id = 1; + optional bytes object_data = 2; + } + + repeated .CMsgSOMultipleObjects.SingleObject objects_modified = 2; + optional fixed64 version = 3; + optional .CMsgSOIDOwner owner_soid = 6; +} + +message CMsgSOCacheSubscribed { + message SubscribedType { + optional int32 type_id = 1; + repeated bytes object_data = 2; + } + + repeated .CMsgSOCacheSubscribed.SubscribedType objects = 2; + optional fixed64 version = 3; + optional .CMsgSOIDOwner owner_soid = 4; +} + +message CMsgSOCacheUnsubscribed { + optional .CMsgSOIDOwner owner_soid = 2; +} + +message CMsgSOCacheSubscriptionCheck { + optional fixed64 version = 2; + optional .CMsgSOIDOwner owner_soid = 3; +} + +message CMsgSOCacheSubscriptionRefresh { + optional .CMsgSOIDOwner owner_soid = 2; +} + +message CMsgSOCacheVersion { + optional fixed64 version = 1; +} + +message CMsgAccountDetails { + optional bool valid = 1; + optional string account_name = 2; + optional bool public_profile = 4; + optional bool public_inventory = 5; + optional bool vac_banned = 6; + optional bool cyber_cafe = 7; + optional bool school_account = 8; + optional bool free_trial_account = 9; + optional bool subscribed = 10; + optional bool low_violence = 11; + optional bool limited = 12; + optional bool trusted = 13; + optional uint32 package = 14; + optional fixed32 time_cached = 15; + optional bool account_locked = 16; + optional bool community_banned = 17; + optional bool trade_banned = 18; + optional bool eligible_for_community_market = 19; +} + +message CMsgGCMultiplexMessage { + optional uint32 msgtype = 1; + optional bytes payload = 2; + repeated fixed64 steamids = 3; + optional bool replytogc = 4; +} + +message CMsgGCMultiplexMessage_Response { + optional uint32 msgtype = 1; +} + +message CGCToGCMsgMasterAck { + optional uint32 dir_index = 1; + optional uint32 gc_type = 2; +} + +message CGCToGCMsgMasterAck_Response { + optional int32 eresult = 1 [default = 2]; +} + +message CGCToGCMsgMasterStartupComplete { +} + +message CGCToGCMsgRouted { + optional uint32 msg_type = 1; + optional fixed64 sender_id = 2; + optional bytes net_message = 3; + optional uint32 ip = 4; +} + +message CGCToGCMsgRoutedReply { + optional uint32 msg_type = 1; + optional bytes net_message = 2; +} + +message CMsgGCUpdateSessionIP { + optional fixed64 steamid = 1; + optional fixed32 ip = 2; +} + +message CMsgGCRequestSessionIP { + optional fixed64 steamid = 1; +} + +message CMsgGCRequestSessionIPResponse { + optional fixed32 ip = 1; +} + +message CMsgSOCacheHaveVersion { + optional .CMsgSOIDOwner soid = 1; + optional fixed64 version = 2; +} + +message CMsgClientHello { + optional uint32 version = 1; + repeated .CMsgSOCacheHaveVersion socache_have_versions = 2; + optional uint32 client_session_need = 3; + optional uint32 client_launcher = 4; + optional uint32 partner_srcid = 5; + optional uint32 partner_accountid = 6; + optional uint32 partner_accountflags = 7; + optional uint32 partner_accountbalance = 8; + optional uint32 steam_launcher = 9; +} + +message CMsgServerHello { + optional uint32 version = 1; + repeated .CMsgSOCacheHaveVersion socache_have_versions = 2; + optional uint32 legacy_client_session_need = 3; + optional uint32 client_launcher = 4; + optional bytes legacy_steamdatagram_routing = 6; + optional uint32 required_internal_addr = 7; + optional bytes steamdatagram_login = 8; + optional uint32 socache_control = 9; +} + +message CMsgClientWelcome { + message Location { + optional float latitude = 1; + optional float longitude = 2; + optional string country = 3; + } + + optional uint32 version = 1; + optional bytes game_data = 2; + repeated .CMsgSOCacheSubscribed outofdate_subscribed_caches = 3; + repeated .CMsgSOCacheSubscriptionCheck uptodate_subscribed_caches = 4; + optional .CMsgClientWelcome.Location location = 5; + optional bytes game_data2 = 6; + optional uint32 rtime32_gc_welcome_timestamp = 7; + optional uint32 currency = 8; + optional uint32 balance = 9; + optional string balance_url = 10; + optional string txn_country_code = 11; +} + +message CMsgConnectionStatus { + optional .GCConnectionStatus status = 1 [default = GCConnectionStatus_HAVE_SESSION]; + optional uint32 client_session_need = 2; + optional int32 queue_position = 3; + optional int32 queue_size = 4; + optional int32 wait_seconds = 5; + optional int32 estimated_wait_seconds_remaining = 6; +} + +message CWorkshop_PopulateItemDescriptions_Request { + message SingleItemDescription { + optional uint32 gameitemid = 1; + optional string item_description = 2; + optional bool one_per_account = 3; + } + + message ItemDescriptionsLanguageBlock { + optional string language = 1; + repeated .CWorkshop_PopulateItemDescriptions_Request.SingleItemDescription descriptions = 2; + } + + optional uint32 appid = 1; + repeated .CWorkshop_PopulateItemDescriptions_Request.ItemDescriptionsLanguageBlock languages = 2; +} + +message CWorkshop_GetContributors_Request { + optional uint32 appid = 1; + optional uint32 gameitemid = 2; +} + +message CWorkshop_GetContributors_Response { + repeated fixed64 contributors = 1; +} + +message CWorkshop_SetItemPaymentRules_Request { + message WorkshopItemPaymentRule { + optional uint64 workshop_file_id = 1; + optional float revenue_percentage = 2; + optional string rule_description = 3; + optional uint32 rule_type = 4 [default = 1]; + } + + message WorkshopDirectPaymentRule { + optional uint64 workshop_file_id = 1; + optional string rule_description = 2; + } + + message PartnerItemPaymentRule { + optional uint32 account_id = 1; + optional float revenue_percentage = 2; + optional string rule_description = 3; + } + + optional uint32 appid = 1; + optional uint32 gameitemid = 2; + repeated .CWorkshop_SetItemPaymentRules_Request.WorkshopItemPaymentRule associated_workshop_files = 3; + repeated .CWorkshop_SetItemPaymentRules_Request.PartnerItemPaymentRule partner_accounts = 4; + optional bool validate_only = 5; + optional bool make_workshop_files_subscribable = 6; + optional .CWorkshop_SetItemPaymentRules_Request.WorkshopDirectPaymentRule associated_workshop_file_for_direct_payments = 7; +} + +message CWorkshop_SetItemPaymentRules_Response { +} + +message CGameServers_AggregationQuery_Request { + optional string filter = 1; + repeated string group_fields = 3; +} + +message CGameServers_AggregationQuery_Response { + message Group { + repeated string group_values = 1; + optional uint32 servers_empty = 2; + optional uint32 servers_full = 3; + optional uint32 servers_total = 4; + optional uint32 players_humans = 5; + optional uint32 players_bots = 6; + optional uint32 player_capacity = 7; + } + + repeated .CGameServers_AggregationQuery_Response.Group groups = 1; +} + +message CWorkshop_AddSpecialPayment_Request { + optional uint32 appid = 1; + optional uint32 gameitemid = 2; + optional string date = 3; + optional uint64 payment_us_usd = 4; + optional uint64 payment_row_usd = 5; +} + +message CWorkshop_AddSpecialPayment_Response { +} + +message CProductInfo_SetRichPresenceLocalization_Request { + message Token { + optional string token = 1; + optional string value = 2; + } + + message LanguageSection { + optional string language = 1; + repeated .CProductInfo_SetRichPresenceLocalization_Request.Token tokens = 2; + } + + optional uint32 appid = 1; + repeated .CProductInfo_SetRichPresenceLocalization_Request.LanguageSection languages = 2; + optional uint64 steamid = 3; +} + +message CProductInfo_SetRichPresenceLocalization_Response { +} + +message CMsgSerializedSOCache { + message TypeCache { + optional uint32 type = 1; + repeated bytes objects = 2; + optional uint32 service_id = 3; + } + + message Cache { + message Version { + optional uint32 service = 1; + optional uint64 version = 2; + } + + optional uint32 type = 1; + optional uint64 id = 2; + repeated .CMsgSerializedSOCache.Cache.Version versions = 3; + repeated .CMsgSerializedSOCache.TypeCache type_caches = 4; + } + + optional uint32 file_version = 1; + repeated .CMsgSerializedSOCache.Cache caches = 2; + optional uint32 gc_socache_file_version = 3; +} diff --git a/Protobufs/csgo/gcsystemmsgs.proto b/Protobufs/csgo/gcsystemmsgs.proto new file mode 100644 index 0000000..828e389 --- /dev/null +++ b/Protobufs/csgo/gcsystemmsgs.proto @@ -0,0 +1,243 @@ +enum EGCSystemMsg { + k_EGCMsgInvalid = 0; + k_EGCMsgMulti = 1; + k_EGCMsgGenericReply = 10; + k_EGCMsgSystemBase = 50; + k_EGCMsgAchievementAwarded = 51; + k_EGCMsgConCommand = 52; + k_EGCMsgStartPlaying = 53; + k_EGCMsgStopPlaying = 54; + k_EGCMsgStartGameserver = 55; + k_EGCMsgStopGameserver = 56; + k_EGCMsgWGRequest = 57; + k_EGCMsgWGResponse = 58; + k_EGCMsgGetUserGameStatsSchema = 59; + k_EGCMsgGetUserGameStatsSchemaResponse = 60; + k_EGCMsgGetUserStatsDEPRECATED = 61; + k_EGCMsgGetUserStatsResponse = 62; + k_EGCMsgAppInfoUpdated = 63; + k_EGCMsgValidateSession = 64; + k_EGCMsgValidateSessionResponse = 65; + k_EGCMsgLookupAccountFromInput = 66; + k_EGCMsgSendHTTPRequest = 67; + k_EGCMsgSendHTTPRequestResponse = 68; + k_EGCMsgPreTestSetup = 69; + k_EGCMsgRecordSupportAction = 70; + k_EGCMsgGetAccountDetails_DEPRECATED = 71; + k_EGCMsgReceiveInterAppMessage = 73; + k_EGCMsgFindAccounts = 74; + k_EGCMsgPostAlert = 75; + k_EGCMsgGetLicenses = 76; + k_EGCMsgGetUserStats = 77; + k_EGCMsgGetCommands = 78; + k_EGCMsgGetCommandsResponse = 79; + k_EGCMsgAddFreeLicense = 80; + k_EGCMsgAddFreeLicenseResponse = 81; + k_EGCMsgGetIPLocation = 82; + k_EGCMsgGetIPLocationResponse = 83; + k_EGCMsgSystemStatsSchema = 84; + k_EGCMsgGetSystemStats = 85; + k_EGCMsgGetSystemStatsResponse = 86; + k_EGCMsgSendEmail = 87; + k_EGCMsgSendEmailResponse = 88; + k_EGCMsgGetEmailTemplate = 89; + k_EGCMsgGetEmailTemplateResponse = 90; + k_EGCMsgGrantGuestPass = 91; + k_EGCMsgGrantGuestPassResponse = 92; + k_EGCMsgGetAccountDetails = 93; + k_EGCMsgGetAccountDetailsResponse = 94; + k_EGCMsgGetPersonaNames = 95; + k_EGCMsgGetPersonaNamesResponse = 96; + k_EGCMsgMultiplexMsg = 97; + k_EGCMsgMultiplexMsgResponse = 98; + k_EGCMsgWebAPIRegisterInterfaces = 101; + k_EGCMsgWebAPIJobRequest = 102; + k_EGCMsgWebAPIJobRequestHttpResponse = 104; + k_EGCMsgWebAPIJobRequestForwardResponse = 105; + k_EGCMsgMemCachedGet = 200; + k_EGCMsgMemCachedGetResponse = 201; + k_EGCMsgMemCachedSet = 202; + k_EGCMsgMemCachedDelete = 203; + k_EGCMsgMemCachedStats = 204; + k_EGCMsgMemCachedStatsResponse = 205; + k_EGCMsgMasterSetDirectory = 220; + k_EGCMsgMasterSetDirectoryResponse = 221; + k_EGCMsgMasterSetWebAPIRouting = 222; + k_EGCMsgMasterSetWebAPIRoutingResponse = 223; + k_EGCMsgMasterSetClientMsgRouting = 224; + k_EGCMsgMasterSetClientMsgRoutingResponse = 225; + k_EGCMsgSetOptions = 226; + k_EGCMsgSetOptionsResponse = 227; + k_EGCMsgSystemBase2 = 500; + k_EGCMsgGetPurchaseTrustStatus = 501; + k_EGCMsgGetPurchaseTrustStatusResponse = 502; + k_EGCMsgUpdateSession = 503; + k_EGCMsgGCAccountVacStatusChange = 504; + k_EGCMsgCheckFriendship = 505; + k_EGCMsgCheckFriendshipResponse = 506; + k_EGCMsgGetPartnerAccountLink = 507; + k_EGCMsgGetPartnerAccountLinkResponse = 508; + k_EGCMsgDPPartnerMicroTxns = 512; + k_EGCMsgDPPartnerMicroTxnsResponse = 513; + k_EGCMsgVacVerificationChange = 518; + k_EGCMsgAccountPhoneNumberChange = 519; + k_EGCMsgInviteUserToLobby = 523; + k_EGCMsgGetGamePersonalDataCategoriesRequest = 524; + k_EGCMsgGetGamePersonalDataCategoriesResponse = 525; + k_EGCMsgGetGamePersonalDataEntriesRequest = 526; + k_EGCMsgGetGamePersonalDataEntriesResponse = 527; + k_EGCMsgTerminateGamePersonalDataEntriesRequest = 528; + k_EGCMsgTerminateGamePersonalDataEntriesResponse = 529; + k_EGCMsgRecurringSubscriptionStatusChange = 530; + k_EGCMsgDirectServiceMethod = 531; + k_EGCMsgDirectServiceMethodResponse = 532; +} + +enum ESOMsg { + k_ESOMsg_Create = 21; + k_ESOMsg_Update = 22; + k_ESOMsg_Destroy = 23; + k_ESOMsg_CacheSubscribed = 24; + k_ESOMsg_CacheUnsubscribed = 25; + k_ESOMsg_UpdateMultiple = 26; + k_ESOMsg_CacheSubscriptionCheck = 27; + k_ESOMsg_CacheSubscriptionRefresh = 28; +} + +enum EGCBaseClientMsg { + k_EMsgGCClientWelcome = 4004; + k_EMsgGCServerWelcome = 4005; + k_EMsgGCClientHello = 4006; + k_EMsgGCServerHello = 4007; + k_EMsgGCClientConnectionStatus = 4009; + k_EMsgGCServerConnectionStatus = 4010; + k_EMsgGCClientHelloPartner = 4011; + k_EMsgGCClientHelloPW = 4012; + k_EMsgGCClientHelloR2 = 4013; + k_EMsgGCClientHelloR3 = 4014; + k_EMsgGCClientHelloR4 = 4015; +} + +enum EGCToGCMsg { + k_EGCToGCMsgMasterAck = 150; + k_EGCToGCMsgMasterAckResponse = 151; + k_EGCToGCMsgRouted = 152; + k_EGCToGCMsgRoutedReply = 153; + k_EMsgUpdateSessionIP = 154; + k_EMsgRequestSessionIP = 155; + k_EMsgRequestSessionIPResponse = 156; + k_EGCToGCMsgMasterStartupComplete = 157; +} + +enum ECommunityItemClass { + k_ECommunityItemClass_Invalid = 0; + k_ECommunityItemClass_Badge = 1; + k_ECommunityItemClass_GameCard = 2; + k_ECommunityItemClass_ProfileBackground = 3; + k_ECommunityItemClass_Emoticon = 4; + k_ECommunityItemClass_BoosterPack = 5; + k_ECommunityItemClass_Consumable = 6; + k_ECommunityItemClass_GameGoo = 7; + k_ECommunityItemClass_ProfileModifier = 8; + k_ECommunityItemClass_Scene = 9; + k_ECommunityItemClass_SalienItem = 10; +} + +enum ECommunityItemAttribute { + k_ECommunityItemAttribute_Invalid = 0; + k_ECommunityItemAttribute_CardBorder = 1; + k_ECommunityItemAttribute_Level = 2; + k_ECommunityItemAttribute_IssueNumber = 3; + k_ECommunityItemAttribute_TradableTime = 4; + k_ECommunityItemAttribute_StorePackageID = 5; + k_ECommunityItemAttribute_CommunityItemAppID = 6; + k_ECommunityItemAttribute_CommunityItemType = 7; + k_ECommunityItemAttribute_ProfileModiferEnabled = 8; + k_ECommunityItemAttribute_ExpiryTime = 9; +} + +message CMsgGCHVacVerificationChange { + optional fixed64 steamid = 1; + optional uint32 appid = 2; + optional bool is_verified = 3; +} + +message CMsgGCHAccountPhoneNumberChange { + optional fixed64 steamid = 1; + optional uint32 appid = 2; + optional uint64 phone_id = 3; + optional bool is_verified = 4; + optional bool is_identifying = 5; +} + +message CMsgGCHInviteUserToLobby { + optional fixed64 steamid = 1; + optional uint32 appid = 2; + optional fixed64 steamid_invited = 3; + optional fixed64 steamid_lobby = 4; +} + +message CMsgGCHRecurringSubscriptionStatusChange { + optional fixed64 steamid = 1; + optional uint32 appid = 2; + optional fixed64 agreementid = 3; + optional bool active = 4; +} + +message CQuest_PublisherAddCommunityItemsToPlayer_Request { + message Attribute { + optional uint32 attribute = 1; + optional uint64 value = 2; + } + + optional uint64 steamid = 1; + optional uint32 appid = 2; + optional uint32 match_item_type = 3; + optional uint32 match_item_class = 4; + optional string prefix_item_name = 5; + repeated .CQuest_PublisherAddCommunityItemsToPlayer_Request.Attribute attributes = 6; + optional string note = 7; +} + +message CQuest_PublisherAddCommunityItemsToPlayer_Response { + optional uint32 items_matched = 1; + optional uint32 items_granted = 2; +} + +message CCommunity_GamePersonalDataCategoryInfo { + optional string type = 1; + optional string localization_token = 2; + optional string template_file = 3; +} + +message CCommunity_GetGamePersonalDataCategories_Request { + optional uint32 appid = 1; +} + +message CCommunity_GetGamePersonalDataCategories_Response { + repeated .CCommunity_GamePersonalDataCategoryInfo categories = 1; + optional string app_assets_basename = 2; +} + +message CCommunity_GetGamePersonalDataEntries_Request { + optional uint32 appid = 1; + optional uint64 steamid = 2; + optional string type = 3; + optional string continue_token = 4; +} + +message CCommunity_GetGamePersonalDataEntries_Response { + optional uint32 gceresult = 1; + repeated string entries = 2; + optional string continue_token = 3; + optional string continue_text = 4; +} + +message CCommunity_TerminateGamePersonalDataEntries_Request { + optional uint32 appid = 1; + optional uint64 steamid = 2; +} + +message CCommunity_TerminateGamePersonalDataEntries_Response { + optional uint32 gceresult = 1; +} diff --git a/Protobufs/csgo/netmessages.proto b/Protobufs/csgo/netmessages.proto new file mode 100644 index 0000000..d938ddf --- /dev/null +++ b/Protobufs/csgo/netmessages.proto @@ -0,0 +1,669 @@ +import "networkbasetypes.proto"; + +enum CLC_Messages { + clc_ClientInfo = 20; + clc_Move = 21; + clc_VoiceData = 22; + clc_BaselineAck = 23; + clc_RespondCvarValue = 25; + clc_FileCRCCheck = 26; + clc_LoadingProgress = 27; + clc_SplitPlayerConnect = 28; + clc_SplitPlayerDisconnect = 30; + clc_ServerStatus = 31; + clc_RequestPause = 33; + clc_CmdKeyValues = 34; + clc_RconServerDetails = 35; + clc_HltvReplay = 36; + clc_Diagnostic = 37; +} + +enum SVC_Messages { + svc_ServerInfo = 40; + svc_FlattenedSerializer = 41; + svc_ClassInfo = 42; + svc_SetPause = 43; + svc_CreateStringTable = 44; + svc_UpdateStringTable = 45; + svc_VoiceInit = 46; + svc_VoiceData = 47; + svc_Print = 48; + svc_Sounds = 49; + svc_SetView = 50; + svc_ClearAllStringTables = 51; + svc_CmdKeyValues = 52; + svc_BSPDecal = 53; + svc_SplitScreen = 54; + svc_PacketEntities = 55; + svc_Prefetch = 56; + svc_Menu = 57; + svc_GetCvarValue = 58; + svc_StopSound = 59; + svc_PeerList = 60; + svc_PacketReliable = 61; + svc_HLTVStatus = 62; + svc_ServerSteamID = 63; + svc_FullFrameSplit = 70; + svc_RconServerDetails = 71; + svc_UserMessage = 72; + svc_Broadcast_Command = 74; + svc_HltvFixupOperatorStatus = 75; + svc_UserCmds = 76; +} + +enum VoiceDataFormat_t { + VOICEDATA_FORMAT_STEAM = 0; + VOICEDATA_FORMAT_ENGINE = 1; + VOICEDATA_FORMAT_OPUS = 2; +} + +enum RequestPause_t { + RP_PAUSE = 0; + RP_UNPAUSE = 1; + RP_TOGGLEPAUSE = 2; +} + +enum PrefetchType { + PFT_SOUND = 0; +} + +enum ESplitScreenMessageType { + MSG_SPLITSCREEN_ADDUSER = 0; + MSG_SPLITSCREEN_REMOVEUSER = 1; +} + +enum EQueryCvarValueStatus { + eQueryCvarValueStatus_ValueIntact = 0; + eQueryCvarValueStatus_CvarNotFound = 1; + eQueryCvarValueStatus_NotACvar = 2; + eQueryCvarValueStatus_CvarProtected = 3; +} + +enum DIALOG_TYPE { + DIALOG_MSG = 0; + DIALOG_MENU = 1; + DIALOG_TEXT = 2; + DIALOG_ENTRY = 3; + DIALOG_ASKCONNECT = 4; +} + +enum SVC_Messages_LowFrequency { + svc_dummy = 600; +} + +enum Bidirectional_Messages { + bi_RebroadcastGameEvent = 16; + bi_RebroadcastSource = 17; + bi_GameEvent = 18; +} + +enum Bidirectional_Messages_LowFrequency { + bi_RelayInfo = 700; + bi_RelayPacket = 701; +} + +enum ReplayEventType_t { + REPLAY_EVENT_CANCEL = 0; + REPLAY_EVENT_DEATH = 1; + REPLAY_EVENT_GENERIC = 2; + REPLAY_EVENT_STUCK_NEED_FULL_UPDATE = 3; + REPLAY_EVENT_VICTORY = 4; +} + +message CCLCMsg_ClientInfo { + optional fixed32 send_table_crc = 1; + optional uint32 server_count = 2; + optional bool is_hltv = 3; + optional uint32 friends_id = 5; + optional string friends_name = 6; +} + +message CCLCMsg_Move { + optional bytes data = 3; + optional uint32 last_command_number = 4; +} + +message CMsgVoiceAudio { + optional .VoiceDataFormat_t format = 1 [default = VOICEDATA_FORMAT_STEAM]; + optional bytes voice_data = 2; + optional int32 sequence_bytes = 3; + optional uint32 section_number = 4; + optional uint32 sample_rate = 5; + optional uint32 uncompressed_sample_offset = 6; + optional uint32 num_packets = 7; + repeated uint32 packet_offsets = 8 [packed = true]; + optional float voice_level = 9; +} + +message CCLCMsg_VoiceData { + optional .CMsgVoiceAudio audio = 1; + optional fixed64 xuid = 2; + optional uint32 tick = 3; +} + +message CCLCMsg_BaselineAck { + optional int32 baseline_tick = 1; + optional int32 baseline_nr = 2; +} + +message CCLCMsg_ListenEvents { + repeated fixed32 event_mask = 1; +} + +message CCLCMsg_RespondCvarValue { + optional int32 cookie = 1; + optional int32 status_code = 2; + optional string name = 3; + optional string value = 4; +} + +message CCLCMsg_FileCRCCheck { + optional int32 code_path = 1; + optional string path = 2; + optional int32 code_filename = 3; + optional string filename = 4; + optional fixed32 crc = 5; +} + +message CCLCMsg_LoadingProgress { + optional int32 progress = 1; +} + +message CCLCMsg_SplitPlayerConnect { + optional string playername = 1; +} + +message CCLCMsg_SplitPlayerDisconnect { + optional int32 slot = 1; +} + +message CCLCMsg_ServerStatus { + optional bool simplified = 1; +} + +message CCLCMsg_RequestPause { + optional .RequestPause_t pause_type = 1 [default = RP_PAUSE]; + optional int32 pause_group = 2; +} + +message CCLCMsg_CmdKeyValues { + optional bytes data = 1; +} + +message CCLCMsg_RconServerDetails { + optional bytes token = 1; +} + +message CMsgSource2SystemSpecs { + optional string cpu_id = 1; + optional string cpu_brand = 2; + optional uint32 cpu_model = 3; + optional uint32 cpu_num_physical = 4; + optional uint32 ram_physical_total_mb = 21; + optional string gpu_rendersystem_dll_name = 41; + optional uint32 gpu_vendor_id = 42; + optional string gpu_driver_name = 43; + optional uint32 gpu_driver_version_high = 44; + optional uint32 gpu_driver_version_low = 45; + optional uint32 gpu_dx_support_level = 46; + optional uint32 gpu_texture_memory_size_mb = 47; +} + +message CMsgSource2VProfLiteReportItem { + optional string name = 1; + optional uint32 active_samples = 2; + optional uint32 usec_max = 3; + optional uint32 usec_avg_active = 11; + optional uint32 usec_p50_active = 12; + optional uint32 usec_p99_active = 13; + optional uint32 usec_avg_all = 21; + optional uint32 usec_p50_all = 22; + optional uint32 usec_p99_all = 23; +} + +message CMsgSource2VProfLiteReport { + optional .CMsgSource2VProfLiteReportItem total = 1; + repeated .CMsgSource2VProfLiteReportItem items = 2; + optional uint32 discarded_frames = 3; +} + +message CCLCMsg_Diagnostic { + optional .CMsgSource2SystemSpecs system_specs = 1; + optional .CMsgSource2VProfLiteReport vprof_report = 2; +} + +message CSource2Metrics_MatchPerfSummary_Notification { + message Client { + optional .CMsgSource2SystemSpecs system_specs = 1; + optional .CMsgSource2VProfLiteReport profile = 2; + optional uint32 build_id = 3; + optional fixed64 steamid = 10; + } + + optional uint32 appid = 1; + optional string game_mode = 2; + optional uint32 server_build_id = 3; + optional .CMsgSource2VProfLiteReport server_profile = 10; + repeated .CSource2Metrics_MatchPerfSummary_Notification.Client clients = 11; + optional string map = 20; +} + +message CSVCMsg_ServerInfo { + optional int32 protocol = 1; + optional int32 server_count = 2; + optional bool is_dedicated = 3; + optional bool is_hltv = 4; + optional int32 c_os = 6; + optional int32 max_clients = 10; + optional int32 max_classes = 11; + optional int32 player_slot = 12 [default = -1]; + optional float tick_interval = 13; + optional string game_dir = 14; + optional string map_name = 15; + optional string sky_name = 16; + optional string host_name = 17; + optional string addon_name = 18; + optional .CSVCMsg_GameSessionConfiguration game_session_config = 19; + optional bytes game_session_manifest = 20; +} + +message CSVCMsg_ClassInfo { + message class_t { + optional int32 class_id = 1; + optional string class_name = 3; + } + + optional bool create_on_client = 1; + repeated .CSVCMsg_ClassInfo.class_t classes = 2; +} + +message CSVCMsg_SetPause { + optional bool paused = 1; +} + +message CSVCMsg_VoiceInit { + optional int32 quality = 1; + optional string codec = 2; + optional int32 version = 3 [default = 0]; +} + +message CSVCMsg_Print { + optional string text = 1; +} + +message CSVCMsg_Sounds { + message sounddata_t { + optional sint32 origin_x = 1; + optional sint32 origin_y = 2; + optional sint32 origin_z = 3; + optional uint32 volume = 4; + optional float delay_value = 5; + optional int32 sequence_number = 6; + optional int32 entity_index = 7 [default = -1]; + optional int32 channel = 8; + optional int32 pitch = 9; + optional int32 flags = 10; + optional uint32 sound_num = 11; + optional fixed32 sound_num_handle = 12; + optional int32 speaker_entity = 13; + optional int32 random_seed = 14; + optional int32 sound_level = 15; + optional bool is_sentence = 16; + optional bool is_ambient = 17; + optional uint32 guid = 18; + optional fixed64 sound_resource_id = 19; + } + + optional bool reliable_sound = 1; + repeated .CSVCMsg_Sounds.sounddata_t sounds = 2; +} + +message CSVCMsg_Prefetch { + optional int32 sound_index = 1; + optional .PrefetchType resource_type = 2 [default = PFT_SOUND]; +} + +message CSVCMsg_SetView { + optional int32 entity_index = 1 [default = -1]; + optional int32 slot = 2 [default = -1]; +} + +message CSVCMsg_FixAngle { + optional bool relative = 1; + optional .CMsgQAngle angle = 2; +} + +message CSVCMsg_CrosshairAngle { + optional .CMsgQAngle angle = 1; +} + +message CSVCMsg_BSPDecal { + optional .CMsgVector pos = 1; + optional int32 decal_texture_index = 2; + optional int32 entity_index = 3 [default = -1]; + optional int32 model_index = 4; + optional bool low_priority = 5; +} + +message CSVCMsg_SplitScreen { + optional .ESplitScreenMessageType type = 1 [default = MSG_SPLITSCREEN_ADDUSER]; + optional int32 slot = 2; + optional int32 player_index = 3 [default = -1]; +} + +message CSVCMsg_GetCvarValue { + optional int32 cookie = 1; + optional string cvar_name = 2; +} + +message CSVCMsg_Menu { + optional int32 dialog_type = 1; + optional bytes menu_key_values = 2; +} + +message CSVCMsg_UserMessage { + optional int32 msg_type = 1; + optional bytes msg_data = 2; + optional int32 passthrough = 3; +} + +message CSVCMsg_SendTable { + message sendprop_t { + optional int32 type = 1; + optional string var_name = 2; + optional int32 flags = 3; + optional int32 priority = 4; + optional string dt_name = 5; + optional int32 num_elements = 6; + optional float low_value = 7; + optional float high_value = 8; + optional int32 num_bits = 9; + } + + optional bool is_end = 1; + optional string net_table_name = 2; + optional bool needs_decoder = 3; + repeated .CSVCMsg_SendTable.sendprop_t props = 4; +} + +message CSVCMsg_GameEventList { + message key_t { + optional int32 type = 1; + optional string name = 2; + } + + message descriptor_t { + optional int32 eventid = 1; + optional string name = 2; + repeated .CSVCMsg_GameEventList.key_t keys = 3; + } + + repeated .CSVCMsg_GameEventList.descriptor_t descriptors = 1; +} + +message CSVCMsg_PacketEntities { + message alternate_baseline_t { + optional int32 entity_index = 1; + optional int32 baseline_index = 2; + } + + message non_transmitted_entities_t { + optional int32 header_count = 1; + optional bytes data = 2; + } + + optional int32 max_entries = 1; + optional int32 updated_entries = 2; + optional bool legacy_is_delta = 3; + optional bool update_baseline = 4; + optional int32 baseline = 5; + optional int32 delta_from = 6; + optional bytes entity_data = 7; + optional bool pending_full_frame = 8; + optional uint32 active_spawngroup_handle = 9; + optional uint32 max_spawngroup_creationsequence = 10; + optional uint32 last_cmd_number_executed = 11; + optional sint32 last_cmd_number_recv_delta = 17; + optional uint32 server_tick = 12; + optional bytes serialized_entities = 13; + repeated .CSVCMsg_PacketEntities.alternate_baseline_t alternate_baselines = 15; + optional uint32 has_pvs_vis_bits = 16; + repeated sint32 cmd_recv_status = 22 [packed = true]; + optional .CSVCMsg_PacketEntities.non_transmitted_entities_t non_transmitted_entities = 19; + optional uint32 cq_starved_command_ticks = 20; + optional uint32 cq_discarded_command_ticks = 21; + optional bytes dev_padding = 999; +} + +message CSVCMsg_TempEntities { + optional bool reliable = 1; + optional int32 num_entries = 2; + optional bytes entity_data = 3; +} + +message CSVCMsg_CreateStringTable { + optional string name = 1; + optional int32 num_entries = 2; + optional bool user_data_fixed_size = 3; + optional int32 user_data_size = 4; + optional int32 user_data_size_bits = 5; + optional int32 flags = 6; + optional bytes string_data = 7; + optional int32 uncompressed_size = 8; + optional bool data_compressed = 9; + optional bool using_varint_bitcounts = 10; +} + +message CSVCMsg_UpdateStringTable { + optional int32 table_id = 1; + optional int32 num_changed_entries = 2; + optional bytes string_data = 3; +} + +message CSVCMsg_VoiceData { + optional .CMsgVoiceAudio audio = 1; + optional int32 client = 2 [default = -1]; + optional bool proximity = 3; + optional fixed64 xuid = 4; + optional int32 audible_mask = 5; + optional uint32 tick = 6; + optional int32 passthrough = 7; +} + +message CSVCMsg_PacketReliable { + optional int32 tick = 1; + optional int32 messagessize = 2; + optional bool state = 3; +} + +message CSVCMsg_FullFrameSplit { + optional int32 tick = 1; + optional int32 section = 2; + optional int32 total = 3; + optional bytes data = 4; +} + +message CSVCMsg_HLTVStatus { + optional string master = 1; + optional int32 clients = 2; + optional int32 slots = 3; + optional int32 proxies = 4; +} + +message CSVCMsg_ServerSteamID { + optional uint64 steam_id = 1; +} + +message CSVCMsg_CmdKeyValues { + optional bytes data = 1; +} + +message CSVCMsg_RconServerDetails { + optional bytes token = 1; + optional string details = 2; +} + +message CMsgIPCAddress { + optional fixed64 computer_guid = 1; + optional uint32 process_id = 2; +} + +message CMsgServerPeer { + optional int32 player_slot = 1 [default = -1]; + optional fixed64 steamid = 2; + optional .CMsgIPCAddress ipc = 3; + optional bool they_hear_you = 4; + optional bool you_hear_them = 5; + optional bool is_listenserver_host = 6; +} + +message CSVCMsg_PeerList { + repeated .CMsgServerPeer peer = 1; +} + +message CSVCMsg_ClearAllStringTables { + optional string mapname = 1; + optional bool create_tables_skipped = 3; +} + +message ProtoFlattenedSerializerField_t { + message polymorphic_field_t { + optional int32 polymorphic_field_serializer_name_sym = 1; + optional int32 polymorphic_field_serializer_version = 2; + } + + optional int32 var_type_sym = 1; + optional int32 var_name_sym = 2; + optional int32 bit_count = 3; + optional float low_value = 4; + optional float high_value = 5; + optional int32 encode_flags = 6; + optional int32 field_serializer_name_sym = 7; + optional int32 field_serializer_version = 8; + optional int32 send_node_sym = 9; + optional int32 var_encoder_sym = 10; + repeated .ProtoFlattenedSerializerField_t.polymorphic_field_t polymorphic_types = 11; + optional int32 var_serializer_sym = 12; +} + +message ProtoFlattenedSerializer_t { + optional int32 serializer_name_sym = 1; + optional int32 serializer_version = 2; + repeated int32 fields_index = 3; +} + +message CSVCMsg_FlattenedSerializer { + repeated .ProtoFlattenedSerializer_t serializers = 1; + repeated string symbols = 2; + repeated .ProtoFlattenedSerializerField_t fields = 3; +} + +message CSVCMsg_StopSound { + optional fixed32 guid = 1; +} + +message CBidirMsg_RebroadcastGameEvent { + optional bool posttoserver = 1; + optional int32 buftype = 2; + optional uint32 clientbitcount = 3; + optional uint64 receivingclients = 4; +} + +message CBidirMsg_RebroadcastSource { + optional int32 eventsource = 1; +} + +message CMsgServerNetworkStats { + message Port { + optional int32 port = 1; + optional string name = 2; + } + + message Player { + optional uint64 steamid = 1; + optional string remote_addr = 2; + optional int32 ping_avg_ms = 4; + optional float packet_loss_pct = 5; + optional bool is_bot = 6; + optional float loss_in = 7; + optional float loss_out = 8; + optional int32 engine_latency_ms = 9; + } + + optional bool dedicated = 1; + optional int32 cpu_usage = 2; + optional int32 memory_used_mb = 3; + optional int32 memory_free_mb = 4; + optional int32 uptime = 5; + optional int32 spawn_count = 6; + optional int32 num_clients = 8; + optional int32 num_bots = 9; + optional int32 num_spectators = 10; + optional int32 num_tv_relays = 11; + optional float fps = 12; + repeated .CMsgServerNetworkStats.Port ports = 17; + optional float avg_ping_ms = 18; + optional float avg_engine_latency_out = 19; + optional float avg_packets_out = 20; + optional float avg_packets_in = 21; + optional float avg_loss_out = 22; + optional float avg_loss_in = 23; + optional float avg_data_out = 24; + optional float avg_data_in = 25; + optional uint64 total_data_in = 26; + optional uint64 total_packets_in = 27; + optional uint64 total_data_out = 28; + optional uint64 total_packets_out = 29; + repeated .CMsgServerNetworkStats.Player players = 30; +} + +message CSVCMsg_HltvReplay { + optional int32 delay = 1; + optional int32 primary_target = 2 [default = -1]; + optional int32 replay_stop_at = 3; + optional int32 replay_start_at = 4; + optional int32 replay_slowdown_begin = 5; + optional int32 replay_slowdown_end = 6; + optional float replay_slowdown_rate = 7; + optional int32 reason = 8; +} + +message CCLCMsg_HltvReplay { + optional int32 request = 1; + optional float slowdown_length = 2; + optional float slowdown_rate = 3; + optional int32 primary_target = 4 [default = -1]; + optional float event_time = 5; +} + +message CSVCMsg_Broadcast_Command { + optional string cmd = 1; +} + +message CCLCMsg_HltvFixupOperatorTick { + optional int32 tick = 1; + optional bytes props_data = 2; + optional .CMsgVector origin = 3; + optional .CMsgQAngle eye_angles = 4; + optional int32 observer_mode = 5; + optional bool cameraman_scoreboard = 6; + optional int32 observer_target = 7; + optional .CMsgVector view_offset = 8; +} + +message CSVCMsg_HltvFixupOperatorStatus { + optional uint32 mode = 1; + optional string override_operator_name = 2; +} + +message CMsgServerUserCmd { + optional bytes data = 1; + optional int32 cmd_number = 2; + optional int32 player_slot = 3 [default = -1]; + optional int32 server_tick_executed = 4; + optional int32 client_tick = 5; +} + +message CSVCMsg_UserCommands { + repeated .CMsgServerUserCmd commands = 1; +} diff --git a/Protobufs/csgo/network_connection.proto b/Protobufs/csgo/network_connection.proto new file mode 100644 index 0000000..90edb2f --- /dev/null +++ b/Protobufs/csgo/network_connection.proto @@ -0,0 +1,128 @@ +import "google/protobuf/descriptor.proto"; + +extend .google.protobuf.EnumValueOptions { + optional string network_connection_token = 50500; + optional string network_connection_detail_token = 50501; +} + +enum ENetworkDisconnectionReason { + NETWORK_DISCONNECT_INVALID = 0; + NETWORK_DISCONNECT_SHUTDOWN = 1; + NETWORK_DISCONNECT_DISCONNECT_BY_USER = 2 [(network_connection_token) = "#GameUI_Disconnect_User"]; + NETWORK_DISCONNECT_DISCONNECT_BY_SERVER = 3 [(network_connection_token) = "#GameUI_Disconnect_Server"]; + NETWORK_DISCONNECT_LOST = 4 [(network_connection_token) = "#GameUI_Disconnect_ConnectionLost"]; + NETWORK_DISCONNECT_OVERFLOW = 5 [(network_connection_token) = "#GameUI_Disconnect_ConnectionOverflow"]; + NETWORK_DISCONNECT_STEAM_BANNED = 6 [(network_connection_token) = "#GameUI_Disconnect_SteamIDBanned"]; + NETWORK_DISCONNECT_STEAM_INUSE = 7 [(network_connection_token) = "#GameUI_Disconnect_SteamIDInUse"]; + NETWORK_DISCONNECT_STEAM_TICKET = 8 [(network_connection_token) = "#GameUI_Disconnect_SteamTicket"]; + NETWORK_DISCONNECT_STEAM_LOGON = 9 [(network_connection_token) = "#GameUI_Disconnect_SteamLogon"]; + NETWORK_DISCONNECT_STEAM_AUTHCANCELLED = 10 [(network_connection_token) = "#GameUI_Disconnect_SteamLogon"]; + NETWORK_DISCONNECT_STEAM_AUTHALREADYUSED = 11 [(network_connection_token) = "#GameUI_Disconnect_SteamLogon"]; + NETWORK_DISCONNECT_STEAM_AUTHINVALID = 12 [(network_connection_token) = "#GameUI_Disconnect_SteamLogon"]; + NETWORK_DISCONNECT_STEAM_VACBANSTATE = 13 [(network_connection_token) = "#GameUI_Disconnect_SteamVAC"]; + NETWORK_DISCONNECT_STEAM_LOGGED_IN_ELSEWHERE = 14 [(network_connection_token) = "#GameUI_Disconnect_SteamInUse"]; + NETWORK_DISCONNECT_STEAM_VAC_CHECK_TIMEDOUT = 15 [(network_connection_token) = "#GameUI_Disconnect_SteamTimeOut"]; + NETWORK_DISCONNECT_STEAM_DROPPED = 16 [(network_connection_token) = "#GameUI_Disconnect_SteamDropped"]; + NETWORK_DISCONNECT_STEAM_OWNERSHIP = 17 [(network_connection_token) = "#GameUI_Disconnect_SteamOwnership"]; + NETWORK_DISCONNECT_SERVERINFO_OVERFLOW = 18 [(network_connection_token) = "#GameUI_Disconnect_ServerInfoOverflow"]; + NETWORK_DISCONNECT_TICKMSG_OVERFLOW = 19 [(network_connection_token) = "#GameUI_Disconnect_TickMessage"]; + NETWORK_DISCONNECT_STRINGTABLEMSG_OVERFLOW = 20 [(network_connection_token) = "#GameUI_Disconnect_StringTableMessage"]; + NETWORK_DISCONNECT_DELTAENTMSG_OVERFLOW = 21 [(network_connection_token) = "#GameUI_Disconnect_DeltaEntMessage"]; + NETWORK_DISCONNECT_TEMPENTMSG_OVERFLOW = 22 [(network_connection_token) = "#GameUI_Disconnect_TempEntMessage"]; + NETWORK_DISCONNECT_SOUNDSMSG_OVERFLOW = 23 [(network_connection_token) = "#GameUI_Disconnect_SoundsMessage"]; + NETWORK_DISCONNECT_SNAPSHOTOVERFLOW = 24 [(network_connection_token) = "#GameUI_Disconnect_SnapshotOverflow"]; + NETWORK_DISCONNECT_SNAPSHOTERROR = 25 [(network_connection_token) = "#GameUI_Disconnect_SnapshotError"]; + NETWORK_DISCONNECT_RELIABLEOVERFLOW = 26 [(network_connection_token) = "#GameUI_Disconnect_ReliableOverflow"]; + NETWORK_DISCONNECT_BADDELTATICK = 27 [(network_connection_token) = "#GameUI_Disconnect_BadClientDeltaTick"]; + NETWORK_DISCONNECT_NOMORESPLITS = 28 [(network_connection_token) = "#GameUI_Disconnect_NoMoreSplits"]; + NETWORK_DISCONNECT_TIMEDOUT = 29 [(network_connection_token) = "#GameUI_Disconnect_TimedOut"]; + NETWORK_DISCONNECT_DISCONNECTED = 30 [(network_connection_token) = "#GameUI_Disconnect_Disconnected"]; + NETWORK_DISCONNECT_LEAVINGSPLIT = 31 [(network_connection_token) = "#GameUI_Disconnect_LeavingSplit"]; + NETWORK_DISCONNECT_DIFFERENTCLASSTABLES = 32 [(network_connection_token) = "#GameUI_Disconnect_DifferentClassTables"]; + NETWORK_DISCONNECT_BADRELAYPASSWORD = 33 [(network_connection_token) = "#GameUI_Disconnect_BadRelayPassword"]; + NETWORK_DISCONNECT_BADSPECTATORPASSWORD = 34 [(network_connection_token) = "#GameUI_Disconnect_BadSpectatorPassword"]; + NETWORK_DISCONNECT_HLTVRESTRICTED = 35 [(network_connection_token) = "#GameUI_Disconnect_HLTVRestricted"]; + NETWORK_DISCONNECT_NOSPECTATORS = 36 [(network_connection_token) = "#GameUI_Disconnect_NoSpectators"]; + NETWORK_DISCONNECT_HLTVUNAVAILABLE = 37 [(network_connection_token) = "#GameUI_Disconnect_HLTVUnavailable"]; + NETWORK_DISCONNECT_HLTVSTOP = 38 [(network_connection_token) = "#GameUI_Disconnect_HLTVStop"]; + NETWORK_DISCONNECT_KICKED = 39 [(network_connection_token) = "#GameUI_Disconnect_Kicked"]; + NETWORK_DISCONNECT_BANADDED = 40 [(network_connection_token) = "#GameUI_Disconnect_BanAdded"]; + NETWORK_DISCONNECT_KICKBANADDED = 41 [(network_connection_token) = "#GameUI_Disconnect_KickBanAdded"]; + NETWORK_DISCONNECT_HLTVDIRECT = 42 [(network_connection_token) = "#GameUI_Disconnect_HLTVDirect"]; + NETWORK_DISCONNECT_PURESERVER_CLIENTEXTRA = 43 [(network_connection_token) = "#GameUI_Disconnect_PureServer_ClientExtra"]; + NETWORK_DISCONNECT_PURESERVER_MISMATCH = 44 [(network_connection_token) = "#GameUI_Disconnect_PureServer_Mismatch"]; + NETWORK_DISCONNECT_USERCMD = 45 [(network_connection_token) = "#GameUI_Disconnect_UserCmd"]; + NETWORK_DISCONNECT_REJECTED_BY_GAME = 46 [(network_connection_token) = "#GameUI_Disconnect_RejectedByGame"]; + NETWORK_DISCONNECT_MESSAGE_PARSE_ERROR = 47 [(network_connection_token) = "#GameUI_Disconnect_MessageParseError"]; + NETWORK_DISCONNECT_INVALID_MESSAGE_ERROR = 48 [(network_connection_token) = "#GameUI_Disconnect_InvalidMessageError"]; + NETWORK_DISCONNECT_BAD_SERVER_PASSWORD = 49 [(network_connection_token) = "#GameUI_Disconnect_BadServerPassword"]; + NETWORK_DISCONNECT_DIRECT_CONNECT_RESERVATION = 50; + NETWORK_DISCONNECT_CONNECTION_FAILURE = 51 [(network_connection_token) = "#GameUI_Disconnect_ConnectionFailure"]; + NETWORK_DISCONNECT_NO_PEER_GROUP_HANDLERS = 52 [(network_connection_token) = "#GameUI_Disconnect_NoPeerGroupHandlers"]; + NETWORK_DISCONNECT_RECONNECTION = 53; + NETWORK_DISCONNECT_LOOPSHUTDOWN = 54 [(network_connection_token) = "#GameUI_Disconnect_LoopShutdown"]; + NETWORK_DISCONNECT_LOOPDEACTIVATE = 55 [(network_connection_token) = "#GameUI_Disconnect_LoopDeactivate"]; + NETWORK_DISCONNECT_HOST_ENDGAME = 56 [(network_connection_token) = "#GameUI_Disconnect_Host_EndGame"]; + NETWORK_DISCONNECT_LOOP_LEVELLOAD_ACTIVATE = 57 [(network_connection_token) = "#GameUI_Disconnect_LoopLevelLoadActivate"]; + NETWORK_DISCONNECT_CREATE_SERVER_FAILED = 58 [(network_connection_token) = "#GameUI_Disconnect_CreateServerFailed"]; + NETWORK_DISCONNECT_EXITING = 59 [(network_connection_token) = "#GameUI_Disconnect_ExitingEngine"]; + NETWORK_DISCONNECT_REQUEST_HOSTSTATE_IDLE = 60 [(network_connection_token) = "#GameUI_Disconnect_Request_HSIdle"]; + NETWORK_DISCONNECT_REQUEST_HOSTSTATE_HLTVRELAY = 61 [(network_connection_token) = "#GameUI_Disconnect_Request_HLTVRelay"]; + NETWORK_DISCONNECT_CLIENT_CONSISTENCY_FAIL = 62 [(network_connection_token) = "#GameUI_ClientConsistencyFail"]; + NETWORK_DISCONNECT_CLIENT_UNABLE_TO_CRC_MAP = 63 [(network_connection_token) = "#GameUI_ClientUnableToCRCMap"]; + NETWORK_DISCONNECT_CLIENT_NO_MAP = 64 [(network_connection_token) = "#GameUI_ClientNoMap"]; + NETWORK_DISCONNECT_CLIENT_DIFFERENT_MAP = 65 [(network_connection_token) = "#GameUI_ClientDifferentMap"]; + NETWORK_DISCONNECT_SERVER_REQUIRES_STEAM = 66 [(network_connection_token) = "#GameUI_ServerRequireSteams"]; + NETWORK_DISCONNECT_STEAM_DENY_MISC = 67 [(network_connection_token) = "#GameUI_Disconnect_SteamDeny_Misc"]; + NETWORK_DISCONNECT_STEAM_DENY_BAD_ANTI_CHEAT = 68 [(network_connection_token) = "#GameUI_Disconnect_SteamDeny_BadAntiCheat"]; + NETWORK_DISCONNECT_SERVER_SHUTDOWN = 69 [(network_connection_token) = "#GameUI_Disconnect_ServerShutdown"]; + NETWORK_DISCONNECT_REPLAY_INCOMPATIBLE = 71 [(network_connection_token) = "#GameUI_Disconnect_ReplayIncompatible"]; + NETWORK_DISCONNECT_CONNECT_REQUEST_TIMEDOUT = 72 [(network_connection_token) = "#GameUI_Disconnect_ConnectionTimedout"]; + NETWORK_DISCONNECT_SERVER_INCOMPATIBLE = 73 [(network_connection_token) = "#GameUI_Disconnect_ServerIncompatible"]; + NETWORK_DISCONNECT_LOCALPROBLEM_MANYRELAYS = 74 [(network_connection_token) = "#GameUI_Disconnect_LocalProblem_ManyRelays"]; + NETWORK_DISCONNECT_LOCALPROBLEM_HOSTEDSERVERPRIMARYRELAY = 75 [(network_connection_token) = "#GameUI_Disconnect_LocalProblem_HostedServerPrimaryRelay"]; + NETWORK_DISCONNECT_LOCALPROBLEM_NETWORKCONFIG = 76 [(network_connection_token) = "#GameUI_Disconnect_LocalProblem_NetworkConfig"]; + NETWORK_DISCONNECT_LOCALPROBLEM_OTHER = 77 [(network_connection_token) = "#GameUI_Disconnect_LocalProblem_Other"]; + NETWORK_DISCONNECT_REMOTE_TIMEOUT = 79 [(network_connection_token) = "#GameUI_Disconnect_RemoteProblem_Timeout"]; + NETWORK_DISCONNECT_REMOTE_TIMEOUT_CONNECTING = 80 [(network_connection_token) = "#GameUI_Disconnect_RemoteProblem_TimeoutConnecting"]; + NETWORK_DISCONNECT_REMOTE_OTHER = 81 [(network_connection_token) = "#GameUI_Disconnect_RemoteProblem_Other"]; + NETWORK_DISCONNECT_REMOTE_BADCRYPT = 82 [(network_connection_token) = "#GameUI_Disconnect_RemoteProblem_BadCrypt"]; + NETWORK_DISCONNECT_REMOTE_CERTNOTTRUSTED = 83 [(network_connection_token) = "#GameUI_Disconnect_RemoteProblem_BadCert"]; + NETWORK_DISCONNECT_UNUSUAL = 84 [(network_connection_token) = "#GameUI_Disconnect_Unusual"]; + NETWORK_DISCONNECT_INTERNAL_ERROR = 85 [(network_connection_token) = "#GameUI_Disconnect_InternalError"]; + NETWORK_DISCONNECT_REJECT_BADCHALLENGE = 128 [(network_connection_token) = "#GameUI_ServerRejectBadChallenge"]; + NETWORK_DISCONNECT_REJECT_NOLOBBY = 129 [(network_connection_token) = "#GameUI_ServerNoLobby"]; + NETWORK_DISCONNECT_REJECT_BACKGROUND_MAP = 130 [(network_connection_token) = "#Valve_Reject_Background_Map"]; + NETWORK_DISCONNECT_REJECT_SINGLE_PLAYER = 131 [(network_connection_token) = "#Valve_Reject_Single_Player"]; + NETWORK_DISCONNECT_REJECT_HIDDEN_GAME = 132 [(network_connection_token) = "#Valve_Reject_Hidden_Game"]; + NETWORK_DISCONNECT_REJECT_LANRESTRICT = 133 [(network_connection_token) = "#GameUI_ServerRejectLANRestrict"]; + NETWORK_DISCONNECT_REJECT_BADPASSWORD = 134 [(network_connection_token) = "#GameUI_ServerRejectBadPassword"]; + NETWORK_DISCONNECT_REJECT_SERVERFULL = 135 [(network_connection_token) = "#GameUI_ServerRejectServerFull"]; + NETWORK_DISCONNECT_REJECT_INVALIDRESERVATION = 136 [(network_connection_token) = "#GameUI_ServerRejectInvalidReservation"]; + NETWORK_DISCONNECT_REJECT_FAILEDCHANNEL = 137 [(network_connection_token) = "#GameUI_ServerRejectFailedChannel"]; + NETWORK_DISCONNECT_REJECT_CONNECT_FROM_LOBBY = 138 [(network_connection_token) = "#Valve_Reject_Connect_From_Lobby"]; + NETWORK_DISCONNECT_REJECT_RESERVED_FOR_LOBBY = 139 [(network_connection_token) = "#Valve_Reject_Reserved_For_Lobby"]; + NETWORK_DISCONNECT_REJECT_INVALIDKEYLENGTH = 140 [(network_connection_token) = "#GameUI_ServerReject_InvalidKeyLength"]; + NETWORK_DISCONNECT_REJECT_OLDPROTOCOL = 141 [(network_connection_token) = "#GameUI_ServerRejectOldProtocol"]; + NETWORK_DISCONNECT_REJECT_NEWPROTOCOL = 142 [(network_connection_token) = "#GameUI_ServerRejectNewProtocol"]; + NETWORK_DISCONNECT_REJECT_INVALIDCONNECTION = 143 [(network_connection_token) = "#GameUI_ServerRejectInvalidConnection"]; + NETWORK_DISCONNECT_REJECT_INVALIDCERTLEN = 144 [(network_connection_token) = "#GameUI_ServerRejectInvalidCertLen"]; + NETWORK_DISCONNECT_REJECT_INVALIDSTEAMCERTLEN = 145 [(network_connection_token) = "#GameUI_ServerRejectInvalidSteamCertLen"]; + NETWORK_DISCONNECT_REJECT_STEAM = 146 [(network_connection_token) = "#GameUI_ServerRejectSteam"]; + NETWORK_DISCONNECT_REJECT_SERVERAUTHDISABLED = 147 [(network_connection_token) = "#GameUI_ServerAuthDisabled"]; + NETWORK_DISCONNECT_REJECT_SERVERCDKEYAUTHINVALID = 148 [(network_connection_token) = "#GameUI_ServerCDKeyAuthInvalid"]; + NETWORK_DISCONNECT_REJECT_BANNED = 149 [(network_connection_token) = "#GameUI_ServerRejectBanned"]; + NETWORK_DISCONNECT_KICKED_TEAMKILLING = 150 [(network_connection_token) = "#Player_DisconnectReason_TeamKilling"]; + NETWORK_DISCONNECT_KICKED_TK_START = 151 [(network_connection_token) = "#Player_DisconnectReason_TK_Start"]; + NETWORK_DISCONNECT_KICKED_UNTRUSTEDACCOUNT = 152 [(network_connection_token) = "#Player_DisconnectReason_UntrustedAccount"]; + NETWORK_DISCONNECT_KICKED_CONVICTEDACCOUNT = 153 [(network_connection_token) = "#Player_DisconnectReason_ConvictedAccount"]; + NETWORK_DISCONNECT_KICKED_COMPETITIVECOOLDOWN = 154 [(network_connection_token) = "#Player_DisconnectReason_CompetitiveCooldown"]; + NETWORK_DISCONNECT_KICKED_TEAMHURTING = 155 [(network_connection_token) = "#Player_DisconnectReason_TeamHurting"]; + NETWORK_DISCONNECT_KICKED_HOSTAGEKILLING = 156 [(network_connection_token) = "#Player_DisconnectReason_HostageKilling"]; + NETWORK_DISCONNECT_KICKED_VOTEDOFF = 157 [(network_connection_token) = "#Player_DisconnectReason_VotedOff"]; + NETWORK_DISCONNECT_KICKED_IDLE = 158 [(network_connection_token) = "#Player_DisconnectReason_Idle"]; + NETWORK_DISCONNECT_KICKED_SUICIDE = 159 [(network_connection_token) = "#Player_DisconnectReason_Suicide"]; + NETWORK_DISCONNECT_KICKED_NOSTEAMLOGIN = 160 [(network_connection_token) = "#Player_DisconnectReason_NoSteamLogin"]; + NETWORK_DISCONNECT_KICKED_NOSTEAMTICKET = 161 [(network_connection_token) = "#Player_DisconnectReason_NoSteamTicket"]; + NETWORK_DISCONNECT_KICKED_INPUTAUTOMATION = 162 [(network_connection_token) = "#Player_DisconnectReason_InputAutomation", (network_connection_detail_token) = "#Player_DisconnectReason_InputAutomation_Detail"]; +} diff --git a/Protobufs/csgo/networkbasetypes.proto b/Protobufs/csgo/networkbasetypes.proto new file mode 100644 index 0000000..16463ab --- /dev/null +++ b/Protobufs/csgo/networkbasetypes.proto @@ -0,0 +1,242 @@ +import "network_connection.proto"; + +enum SignonState_t { + SIGNONSTATE_NONE = 0; + SIGNONSTATE_CHALLENGE = 1; + SIGNONSTATE_CONNECTED = 2; + SIGNONSTATE_NEW = 3; + SIGNONSTATE_PRESPAWN = 4; + SIGNONSTATE_SPAWN = 5; + SIGNONSTATE_FULL = 6; + SIGNONSTATE_CHANGELEVEL = 7; +} + +enum NET_Messages { + net_NOP = 0; + net_Disconnect_Legacy = 1; + net_SplitScreenUser = 3; + net_Tick = 4; + net_StringCmd = 5; + net_SetConVar = 6; + net_SignonState = 7; + net_SpawnGroup_Load = 8; + net_SpawnGroup_ManifestUpdate = 9; + net_SpawnGroup_SetCreationTick = 11; + net_SpawnGroup_Unload = 12; + net_SpawnGroup_LoadCompleted = 13; + net_DebugOverlay = 15; +} + +enum SpawnGroupFlags_t { + SPAWN_GROUP_LOAD_ENTITIES_FROM_SAVE = 1; + SPAWN_GROUP_DONT_SPAWN_ENTITIES = 2; + SPAWN_GROUP_SYNCHRONOUS_SPAWN = 4; + SPAWN_GROUP_IS_INITIAL_SPAWN_GROUP = 8; + SPAWN_GROUP_CREATE_CLIENT_ONLY_ENTITIES = 16; + SPAWN_GROUP_BLOCK_UNTIL_LOADED = 64; + SPAWN_GROUP_LOAD_STREAMING_DATA = 128; + SPAWN_GROUP_CREATE_NEW_SCENE_WORLD = 256; +} + +message CMsgVector { + optional float x = 1; + optional float y = 2; + optional float z = 3; + optional float w = 4; +} + +message CMsgVector2D { + optional float x = 1; + optional float y = 2; +} + +message CMsgQAngle { + optional float x = 1; + optional float y = 2; + optional float z = 3; +} + +message CMsgQuaternion { + optional float x = 1; + optional float y = 2; + optional float z = 3; + optional float w = 4; +} + +message CMsgTransform { + optional .CMsgVector position = 1; + optional float scale = 2; + optional .CMsgQuaternion orientation = 3; +} + +message CMsgRGBA { + optional int32 r = 1; + optional int32 g = 2; + optional int32 b = 3; + optional int32 a = 4; +} + +message CMsgPlayerInfo { + optional string name = 1; + optional fixed64 xuid = 2; + optional int32 userid = 3; + optional fixed64 steamid = 4; + optional bool fakeplayer = 5; + optional bool ishltv = 6; +} + +message CEntityMsg { + optional uint32 target_entity = 1 [default = 16777215]; +} + +message CMsg_CVars { + message CVar { + optional string name = 1; + optional string value = 2; + } + + repeated .CMsg_CVars.CVar cvars = 1; +} + +message CNETMsg_NOP { +} + +message CNETMsg_SplitScreenUser { + optional int32 slot = 1; +} + +message CNETMsg_Tick { + optional uint32 tick = 1; + optional uint32 host_frametime = 2; + optional uint32 host_frametime_std_deviation = 3; + optional uint32 host_computationtime = 4; + optional uint32 host_computationtime_std_deviation = 5; + optional uint32 host_framestarttime_std_deviation = 6; + optional uint32 host_loss = 7; + optional uint32 host_unfiltered_frametime = 8; + optional uint32 hltv_replay_flags = 9; + optional uint32 expected_long_tick = 10; + optional string expected_long_tick_reason = 11; +} + +message CNETMsg_StringCmd { + optional string command = 1; + optional uint32 prediction_sync = 2; +} + +message CNETMsg_SetConVar { + optional .CMsg_CVars convars = 1; +} + +message CNETMsg_SignonState { + optional .SignonState_t signon_state = 1 [default = SIGNONSTATE_NONE]; + optional uint32 spawn_count = 2; + optional uint32 num_server_players = 3; + repeated string players_networkids = 4; + optional string map_name = 5; + optional string addons = 6; +} + +message CSVCMsg_GameEvent { + message key_t { + optional int32 type = 1; + optional string val_string = 2; + optional float val_float = 3; + optional int32 val_long = 4; + optional int32 val_short = 5; + optional int32 val_byte = 6; + optional bool val_bool = 7; + optional uint64 val_uint64 = 8; + } + + optional string event_name = 1; + optional int32 eventid = 2; + repeated .CSVCMsg_GameEvent.key_t keys = 3; +} + +message CSVCMsgList_GameEvents { + message event_t { + optional int32 tick = 1; + optional .CSVCMsg_GameEvent event = 2; + } + + repeated .CSVCMsgList_GameEvents.event_t events = 1; +} + +message CNETMsg_SpawnGroup_Load { + optional string worldname = 1; + optional string entitylumpname = 2; + optional string entityfiltername = 3; + optional uint32 spawngrouphandle = 4; + optional uint32 spawngroupownerhandle = 5; + optional .CMsgVector world_offset_pos = 6; + optional .CMsgQAngle world_offset_angle = 7; + optional bytes spawngroupmanifest = 8; + optional uint32 flags = 9; + optional int32 tickcount = 10; + optional bool manifestincomplete = 11; + optional string localnamefixup = 12; + optional string parentnamefixup = 13; + optional int32 manifestloadpriority = 14; + optional uint32 worldgroupid = 15; + optional uint32 creationsequence = 16; + optional string savegamefilename = 17; + optional uint32 spawngroupparenthandle = 18; + optional bool leveltransition = 19; + optional string worldgroupname = 20; +} + +message CNETMsg_SpawnGroup_ManifestUpdate { + optional uint32 spawngrouphandle = 1; + optional bytes spawngroupmanifest = 2; + optional bool manifestincomplete = 3; +} + +message CNETMsg_SpawnGroup_SetCreationTick { + optional uint32 spawngrouphandle = 1; + optional int32 tickcount = 2; + optional uint32 creationsequence = 3; +} + +message CNETMsg_SpawnGroup_Unload { + optional uint32 spawngrouphandle = 1; + optional uint32 flags = 2; + optional int32 tickcount = 3; +} + +message CNETMsg_SpawnGroup_LoadCompleted { + optional uint32 spawngrouphandle = 1; +} + +message CSVCMsg_GameSessionConfiguration { + optional bool is_multiplayer = 1; + optional bool is_loadsavegame = 2; + optional bool is_background_map = 3; + optional bool is_headless = 4; + optional uint32 min_client_limit = 5; + optional uint32 max_client_limit = 6; + optional uint32 max_clients = 7; + optional fixed32 tick_interval = 8; + optional string hostname = 9; + optional string savegamename = 10; + optional string s1_mapname = 11; + optional string gamemode = 12; + optional string server_ip_address = 13; + optional bytes data = 14; + optional bool is_localonly = 15; + optional bool no_steam_server = 19; + optional bool is_transition = 16; + optional string previouslevel = 17; + optional string landmarkname = 18; +} + +message CNETMsg_DebugOverlay { + optional int32 etype = 1; + repeated .CMsgVector vectors = 2; + repeated .CMsgRGBA colors = 3; + repeated float dimensions = 4; + repeated float times = 5; + repeated bool bools = 6; + repeated uint64 uint64s = 7; + repeated string strings = 8; +} diff --git a/Protobufs/csgo/networksystem_protomessages.proto b/Protobufs/csgo/networksystem_protomessages.proto new file mode 100644 index 0000000..1fa36b3 --- /dev/null +++ b/Protobufs/csgo/networksystem_protomessages.proto @@ -0,0 +1,17 @@ +message NetMessageSplitscreenUserChanged { + optional uint32 slot = 1; +} + +message NetMessageConnectionClosed { + optional uint32 reason = 1; +} + +message NetMessageConnectionCrashed { + optional uint32 reason = 1; +} + +message NetMessagePacketStart { +} + +message NetMessagePacketEnd { +} diff --git a/Protobufs/csgo/steamdatagram_messages_auth.proto b/Protobufs/csgo/steamdatagram_messages_auth.proto new file mode 100644 index 0000000..c97793e --- /dev/null +++ b/Protobufs/csgo/steamdatagram_messages_auth.proto @@ -0,0 +1,65 @@ +import "steamnetworkingsockets_messages_certs.proto"; + +option optimize_for = SPEED; +option cc_generic_services = false; + +message CMsgSteamDatagramRelayAuthTicket { + message ExtraField { + optional string name = 1; + optional string string_value = 2; + optional sint64 int64_value = 3; + optional fixed64 fixed64_value = 5; + } + + optional fixed32 time_expiry = 1; + optional string authorized_client_identity_string = 14; + optional string gameserver_identity_string = 15; + optional fixed32 authorized_public_ip = 3; + optional bytes gameserver_address = 11; + optional uint32 app_id = 7; + optional uint32 virtual_port = 10; + repeated .CMsgSteamDatagramRelayAuthTicket.ExtraField extra_fields = 8; + optional fixed64 legacy_authorized_steam_id = 2; + optional fixed64 legacy_gameserver_steam_id = 4; + optional fixed32 legacy_gameserver_pop_id = 9; + optional bytes legacy_authorized_client_identity_binary = 12; + optional bytes legacy_gameserver_identity_binary = 13; +} + +message CMsgSteamDatagramSignedRelayAuthTicket { + optional fixed64 reserved_do_not_use = 1; + optional bytes ticket = 3; + optional bytes signature = 4; + optional fixed64 key_id = 2; + repeated .CMsgSteamDatagramCertificateSigned certs = 5; +} + +message CMsgSteamDatagramCachedCredentialsForApp { + optional bytes private_key = 1; + optional bytes cert = 2; + repeated bytes relay_tickets = 3; +} + +message CMsgSteamDatagramGameCoordinatorServerLogin { + optional uint32 time_generated = 1; + optional uint32 appid = 2; + optional bytes routing = 3; + optional bytes appdata = 4; + optional bytes legacy_identity_binary = 5; + optional string identity_string = 6; + optional fixed64 dummy_steam_id = 99; +} + +message CMsgSteamDatagramSignedGameCoordinatorServerLogin { + optional .CMsgSteamDatagramCertificateSigned cert = 1; + optional bytes login = 2; + optional bytes signature = 3; +} + +message CMsgSteamDatagramHostedServerAddressPlaintext { + optional fixed32 ipv4 = 1; + optional bytes ipv6 = 2; + optional uint32 port = 3; + optional fixed64 routing_secret = 4; + optional uint32 protocol_version = 5; +} diff --git a/Protobufs/csgo/steamdatagram_messages_sdr.proto b/Protobufs/csgo/steamdatagram_messages_sdr.proto new file mode 100644 index 0000000..d257e92 --- /dev/null +++ b/Protobufs/csgo/steamdatagram_messages_sdr.proto @@ -0,0 +1,545 @@ +import "steamnetworkingsockets_messages_certs.proto"; +import "steamnetworkingsockets_messages.proto"; + +option optimize_for = SPEED; +option cc_generic_services = false; + +enum ESteamDatagramMsgID { + k_ESteamDatagramMsg_Invalid = 0; + k_ESteamDatagramMsg_RouterPingRequest = 1; + k_ESteamDatagramMsg_RouterPingReply = 2; + k_ESteamDatagramMsg_GameserverPingRequest = 3; + k_ESteamDatagramMsg_GameserverSessionRequest = 5; + k_ESteamDatagramMsg_GameserverSessionEstablished = 6; + k_ESteamDatagramMsg_NoSession = 7; + k_ESteamDatagramMsg_Diagnostic = 8; + k_ESteamDatagramMsg_DataClientToRouter = 9; + k_ESteamDatagramMsg_DataRouterToServer = 10; + k_ESteamDatagramMsg_DataServerToRouter = 11; + k_ESteamDatagramMsg_DataRouterToClient = 12; + k_ESteamDatagramMsg_Stats = 13; + k_ESteamDatagramMsg_ClientPingSampleRequest = 14; + k_ESteamDatagramMsg_ClientPingSampleReply = 15; + k_ESteamDatagramMsg_ClientToRouterSwitchedPrimary = 16; + k_ESteamDatagramMsg_RelayHealth = 17; + k_ESteamDatagramMsg_ConnectRequest = 18; + k_ESteamDatagramMsg_ConnectOK = 19; + k_ESteamDatagramMsg_ConnectionClosed = 20; + k_ESteamDatagramMsg_NoConnection = 21; + k_ESteamDatagramMsg_TicketDecryptRequest = 22; + k_ESteamDatagramMsg_TicketDecryptReply = 23; + k_ESteamDatagramMsg_P2PSessionRequest = 24; + k_ESteamDatagramMsg_P2PSessionEstablished = 25; + k_ESteamDatagramMsg_P2PStatsClient = 26; + k_ESteamDatagramMsg_P2PStatsRelay = 27; + k_ESteamDatagramMsg_P2PBadRoute = 28; + k_ESteamDatagramMsg_GameserverPingReply = 29; + k_ESteamDatagramMsg_LegacyGameserverRegistration = 30; + k_ESteamDatagramMsg_SetSecondaryAddressRequest = 31; + k_ESteamDatagramMsg_SetSecondaryAddressResult = 32; + k_ESteamDatagramMsg_RelayToRelayPingRequest = 33; + k_ESteamDatagramMsg_RelayToRelayPingReply = 34; +} + +message CMsgSteamNetworkingIPAddress { + optional fixed32 v4 = 1; + optional bytes v6 = 2; +} + +message CMsgSteamDatagramSignedMessageGeneric { + optional .CMsgSteamDatagramCertificateSigned cert = 1; + optional bytes signed_data = 2; + optional bytes signature = 3; + optional bytes dummy_pad = 1023; +} + +message CMsgSteamDatagramRouterPingReply { + message RouteException { + optional fixed32 data_center_id = 1; + optional uint32 flags = 2; + optional uint32 penalty = 3; + } + + message AltAddress { + enum Protocol { + DefaultProtocol = 0; + } + + optional fixed32 ipv4 = 1; + optional uint32 port = 2; + optional uint32 penalty = 3; + optional .CMsgSteamDatagramRouterPingReply.AltAddress.Protocol protocol = 4 [default = DefaultProtocol]; + optional string id = 5; + } + + enum Flags { + FLAG_MAYBE_MORE_DATA_CENTERS = 1; + FLAG_MAYBE_MORE_ALT_ADDRESSES = 2; + } + + optional fixed32 client_timestamp = 1; + repeated fixed32 latency_datacenter_ids = 2 [packed = true]; + repeated uint32 latency_ping_ms = 3 [packed = true]; + repeated fixed32 latency_datacenter_ids_p2p = 14 [packed = true]; + repeated uint32 latency_ping_ms_p2p = 15 [packed = true]; + optional fixed32 your_public_ip = 4; + optional fixed32 your_public_port = 11; + optional fixed32 server_time = 5; + optional fixed64 challenge = 6; + optional uint32 seconds_until_shutdown = 7; + optional fixed32 client_cookie = 8; + optional uint32 recv_tos = 16; + optional uint32 echo_sent_tos = 17; + optional uint32 sent_tos = 18; + optional uint32 echo_request_reply_tos = 19; + optional uint32 scoring_penalty_relay_cluster = 9; + optional uint32 flags = 12; + repeated .CMsgSteamDatagramRouterPingReply.RouteException route_exceptions = 10; + repeated .CMsgSteamDatagramRouterPingReply.AltAddress alt_addresses = 13; + optional bytes dummy_pad = 99; + optional uint64 dummy_varint = 100; +} + +message CMsgSteamDatagramGameserverPingRequestBody { + optional fixed32 relay_popid = 1; + optional .CMsgSteamNetworkingIPAddress your_public_ip = 2; + optional uint32 your_public_port = 3; + optional uint64 relay_unix_time = 4; + optional fixed64 routing_secret = 5; + repeated .CMsgSteamNetworkingIPAddress my_ips = 6; + optional bytes echo = 8; +} + +message CMsgSteamDatagramGameserverPingRequestEnvelope { + optional .CMsgSteamDatagramCertificateSigned cert = 6; + optional bytes signed_data = 7; + optional bytes signature = 8; + optional fixed32 legacy_your_public_ip = 1; + optional fixed32 legacy_your_public_port = 5; + optional fixed32 legacy_relay_unix_time = 2; + optional fixed64 legacy_challenge = 3; + optional fixed32 legacy_router_timestamp = 4; + optional bytes dummy_pad = 1023; +} + +message CMsgSteamDatagramGameserverPingReplyData { + optional fixed32 echo_relay_unix_time = 2; + optional bytes echo = 8; + optional fixed64 legacy_challenge = 3; + optional fixed32 legacy_router_timestamp = 4; + optional fixed32 data_center_id = 5; + optional uint32 appid = 6; + optional uint32 protocol_version = 7; + optional string build = 9; + optional uint64 network_config_version = 10; + optional fixed32 my_unix_time = 11; + optional bytes routing_blob = 12; +} + +message CMsgSteamDatagramNoSessionRelayToClient { + optional fixed32 connection_id = 7; + optional fixed32 your_public_ip = 2; + optional fixed32 your_public_port = 6; + optional fixed32 server_time = 3; + optional fixed64 challenge = 4; + optional uint32 seconds_until_shutdown = 5; +} + +message CMsgSteamDatagramNoSessionRelayToPeer { + optional uint32 legacy_relay_session_id = 1; + optional fixed32 from_relay_session_id = 2; + optional fixed32 from_connection_id = 7; + optional fixed64 kludge_pad = 99; +} + +message CMsgTOSTreatment { + optional string l4s_detect = 1; + optional string up_ecn1 = 2; + optional string down_dscp45 = 3; +} + +message CMsgSteamDatagramClientPingSampleRequest { + optional fixed32 connection_id = 1; +} + +message CMsgSteamDatagramClientPingSampleReply { + message POP { + message AltAddress { + optional string id = 1; + optional uint32 front_ping_ms = 2; + optional uint32 penalty = 3; + } + + optional fixed32 pop_id = 1; + optional uint32 default_front_ping_ms = 2; + optional uint32 cluster_penalty = 4; + repeated .CMsgSteamDatagramClientPingSampleReply.POP.AltAddress alt_addresses = 7; + optional uint32 default_e2e_ping_ms = 3; + optional uint32 default_e2e_score = 5; + optional fixed32 p2p_via_peer_relay_pop_id = 6; + optional uint32 best_dc_ping_ms = 9; + optional uint32 best_dc_score = 10; + optional fixed32 best_dc_via_relay_pop_id = 11; + optional uint32 default_dc_ping_ms = 12; + optional uint32 default_dc_score = 13; + optional fixed32 default_dc_via_relay_pop_id = 14; + optional uint32 test_dc_ping_ms = 15; + optional uint32 test_dc_score = 16; + optional fixed32 test_dc_via_relay_pop_id = 17; + } + + message LegacyDataCenter { + optional fixed32 data_center_id = 1; + optional fixed32 best_dc_via_relay_pop_id = 2; + optional uint32 best_dc_ping_ms = 3; + } + + optional fixed32 connection_id = 1; + optional bool relay_override_active = 5; + optional .CMsgTOSTreatment tos = 6; + repeated .CMsgSteamDatagramClientPingSampleReply.POP pops = 2; + repeated .CMsgSteamDatagramClientPingSampleReply.LegacyDataCenter legacy_data_centers = 3; +} + +message CMsgSteamDatagramClientSwitchedPrimary { + message RouterQuality { + optional uint32 score = 1; + optional uint32 front_ping = 2; + optional uint32 back_ping = 3; + optional uint32 seconds_until_down = 4; + } + + optional fixed32 connection_id = 1; + optional fixed32 from_ip = 2; + optional uint32 from_port = 3; + optional fixed32 from_router_cluster = 4; + optional uint32 from_active_time = 5; + optional uint32 from_active_packets_recv = 6; + optional string from_dropped_reason = 7; + optional uint32 gap_ms = 8; + optional .CMsgSteamDatagramClientSwitchedPrimary.RouterQuality from_quality_now = 9; + optional .CMsgSteamDatagramClientSwitchedPrimary.RouterQuality to_quality_now = 10; + optional .CMsgSteamDatagramClientSwitchedPrimary.RouterQuality from_quality_then = 11; + optional .CMsgSteamDatagramClientSwitchedPrimary.RouterQuality to_quality_then = 12; +} + +message CMsgSteamDatagramConnectRequest { + optional fixed32 connection_id = 1; + optional fixed64 my_timestamp = 4; + optional uint32 ping_est_ms = 5; + optional uint32 virtual_port = 9; + optional uint32 gameserver_relay_session_id = 2; + optional .CMsgSteamDatagramSessionCryptInfoSigned crypt = 6; + optional .CMsgSteamDatagramCertificateSigned cert = 7; + optional fixed64 routing_secret = 10; + optional fixed64 legacy_client_steam_id = 3; +} + +message CMsgSteamDatagramConnectOK { + optional fixed32 client_connection_id = 1; + optional fixed32 server_connection_id = 7; + optional fixed64 your_timestamp = 3; + optional uint32 delay_time_usec = 4; + optional uint32 gameserver_relay_session_id = 2; + optional .CMsgSteamDatagramSessionCryptInfoSigned crypt = 5; + optional .CMsgSteamDatagramCertificateSigned cert = 6; +} + +message CMsgSteamNetworkingP2PSDRRoutingSummary { + optional uint32 initial_ping = 1; + optional uint32 initial_ping_front_local = 2; + optional uint32 initial_ping_front_remote = 3; + optional uint32 initial_score = 4; + optional fixed32 initial_pop_local = 5; + optional fixed32 initial_pop_remote = 6; + optional uint32 best_ping = 11; + optional uint32 best_ping_front_local = 12; + optional uint32 best_ping_front_remote = 13; + optional uint32 best_score = 14; + optional fixed32 best_pop_local = 15; + optional fixed32 best_pop_remote = 16; + optional uint32 best_time = 17; + optional uint32 negotiation_ms = 7; + optional uint32 selected_seconds = 8; +} + +message CMsgSteamDatagramP2PRoutingSummary { + optional .CMsgSteamNetworkingICESessionSummary ice = 2; + optional .CMsgSteamNetworkingP2PSDRRoutingSummary sdr = 3; +} + +message CMsgSteamDatagramConnectionClosed { + enum ERelayMode { + None = 0; + EndToEnd = 1; + ClosedByPeer = 2; + } + + optional fixed32 to_connection_id = 7; + optional fixed32 from_connection_id = 8; + optional string from_identity_string = 15; + optional .CMsgSteamNetworkingIdentityLegacyBinary legacy_from_identity_binary = 13; + optional fixed64 legacy_from_steam_id = 3; + optional uint32 legacy_gameserver_relay_session_id = 2; + optional fixed32 to_relay_session_id = 9; + optional fixed32 from_relay_session_id = 10; + optional bytes forward_target_relay_routing_token = 11; + optional uint32 forward_target_revision = 12; + optional .CMsgSteamDatagramConnectionClosed.ERelayMode relay_mode = 4 [default = None]; + optional string debug = 5; + optional uint32 reason_code = 6; + optional fixed64 routing_secret = 14; + optional bool not_primary_session = 16; + optional bool not_primary_transport = 19; + optional bool relay_override_active = 22; + optional .CMsgSteamDatagramConnectionQuality quality_relay = 17; + optional .CMsgSteamDatagramConnectionQuality quality_e2e = 18; + optional .CMsgSteamDatagramP2PRoutingSummary p2p_routing_summary = 21; +} + +message CMsgSteamDatagramNoConnection { + optional fixed32 to_connection_id = 5; + optional fixed32 from_connection_id = 6; + optional uint32 legacy_gameserver_relay_session_id = 2; + optional fixed32 to_relay_session_id = 9; + optional fixed32 from_relay_session_id = 10; + optional string from_identity_string = 7; + optional fixed64 legacy_from_steam_id = 3; + optional bool end_to_end = 4; + optional bool not_primary_session = 12; + optional bool not_primary_transport = 15; + optional bool relay_override_active = 17; + optional .CMsgSteamDatagramConnectionQuality quality_relay = 13; + optional .CMsgSteamDatagramConnectionQuality quality_e2e = 14; + optional .CMsgSteamDatagramP2PRoutingSummary p2p_routing_summary = 16; + optional fixed64 routing_secret = 11; + optional fixed32 dummy_pad = 1023; +} + +message CMsgSteamDatagramGameserverSessionRequest { + optional bytes ticket = 1; + optional fixed32 challenge_time = 3; + optional fixed64 challenge = 4; + optional fixed32 client_connection_id = 5; + optional fixed32 server_connection_id = 8; + optional uint64 network_config_version = 6; + optional uint32 protocol_version = 7; + optional string platform = 9; + optional string build = 10; + optional string dev_gameserver_identity = 100; + optional .CMsgSteamDatagramCertificateSigned dev_client_cert = 101; +} + +message CMsgSteamDatagramGameserverSessionEstablished { + optional fixed32 connection_id = 1; + optional string gameserver_identity_string = 2; + optional uint32 seconds_until_shutdown = 4; + optional uint32 seq_num_r2c = 6; + optional bytes dummy_legacy_identity_binary = 7; + optional fixed64 legacy_gameserver_steamid = 3; +} + +message CMsgSteamDatagramConnectionStatsClientToRouter { + enum Flags { + ACK_REQUEST_RELAY = 1; + ACK_REQUEST_E2E = 2; + ACK_REQUEST_IMMEDIATE = 4; + NOT_PRIMARY_SESSION = 8; + CLIENT_RELAY_OVERRIDE = 32; + } + + optional .CMsgSteamDatagramConnectionQuality quality_relay = 1; + optional .CMsgSteamDatagramConnectionQuality quality_e2e = 2; + repeated fixed32 ack_relay = 4; + repeated fixed32 legacy_ack_e2e = 5; + optional uint32 flags = 6; + optional fixed32 client_connection_id = 8; + optional uint32 seq_num_c2r = 9; + optional uint32 seq_num_e2e = 10; +} + +message CMsgSteamDatagramConnectionStatsRouterToClient { + enum Flags { + ACK_REQUEST_RELAY = 1; + ACK_REQUEST_E2E = 2; + ACK_REQUEST_IMMEDIATE = 4; + } + + optional .CMsgSteamDatagramConnectionQuality quality_relay = 1; + optional .CMsgSteamDatagramConnectionQuality quality_e2e = 2; + optional uint32 seconds_until_shutdown = 6; + optional fixed32 migrate_request_ip = 10; + optional uint32 migrate_request_port = 11; + optional uint32 scoring_penalty_relay_cluster = 12; + repeated fixed32 ack_relay = 13; + repeated fixed32 legacy_ack_e2e = 14; + optional uint32 flags = 15; + optional fixed32 client_connection_id = 7; + optional uint32 seq_num_r2c = 8; + optional uint32 seq_num_e2e = 9; +} + +message CMsgSteamDatagramConnectionStatsRouterToServer { + enum Flags { + ACK_REQUEST_RELAY = 1; + ACK_REQUEST_E2E = 2; + ACK_REQUEST_IMMEDIATE = 4; + } + + optional .CMsgSteamDatagramConnectionQuality quality_relay = 1; + optional .CMsgSteamDatagramConnectionQuality quality_e2e = 2; + repeated fixed32 ack_relay = 10; + repeated fixed32 legacy_ack_e2e = 11; + optional uint32 flags = 12; + optional uint32 seq_num_r2s = 5; + optional uint32 seq_num_e2e = 6; + optional string client_identity_string = 15; + optional fixed64 legacy_client_steam_id = 7; + optional uint32 relay_session_id = 8; + optional fixed32 client_connection_id = 9; + optional fixed32 server_connection_id = 13; + optional fixed64 routing_secret = 14; +} + +message CMsgSteamDatagramConnectionStatsServerToRouter { + enum Flags { + ACK_REQUEST_RELAY = 1; + ACK_REQUEST_E2E = 2; + ACK_REQUEST_IMMEDIATE = 4; + } + + optional .CMsgSteamDatagramConnectionQuality quality_relay = 1; + optional .CMsgSteamDatagramConnectionQuality quality_e2e = 2; + repeated fixed32 ack_relay = 8; + repeated fixed32 legacy_ack_e2e = 9; + optional uint32 flags = 10; + optional uint32 seq_num_s2r = 3; + optional uint32 seq_num_e2e = 4; + optional uint32 relay_session_id = 6; + optional fixed32 client_connection_id = 7; + optional fixed32 server_connection_id = 11; +} + +message CMsgSteamDatagramP2PSessionRequestBody { + message EncryptedData { + optional string peer_identity_string = 1; + } + + optional fixed32 challenge_time = 1; + optional fixed64 challenge = 2; + optional fixed32 client_connection_id = 3; + optional fixed64 legacy_peer_steam_id = 4; + optional string peer_identity_string = 11; + optional fixed32 peer_connection_id = 5; + optional bytes encrypted_data = 14; + optional uint32 encryption_your_public_key_lead_byte = 15; + optional bytes encryption_my_ephemeral_public_key = 16; + optional uint32 protocol_version = 8; + optional uint64 network_config_version = 9; + optional string platform = 12; + optional string build = 13; +} + +message CMsgSteamDatagramP2PSessionRequest { + optional .CMsgSteamDatagramCertificateSigned cert = 1; + optional bytes body = 2; + optional bytes signature = 3; +} + +message CMsgSteamDatagramP2PSessionEstablished { + optional fixed32 connection_id = 1; + optional uint32 seconds_until_shutdown = 3; + optional bytes relay_routing_token = 4; + optional uint32 seq_num_r2c = 5; +} + +message CMsgSteamDatagramConnectionStatsP2PClientToRouter { + enum Flags { + ACK_REQUEST_RELAY = 1; + ACK_REQUEST_E2E = 2; + ACK_REQUEST_IMMEDIATE = 4; + NOT_PRIMARY_SESSION = 8; + NOT_PRIMARY_TRANSPORT_E2E = 16; + CLIENT_RELAY_OVERRIDE = 32; + } + + optional .CMsgSteamDatagramConnectionQuality quality_relay = 1; + optional .CMsgSteamDatagramConnectionQuality quality_e2e = 2; + optional .CMsgSteamDatagramP2PRoutingSummary p2p_routing_summary = 14; + repeated fixed32 ack_relay = 3; + repeated fixed32 legacy_ack_e2e = 4; + optional uint32 flags = 5; + optional bytes forward_target_relay_routing_token = 6; + optional uint32 forward_target_revision = 7; + optional bytes routes = 8; + optional uint32 ack_peer_routes_revision = 9; + optional fixed32 connection_id = 10; + optional uint32 seq_num_c2r = 11; + optional uint32 seq_num_e2e = 12; +} + +message CMsgSteamDatagramConnectionStatsP2PRouterToClient { + enum Flags { + ACK_REQUEST_RELAY = 1; + ACK_REQUEST_E2E = 2; + ACK_REQUEST_IMMEDIATE = 4; + NOT_PRIMARY_TRANSPORT_E2E = 16; + } + + optional .CMsgSteamDatagramConnectionQuality quality_relay = 1; + optional .CMsgSteamDatagramConnectionQuality quality_e2e = 2; + optional uint32 seconds_until_shutdown = 3; + optional fixed32 migrate_request_ip = 4; + optional uint32 migrate_request_port = 5; + optional uint32 scoring_penalty_relay_cluster = 6; + repeated fixed32 ack_relay = 7; + repeated fixed32 legacy_ack_e2e = 8; + optional uint32 flags = 9; + optional uint32 ack_forward_target_revision = 10; + optional bytes routes = 11; + optional uint32 ack_peer_routes_revision = 12; + optional fixed32 connection_id = 13; + optional uint32 seq_num_r2c = 14; + optional uint32 seq_num_e2e = 15; +} + +message CMsgSteamDatagramP2PBadRouteRouterToClient { + optional fixed32 connection_id = 1; + optional bytes failed_relay_routing_token = 2; + optional uint32 ack_forward_target_revision = 3; + optional fixed64 kludge_pad = 99; +} + +message CMsgSteamDatagramP2PRoutes { + message RelayCluster { + optional fixed32 pop_id = 1; + optional uint32 ping_ms = 2; + optional uint32 score_penalty = 3; + optional bytes session_relay_routing_token = 4; + } + + message Route { + optional fixed32 my_pop_id = 1; + optional fixed32 your_pop_id = 2; + optional uint32 legacy_score = 3; + optional uint32 interior_score = 4; + } + + repeated .CMsgSteamDatagramP2PRoutes.RelayCluster relay_clusters = 1; + repeated .CMsgSteamDatagramP2PRoutes.Route routes = 2; + optional uint32 revision = 3; +} + +message CMsgSteamDatagramSetSecondaryAddressRequest { + optional fixed32 client_main_ip = 1; + optional fixed32 client_main_port = 2; + optional fixed32 client_connection_id = 3; + optional string client_identity = 4; + optional bool request_send_duplication = 5; + optional bytes kludge_pad = 99; +} + +message CMsgSteamDatagramSetSecondaryAddressResult { + optional bool success = 1; + optional string message = 2; +} diff --git a/Protobufs/csgo/steammessages.proto b/Protobufs/csgo/steammessages.proto new file mode 100644 index 0000000..96cdf69 --- /dev/null +++ b/Protobufs/csgo/steammessages.proto @@ -0,0 +1,45 @@ +import "google/protobuf/descriptor.proto"; + +extend .google.protobuf.FieldOptions { + optional bool key_field = 60000 [default = false]; +} + +extend .google.protobuf.MessageOptions { + optional int32 msgpool_soft_limit = 60000 [default = 32]; + optional int32 msgpool_hard_limit = 60001 [default = 384]; +} + +enum GCProtoBufMsgSrc { + GCProtoBufMsgSrc_Unspecified = 0; + GCProtoBufMsgSrc_FromSystem = 1; + GCProtoBufMsgSrc_FromSteamID = 2; + GCProtoBufMsgSrc_FromGC = 3; + GCProtoBufMsgSrc_ReplySystem = 4; +} + +message CMsgProtoBufHeader { + option (msgpool_soft_limit) = 256; + option (msgpool_hard_limit) = 1024; + + optional fixed64 client_steam_id = 1; + optional int32 client_session_id = 2; + optional uint32 source_app_id = 3; + optional fixed64 job_id_source = 10 [default = 18446744073709551615]; + optional fixed64 job_id_target = 11 [default = 18446744073709551615]; + optional string target_job_name = 12; + optional int32 eresult = 13 [default = 2]; + optional string error_message = 14; + optional uint32 ip = 15; + optional .GCProtoBufMsgSrc gc_msg_src = 200 [default = GCProtoBufMsgSrc_Unspecified]; + optional uint32 gc_dir_index_source = 201; +} + +message CChinaAgreementSessions_StartAgreementSessionInGame_Request { + optional uint32 appid = 1; + optional fixed64 steamid = 2; + optional string client_ipaddress = 3; +} + +message CChinaAgreementSessions_StartAgreementSessionInGame_Response { + optional string agreement_url = 1; +} diff --git a/Protobufs/csgo/steammessages_base.proto b/Protobufs/csgo/steammessages_base.proto new file mode 100644 index 0000000..a2bbad4 --- /dev/null +++ b/Protobufs/csgo/steammessages_base.proto @@ -0,0 +1,332 @@ +import "google/protobuf/descriptor.proto"; + +option optimize_for = SPEED; +option cc_generic_services = true; +option (force_php_generation) = true; + +extend .google.protobuf.MessageOptions { + optional int32 msgpool_soft_limit = 50000 [default = 32]; + optional int32 msgpool_hard_limit = 50001 [default = 384]; +} + +extend .google.protobuf.FileOptions { + optional bool force_php_generation = 50000 [default = false]; +} + +extend .google.protobuf.FieldOptions { + optional bool php_output_always_number = 50020 [default = false]; + optional bool allow_field_named_steam_id = 50024 [default = false]; +} + +enum EBanContentCheckResult { + k_EBanContentCheckResult_NotScanned = 0; + k_EBanContentCheckResult_Reset = 1; + k_EBanContentCheckResult_NeedsChecking = 2; + k_EBanContentCheckResult_VeryUnlikely = 5; + k_EBanContentCheckResult_Unlikely = 30; + k_EBanContentCheckResult_Possible = 50; + k_EBanContentCheckResult_Likely = 75; + k_EBanContentCheckResult_VeryLikely = 100; +} + +enum EProtoClanEventType { + k_EClanOtherEvent = 1; + k_EClanGameEvent = 2; + k_EClanPartyEvent = 3; + k_EClanMeetingEvent = 4; + k_EClanSpecialCauseEvent = 5; + k_EClanMusicAndArtsEvent = 6; + k_EClanSportsEvent = 7; + k_EClanTripEvent = 8; + k_EClanChatEvent = 9; + k_EClanGameReleaseEvent = 10; + k_EClanBroadcastEvent = 11; + k_EClanSmallUpdateEvent = 12; + k_EClanPreAnnounceMajorUpdateEvent = 13; + k_EClanMajorUpdateEvent = 14; + k_EClanDLCReleaseEvent = 15; + k_EClanFutureReleaseEvent = 16; + k_EClanESportTournamentStreamEvent = 17; + k_EClanDevStreamEvent = 18; + k_EClanFamousStreamEvent = 19; + k_EClanGameSalesEvent = 20; + k_EClanGameItemSalesEvent = 21; + k_EClanInGameBonusXPEvent = 22; + k_EClanInGameLootEvent = 23; + k_EClanInGamePerksEvent = 24; + k_EClanInGameChallengeEvent = 25; + k_EClanInGameContestEvent = 26; + k_EClanIRLEvent = 27; + k_EClanNewsEvent = 28; + k_EClanBetaReleaseEvent = 29; + k_EClanInGameContentReleaseEvent = 30; + k_EClanFreeTrial = 31; + k_EClanSeasonRelease = 32; + k_EClanSeasonUpdate = 33; + k_EClanCrosspostEvent = 34; + k_EClanInGameEventGeneral = 35; +} + +enum PartnerEventNotificationType { + k_EEventStart = 0; + k_EEventBroadcastStart = 1; + k_EEventMatchStart = 2; + k_EEventPartnerMaxType = 3; +} + +message CMsgIPAddress { + oneof ip { + fixed32 v4 = 1; + bytes v6 = 2; + } +} + +message CMsgIPAddressBucket { + optional .CMsgIPAddress original_ip_address = 1; + optional fixed64 bucket = 2; +} + +message CMsgGCRoutingProtoBufHeader { + optional uint64 dst_gcid_queue = 1; + optional uint32 dst_gc_dir_index = 2; +} + +message CMsgProtoBufHeader { + enum ESessionDisposition { + k_ESessionDispositionNormal = 0; + k_ESessionDispositionDisconnect = 1; + } + + optional fixed64 steamid = 1; + optional int32 client_sessionid = 2; + optional uint32 routing_appid = 3; + optional fixed64 jobid_source = 10 [default = 18446744073709551615]; + optional fixed64 jobid_target = 11 [default = 18446744073709551615]; + optional string target_job_name = 12; + optional int32 seq_num = 24; + optional int32 eresult = 13 [default = 2]; + optional string error_message = 14; + optional uint32 auth_account_flags = 16; + optional uint32 token_source = 22; + optional bool admin_spoofing_user = 23; + optional int32 transport_error = 17 [default = 1]; + optional uint64 messageid = 18 [default = 18446744073709551615]; + optional uint32 publisher_group_id = 19; + optional uint32 sysid = 20; + optional uint64 trace_tag = 21; + optional uint32 webapi_key_id = 25; + optional bool is_from_external_source = 26; + repeated uint32 forward_to_sysid = 27; + optional uint32 cm_sysid = 28; + optional uint32 launcher_type = 31 [default = 0]; + optional uint32 realm = 32 [default = 0]; + optional int32 timeout_ms = 33 [default = -1]; + optional string debug_source = 34; + optional uint32 debug_source_string_index = 35; + optional uint64 token_id = 36; + optional .CMsgGCRoutingProtoBufHeader routing_gc = 37; + optional .CMsgProtoBufHeader.ESessionDisposition session_disposition = 38 [default = k_ESessionDispositionNormal]; + optional string wg_token = 39; + optional string webui_auth_key = 40; + + oneof ip_addr { + uint32 ip = 15; + bytes ip_v6 = 29; + } +} + +message CMsgMulti { + optional uint32 size_unzipped = 1; + optional bytes message_body = 2; +} + +message CMsgProtobufWrapped { + optional bytes message_body = 1; +} + +message CMsgAuthTicket { + optional uint32 estate = 1; + optional uint32 eresult = 2 [default = 2]; + optional fixed64 steamid = 3; + optional fixed64 gameid = 4; + optional uint32 h_steam_pipe = 5; + optional uint32 ticket_crc = 6; + optional bytes ticket = 7; + optional bytes server_secret = 8; + optional uint32 ticket_type = 9; +} + +message CCDDBAppDetailCommon { + optional uint32 appid = 1; + optional string name = 2; + optional string icon = 3; + optional bool tool = 6; + optional bool demo = 7; + optional bool media = 8; + optional bool community_visible_stats = 9; + optional string friendly_name = 10; + optional string propagation = 11; + optional bool has_adult_content = 12; + optional bool is_visible_in_steam_china = 13; + optional uint32 app_type = 14; + optional bool has_adult_content_sex = 15; + optional bool has_adult_content_violence = 16; + repeated uint32 content_descriptorids = 17; +} + +message CMsgAppRights { + optional bool edit_info = 1; + optional bool publish = 2; + optional bool view_error_data = 3; + optional bool download = 4; + optional bool upload_cdkeys = 5; + optional bool generate_cdkeys = 6; + optional bool view_financials = 7; + optional bool manage_ceg = 8; + optional bool manage_signing = 9; + optional bool manage_cdkeys = 10; + optional bool edit_marketing = 11; + optional bool economy_support = 12; + optional bool economy_support_supervisor = 13; + optional bool manage_pricing = 14; + optional bool broadcast_live = 15; + optional bool view_marketing_traffic = 16; + optional bool edit_store_display_content = 17; +} + +message CCuratorPreferences { + optional uint32 supported_languages = 1; + optional bool platform_windows = 2; + optional bool platform_mac = 3; + optional bool platform_linux = 4; + optional bool vr_content = 5; + optional bool adult_content_violence = 6; + optional bool adult_content_sex = 7; + optional uint32 timestamp_updated = 8; + repeated uint32 tagids_curated = 9; + repeated uint32 tagids_filtered = 10; + optional string website_title = 11; + optional string website_url = 12; + optional string discussion_url = 13; + optional bool show_broadcast = 14; +} + +message CLocalizationToken { + optional uint32 language = 1; + optional string localized_string = 2; +} + +message CClanEventUserNewsTuple { + optional uint32 clanid = 1; + optional fixed64 event_gid = 2; + optional fixed64 announcement_gid = 3; + optional uint32 rtime_start = 4; + optional uint32 rtime_end = 5; + optional uint32 priority_score = 6; + optional uint32 type = 7; + optional uint32 clamp_range_slot = 8; + optional uint32 appid = 9; + optional uint32 rtime32_last_modified = 10; +} + +message CClanMatchEventByRange { + optional uint32 rtime_before = 1; + optional uint32 rtime_after = 2; + optional uint32 qualified = 3; + repeated .CClanEventUserNewsTuple events = 4; +} + +message CCommunity_ClanAnnouncementInfo { + optional uint64 gid = 1; + optional uint64 clanid = 2; + optional uint64 posterid = 3; + optional string headline = 4; + optional uint32 posttime = 5; + optional uint32 updatetime = 6; + optional string body = 7; + optional int32 commentcount = 8; + repeated string tags = 9; + optional int32 language = 10; + optional bool hidden = 11; + optional fixed64 forum_topic_id = 12; + optional fixed64 event_gid = 13; + optional int32 voteupcount = 14; + optional int32 votedowncount = 15; + optional .EBanContentCheckResult ban_check_result = 16 [default = k_EBanContentCheckResult_NotScanned]; + optional bool banned = 17; +} + +message CClanEventData { + optional fixed64 gid = 1; + optional fixed64 clan_steamid = 2; + optional string event_name = 3; + optional .EProtoClanEventType event_type = 4 [default = k_EClanOtherEvent]; + optional uint32 appid = 5; + optional string server_address = 6; + optional string server_password = 7; + optional uint32 rtime32_start_time = 8; + optional uint32 rtime32_end_time = 9; + optional int32 comment_count = 10; + optional fixed64 creator_steamid = 11; + optional fixed64 last_update_steamid = 12; + optional string event_notes = 13; + optional string jsondata = 14; + optional .CCommunity_ClanAnnouncementInfo announcement_body = 15; + optional bool published = 16; + optional bool hidden = 17; + optional uint32 rtime32_visibility_start = 18; + optional uint32 rtime32_visibility_end = 19; + optional uint32 broadcaster_accountid = 20; + optional uint32 follower_count = 21; + optional uint32 ignore_count = 22; + optional fixed64 forum_topic_id = 23; + optional uint32 rtime32_last_modified = 24; + optional fixed64 news_post_gid = 25; + optional uint32 rtime_mod_reviewed = 26; + optional uint32 featured_app_tagid = 27; + repeated uint32 referenced_appids = 28; + optional uint32 build_id = 29; + optional string build_branch = 30; +} + +message CBilling_Address { + optional string first_name = 1; + optional string last_name = 2; + optional string address1 = 3; + optional string address2 = 4; + optional string city = 5; + optional string us_state = 6; + optional string country_code = 7; + optional string postcode = 8; + optional int32 zip_plus4 = 9; + optional string phone = 10; +} + +message CPackageReservationStatus { + optional uint32 packageid = 1; + optional int32 reservation_state = 2; + optional int32 queue_position = 3; + optional int32 total_queue_size = 4; + optional string reservation_country_code = 5; + optional bool expired = 6; + optional uint32 time_expires = 7; + optional uint32 time_reserved = 8; +} + +message CMsgKeyValuePair { + optional string name = 1; + optional string value = 2; +} + +message CMsgKeyValueSet { + repeated .CMsgKeyValuePair pairs = 1; +} + +message UserContentDescriptorPreferences { + message ContentDescriptor { + optional uint32 content_descriptorid = 1; + optional uint32 timestamp_added = 2; + } + + repeated .UserContentDescriptorPreferences.ContentDescriptor content_descriptors_to_exclude = 1; +} diff --git a/Protobufs/csgo/steammessages_cloud.steamworkssdk.proto b/Protobufs/csgo/steammessages_cloud.steamworkssdk.proto new file mode 100644 index 0000000..7e4e759 --- /dev/null +++ b/Protobufs/csgo/steammessages_cloud.steamworkssdk.proto @@ -0,0 +1,68 @@ +import "steammessages_unified_base.steamworkssdk.proto"; + +message CCloud_GetUploadServerInfo_Request { + optional uint32 appid = 1 [(description) = "App ID to which a file will be uploaded to."]; +} + +message CCloud_GetUploadServerInfo_Response { + optional string server_url = 1; +} + +message CCloud_GetFileDetails_Request { + optional uint64 ugcid = 1 [(description) = "ID of the Cloud file to get details for."]; + optional uint32 appid = 2 [(description) = "App ID the file belongs to."]; +} + +message CCloud_UserFile { + optional uint32 appid = 1; + optional uint64 ugcid = 2; + optional string filename = 3; + optional uint64 timestamp = 4; + optional uint32 file_size = 5; + optional string url = 6; + optional fixed64 steamid_creator = 7; +} + +message CCloud_GetFileDetails_Response { + optional .CCloud_UserFile details = 1; +} + +message CCloud_EnumerateUserFiles_Request { + optional uint32 appid = 1 [(description) = "App ID to enumerate the files of."]; + optional bool extended_details = 2 [(description) = "(Optional) Get extended details back on the files found. Defaults to only returned the app Id and UGC Id of the files found."]; + optional uint32 count = 3 [(description) = "(Optional) Maximum number of results to return on this call. Defaults to a maximum of 500 files returned."]; + optional uint32 start_index = 4 [(description) = "(Optional) Starting index to begin enumeration at. Defaults to the beginning of the list."]; +} + +message CCloud_EnumerateUserFiles_Response { + repeated .CCloud_UserFile files = 1; + optional uint32 total_files = 2; +} + +message CCloud_Delete_Request { + optional string filename = 1; + optional uint32 appid = 2 [(description) = "App ID the file belongs to."]; +} + +message CCloud_Delete_Response { +} + +service Cloud { + option (service_description) = "A service for Steam Cloud operations."; + + rpc GetUploadServerInfo (.CCloud_GetUploadServerInfo_Request) returns (.CCloud_GetUploadServerInfo_Response) { + option (method_description) = "Returns the URL of the proper cloud server for a user."; + } + + rpc GetFileDetails (.CCloud_GetFileDetails_Request) returns (.CCloud_GetFileDetails_Response) { + option (method_description) = "Returns details on a Cloud file."; + } + + rpc EnumerateUserFiles (.CCloud_EnumerateUserFiles_Request) returns (.CCloud_EnumerateUserFiles_Response) { + option (method_description) = "Enumerates Cloud files for a user of a given app ID. Returns up to 500 files at a time."; + } + + rpc Delete (.CCloud_Delete_Request) returns (.CCloud_Delete_Response) { + option (method_description) = "Deletes a file from the user's cloud."; + } +} diff --git a/Protobufs/csgo/steammessages_gamenetworkingui.proto b/Protobufs/csgo/steammessages_gamenetworkingui.proto new file mode 100644 index 0000000..e6b7029 --- /dev/null +++ b/Protobufs/csgo/steammessages_gamenetworkingui.proto @@ -0,0 +1,61 @@ +import "steamnetworkingsockets_messages.proto"; +import "steamdatagram_messages_sdr.proto"; + +option optimize_for = SPEED; +option cc_generic_services = true; + +message CGameNetworkingUI_GlobalState { +} + +message CGameNetworkingUI_ConnectionState { + optional string connection_key = 1; + optional uint32 appid = 2; + optional fixed32 connection_id_local = 3; + optional string identity_local = 4; + optional string identity_remote = 5; + optional uint32 connection_state = 10; + optional uint32 start_time = 12; + optional uint32 close_time = 13; + optional uint32 close_reason = 14; + optional string close_message = 15; + optional string status_loc_token = 16; + optional uint32 transport_kind = 20; + optional string sdrpopid_local = 21; + optional string sdrpopid_remote = 22; + optional string address_remote = 23; + optional .CMsgSteamDatagramP2PRoutingSummary p2p_routing = 24; + optional uint32 ping_interior = 25; + optional uint32 ping_remote_front = 26; + optional uint32 ping_default_internet_route = 27; + optional .CMsgSteamDatagramConnectionQuality e2e_quality_local = 30; + optional .CMsgSteamDatagramConnectionQuality e2e_quality_remote = 31; + optional uint64 e2e_quality_remote_instantaneous_time = 32; + optional uint64 e2e_quality_remote_lifetime_time = 33; + optional .CMsgSteamDatagramConnectionQuality front_quality_local = 40; + optional .CMsgSteamDatagramConnectionQuality front_quality_remote = 41; + optional uint64 front_quality_remote_instantaneous_time = 42; + optional uint64 front_quality_remote_lifetime_time = 43; +} + +message CGameNetworkingUI_Message { + repeated .CGameNetworkingUI_ConnectionState connection_state = 1; +} + +message CGameNetworkingUI_ConnectionSummary { + optional uint32 transport_kind = 1; + optional uint32 connection_state = 8; + optional string sdrpop_local = 2; + optional string sdrpop_remote = 3; + optional uint32 ping_ms = 4; + optional float packet_loss = 5; + optional uint32 ping_default_internet_route = 6; + optional bool ip_was_shared = 7; +} + +message CGameNetworkingUI_AppSummary { + optional uint32 appid = 1; + optional bool ip_was_shared_with_friend = 10; + optional bool ip_was_shared_with_nonfriend = 11; + optional uint32 active_connections = 20; + optional .CGameNetworkingUI_ConnectionSummary main_cxn = 30; +} diff --git a/Protobufs/csgo/steammessages_helprequest.steamworkssdk.proto b/Protobufs/csgo/steammessages_helprequest.steamworkssdk.proto new file mode 100644 index 0000000..bc9ec35 --- /dev/null +++ b/Protobufs/csgo/steammessages_helprequest.steamworkssdk.proto @@ -0,0 +1,22 @@ +import "steammessages_unified_base.steamworkssdk.proto"; + +option cc_generic_services = true; + +message CHelpRequestLogs_UploadUserApplicationLog_Request { + optional uint32 appid = 1; + optional string log_type = 2; + optional string version_string = 3; + optional string log_contents = 4; +} + +message CHelpRequestLogs_UploadUserApplicationLog_Response { + optional uint64 id = 1; +} + +service HelpRequestLogs { + option (service_description) = "Service for dealing with user-submitted logs"; + + rpc UploadUserApplicationLog (.CHelpRequestLogs_UploadUserApplicationLog_Request) returns (.CHelpRequestLogs_UploadUserApplicationLog_Response) { + option (method_description) = "User uploading application logs"; + } +} diff --git a/Protobufs/csgo/steammessages_oauth.steamworkssdk.proto b/Protobufs/csgo/steammessages_oauth.steamworkssdk.proto new file mode 100644 index 0000000..ee6449d --- /dev/null +++ b/Protobufs/csgo/steammessages_oauth.steamworkssdk.proto @@ -0,0 +1,18 @@ +import "steammessages_unified_base.steamworkssdk.proto"; + +message COAuthToken_ImplicitGrantNoPrompt_Request { + optional string clientid = 1 [(description) = "Client ID for which to count the number of issued tokens"]; +} + +message COAuthToken_ImplicitGrantNoPrompt_Response { + optional string access_token = 1 [(description) = "OAuth Token, granted on success"]; + optional string redirect_uri = 2 [(description) = "Redirection URI provided during client registration."]; +} + +service OAuthToken { + option (service_description) = "Service containing methods to manage OAuth tokens"; + + rpc ImplicitGrantNoPrompt (.COAuthToken_ImplicitGrantNoPrompt_Request) returns (.COAuthToken_ImplicitGrantNoPrompt_Response) { + option (method_description) = "Grants an implicit OAuth token (grant type 'token') for the specified client ID on behalf of a user without prompting"; + } +} diff --git a/Protobufs/csgo/steammessages_player.steamworkssdk.proto b/Protobufs/csgo/steammessages_player.steamworkssdk.proto new file mode 100644 index 0000000..298c5dd --- /dev/null +++ b/Protobufs/csgo/steammessages_player.steamworkssdk.proto @@ -0,0 +1,254 @@ +import "steammessages_unified_base.steamworkssdk.proto"; + +option cc_generic_services = true; + +enum ENotificationSetting { + k_ENotificationSettingNotifyUseDefault = 0; + k_ENotificationSettingAlways = 1; + k_ENotificationSettingNever = 2; +} + +message CPlayer_GetMutualFriendsForIncomingInvites_Request { +} + +message CPlayer_IncomingInviteMutualFriendList { + optional fixed64 steamid = 1; + repeated uint32 mutual_friend_account_ids = 2; +} + +message CPlayer_GetMutualFriendsForIncomingInvites_Response { + repeated .CPlayer_IncomingInviteMutualFriendList incoming_invite_mutual_friends_lists = 1; +} + +message CPlayer_GetFriendsGameplayInfo_Request { + optional uint32 appid = 1; +} + +message CPlayer_GetFriendsGameplayInfo_Response { + message FriendsGameplayInfo { + optional fixed64 steamid = 1; + optional uint32 minutes_played = 2; + optional uint32 minutes_played_forever = 3; + } + + message OwnGameplayInfo { + optional fixed64 steamid = 1; + optional uint32 minutes_played = 2; + optional uint32 minutes_played_forever = 3; + optional bool in_wishlist = 4; + optional bool owned = 5; + } + + optional .CPlayer_GetFriendsGameplayInfo_Response.OwnGameplayInfo your_info = 1; + repeated .CPlayer_GetFriendsGameplayInfo_Response.FriendsGameplayInfo in_game = 2; + repeated .CPlayer_GetFriendsGameplayInfo_Response.FriendsGameplayInfo played_recently = 3; + repeated .CPlayer_GetFriendsGameplayInfo_Response.FriendsGameplayInfo played_ever = 4; + repeated .CPlayer_GetFriendsGameplayInfo_Response.FriendsGameplayInfo owns = 5; + repeated .CPlayer_GetFriendsGameplayInfo_Response.FriendsGameplayInfo in_wishlist = 6; +} + +message CPlayer_GetGameBadgeLevels_Request { + optional uint32 appid = 1; +} + +message CPlayer_GetGameBadgeLevels_Response { + message Badge { + optional int32 level = 1; + optional int32 series = 2; + optional uint32 border_color = 3; + } + + optional uint32 player_level = 1; + repeated .CPlayer_GetGameBadgeLevels_Response.Badge badges = 2; +} + +message CPlayer_GetLastPlayedTimes_Request { + optional uint32 min_last_played = 1 [(description) = "The most recent last-played time the client already knows about"]; +} + +message CPlayer_GetLastPlayedTimes_Response { + message Game { + optional int32 appid = 1; + optional uint32 last_playtime = 2; + optional int32 playtime_2weeks = 3; + optional int32 playtime_forever = 4; + optional uint32 first_playtime = 5; + } + + repeated .CPlayer_GetLastPlayedTimes_Response.Game games = 1; +} + +message CPlayer_AcceptSSA_Request { +} + +message CPlayer_AcceptSSA_Response { +} + +message CPlayer_GetNicknameList_Request { +} + +message CPlayer_GetNicknameList_Response { + message PlayerNickname { + optional fixed32 accountid = 1; + optional string nickname = 2; + } + + repeated .CPlayer_GetNicknameList_Response.PlayerNickname nicknames = 1; +} + +message CPlayer_GetPerFriendPreferences_Request { +} + +message PerFriendPreferences { + optional fixed32 accountid = 1; + optional string nickname = 2; + optional .ENotificationSetting notifications_showingame = 3 [default = k_ENotificationSettingNotifyUseDefault]; + optional .ENotificationSetting notifications_showonline = 4 [default = k_ENotificationSettingNotifyUseDefault]; + optional .ENotificationSetting notifications_showmessages = 5 [default = k_ENotificationSettingNotifyUseDefault]; + optional .ENotificationSetting sounds_showingame = 6 [default = k_ENotificationSettingNotifyUseDefault]; + optional .ENotificationSetting sounds_showonline = 7 [default = k_ENotificationSettingNotifyUseDefault]; + optional .ENotificationSetting sounds_showmessages = 8 [default = k_ENotificationSettingNotifyUseDefault]; + optional .ENotificationSetting notifications_sendmobile = 9 [default = k_ENotificationSettingNotifyUseDefault]; +} + +message CPlayer_GetPerFriendPreferences_Response { + repeated .PerFriendPreferences preferences = 1; +} + +message CPlayer_SetPerFriendPreferences_Request { + optional .PerFriendPreferences preferences = 1; +} + +message CPlayer_SetPerFriendPreferences_Response { +} + +message CPlayer_AddFriend_Request { + optional fixed64 steamid = 1 [(description) = "Steam ID of user to whom to send a friend invite."]; +} + +message CPlayer_AddFriend_Response { + optional bool invite_sent = 1 [(description) = "True if the operation was successful, false otherwise."]; + optional uint32 friend_relationship = 2 [(description) = "the resulting relationship. Depending on state, may move directly to friends rather than invite sent"]; +} + +message CPlayer_RemoveFriend_Request { + optional fixed64 steamid = 1 [(description) = "Steam ID of friend to remove."]; +} + +message CPlayer_RemoveFriend_Response { + optional uint32 friend_relationship = 1 [(description) = "the resulting relationship"]; +} + +message CPlayer_IgnoreFriend_Request { + optional fixed64 steamid = 1; + optional bool unignore = 2 [(description) = "If set, remove from ignore/block list instead of adding "]; +} + +message CPlayer_IgnoreFriend_Response { + optional uint32 friend_relationship = 1 [(description) = "the resulting relationship"]; +} + +message CPlayer_GetCommunityPreferences_Request { +} + +message CPlayer_CommunityPreferences { + optional bool hide_adult_content_violence = 1 [default = true]; + optional bool hide_adult_content_sex = 2 [default = true]; + optional bool parenthesize_nicknames = 4 [default = false]; + optional uint32 timestamp_updated = 3; +} + +message CPlayer_GetCommunityPreferences_Response { + optional .CPlayer_CommunityPreferences preferences = 1; +} + +message CPlayer_SetCommunityPreferences_Request { + optional .CPlayer_CommunityPreferences preferences = 1; +} + +message CPlayer_SetCommunityPreferences_Response { +} + +message CPlayer_GetNewSteamAnnouncementState_Request { + optional int32 language = 1; +} + +message CPlayer_GetNewSteamAnnouncementState_Response { + optional int32 state = 1; + optional string announcement_headline = 2; + optional string announcement_url = 3; + optional uint32 time_posted = 4; + optional uint64 announcement_gid = 5; +} + +message CPlayer_UpdateSteamAnnouncementLastRead_Request { + optional uint64 announcement_gid = 1; + optional uint32 time_posted = 2; +} + +message CPlayer_UpdateSteamAnnouncementLastRead_Response { +} + +service Player { + option (service_description) = "A service for accessing Steam player data"; + + rpc GetMutualFriendsForIncomingInvites (.CPlayer_GetMutualFriendsForIncomingInvites_Request) returns (.CPlayer_GetMutualFriendsForIncomingInvites_Response) { + option (method_description) = "Get me the mutual friends for each of my pending incoming invites (individuals and clans)."; + } + + rpc GetFriendsGameplayInfo (.CPlayer_GetFriendsGameplayInfo_Request) returns (.CPlayer_GetFriendsGameplayInfo_Response) { + option (method_description) = "Get a list of friends who are playing, have played, own, or want a game"; + } + + rpc GetGameBadgeLevels (.CPlayer_GetGameBadgeLevels_Request) returns (.CPlayer_GetGameBadgeLevels_Response) { + option (method_description) = "Returns the Steam Level of a user, the Badge level for the game, and if it's foil"; + } + + rpc ClientGetLastPlayedTimes (.CPlayer_GetLastPlayedTimes_Request) returns (.CPlayer_GetLastPlayedTimes_Response) { + option (method_description) = "Gets the last-played times for the account"; + } + + rpc AcceptSSA (.CPlayer_AcceptSSA_Request) returns (.CPlayer_AcceptSSA_Response) { + option (method_description) = "User is accepting the SSA"; + } + + rpc GetNicknameList (.CPlayer_GetNicknameList_Request) returns (.CPlayer_GetNicknameList_Response) { + option (method_description) = "Gets the list of nicknames this user has for other users"; + } + + rpc GetPerFriendPreferences (.CPlayer_GetPerFriendPreferences_Request) returns (.CPlayer_GetPerFriendPreferences_Response) { + option (method_description) = "Gets the list of per-friend preferences this user has set for other users"; + } + + rpc SetPerFriendPreferences (.CPlayer_SetPerFriendPreferences_Request) returns (.CPlayer_SetPerFriendPreferences_Response) { + option (method_description) = "Sets the logged in user's per-friend preferences for the given user"; + } + + rpc AddFriend (.CPlayer_AddFriend_Request) returns (.CPlayer_AddFriend_Response) { + option (method_description) = "Invites another Steam user to be a friend"; + } + + rpc RemoveFriend (.CPlayer_RemoveFriend_Request) returns (.CPlayer_RemoveFriend_Response) { + option (method_description) = "Removes a friend or ignores a friend suggestion"; + } + + rpc IgnoreFriend (.CPlayer_IgnoreFriend_Request) returns (.CPlayer_IgnoreFriend_Response) { + option (method_description) = "Blocks or unblocks communication with the user. Despite name, can be a non-friend."; + } + + rpc GetCommunityPreferences (.CPlayer_GetCommunityPreferences_Request) returns (.CPlayer_GetCommunityPreferences_Response) { + option (method_description) = "Returns the player's community preferences"; + } + + rpc SetCommunityPreferences (.CPlayer_SetCommunityPreferences_Request) returns (.CPlayer_SetCommunityPreferences_Response) { + option (method_description) = "Sets the player's community preferences"; + } + + rpc GetNewSteamAnnouncementState (.CPlayer_GetNewSteamAnnouncementState_Request) returns (.CPlayer_GetNewSteamAnnouncementState_Response) { + option (method_description) = "Calculates and returns what to display for UI that renders new steam announcement available"; + } + + rpc UpdateSteamAnnouncementLastRead (.CPlayer_UpdateSteamAnnouncementLastRead_Request) returns (.CPlayer_UpdateSteamAnnouncementLastRead_Response) { + option (method_description) = "Marks latest announcement timestamp read by user"; + } +} diff --git a/Protobufs/csgo/steammessages_publishedfile.steamworkssdk.proto b/Protobufs/csgo/steammessages_publishedfile.steamworkssdk.proto new file mode 100644 index 0000000..96d60af --- /dev/null +++ b/Protobufs/csgo/steammessages_publishedfile.steamworkssdk.proto @@ -0,0 +1,233 @@ +import "steammessages_unified_base.steamworkssdk.proto"; + +message CPublishedFile_Subscribe_Request { + optional uint64 publishedfileid = 1; + optional uint32 list_type = 2; + optional int32 appid = 3; + optional bool notify_client = 4; +} + +message CPublishedFile_Subscribe_Response { +} + +message CPublishedFile_Unsubscribe_Request { + optional uint64 publishedfileid = 1; + optional uint32 list_type = 2; + optional int32 appid = 3; + optional bool notify_client = 4; +} + +message CPublishedFile_Unsubscribe_Response { +} + +message CPublishedFile_Publish_Request { + optional uint32 appid = 1 [(description) = "App Id this file is being published FROM."]; + optional uint32 consumer_appid = 2 [(description) = "App Id this file is being published TO."]; + optional string cloudfilename = 3 [(description) = "Name of the file to publish in the user's cloud."]; + optional string preview_cloudfilename = 4 [(description) = "Name of the file to use as the published file's preview."]; + optional string title = 5 [(description) = "Text title for the published file."]; + optional string file_description = 6 [(description) = "Text description for the published file."]; + optional uint32 file_type = 7 [(description) = "(EWorkshopFileType) Type of Workshop file to publish."]; + optional string consumer_shortcut_name = 8 [(description) = "Shortcut name for the published file."]; + optional string youtube_username = 9 [(description) = "(Optional) User's YouTube account username."]; + optional string youtube_videoid = 10 [(description) = "(Optional) Video Id of a YouTube video for this published file."]; + optional uint32 visibility = 11 [(description) = "(ERemoteStoragePublishedFileVisibility) Visibility of the published file (private, friends, public, etc.)"]; + optional string redirect_uri = 12 [(description) = "(Optional) If supplied, the resulting published file's Id is appended to the URI."]; + repeated string tags = 13 [(description) = "Array of text tags to apply to the published file."]; + optional string collection_type = 14 [(description) = "(Optional) Type of collection the published file represents."]; + optional string game_type = 15 [(description) = "(Optional) Type of game the published file represents."]; + optional string url = 16 [(description) = "(Optional) If this represents a game, this is the URL to that game's page."]; +} + +message CPublishedFile_Publish_Response { + optional uint64 publishedfileid = 1; + optional string redirect_uri = 2; +} + +message CPublishedFile_GetDetails_Request { + repeated fixed64 publishedfileids = 1 [(description) = "Set of published file Ids to retrieve details for."]; + optional bool includetags = 2 [(description) = "If true, return tag information in the returned details."]; + optional bool includeadditionalpreviews = 3 [(description) = "If true, return preview information in the returned details."]; + optional bool includechildren = 4 [(description) = "If true, return children in the returned details."]; + optional bool includekvtags = 5 [(description) = "If true, return key value tags in the returned details."]; + optional bool includevotes = 6 [(description) = "If true, return vote data in the returned details."]; + optional bool short_description = 8 [(description) = "If true, return a short description instead of the full description."]; +} + +message PublishedFileDetails { + message Tag { + optional string tag = 1; + optional bool adminonly = 2; + } + + message Preview { + optional uint64 previewid = 1; + optional uint32 sortorder = 2; + optional string url = 3; + optional uint32 size = 4; + optional string filename = 5; + optional string youtubevideoid = 6; + } + + message Child { + optional uint64 publishedfileid = 1; + optional uint32 sortorder = 2; + optional uint32 file_type = 3; + } + + message KVTag { + optional string key = 1; + optional string value = 2; + } + + message VoteData { + optional float score = 1; + optional uint32 votes_up = 2; + optional uint32 votes_down = 3; + } + + optional uint32 result = 1; + optional uint64 publishedfileid = 2; + optional fixed64 creator = 3; + optional uint32 creator_appid = 4; + optional uint32 consumer_appid = 5; + optional uint32 consumer_shortcutid = 6; + optional string filename = 7; + optional uint64 file_size = 8; + optional uint64 preview_file_size = 9; + optional string file_url = 10; + optional string preview_url = 11; + optional string youtubevideoid = 12; + optional string url = 13; + optional fixed64 hcontent_file = 14; + optional fixed64 hcontent_preview = 15; + optional string title = 16; + optional string file_description = 17; + optional string short_description = 18; + optional uint32 time_created = 19; + optional uint32 time_updated = 20; + optional uint32 visibility = 21; + optional uint32 flags = 22; + optional bool workshop_file = 23; + optional bool workshop_accepted = 24; + optional bool show_subscribe_all = 25; + optional int32 num_comments_developer = 26; + optional int32 num_comments_public = 27; + optional bool banned = 28; + optional string ban_reason = 29; + optional fixed64 banner = 30; + optional bool can_be_deleted = 31; + optional bool incompatible = 32; + optional string app_name = 33; + optional uint32 file_type = 34; + optional bool can_subscribe = 35; + optional uint32 subscriptions = 36; + optional uint32 favorited = 37; + optional uint32 followers = 38; + optional uint32 lifetime_subscriptions = 39; + optional uint32 lifetime_favorited = 40; + optional uint32 lifetime_followers = 41; + optional uint32 views = 42; + optional uint32 image_width = 43; + optional uint32 image_height = 44; + optional string image_url = 45; + optional bool spoiler_tag = 46; + optional uint32 shortcutid = 47; + optional string shortcutname = 48; + optional uint32 num_children = 49; + optional uint32 num_reports = 50; + repeated .PublishedFileDetails.Preview previews = 51; + repeated .PublishedFileDetails.Tag tags = 52; + repeated .PublishedFileDetails.Child children = 53; + repeated .PublishedFileDetails.KVTag kvtags = 54; + optional .PublishedFileDetails.VoteData vote_data = 55; + optional uint32 time_subscribed = 56 [(description) = "Only valid in PublishedFile.GetUserFiles and not normal PublishedFile.GetDetail calls"]; +} + +message CPublishedFile_GetDetails_Response { + repeated .PublishedFileDetails publishedfiledetails = 1; +} + +message CPublishedFile_GetUserFiles_Request { + optional uint32 appid = 1 [(description) = "App Id to retrieve published files from."]; + optional uint32 page = 3 [default = 1, (description) = "(Optional) Starting page for results."]; + optional uint32 numperpage = 4 [default = 1, (description) = "(Optional) The number of results, per page to return."]; + optional string sortmethod = 6 [default = "lastupdated", (description) = "(Optional) Sorting method to use on returned values."]; + optional bool totalonly = 7 [(description) = "(Optional) If true, only return the total number of files that satisfy this query."]; + optional uint32 privacy = 9 [(description) = "(optional) Filter by privacy settings."]; + optional bool ids_only = 10 [(description) = "(Optional) If true, only return the published file ids of files that satisfy this query."]; + repeated string requiredtags = 11 [(description) = "(Optional) Tags that must be present on a published file to satisfy the query."]; + repeated string excludedtags = 12 [(description) = "(Optional) Tags that must NOT be present on a published file to satisfy the query."]; +} + +message CPublishedFile_GetUserFiles_Response { + message App { + optional uint32 appid = 1; + optional string name = 2; + optional uint32 shortcutid = 3; + optional bool private = 4; + } + + optional uint32 total = 1; + optional uint32 startindex = 2; + repeated .PublishedFileDetails publishedfiledetails = 3; + repeated .CPublishedFile_GetUserFiles_Response.App apps = 4; +} + +message CPublishedFile_Update_Request { + optional uint32 appid = 1 [(description) = "App Id this published file belongs to."]; + optional fixed64 publishedfileid = 2 [(description) = "Published file id of the file we'd like update."]; + optional string title = 3 [(description) = "(Optional) Title of the published file."]; + optional string file_description = 4 [(description) = "(Optional) Description of the published file."]; + optional uint32 visibility = 5 [(description) = "(Optional) Visibility of the published file."]; + repeated string tags = 6 [(description) = "(Optional) Set of tags for the published file."]; + optional string filename = 7 [(description) = "(Optional) Filename for the published file."]; + optional string preview_filename = 8 [(description) = "(Optional) Preview filename for the published file."]; +} + +message CPublishedFile_Update_Response { +} + +message CPublishedFile_RefreshVotingQueue_Request { + optional uint32 appid = 1; + optional uint32 matching_file_type = 2 [(description) = "EPublishedFileInfoMatchingFileType"]; + repeated string tags = 3 [(description) = "Include files that have all the tags or any of the tags if match_all_tags is set to false."]; + optional bool match_all_tags = 4 [default = true, (description) = "If true, then files must have all the tags specified. If false, then must have at least one of the tags specified."]; + repeated string excluded_tags = 5 [(description) = "Exclude any files that have any of these tags."]; + optional uint32 desired_queue_size = 6 [(description) = "Desired number of items in the voting queue. May be clamped by the server"]; +} + +message CPublishedFile_RefreshVotingQueue_Response { +} + +service PublishedFile { + option (service_description) = "A service to access published file data"; + + rpc Subscribe (.CPublishedFile_Subscribe_Request) returns (.CPublishedFile_Subscribe_Response) { + option (method_description) = "Subscribes the user to the published file"; + } + + rpc Unsubscribe (.CPublishedFile_Unsubscribe_Request) returns (.CPublishedFile_Unsubscribe_Response) { + option (method_description) = "Unsubscribes the user from the published file"; + } + + rpc Publish (.CPublishedFile_Publish_Request) returns (.CPublishedFile_Publish_Response) { + option (method_description) = "Publishes a clouded user file to the Workshop."; + } + + rpc GetDetails (.CPublishedFile_GetDetails_Request) returns (.CPublishedFile_GetDetails_Response) { + option (method_description) = "Retrieves information about a set of published files."; + } + + rpc GetUserFiles (.CPublishedFile_GetUserFiles_Request) returns (.CPublishedFile_GetUserFiles_Response) { + option (method_description) = "Retrieves files published by a user."; + } + + rpc Update (.CPublishedFile_Update_Request) returns (.CPublishedFile_Update_Response) { + option (method_description) = "Updates information about a published file."; + } + + rpc RefreshVotingQueue (.CPublishedFile_RefreshVotingQueue_Request) returns (.CPublishedFile_RefreshVotingQueue_Response) { + option (method_description) = "Refresh the voting queue for the user"; + } +} diff --git a/Protobufs/csgo/steammessages_unified_base.steamworkssdk.proto b/Protobufs/csgo/steammessages_unified_base.steamworkssdk.proto new file mode 100644 index 0000000..84ab32a --- /dev/null +++ b/Protobufs/csgo/steammessages_unified_base.steamworkssdk.proto @@ -0,0 +1,30 @@ +import "google/protobuf/descriptor.proto"; + +option optimize_for = SPEED; +option cc_generic_services = false; + +extend .google.protobuf.FieldOptions { + optional string description = 50000; +} + +extend .google.protobuf.ServiceOptions { + optional string service_description = 50000; + optional .EProtoExecutionSite service_execution_site = 50008 [default = k_EProtoExecutionSiteUnknown]; +} + +extend .google.protobuf.MethodOptions { + optional string method_description = 50000; +} + +extend .google.protobuf.EnumOptions { + optional string enum_description = 50000; +} + +extend .google.protobuf.EnumValueOptions { + optional string enum_value_description = 50000; +} + +enum EProtoExecutionSite { + k_EProtoExecutionSiteUnknown = 0; + k_EProtoExecutionSiteSteamClient = 3; +} diff --git a/Protobufs/csgo/steamnetworkingsockets_messages.proto b/Protobufs/csgo/steamnetworkingsockets_messages.proto new file mode 100644 index 0000000..0550740 --- /dev/null +++ b/Protobufs/csgo/steamnetworkingsockets_messages.proto @@ -0,0 +1,177 @@ +import "steamnetworkingsockets_messages_certs.proto"; + +option optimize_for = SPEED; +option cc_generic_services = false; + +enum ESteamNetworkingSocketsCipher { + k_ESteamNetworkingSocketsCipher_INVALID = 0; + k_ESteamNetworkingSocketsCipher_NULL = 1; + k_ESteamNetworkingSocketsCipher_AES_256_GCM = 2; +} + +message CMsgSteamDatagramSessionCryptInfo { + enum EKeyType { + INVALID = 0; + CURVE25519 = 1; + } + + optional .CMsgSteamDatagramSessionCryptInfo.EKeyType key_type = 1 [default = INVALID]; + optional bytes key_data = 2; + optional fixed64 nonce = 3; + optional uint32 protocol_version = 4; + repeated .ESteamNetworkingSocketsCipher ciphers = 5; +} + +message CMsgSteamDatagramSessionCryptInfoSigned { + optional bytes info = 1; + optional bytes signature = 2; +} + +message CMsgSteamDatagramDiagnostic { + optional uint32 severity = 1; + optional string text = 2; +} + +message CMsgSteamDatagramLinkInstantaneousStats { + optional uint32 out_packets_per_sec_x10 = 1; + optional uint32 out_bytes_per_sec = 2; + optional uint32 in_packets_per_sec_x10 = 3; + optional uint32 in_bytes_per_sec = 4; + optional uint32 ping_ms = 5; + optional uint32 packets_dropped_pct = 6; + optional uint32 packets_weird_sequence_pct = 7; + optional uint32 peak_jitter_usec = 8; +} + +message CMsgSteamDatagramLinkLifetimeStats { + optional uint32 connected_seconds = 2; + optional uint64 packets_sent = 3; + optional uint64 kb_sent = 4; + optional uint64 packets_recv = 5; + optional uint64 kb_recv = 6; + optional uint64 packets_recv_sequenced = 7; + optional uint64 packets_recv_dropped = 8; + optional uint64 packets_recv_out_of_order = 9; + optional uint64 packets_recv_out_of_order_corrected = 15; + optional uint64 packets_recv_duplicate = 10; + optional uint64 packets_recv_lurch = 11; + repeated uint64 multipath_packets_recv_sequenced = 12; + repeated uint64 multipath_packets_recv_later = 13; + optional uint32 multipath_send_enabled = 14; + optional uint32 quality_histogram_100 = 21; + optional uint32 quality_histogram_99 = 22; + optional uint32 quality_histogram_97 = 23; + optional uint32 quality_histogram_95 = 24; + optional uint32 quality_histogram_90 = 25; + optional uint32 quality_histogram_75 = 26; + optional uint32 quality_histogram_50 = 27; + optional uint32 quality_histogram_1 = 28; + optional uint32 quality_histogram_dead = 29; + optional uint32 quality_ntile_2nd = 30; + optional uint32 quality_ntile_5th = 31; + optional uint32 quality_ntile_25th = 32; + optional uint32 quality_ntile_50th = 33; + optional uint32 ping_histogram_25 = 41; + optional uint32 ping_histogram_50 = 42; + optional uint32 ping_histogram_75 = 43; + optional uint32 ping_histogram_100 = 44; + optional uint32 ping_histogram_125 = 45; + optional uint32 ping_histogram_150 = 46; + optional uint32 ping_histogram_200 = 47; + optional uint32 ping_histogram_300 = 48; + optional uint32 ping_histogram_max = 49; + optional uint32 ping_ntile_5th = 50; + optional uint32 ping_ntile_50th = 51; + optional uint32 ping_ntile_75th = 52; + optional uint32 ping_ntile_95th = 53; + optional uint32 ping_ntile_98th = 54; + optional uint32 jitter_histogram_negligible = 61; + optional uint32 jitter_histogram_1 = 62; + optional uint32 jitter_histogram_2 = 63; + optional uint32 jitter_histogram_5 = 64; + optional uint32 jitter_histogram_10 = 65; + optional uint32 jitter_histogram_20 = 66; +} + +message CMsgSteamDatagramConnectionQuality { + optional .CMsgSteamDatagramLinkInstantaneousStats instantaneous = 1; + optional .CMsgSteamDatagramLinkLifetimeStats lifetime = 2; +} + +message CMsgICECandidate { + optional string candidate = 3; +} + +message CMsgICERendezvous { + message Auth { + optional string pwd_frag = 1; + } + + optional .CMsgICERendezvous.Auth auth = 2; + optional .CMsgICECandidate add_candidate = 1; +} + +message CMsgSteamNetworkingP2PRendezvous { + message ConnectRequest { + optional .CMsgSteamDatagramSessionCryptInfoSigned crypt = 6; + optional .CMsgSteamDatagramCertificateSigned cert = 7; + optional uint32 to_virtual_port = 9; + optional uint32 from_virtual_port = 10; + optional string from_fakeip = 11; + } + + message ConnectOK { + optional .CMsgSteamDatagramSessionCryptInfoSigned crypt = 5; + optional .CMsgSteamDatagramCertificateSigned cert = 6; + } + + message ConnectionClosed { + optional string debug = 5; + optional uint32 reason_code = 6; + } + + message ReliableMessage { + optional .CMsgICERendezvous ice = 1; + } + + message ApplicationMessage { + optional bytes data = 1; + optional uint64 msg_num = 2; + optional uint32 flags = 3; + optional uint32 lane_idx = 4; + } + + optional string from_identity = 8; + optional fixed32 from_connection_id = 9; + optional string to_identity = 10; + optional fixed32 to_connection_id = 1; + optional bytes sdr_routes = 2; + optional uint32 ack_peer_routes_revision = 3; + optional bool ice_enabled = 7; + optional bytes hosted_server_ticket = 14; + optional .CMsgSteamNetworkingP2PRendezvous.ConnectRequest connect_request = 4; + optional .CMsgSteamNetworkingP2PRendezvous.ConnectOK connect_ok = 5; + optional .CMsgSteamNetworkingP2PRendezvous.ConnectionClosed connection_closed = 6; + optional uint32 ack_reliable_msg = 11; + optional uint32 first_reliable_msg = 12; + repeated .CMsgSteamNetworkingP2PRendezvous.ReliableMessage reliable_messages = 13; + repeated .CMsgSteamNetworkingP2PRendezvous.ApplicationMessage application_messages = 15; +} + +message CMsgSteamNetworkingICESessionSummary { + optional uint32 failure_reason_code = 7; + optional uint32 local_candidate_types = 1; + optional uint32 remote_candidate_types = 2; + optional uint32 initial_route_kind = 3; + optional uint32 initial_ping = 4; + optional uint32 initial_score = 6; + optional uint32 negotiation_ms = 5; + optional uint32 best_route_kind = 16; + optional uint32 best_ping = 17; + optional uint32 best_score = 18; + optional uint32 best_time = 19; + optional uint32 selected_seconds = 12; + optional uint32 user_settings = 13; + optional uint32 ice_enable_var = 14; + optional uint32 local_candidate_types_allowed = 15; +} diff --git a/Protobufs/csgo/steamnetworkingsockets_messages_certs.proto b/Protobufs/csgo/steamnetworkingsockets_messages_certs.proto new file mode 100644 index 0000000..6ad2c3f --- /dev/null +++ b/Protobufs/csgo/steamnetworkingsockets_messages_certs.proto @@ -0,0 +1,38 @@ +option optimize_for = SPEED; +option cc_generic_services = false; + +message CMsgSteamNetworkingIdentityLegacyBinary { + optional fixed64 steam_id = 16; + optional bytes generic_bytes = 2; + optional string generic_string = 3; + optional bytes ipv6_and_port = 4; +} + +message CMsgSteamDatagramCertificate { + enum EKeyType { + INVALID = 0; + ED25519 = 1; + } + + optional .CMsgSteamDatagramCertificate.EKeyType key_type = 1 [default = INVALID]; + optional bytes key_data = 2; + optional fixed64 legacy_steam_id = 4; + optional .CMsgSteamNetworkingIdentityLegacyBinary legacy_identity_binary = 11; + optional string identity_string = 12; + repeated fixed32 gameserver_datacenter_ids = 5; + optional fixed32 time_created = 8; + optional fixed32 time_expiry = 9; + repeated uint32 app_ids = 10; + repeated string ip_addresses = 13; +} + +message CMsgSteamDatagramCertificateSigned { + optional bytes cert = 4; + optional fixed64 ca_key_id = 5; + optional bytes ca_signature = 6; + optional bytes private_key_data = 1; +} + +message CMsgSteamDatagramCertificateRequest { + optional .CMsgSteamDatagramCertificate cert = 1; +} diff --git a/Protobufs/csgo/steamnetworkingsockets_messages_udp.proto b/Protobufs/csgo/steamnetworkingsockets_messages_udp.proto new file mode 100644 index 0000000..cc50836 --- /dev/null +++ b/Protobufs/csgo/steamnetworkingsockets_messages_udp.proto @@ -0,0 +1,75 @@ +import "steamnetworkingsockets_messages_certs.proto"; +import "steamnetworkingsockets_messages.proto"; + +option optimize_for = SPEED; +option cc_generic_services = false; + +enum ESteamNetworkingUDPMsgID { + k_ESteamNetworkingUDPMsg_ChallengeRequest = 32; + k_ESteamNetworkingUDPMsg_ChallengeReply = 33; + k_ESteamNetworkingUDPMsg_ConnectRequest = 34; + k_ESteamNetworkingUDPMsg_ConnectOK = 35; + k_ESteamNetworkingUDPMsg_ConnectionClosed = 36; + k_ESteamNetworkingUDPMsg_NoConnection = 37; +} + +message CMsgSteamSockets_UDP_ChallengeRequest { + optional fixed32 connection_id = 1; + optional fixed64 my_timestamp = 3; + optional uint32 protocol_version = 4; +} + +message CMsgSteamSockets_UDP_ChallengeReply { + optional fixed32 connection_id = 1; + optional fixed64 challenge = 2; + optional fixed64 your_timestamp = 3; + optional uint32 protocol_version = 4; +} + +message CMsgSteamSockets_UDP_ConnectRequest { + optional fixed32 client_connection_id = 1; + optional fixed64 challenge = 2; + optional fixed64 my_timestamp = 5; + optional uint32 ping_est_ms = 6; + optional .CMsgSteamDatagramSessionCryptInfoSigned crypt = 7; + optional .CMsgSteamDatagramCertificateSigned cert = 4; + optional uint32 legacy_protocol_version = 8; + optional string identity_string = 10; + optional fixed64 legacy_client_steam_id = 3; + optional .CMsgSteamNetworkingIdentityLegacyBinary legacy_identity_binary = 9; +} + +message CMsgSteamSockets_UDP_ConnectOK { + optional fixed32 client_connection_id = 1; + optional fixed32 server_connection_id = 5; + optional fixed64 your_timestamp = 3; + optional uint32 delay_time_usec = 4; + optional .CMsgSteamDatagramSessionCryptInfoSigned crypt = 7; + optional .CMsgSteamDatagramCertificateSigned cert = 8; + optional string identity_string = 11; + optional fixed64 legacy_server_steam_id = 2; + optional .CMsgSteamNetworkingIdentityLegacyBinary legacy_identity_binary = 10; +} + +message CMsgSteamSockets_UDP_ConnectionClosed { + optional fixed32 to_connection_id = 4; + optional fixed32 from_connection_id = 5; + optional string debug = 2; + optional uint32 reason_code = 3; +} + +message CMsgSteamSockets_UDP_NoConnection { + optional fixed32 from_connection_id = 2; + optional fixed32 to_connection_id = 3; +} + +message CMsgSteamSockets_UDP_Stats { + enum Flags { + ACK_REQUEST_E2E = 2; + ACK_REQUEST_IMMEDIATE = 4; + NOT_PRIMARY_TRANSPORT_E2E = 16; + } + + optional .CMsgSteamDatagramConnectionQuality stats = 1; + optional uint32 flags = 3; +} diff --git a/Protobufs/csgo/te.proto b/Protobufs/csgo/te.proto new file mode 100644 index 0000000..3781bad --- /dev/null +++ b/Protobufs/csgo/te.proto @@ -0,0 +1,259 @@ +import "networkbasetypes.proto"; + +enum ETEProtobufIds { + TE_EffectDispatchId = 400; + TE_ArmorRicochetId = 401; + TE_BeamEntPointId = 402; + TE_BeamEntsId = 403; + TE_BeamPointsId = 404; + TE_BeamRingId = 405; + TE_BSPDecalId = 407; + TE_BubblesId = 408; + TE_BubbleTrailId = 409; + TE_DecalId = 410; + TE_WorldDecalId = 411; + TE_EnergySplashId = 412; + TE_FizzId = 413; + TE_ShatterSurfaceId = 414; + TE_GlowSpriteId = 415; + TE_ImpactId = 416; + TE_MuzzleFlashId = 417; + TE_BloodStreamId = 418; + TE_ExplosionId = 419; + TE_DustId = 420; + TE_LargeFunnelId = 421; + TE_SparksId = 422; + TE_PhysicsPropId = 423; + TE_PlayerDecalId = 424; + TE_ProjectedDecalId = 425; + TE_SmokeId = 426; +} + +message CMsgTEArmorRicochet { + optional .CMsgVector pos = 1; + optional .CMsgVector dir = 2; +} + +message CMsgTEBaseBeam { + optional fixed64 modelindex = 1; + optional fixed64 haloindex = 2; + optional uint32 startframe = 3; + optional uint32 framerate = 4; + optional float life = 5; + optional float width = 6; + optional float endwidth = 7; + optional uint32 fadelength = 8; + optional float amplitude = 9; + optional fixed32 color = 10; + optional uint32 speed = 11; + optional uint32 flags = 12; +} + +message CMsgTEBeamEntPoint { + optional .CMsgTEBaseBeam base = 1; + optional uint32 startentity = 2; + optional uint32 endentity = 3; + optional .CMsgVector start = 4; + optional .CMsgVector end = 5; +} + +message CMsgTEBeamEnts { + optional .CMsgTEBaseBeam base = 1; + optional uint32 startentity = 2; + optional uint32 endentity = 3; +} + +message CMsgTEBeamPoints { + optional .CMsgTEBaseBeam base = 1; + optional .CMsgVector start = 2; + optional .CMsgVector end = 3; +} + +message CMsgTEBeamRing { + optional .CMsgTEBaseBeam base = 1; + optional uint32 startentity = 2; + optional uint32 endentity = 3; +} + +message CMsgTEBSPDecal { + optional .CMsgVector origin = 1; + optional .CMsgVector normal = 2; + optional .CMsgVector saxis = 3; + optional int32 entity = 4 [default = -1]; + optional uint32 index = 5; +} + +message CMsgTEBubbles { + optional .CMsgVector mins = 1; + optional .CMsgVector maxs = 2; + optional float height = 3; + optional uint32 count = 4; + optional float speed = 5; +} + +message CMsgTEBubbleTrail { + optional .CMsgVector mins = 1; + optional .CMsgVector maxs = 2; + optional float waterz = 3; + optional uint32 count = 4; + optional float speed = 5; +} + +message CMsgTEDecal { + optional .CMsgVector origin = 1; + optional .CMsgVector start = 2; + optional int32 entity = 3 [default = -1]; + optional uint32 hitbox = 4; + optional uint32 index = 5; +} + +message CMsgEffectData { + optional .CMsgVector origin = 1; + optional .CMsgVector start = 2; + optional .CMsgVector normal = 3; + optional .CMsgQAngle angles = 4; + optional fixed32 entity = 5 [default = 16777215]; + optional fixed32 otherentity = 6 [default = 16777215]; + optional float scale = 7; + optional float magnitude = 8; + optional float radius = 9; + optional fixed32 surfaceprop = 10; + optional fixed64 effectindex = 11; + optional uint32 damagetype = 12; + optional uint32 material = 13; + optional uint32 hitbox = 14; + optional uint32 color = 15; + optional uint32 flags = 16; + optional int32 attachmentindex = 17; + optional uint32 effectname = 18; + optional uint32 attachmentname = 19; +} + +message CMsgTEEffectDispatch { + optional .CMsgEffectData effectdata = 1; +} + +message CMsgTEEnergySplash { + optional .CMsgVector pos = 1; + optional .CMsgVector dir = 2; + optional bool explosive = 3; +} + +message CMsgTEFizz { + optional int32 entity = 1 [default = -1]; + optional uint32 density = 2; + optional int32 current = 3; +} + +message CMsgTEShatterSurface { + optional .CMsgVector origin = 1; + optional .CMsgQAngle angles = 2; + optional .CMsgVector force = 3; + optional .CMsgVector forcepos = 4; + optional float width = 5; + optional float height = 6; + optional float shardsize = 7; + optional uint32 surfacetype = 8; + optional fixed32 frontcolor = 9; + optional fixed32 backcolor = 10; +} + +message CMsgTEGlowSprite { + optional .CMsgVector origin = 1; + optional float scale = 2; + optional float life = 3; + optional uint32 brightness = 4; +} + +message CMsgTEImpact { + optional .CMsgVector origin = 1; + optional .CMsgVector normal = 2; + optional uint32 type = 3; +} + +message CMsgTEMuzzleFlash { + optional .CMsgVector origin = 1; + optional .CMsgQAngle angles = 2; + optional float scale = 3; + optional uint32 type = 4; +} + +message CMsgTEBloodStream { + optional .CMsgVector origin = 1; + optional .CMsgVector direction = 2; + optional fixed32 color = 3; + optional uint32 amount = 4; +} + +message CMsgTEExplosion { + optional .CMsgVector origin = 1; + optional uint32 framerate = 2; + optional uint32 flags = 3; + optional .CMsgVector normal = 4; + optional uint32 materialtype = 5; + optional uint32 radius = 6; + optional uint32 magnitude = 7; + optional float scale = 8; + optional bool affect_ragdolls = 9; + optional string effect_name = 10; + optional uint32 explosion_type = 11; +} + +message CMsgTEDust { + optional .CMsgVector origin = 1; + optional float size = 2; + optional float speed = 3; + optional .CMsgVector direction = 4; +} + +message CMsgTELargeFunnel { + optional .CMsgVector origin = 1; + optional uint32 reversed = 2; +} + +message CMsgTESparks { + optional .CMsgVector origin = 1; + optional uint32 magnitude = 2; + optional uint32 length = 3; + optional .CMsgVector direction = 4; +} + +message CMsgTEPhysicsProp { + optional .CMsgVector origin = 1; + optional .CMsgVector velocity = 2; + optional .CMsgQAngle angles = 3; + optional fixed32 skin = 4; + optional uint32 flags = 5; + optional uint32 effects = 6; + optional fixed32 color = 7; + optional fixed64 modelindex = 8; + optional uint32 unused_breakmodelsnottomake = 9; + optional float scale = 10; + optional .CMsgVector dmgpos = 11; + optional .CMsgVector dmgdir = 12; + optional int32 dmgtype = 13; +} + +message CMsgTEPlayerDecal { + optional .CMsgVector origin = 1; + optional int32 player = 2 [default = -1]; + optional int32 entity = 3 [default = -1]; +} + +message CMsgTEProjectedDecal { + optional .CMsgVector origin = 1; + optional .CMsgQAngle angles = 2; + optional uint32 index = 3; + optional float distance = 4; +} + +message CMsgTESmoke { + optional .CMsgVector origin = 1; + optional float scale = 2; +} + +message CMsgTEWorldDecal { + optional .CMsgVector origin = 1; + optional .CMsgVector normal = 2; + optional uint32 index = 3; +} diff --git a/Protobufs/csgo/uifontfile_format.proto b/Protobufs/csgo/uifontfile_format.proto new file mode 100644 index 0000000..5602e48 --- /dev/null +++ b/Protobufs/csgo/uifontfile_format.proto @@ -0,0 +1,13 @@ +message CUIFontFilePB { + optional string font_file_name = 1; + optional bytes opentype_font_data = 2; +} + +message CUIFontFilePackagePB { + message CUIEncryptedFontFilePB { + optional bytes encrypted_contents = 1; + } + + required uint32 package_version = 1; + repeated .CUIFontFilePackagePB.CUIEncryptedFontFilePB encrypted_font_files = 2; +} diff --git a/Protobufs/csgo/usercmd.proto b/Protobufs/csgo/usercmd.proto new file mode 100644 index 0000000..e0ffba8 --- /dev/null +++ b/Protobufs/csgo/usercmd.proto @@ -0,0 +1,39 @@ +import "networkbasetypes.proto"; + +message CInButtonStatePB { + optional uint64 buttonstate1 = 1; + optional uint64 buttonstate2 = 2; + optional uint64 buttonstate3 = 3; +} + +message CSubtickMoveStep { + optional uint64 button = 1; + optional bool pressed = 2; + optional float when = 3; + optional float analog_forward_delta = 4; + optional float analog_left_delta = 5; +} + +message CBaseUserCmdPB { + optional int32 legacy_command_number = 1; + optional int32 client_tick = 2; + optional .CInButtonStatePB buttons_pb = 3; + optional .CMsgQAngle viewangles = 4; + optional float forwardmove = 5; + optional float leftmove = 6; + optional float upmove = 7; + optional int32 impulse = 8; + optional int32 weaponselect = 9; + optional int32 random_seed = 10; + optional int32 mousedx = 11; + optional int32 mousedy = 12; + optional uint32 pawn_entity_handle = 14 [default = 16777215]; + repeated .CSubtickMoveStep subtick_moves = 18; + optional bytes move_crc = 19; + optional uint32 consumed_server_angle_changes = 20; + optional int32 cmd_flags = 21; +} + +message CUserCmdBasePB { + optional .CBaseUserCmdPB base = 1; +} diff --git a/Protobufs/csgo/usermessages.proto b/Protobufs/csgo/usermessages.proto new file mode 100644 index 0000000..caebda3 --- /dev/null +++ b/Protobufs/csgo/usermessages.proto @@ -0,0 +1,793 @@ +import "networkbasetypes.proto"; + +enum EBaseUserMessages { + UM_AchievementEvent = 101; + UM_CloseCaption = 102; + UM_CloseCaptionDirect = 103; + UM_CurrentTimescale = 104; + UM_DesiredTimescale = 105; + UM_Fade = 106; + UM_GameTitle = 107; + UM_HudMsg = 110; + UM_HudText = 111; + UM_ColoredText = 113; + UM_RequestState = 114; + UM_ResetHUD = 115; + UM_Rumble = 116; + UM_SayText = 117; + UM_SayText2 = 118; + UM_SayTextChannel = 119; + UM_Shake = 120; + UM_ShakeDir = 121; + UM_WaterShake = 122; + UM_TextMsg = 124; + UM_ScreenTilt = 125; + UM_VoiceMask = 128; + UM_SendAudio = 130; + UM_ItemPickup = 131; + UM_AmmoDenied = 132; + UM_ShowMenu = 134; + UM_CreditsMsg = 135; + UM_CloseCaptionPlaceholder = 142; + UM_CameraTransition = 143; + UM_AudioParameter = 144; + UM_ParticleManager = 145; + UM_HudError = 146; + UM_CustomGameEvent = 148; + UM_AnimGraphUpdate = 149; + UM_HapticsManagerPulse = 150; + UM_HapticsManagerEffect = 151; + UM_CommandQueueState = 152; + UM_UpdateCssClasses = 153; + UM_ServerFrameTime = 154; + UM_LagCompensationError = 155; + UM_RequestDllStatus = 156; + UM_RequestUtilAction = 157; + UM_UtilActionResponse = 158; + UM_DllStatusResponse = 159; + UM_RequestInventory = 160; + UM_InventoryResponse = 161; + UM_RequestDiagnostic = 162; + UM_DiagnosticResponse = 163; + UM_ExtraUserData = 164; + UM_NotifyResponseFound = 165; + UM_PlayResponseConditional = 166; + UM_MAX_BASE = 200; +} + +enum EBaseEntityMessages { + EM_PlayJingle = 136; + EM_ScreenOverlay = 137; + EM_RemoveAllDecals = 138; + EM_PropagateForce = 139; + EM_DoSpark = 140; + EM_FixAngle = 141; +} + +enum eRollType { + ROLL_NONE = -1; + ROLL_STATS = 0; + ROLL_CREDITS = 1; + ROLL_LATE_JOIN_LOGO = 2; + ROLL_OUTTRO = 3; +} + +enum PARTICLE_MESSAGE { + GAME_PARTICLE_MANAGER_EVENT_CREATE = 0; + GAME_PARTICLE_MANAGER_EVENT_UPDATE = 1; + GAME_PARTICLE_MANAGER_EVENT_UPDATE_FORWARD = 2; + GAME_PARTICLE_MANAGER_EVENT_UPDATE_ORIENTATION = 3; + GAME_PARTICLE_MANAGER_EVENT_UPDATE_FALLBACK = 4; + GAME_PARTICLE_MANAGER_EVENT_UPDATE_ENT = 5; + GAME_PARTICLE_MANAGER_EVENT_UPDATE_OFFSET = 6; + GAME_PARTICLE_MANAGER_EVENT_DESTROY = 7; + GAME_PARTICLE_MANAGER_EVENT_DESTROY_INVOLVING = 8; + GAME_PARTICLE_MANAGER_EVENT_RELEASE = 9; + GAME_PARTICLE_MANAGER_EVENT_LATENCY = 10; + GAME_PARTICLE_MANAGER_EVENT_SHOULD_DRAW = 11; + GAME_PARTICLE_MANAGER_EVENT_FROZEN = 12; + GAME_PARTICLE_MANAGER_EVENT_CHANGE_CONTROL_POINT_ATTACHMENT = 13; + GAME_PARTICLE_MANAGER_EVENT_UPDATE_ENTITY_POSITION = 14; + GAME_PARTICLE_MANAGER_EVENT_SET_FOW_PROPERTIES = 15; + GAME_PARTICLE_MANAGER_EVENT_SET_TEXT = 16; + GAME_PARTICLE_MANAGER_EVENT_SET_SHOULD_CHECK_FOW = 17; + GAME_PARTICLE_MANAGER_EVENT_SET_CONTROL_POINT_MODEL = 18; + GAME_PARTICLE_MANAGER_EVENT_SET_CONTROL_POINT_SNAPSHOT = 19; + GAME_PARTICLE_MANAGER_EVENT_SET_TEXTURE_ATTRIBUTE = 20; + GAME_PARTICLE_MANAGER_EVENT_SET_SCENE_OBJECT_GENERIC_FLAG = 21; + GAME_PARTICLE_MANAGER_EVENT_SET_SCENE_OBJECT_TINT_AND_DESAT = 22; + GAME_PARTICLE_MANAGER_EVENT_DESTROY_NAMED = 23; + GAME_PARTICLE_MANAGER_EVENT_SKIP_TO_TIME = 24; + GAME_PARTICLE_MANAGER_EVENT_CAN_FREEZE = 25; + GAME_PARTICLE_MANAGER_EVENT_SET_NAMED_VALUE_CONTEXT = 26; + GAME_PARTICLE_MANAGER_EVENT_UPDATE_TRANSFORM = 27; + GAME_PARTICLE_MANAGER_EVENT_FREEZE_TRANSITION_OVERRIDE = 28; + GAME_PARTICLE_MANAGER_EVENT_FREEZE_INVOLVING = 29; + GAME_PARTICLE_MANAGER_EVENT_ADD_MODELLIST_OVERRIDE_ELEMENT = 30; + GAME_PARTICLE_MANAGER_EVENT_CLEAR_MODELLIST_OVERRIDE = 31; + GAME_PARTICLE_MANAGER_EVENT_CREATE_PHYSICS_SIM = 32; + GAME_PARTICLE_MANAGER_EVENT_DESTROY_PHYSICS_SIM = 33; + GAME_PARTICLE_MANAGER_EVENT_SET_VDATA = 34; +} + +enum EHapticPulseType { + VR_HAND_HAPTIC_PULSE_LIGHT = 0; + VR_HAND_HAPTIC_PULSE_MEDIUM = 1; + VR_HAND_HAPTIC_PULSE_STRONG = 2; +} + +message CUserMessageAchievementEvent { + optional uint32 achievement = 1; +} + +message CUserMessageCloseCaption { + optional fixed32 hash = 1; + optional float duration = 2; + optional bool from_player = 3; + optional int32 ent_index = 4 [default = -1]; +} + +message CUserMessageCloseCaptionDirect { + optional fixed32 hash = 1; + optional float duration = 2; + optional bool from_player = 3; + optional int32 ent_index = 4 [default = -1]; +} + +message CUserMessageCloseCaptionPlaceholder { + optional string string = 1; + optional float duration = 2; + optional bool from_player = 3; + optional int32 ent_index = 4 [default = -1]; +} + +message CUserMessageCurrentTimescale { + optional float current = 1; +} + +message CUserMessageDesiredTimescale { + optional float desired = 1; + optional float acceleration = 2; + optional float minblendrate = 3; + optional float blenddeltamultiplier = 4; +} + +message CUserMessageFade { + optional uint32 duration = 1; + optional uint32 hold_time = 2; + optional uint32 flags = 3; + optional fixed32 color = 4; +} + +message CUserMessageShake { + optional uint32 command = 1; + optional float amplitude = 2; + optional float frequency = 3; + optional float duration = 4; +} + +message CUserMessageShakeDir { + optional .CUserMessageShake shake = 1; + optional .CMsgVector direction = 2; +} + +message CUserMessageWaterShake { + optional uint32 command = 1; + optional float amplitude = 2; + optional float frequency = 3; + optional float duration = 4; +} + +message CUserMessageScreenTilt { + optional uint32 command = 1; + optional bool ease_in_out = 2; + optional .CMsgVector angle = 3; + optional float duration = 4; + optional float time = 5; +} + +message CUserMessageSayText { + optional int32 playerindex = 1 [default = -1]; + optional string text = 2; + optional bool chat = 3; +} + +message CUserMessageSayText2 { + optional int32 entityindex = 1 [default = -1]; + optional bool chat = 2; + optional string messagename = 3; + optional string param1 = 4; + optional string param2 = 5; + optional string param3 = 6; + optional string param4 = 7; +} + +message CUserMessageHudMsg { + optional uint32 channel = 1; + optional float x = 2; + optional float y = 3; + optional fixed32 color1 = 4; + optional fixed32 color2 = 5; + optional uint32 effect = 6; + optional string message = 11; +} + +message CUserMessageHudText { + optional string message = 1; +} + +message CUserMessageTextMsg { + optional uint32 dest = 1; + repeated string param = 2; +} + +message CUserMessageGameTitle { +} + +message CUserMessageResetHUD { +} + +message CUserMessageSendAudio { + optional string soundname = 1; + optional bool stop = 2; +} + +message CUserMessageAudioParameter { + optional uint32 parameter_type = 1; + optional uint32 name_hash_code = 2; + optional float value = 3; + optional uint32 int_value = 4; +} + +message CUserMessageVoiceMask { + repeated uint32 gamerules_masks = 1; + repeated uint32 ban_masks = 2; + optional bool mod_enable = 3; +} + +message CUserMessageRequestState { +} + +message CUserMessageRumble { + optional int32 index = 1; + optional int32 data = 2; + optional int32 flags = 3; +} + +message CUserMessageSayTextChannel { + optional int32 player = 1; + optional int32 channel = 2; + optional string text = 3; +} + +message CUserMessageColoredText { + optional uint32 color = 1; + optional string text = 2; + optional bool reset = 3; + optional int32 context_player_slot = 4 [default = -1]; + optional int32 context_value = 5; + optional int32 context_team_id = 6; +} + +message CUserMessageItemPickup { + optional string itemname = 1; +} + +message CUserMessageAmmoDenied { + optional uint32 ammo_id = 1; +} + +message CUserMessageShowMenu { + optional uint32 validslots = 1; + optional uint32 displaytime = 2; + optional bool needmore = 3; + optional string menustring = 4; +} + +message CUserMessageCreditsMsg { + optional .eRollType rolltype = 1 [default = ROLL_NONE]; + optional float logo_length = 2; +} + +message CEntityMessagePlayJingle { + optional .CEntityMsg entity_msg = 1; +} + +message CEntityMessageScreenOverlay { + optional bool start_effect = 1; + optional .CEntityMsg entity_msg = 2; +} + +message CEntityMessageRemoveAllDecals { + optional bool remove_decals = 1; + optional .CEntityMsg entity_msg = 2; +} + +message CEntityMessagePropagateForce { + optional .CMsgVector impulse = 1; + optional .CEntityMsg entity_msg = 2; +} + +message CEntityMessageDoSpark { + optional .CMsgVector origin = 1; + optional int32 entityindex = 2 [default = -1]; + optional float radius = 3; + optional fixed32 color = 4; + optional uint32 beams = 5; + optional float thick = 6; + optional float duration = 7; + optional .CEntityMsg entity_msg = 8; +} + +message CEntityMessageFixAngle { + optional bool relative = 1; + optional .CMsgQAngle angle = 2; + optional .CEntityMsg entity_msg = 3; +} + +message CUserMessageCameraTransition { + message Transition_DataDriven { + optional string filename = 1; + optional int32 attach_ent_index = 2 [default = -1]; + optional float duration = 3; + } + + optional uint32 camera_type = 1; + optional float duration = 2; + optional .CUserMessageCameraTransition.Transition_DataDriven params_data_driven = 3; +} + +message CUserMsg_ParticleManager { + message ReleaseParticleIndex { + } + + message CreateParticle { + optional fixed64 particle_name_index = 1; + optional int32 attach_type = 2; + optional uint32 entity_handle = 3 [default = 16777215]; + optional uint32 entity_handle_for_modifiers = 4 [default = 16777215]; + optional bool apply_voice_ban_rules = 5; + optional int32 team_behavior = 6; + optional string control_point_configuration = 7; + optional bool cluster = 8; + optional float endcap_time = 9; + } + + message DestroyParticle { + optional bool destroy_immediately = 1; + } + + message DestroyParticleInvolving { + optional bool destroy_immediately = 1; + optional uint32 entity_handle = 3 [default = 16777215]; + } + + message DestroyParticleNamed { + optional fixed64 particle_name_index = 1; + optional uint32 entity_handle = 2 [default = 16777215]; + optional bool destroy_immediately = 3; + optional bool play_endcap = 4; + } + + message UpdateParticle_OBSOLETE { + optional int32 control_point = 1; + optional .CMsgVector position = 2; + } + + message UpdateParticleFwd_OBSOLETE { + optional int32 control_point = 1; + optional .CMsgVector forward = 2; + } + + message UpdateParticleOrient_OBSOLETE { + optional int32 control_point = 1; + optional .CMsgVector forward = 2; + optional .CMsgVector deprecated_right = 3; + optional .CMsgVector up = 4; + optional .CMsgVector left = 5; + } + + message UpdateParticleTransform { + optional int32 control_point = 1; + optional .CMsgVector position = 2; + optional .CMsgQuaternion orientation = 3; + optional float interpolation_interval = 4; + } + + message UpdateParticleFallback { + optional int32 control_point = 1; + optional .CMsgVector position = 2; + } + + message UpdateParticleOffset { + optional int32 control_point = 1; + optional .CMsgVector origin_offset = 2; + optional .CMsgQAngle angle_offset = 3; + } + + message UpdateParticleEnt { + optional int32 control_point = 1; + optional uint32 entity_handle = 2 [default = 16777215]; + optional int32 attach_type = 3; + optional int32 attachment = 4; + optional .CMsgVector fallback_position = 5; + optional bool include_wearables = 6; + optional .CMsgVector offset_position = 7; + optional .CMsgQAngle offset_angles = 8; + } + + message UpdateParticleSetFrozen { + optional bool set_frozen = 1; + optional float transition_duration = 2; + } + + message UpdateParticleShouldDraw { + optional bool should_draw = 1; + } + + message ChangeControlPointAttachment { + optional int32 attachment_old = 1; + optional int32 attachment_new = 2; + optional uint32 entity_handle = 3 [default = 16777215]; + } + + message UpdateEntityPosition { + optional uint32 entity_handle = 1 [default = 16777215]; + optional .CMsgVector position = 2; + } + + message SetParticleFoWProperties { + optional int32 fow_control_point = 1; + optional int32 fow_control_point2 = 2; + optional float fow_radius = 3; + } + + message SetParticleShouldCheckFoW { + optional bool check_fow = 1; + } + + message SetControlPointModel { + optional int32 control_point = 1; + optional string model_name = 2; + } + + message SetControlPointSnapshot { + optional int32 control_point = 1; + optional string snapshot_name = 2; + } + + message SetParticleText { + optional string text = 1; + } + + message SetTextureAttribute { + optional string attribute_name = 1; + optional string texture_name = 2; + } + + message SetSceneObjectGenericFlag { + optional bool flag_value = 1; + } + + message SetSceneObjectTintAndDesat { + optional fixed32 tint = 1; + optional float desat = 2; + } + + message ParticleSkipToTime { + optional float skip_to_time = 1; + } + + message ParticleCanFreeze { + optional bool can_freeze = 1; + } + + message ParticleFreezeTransitionOverride { + optional float freeze_transition_override = 1; + } + + message FreezeParticleInvolving { + optional bool set_frozen = 1; + optional float transition_duration = 2; + optional uint32 entity_handle = 3 [default = 16777215]; + } + + message AddModellistOverrideElement { + optional string model_name = 1; + optional float spawn_probability = 2; + optional uint32 groupid = 3; + } + + message ClearModellistOverride { + optional uint32 groupid = 1; + } + + message SetParticleNamedValueContext { + message FloatContextValue { + optional uint32 value_name_hash = 1; + optional float value = 2; + } + + message VectorContextValue { + optional uint32 value_name_hash = 1; + optional .CMsgVector value = 2; + } + + message TransformContextValue { + optional uint32 value_name_hash = 1; + optional .CMsgQAngle angles = 2; + optional .CMsgVector translation = 3; + } + + message EHandleContext { + optional uint32 value_name_hash = 1; + optional uint32 ent_index = 2 [default = 16777215]; + } + + repeated .CUserMsg_ParticleManager.SetParticleNamedValueContext.FloatContextValue float_values = 1; + repeated .CUserMsg_ParticleManager.SetParticleNamedValueContext.VectorContextValue vector_values = 2; + repeated .CUserMsg_ParticleManager.SetParticleNamedValueContext.TransformContextValue transform_values = 3; + repeated .CUserMsg_ParticleManager.SetParticleNamedValueContext.EHandleContext ehandle_values = 4; + } + + message CreatePhysicsSim { + optional string prop_group_name = 1; + } + + message DestroyPhysicsSim { + } + + message SetVData { + optional string vdata_name = 1; + } + + required .PARTICLE_MESSAGE type = 1 [default = GAME_PARTICLE_MANAGER_EVENT_CREATE]; + required uint32 index = 2; + optional .CUserMsg_ParticleManager.ReleaseParticleIndex release_particle_index = 3; + optional .CUserMsg_ParticleManager.CreateParticle create_particle = 4; + optional .CUserMsg_ParticleManager.DestroyParticle destroy_particle = 5; + optional .CUserMsg_ParticleManager.DestroyParticleInvolving destroy_particle_involving = 6; + optional .CUserMsg_ParticleManager.UpdateParticle_OBSOLETE update_particle = 7; + optional .CUserMsg_ParticleManager.UpdateParticleFwd_OBSOLETE update_particle_fwd = 8; + optional .CUserMsg_ParticleManager.UpdateParticleOrient_OBSOLETE update_particle_orient = 9; + optional .CUserMsg_ParticleManager.UpdateParticleFallback update_particle_fallback = 10; + optional .CUserMsg_ParticleManager.UpdateParticleOffset update_particle_offset = 11; + optional .CUserMsg_ParticleManager.UpdateParticleEnt update_particle_ent = 12; + optional .CUserMsg_ParticleManager.UpdateParticleShouldDraw update_particle_should_draw = 14; + optional .CUserMsg_ParticleManager.UpdateParticleSetFrozen update_particle_set_frozen = 15; + optional .CUserMsg_ParticleManager.ChangeControlPointAttachment change_control_point_attachment = 16; + optional .CUserMsg_ParticleManager.UpdateEntityPosition update_entity_position = 17; + optional .CUserMsg_ParticleManager.SetParticleFoWProperties set_particle_fow_properties = 18; + optional .CUserMsg_ParticleManager.SetParticleText set_particle_text = 19; + optional .CUserMsg_ParticleManager.SetParticleShouldCheckFoW set_particle_should_check_fow = 20; + optional .CUserMsg_ParticleManager.SetControlPointModel set_control_point_model = 21; + optional .CUserMsg_ParticleManager.SetControlPointSnapshot set_control_point_snapshot = 22; + optional .CUserMsg_ParticleManager.SetTextureAttribute set_texture_attribute = 23; + optional .CUserMsg_ParticleManager.SetSceneObjectGenericFlag set_scene_object_generic_flag = 24; + optional .CUserMsg_ParticleManager.SetSceneObjectTintAndDesat set_scene_object_tint_and_desat = 25; + optional .CUserMsg_ParticleManager.DestroyParticleNamed destroy_particle_named = 26; + optional .CUserMsg_ParticleManager.ParticleSkipToTime particle_skip_to_time = 27; + optional .CUserMsg_ParticleManager.ParticleCanFreeze particle_can_freeze = 28; + optional .CUserMsg_ParticleManager.SetParticleNamedValueContext set_named_value_context = 29; + optional .CUserMsg_ParticleManager.UpdateParticleTransform update_particle_transform = 30; + optional .CUserMsg_ParticleManager.ParticleFreezeTransitionOverride particle_freeze_transition_override = 31; + optional .CUserMsg_ParticleManager.FreezeParticleInvolving freeze_particle_involving = 32; + optional .CUserMsg_ParticleManager.AddModellistOverrideElement add_modellist_override_element = 33; + optional .CUserMsg_ParticleManager.ClearModellistOverride clear_modellist_override = 34; + optional .CUserMsg_ParticleManager.CreatePhysicsSim create_physics_sim = 35; + optional .CUserMsg_ParticleManager.DestroyPhysicsSim destroy_physics_sim = 36; + optional .CUserMsg_ParticleManager.SetVData set_vdata = 37; + + extensions 100 to 201; +} + +message CUserMsg_HudError { + optional int32 order_id = 1; +} + +message CUserMsg_CustomGameEvent { + optional string event_name = 1; + optional bytes data = 2; +} + +message CUserMessageHapticsManagerPulse { + optional int32 hand_id = 1; + optional float effect_amplitude = 2; + optional float effect_frequency = 3; + optional float effect_duration = 4; +} + +message CUserMessageHapticsManagerEffect { + optional int32 hand_id = 1; + optional uint32 effect_name_hash_code = 2; + optional float effect_scale = 3; +} + +message CUserMessageAnimStateGraphState { + optional int32 entity_index = 1; + optional bytes data = 2; +} + +message CUserMessageUpdateCssClasses { + optional int32 target_world_panel = 1; + optional string css_classes = 2; + optional bool is_add = 3; +} + +message CUserMessageServerFrameTime { + optional float frame_time = 1; +} + +message CUserMessageLagCompensationError { + optional float distance = 1; +} + +message CUserMessageRequestDllStatus { + optional string dll_action = 1; + optional bool full_report = 2; +} + +message CUserMessageRequestUtilAction { + optional int32 util1 = 2; + optional int32 util2 = 3; + optional int32 util3 = 4; + optional int32 util4 = 5; + optional int32 util5 = 6; +} + +message CUserMessage_UtilMsg_Response { + message ItemDetail { + optional int32 index = 1; + optional int32 hash = 2; + optional int32 crc = 3; + optional string name = 4; + } + + optional fixed32 crc = 1; + optional int32 item_count = 2; + optional fixed32 crc2 = 3; + optional int32 item_count2 = 4; + repeated int32 crc_part = 5; + repeated int32 crc_part2 = 6; + optional int32 client_timestamp = 7; + optional int32 platform = 8; + repeated .CUserMessage_UtilMsg_Response.ItemDetail itemdetails = 9; + optional int32 itemgroup = 10; + optional int32 total_count = 11; + optional int32 total_count2 = 12; +} + +message CUserMessage_DllStatus { + message CVDiagnostic { + optional uint32 id = 1; + optional uint32 extended = 2; + optional uint64 value = 3; + optional string string_value = 4; + } + + message CModule { + optional uint64 base_addr = 1; + optional string name = 2; + optional uint32 size = 3; + optional uint32 timestamp = 4; + } + + optional string file_report = 1; + optional string command_line = 2; + optional uint32 total_files = 3; + optional uint32 process_id = 4; + optional int32 osversion = 5; + optional uint64 client_time = 6; + repeated .CUserMessage_DllStatus.CVDiagnostic diagnostics = 7; + repeated .CUserMessage_DllStatus.CModule modules = 8; +} + +message CUserMessageRequestInventory { + optional int32 inventory = 1; + optional int32 offset = 2; + optional int32 options = 3; +} + +message CUserMessage_Inventory_Response { + message InventoryDetail { + optional int32 index = 1; + optional int64 primary = 2; + optional int64 offset = 3; + optional int64 first = 4; + optional int64 base = 5; + optional string name = 6; + optional string base_name = 7; + optional int32 base_detail = 8; + optional int32 base_time = 9; + optional int32 base_hash = 10; + } + + optional fixed32 crc = 1; + optional int32 item_count = 2; + optional int32 osversion = 5; + optional int32 perf_time = 6; + optional int32 client_timestamp = 7; + optional int32 platform = 8; + repeated .CUserMessage_Inventory_Response.InventoryDetail inventories = 9; + repeated .CUserMessage_Inventory_Response.InventoryDetail inventories2 = 10; + repeated .CUserMessage_Inventory_Response.InventoryDetail inventories3 = 14; + optional int32 inv_type = 11; + optional int32 build_version = 12; + optional int32 instance = 13; + optional int64 start_time = 15; +} + +message CUserMessageRequestDiagnostic { + message Diagnostic { + optional int32 index = 1; + optional int64 offset = 2; + optional int32 param = 3; + optional int32 length = 4; + optional int32 type = 5; + optional int64 base = 6; + optional int64 range = 7; + optional int64 extent = 8; + optional int64 detail = 9; + optional string name = 10; + optional string alias = 11; + optional bytes vardetail = 12; + optional int32 context = 13; + } + + repeated .CUserMessageRequestDiagnostic.Diagnostic diagnostics = 1; +} + +message CUserMessage_Diagnostic_Response { + message Diagnostic { + optional int32 index = 1; + optional int64 offset = 2; + optional int32 param = 3; + optional int32 length = 4; + optional bytes detail = 5; + optional int64 base = 6; + optional int64 range = 7; + optional int32 type = 8; + optional string name = 10; + optional string alias = 11; + optional bytes backup = 12; + optional int32 context = 13; + optional int64 control = 14; + optional int64 augment = 15; + optional int64 placebo = 16; + } + + repeated .CUserMessage_Diagnostic_Response.Diagnostic diagnostics = 1; + optional int32 build_version = 2; + optional int32 instance = 3; + optional int64 start_time = 4; + optional int32 osversion = 5; + optional int32 platform = 6; +} + +message CUserMessage_ExtraUserData { + optional int32 item = 1; + optional int64 value1 = 2; + optional int64 value2 = 3; + repeated bytes detail1 = 4; + repeated bytes detail2 = 5; +} + +message CUserMessage_NotifyResponseFound { + message Criteria { + optional uint32 name_symbol = 1; + optional string value = 2; + } + + optional int32 ent_index = 1 [default = -1]; + optional string rule_name = 2; + optional string response_value = 3; + optional string response_concept = 4; + repeated .CUserMessage_NotifyResponseFound.Criteria criteria = 5; +} + +message CUserMessage_PlayResponseConditional { + optional int32 ent_index = 1 [default = -1]; + repeated int32 player_slots = 2; + optional string response = 3; + optional .CMsgVector ent_origin = 4; +} diff --git a/Protobufs/csgo/valveextensions.proto b/Protobufs/csgo/valveextensions.proto new file mode 100644 index 0000000..d391cfa --- /dev/null +++ b/Protobufs/csgo/valveextensions.proto @@ -0,0 +1,17 @@ +import "google/protobuf/descriptor.proto"; + +extend .google.protobuf.FieldOptions { + optional bool valve_map_field = 61000 [default = false]; + optional bool valve_map_key = 61001 [default = false]; + optional int32 diff_encode_field = 61002 [default = 0]; + optional bool delta_ignore = 61003 [default = false]; + optional uint32 steamml_max_entries = 61004 [default = 0]; + optional bool steamml_is_timestamp = 61005 [default = false]; + optional uint32 steamlearn_count = 61006 [default = 0]; +} + +extend .google.protobuf.EnumValueOptions { + optional string schema_friendly_name = 1000; + optional string schema_description = 1001; + optional bool schema_suppress_enumerator = 1002; +} diff --git a/Protobufs/deadlock/base_gcmessages.proto b/Protobufs/deadlock/base_gcmessages.proto new file mode 100644 index 0000000..1569604 --- /dev/null +++ b/Protobufs/deadlock/base_gcmessages.proto @@ -0,0 +1,401 @@ +import "steammessages.proto"; +import "gcsdk_gcmessages.proto"; + +enum EGCBaseMsg { + k_EMsgGCInviteToParty = 4501; + k_EMsgGCInvitationCreated = 4502; + k_EMsgGCPartyInviteResponse = 4503; + k_EMsgGCKickFromParty = 4504; + k_EMsgGCLeaveParty = 4505; + k_EMsgGCServerAvailable = 4506; + k_EMsgGCClientConnectToServer = 4507; + k_EMsgGCGameServerInfo = 4508; + k_EMsgGCLANServerAvailable = 4511; + k_EMsgGCInviteToLobby = 4512; + k_EMsgGCLobbyInviteResponse = 4513; + k_EMsgGCToClientPollFileRequest = 4514; + k_EMsgGCToClientPollFileResponse = 4515; + k_EMsgGCToGCPerformManualOp = 4516; + k_EMsgGCToGCPerformManualOpCompleted = 4517; + k_EMsgGCToGCReloadServerRegionSettings = 4518; + k_EMsgGCAdditionalWelcomeMsgList = 4519; + k_EMsgGCToClientApplyRemoteConVars = 4520; + k_EMsgGCToServerApplyRemoteConVars = 4521; + k_EMsgClientToGCIntegrityStatus = 4522; + k_EMsgClientToGCAggregateMetrics = 4523; + k_EMsgGCToClientAggregateMetricsBackoff = 4524; +} + +enum ECustomGameInstallStatus { + k_ECustomGameInstallStatus_Unknown = 0; + k_ECustomGameInstallStatus_Ready = 1; + k_ECustomGameInstallStatus_Busy = 2; + k_ECustomGameInstallStatus_FailedGeneric = 101; + k_ECustomGameInstallStatus_FailedInternalError = 102; + k_ECustomGameInstallStatus_RequestedTimestampTooOld = 103; + k_ECustomGameInstallStatus_RequestedTimestampTooNew = 104; + k_ECustomGameInstallStatus_CRCMismatch = 105; + k_ECustomGameInstallStatus_FailedSteam = 106; + k_ECustomGameInstallStatus_FailedCanceled = 107; +} + +message CGCStorePurchaseInit_LineItem { + optional uint32 item_def_id = 1; + optional uint32 quantity = 2; + optional uint32 cost_in_local_currency = 3; + optional uint32 purchase_type = 4; + optional uint64 source_reference_id = 5; + optional int32 price_index = 6; +} + +message CMsgGCStorePurchaseInit { + optional string country = 1; + optional int32 language = 2; + optional int32 currency = 3; + repeated .CGCStorePurchaseInit_LineItem line_items = 4; +} + +message CMsgGCStorePurchaseInitResponse { + optional int32 result = 1; + optional uint64 txn_id = 2; +} + +message CMsgClientPingData { + repeated fixed32 relay_codes = 4 [packed = true]; + repeated uint32 relay_pings = 5 [packed = true]; + repeated uint32 region_codes = 8 [packed = true]; + repeated uint32 region_pings = 9 [packed = true]; + optional uint32 region_ping_failed_bitmask = 10; +} + +message CMsgInviteToParty { + optional fixed64 steam_id = 1; + optional uint32 client_version = 2; + optional uint32 team_id = 3; + optional bool as_coach = 4; + optional .CMsgClientPingData ping_data = 5; +} + +message CMsgInviteToLobby { + optional fixed64 steam_id = 1; + optional uint32 client_version = 2; +} + +message CMsgInvitationCreated { + optional uint64 group_id = 1; + optional fixed64 steam_id = 2; + optional bool user_offline = 3; +} + +message CMsgPartyInviteResponse { + optional uint64 party_id = 1; + optional bool accept = 2; + optional uint32 client_version = 3; + optional .CMsgClientPingData ping_data = 8; +} + +message CMsgLobbyInviteResponse { + optional fixed64 lobby_id = 1; + optional bool accept = 2; + optional uint32 client_version = 3; + optional fixed64 custom_game_crc = 6; + optional fixed32 custom_game_timestamp = 7; +} + +message CMsgKickFromParty { + optional fixed64 steam_id = 1; +} + +message CMsgLeaveParty { +} + +message CMsgCustomGameInstallStatus { + optional .ECustomGameInstallStatus status = 1 [default = k_ECustomGameInstallStatus_Unknown]; + optional string message = 2; + optional fixed32 latest_timestamp_from_steam = 3; +} + +message CMsgServerAvailable { + optional .CMsgCustomGameInstallStatus custom_game_install_status = 1; +} + +message CMsgLANServerAvailable { + optional fixed64 lobby_id = 1; +} + +message CSOEconGameAccountClient { + optional uint32 additional_backpack_slots = 1 [default = 0]; + optional bool trial_account = 2 [default = false]; + optional bool eligible_for_online_play = 3 [default = true]; + optional bool need_to_choose_most_helpful_friend = 4; + optional bool in_coaches_list = 5; + optional fixed32 trade_ban_expiration = 6; + optional fixed32 duel_ban_expiration = 7; + optional bool made_first_purchase = 9 [default = false]; +} + +message CMsgApplyStrangePart { + optional uint64 strange_part_item_id = 1; + optional uint64 item_item_id = 2; +} + +message CMsgApplyPennantUpgrade { + optional uint64 upgrade_item_id = 1; + optional uint64 pennant_item_id = 2; +} + +message CMsgApplyEggEssence { + optional uint64 essence_item_id = 1; + optional uint64 egg_item_id = 2; +} + +message CSOEconItemAttribute { + optional uint32 def_index = 1 [default = 65535]; + optional uint32 value = 2; + optional bytes value_bytes = 3; +} + +message CSOEconItemEquipped { + optional uint32 new_class = 1; + optional uint32 new_slot = 2; +} + +message CSOEconItem { + optional uint64 id = 1; + optional uint32 account_id = 2; + optional uint32 inventory = 3; + optional uint32 def_index = 4; + optional uint32 quantity = 5 [default = 1]; + optional uint32 level = 6 [default = 1]; + optional uint32 quality = 7 [default = 4]; + optional uint32 flags = 8 [default = 0]; + optional uint32 origin = 9 [default = 0]; + repeated .CSOEconItemAttribute attribute = 12; + optional .CSOEconItem interior_item = 13; + optional uint32 style = 15 [default = 0]; + optional uint64 original_id = 16; + repeated .CSOEconItemEquipped equipped_state = 18; +} + +message CMsgSortItems { + optional uint32 sort_type = 1; +} + +message CMsgItemAcknowledged { + optional uint32 account_id = 1; + optional uint32 inventory = 2; + optional uint32 def_index = 3; + optional uint32 quality = 4; + optional uint32 rarity = 5; + optional uint32 origin = 6; +} + +message CMsgSetItemPositions { + message ItemPosition { + optional uint64 item_id = 1; + optional uint32 position = 2; + } + + repeated .CMsgSetItemPositions.ItemPosition item_positions = 1; +} + +message CMsgGCStorePurchaseCancel { + optional uint64 txn_id = 1; +} + +message CMsgGCStorePurchaseCancelResponse { + optional uint32 result = 1; +} + +message CMsgGCStorePurchaseFinalize { + optional uint64 txn_id = 1; +} + +message CMsgGCStorePurchaseFinalizeResponse { + optional uint32 result = 1; + repeated uint64 item_ids = 2; +} + +message CMsgGCToGCBannedWordListUpdated { + optional uint32 group_id = 1; +} + +message CMsgGCToGCDirtySDOCache { + optional uint32 sdo_type = 1; + optional uint64 key_uint64 = 2; +} + +message CMsgSDONoMemcached { +} + +message CMsgGCToGCUpdateSQLKeyValue { + optional string key_name = 1; +} + +message CMsgGCServerVersionUpdated { + optional uint32 server_version = 1; +} + +message CMsgGCClientVersionUpdated { + optional uint32 client_version = 1; +} + +message CMsgGCToGCWebAPIAccountChanged { +} + +message CMsgExtractGems { + optional uint64 tool_item_id = 1; + optional uint64 item_item_id = 2; + optional uint32 item_socket_id = 3 [default = 65535]; +} + +message CMsgExtractGemsResponse { + enum EExtractGems { + k_ExtractGems_Succeeded = 0; + k_ExtractGems_Failed_ToolIsInvalid = 1; + k_ExtractGems_Failed_ItemIsInvalid = 2; + k_ExtractGems_Failed_ToolCannotRemoveGem = 3; + k_ExtractGems_Failed_FailedToRemoveGem = 4; + } + + optional uint64 item_id = 1; + optional .CMsgExtractGemsResponse.EExtractGems response = 2 [default = k_ExtractGems_Succeeded]; +} + +message CMsgAddSocket { + optional uint64 tool_item_id = 1; + optional uint64 item_item_id = 2; + optional bool unusual = 3; +} + +message CMsgAddSocketResponse { + enum EAddSocket { + k_AddSocket_Succeeded = 0; + k_AddSocket_Failed_ToolIsInvalid = 1; + k_AddSocket_Failed_ItemCannotBeSocketed = 2; + k_AddSocket_Failed_FailedToAddSocket = 3; + } + + optional uint64 item_id = 1; + repeated uint32 updated_socket_index = 2; + optional .CMsgAddSocketResponse.EAddSocket response = 3 [default = k_AddSocket_Succeeded]; +} + +message CMsgAddItemToSocketData { + optional uint64 gem_item_id = 1; + optional uint32 socket_index = 2 [default = 65535]; +} + +message CMsgAddItemToSocket { + optional uint64 item_item_id = 1; + repeated .CMsgAddItemToSocketData gems_to_socket = 2; +} + +message CMsgAddItemToSocketResponse { + enum EAddGem { + k_AddGem_Succeeded = 0; + k_AddGem_Failed_GemIsInvalid = 1; + k_AddGem_Failed_ItemIsInvalid = 2; + k_AddGem_Failed_FailedToAddGem = 3; + k_AddGem_Failed_InvalidGemTypeForSocket = 4; + k_AddGem_Failed_InvalidGemTypeForHero = 5; + k_AddGem_Failed_InvalidGemTypeForSlot = 6; + k_AddGem_Failed_SocketContainsUnremovableGem = 7; + } + + optional uint64 item_item_id = 1; + repeated uint32 updated_socket_index = 2; + optional .CMsgAddItemToSocketResponse.EAddGem response = 3 [default = k_AddGem_Succeeded]; +} + +message CMsgResetStrangeGemCount { + optional uint64 item_item_id = 1; + optional uint32 socket_index = 2 [default = 65535]; +} + +message CMsgResetStrangeGemCountResponse { + enum EResetGem { + k_ResetGem_Succeeded = 0; + k_ResetGem_Failed_FailedToResetGem = 1; + k_ResetGem_Failed_ItemIsInvalid = 2; + k_ResetGem_Failed_InvalidSocketId = 3; + k_ResetGem_Failed_SocketCannotBeReset = 4; + } + + optional .CMsgResetStrangeGemCountResponse.EResetGem response = 1 [default = k_ResetGem_Succeeded]; +} + +message CMsgGCToClientPollFileRequest { + optional string file_name = 1; + optional uint32 client_version = 2; + optional uint32 poll_id = 3; +} + +message CMsgGCToClientPollFileResponse { + optional uint32 poll_id = 1; + optional uint32 file_size = 2; + optional uint32 file_crc = 3; +} + +message CMsgGCToGCPerformManualOp { + optional uint64 op_id = 1; + optional uint32 group_code = 2; +} + +message CMsgGCToGCPerformManualOpCompleted { + optional bool success = 1; + optional int32 source_gc = 2 [default = -1]; +} + +message CMsgGCToGCReloadServerRegionSettings { +} + +message CMsgGCAdditionalWelcomeMsgList { + repeated .CExtraMsgBlock welcome_messages = 1; +} + +message CMsgApplyRemoteConVars { + message ConVar { + optional string name = 1; + optional string value = 2; + optional uint32 version_min = 3; + optional uint32 version_max = 4; + optional .EGCPlatform platform = 5 [default = k_eGCPlatform_None]; + } + + repeated .CMsgApplyRemoteConVars.ConVar con_vars = 1; +} + +message CMsgGCToClientApplyRemoteConVars { + optional .CMsgApplyRemoteConVars msg = 1; +} + +message CMsgGCToServerApplyRemoteConVars { + optional .CMsgApplyRemoteConVars msg = 1; +} + +message CMsgClientToGCIntegrityStatus { + message keyvalue { + optional uint32 id = 1; + optional uint32 extended = 2; + optional uint64 value = 3; + optional string string_value = 4; + } + + optional string report = 1; + optional bool secure_allowed = 2; + repeated .CMsgClientToGCIntegrityStatus.keyvalue diagnostics = 3; +} + +message CMsgClientToGCAggregateMetrics { + message SingleMetric { + optional string metric_name = 1; + optional uint32 metric_count = 2; + } + + repeated .CMsgClientToGCAggregateMetrics.SingleMetric metrics = 1; +} + +message CMsgGCToClientAggregateMetricsBackoff { + optional float upload_rate_modifier = 1; +} diff --git a/Protobufs/deadlock/base_modifier.proto b/Protobufs/deadlock/base_modifier.proto new file mode 100644 index 0000000..c8bdb03 --- /dev/null +++ b/Protobufs/deadlock/base_modifier.proto @@ -0,0 +1,52 @@ +import "networkbasetypes.proto"; + +enum MODIFIER_ENTRY_TYPE { + MODIFIER_ENTRY_TYPE_ACTIVE = 1; + MODIFIER_ENTRY_TYPE_REMOVED = 2; +} + +message CModifierTableEntry { + required .MODIFIER_ENTRY_TYPE entry_type = 1 [default = MODIFIER_ENTRY_TYPE_ACTIVE]; + required uint32 parent = 2 [default = 16777215]; + required uint32 serial_number = 3; + optional uint32 modifier_subclass = 4; + optional int32 stack_count = 5; + optional int32 max_stack_count = 6; + optional float last_applied_time = 7; + optional float duration = 8 [default = -1]; + optional uint32 caster = 9 [default = 16777215]; + optional uint32 ability = 10 [default = 16777215]; + optional int32 aura_provider_serial_number = 11; + optional uint32 aura_provider_ehandle = 12 [default = 16777215]; + optional uint32 ability_subclass = 13; + optional bool bool1_ = 20; + optional bool bool2_ = 21; + optional bool bool3_ = 22; + optional bool bool4_ = 23; + optional int32 int1_ = 25; + optional int32 int2_ = 26; + optional int32 int3_ = 27; + optional int32 int4_ = 28; + optional float float1_ = 30; + optional float float2_ = 31; + optional float float3_ = 32; + optional float float4_ = 33; + optional float float5_ = 49; + optional float float6_ = 50; + optional float float7_ = 51; + optional float float8_ = 52; + optional float float9_ = 53; + optional float float10_ = 54; + optional uint64 uint1_ = 35; + optional uint64 uint2_ = 36; + optional uint64 uint3_ = 37; + optional uint64 uint4_ = 38; + optional .CMsgVector vec1_ = 40; + optional .CMsgVector vec2_ = 41; + optional .CMsgVector vec3_ = 42; + optional .CMsgVector vec4_ = 43; + optional string string1_ = 45; + optional string string2_ = 46; + optional string string3_ = 47; + optional string string4_ = 48; +} diff --git a/Protobufs/deadlock/c_peer2peer_netmessages.proto b/Protobufs/deadlock/c_peer2peer_netmessages.proto new file mode 100644 index 0000000..c4d34cd --- /dev/null +++ b/Protobufs/deadlock/c_peer2peer_netmessages.proto @@ -0,0 +1,57 @@ +import "netmessages.proto"; +import "networkbasetypes.proto"; + +enum P2P_Messages { + p2p_TextMessage = 256; + p2p_Voice = 257; + p2p_Ping = 258; + p2p_VRAvatarPosition = 259; + p2p_WatchSynchronization = 260; + p2p_FightingGame_GameData = 261; + p2p_FightingGame_Connection = 262; +} + +message CP2P_TextMessage { + optional bytes text = 1; +} + +message CSteam_Voice_Encoding { + optional bytes voice_data = 1; +} + +message CP2P_Voice { + enum Handler_Flags { + Played_Audio = 1; + } + + optional .CMsgVoiceAudio audio = 1; + optional uint32 broadcast_group = 2; +} + +message CP2P_Ping { + required uint64 send_time = 1; + required bool is_reply = 2; +} + +message CP2P_VRAvatarPosition { + message COrientation { + optional .CMsgVector pos = 1; + optional .CMsgQAngle ang = 2; + } + + repeated .CP2P_VRAvatarPosition.COrientation body_parts = 1; + optional int32 hat_id = 2; + optional int32 scene_id = 3; + optional int32 world_scale = 4; +} + +message CP2P_WatchSynchronization { + optional int32 demo_tick = 1; + optional bool paused = 2; + optional uint64 tv_listen_voice_indices = 3; + optional int32 dota_spectator_mode = 4; + optional bool dota_spectator_watching_broadcaster = 5; + optional int32 dota_spectator_hero_index = 6; + optional int32 dota_spectator_autospeed = 7; + optional int32 dota_replay_speed = 8; +} diff --git a/Protobufs/deadlock/citadel_clientmessages.proto b/Protobufs/deadlock/citadel_clientmessages.proto new file mode 100644 index 0000000..49ba917 --- /dev/null +++ b/Protobufs/deadlock/citadel_clientmessages.proto @@ -0,0 +1,109 @@ +import "networkbasetypes.proto"; +import "citadel_gcmessages_common.proto"; + +enum ECitadelClientMessages { + CITADEL_CM_MapPing = 1002; + CITADEL_CM_PerformanceStats = 1003; + CITADEL_CM_PingWheel = 1004; + CITADEL_CM_ChatMsg = 1005; + CITADEL_CM_PerfReport = 1006; + CITADEL_CM_QuickResponse = 1007; + CITADEL_CM_Pause = 1008; + CITADEL_CM_MapLine = 1009; + CITADEL_CM_AbilityPing = 1010; + CITADEL_CM_ExecuteMapUnitAbility = 1011; + CITADEL_CM_GetDamageStats = 1012; +} + +message CCitadelClientMsg_Pause { +} + +message CCitadelClientMsg_MapPing { + optional .CMsgVector ping_location = 1; + optional int32 event_type = 2; + optional int32 entity_index = 3 [default = -1]; + optional bool is_aggressive_ping = 4; + optional bool is_minimap_ping = 5; + optional bool is_blind_ping = 6; +} + +message CCitadelClientMsg_PingWheel { + optional uint32 ping_wheel_option_id = 1; + optional uint32 subnav_message_id = 2; + optional .CMsgVector ping_location = 3; + optional int32 entity_index = 4 [default = -1]; +} + +message CCitadelClientMsg_AbilityPing { + optional int32 entity_index = 1 [default = -1]; + optional uint32 pinged_ability_id = 2; + optional int32 pinged_player_slot = 3 [default = -1]; +} + +message CCitadelClientMsg_MapLine { + optional .CMsgMapLine mapline = 1; +} + +message CCitadelClientMsg_QuickResponse { + optional uint32 ping_wheel_message_id = 1; + optional uint32 responding_to_ping_message_id = 2; + optional int32 responding_to_player_slot = 3 [default = -1]; +} + +message CCitadelClientMsg_PerformanceStats { + optional float current_game_time = 1; + optional float average_fps = 2; + optional float min_fps = 3; + optional float max_fps = 4; +} + +message CCitadelClientMsg_ChatMsg { + optional string chat_text = 1; + optional bool all_chat = 2; + optional .CMsgLaneColor lane_color = 3 [default = k_ELaneColor_Invalid]; +} + +message CCitadelClientMsg_PerfReport { + optional float average_frame_time = 1; + optional float max_frame_time = 2; + optional float average_compute_time = 3; + optional float max_compute_time = 4; + optional float average_client_tick_time = 5; + optional float max_client_tick_time = 6; + optional float average_client_simulate_time = 7; + optional float max_client_simulate_time = 8; + optional float average_output_time = 9; + optional float max_output_time = 10; + optional float average_wait_for_rendering_to_complete_time = 11; + optional float max_wait_for_rendering_to_complete_time = 12; + optional float average_swap_time = 13; + optional float max_swap_time = 14; + optional float average_frame_update_time = 15; + optional float max_frame_update_time = 16; + optional float average_idle_time = 17; + optional float max_idle_time = 18; + optional float average_input_processing_time = 19; + optional float max_input_processing_time = 20; +} + +message CCitadelClientMsg_GetDamageStats { + optional uint32 lobby_player_slot = 1; + optional string ability_name = 2; +} + +message CCitadelClientCachedPlayerStats { + message Stat { + optional string stat_name = 1; + optional uint64 all_time_total = 2; + optional uint32 all_time_match_max = 3; + optional uint32 all_time_life_max = 4; + } + + optional uint32 version = 1; + repeated .CCitadelClientCachedPlayerStats.Stat stats = 2; +} + +message CCitadelClientMsg_ExecuteMapUnitAbility { + optional int32 ability_entity_index = 1; + optional int32 target_entity_index = 2; +} diff --git a/Protobufs/deadlock/citadel_gameevents.proto b/Protobufs/deadlock/citadel_gameevents.proto new file mode 100644 index 0000000..4b84cca --- /dev/null +++ b/Protobufs/deadlock/citadel_gameevents.proto @@ -0,0 +1,204 @@ +import "google/protobuf/descriptor.proto"; +import "networkbasetypes.proto"; + +enum ECitadelGameEvents { + GE_FireBullets = 450; + GE_PlayerAnimEvent = 451; + GE_ParticleSystemManager = 458; + GE_ScreenTextPretty = 459; + GE_ServerRequestedTracer = 460; + GE_BulletImpact = 461; + GE_EnableSatVolumesEvent = 462; + GE_PlaceSatVolumeEvent = 463; + GE_DisableSatVolumesEvent = 464; + GE_RemoveSatVolumeEvent = 465; +} + +enum PARTICLE_SYSTEM_MANAGER_MESSAGE { + PARTICLE_SYSTEM_MANAGER_EVENT_CREATE = 0; + PARTICLE_SYSTEM_MANAGER_EVENT_DESTROY = 1; + PARTICLE_SYSTEM_MANAGER_EVENT_DESTROY_INVOLVING = 2; + PARTICLE_SYSTEM_MANAGER_EVENT_RELEASE = 3; + PARTICLE_SYSTEM_MANAGER_EVENT_UPDATE = 4; + PARTICLE_SYSTEM_MANAGER_EVENT_UPDATE_FORWARD = 5; + PARTICLE_SYSTEM_MANAGER_EVENT_UPDATE_ORIENTATION = 6; + PARTICLE_SYSTEM_MANAGER_EVENT_UPDATE_FALLBACK = 7; + PARTICLE_SYSTEM_MANAGER_EVENT_UPDATE_ENT = 8; + PARTICLE_SYSTEM_MANAGER_EVENT_UPDATE_OFFSET = 9; + PARTICLE_SYSTEM_MANAGER_EVENT_UPDATE_FROZEN = 10; + PARTICLE_SYSTEM_MANAGER_EVENT_UPDATE_SHOULD_DRAW = 11; +} + +message CMsgFireBullets { + message TracerAssignment { + optional uint64 tracer_resource_id = 1; + optional uint32 bullet_indicies = 2; + } + + optional .CMsgVector origin = 1; + optional .CMsgQAngle angles = 2; + optional uint32 seed = 4; + optional int32 shooter_entity = 5 [default = -1]; + optional int32 ability = 7 [default = -1]; + optional float penetration_percent = 8; + optional float spread = 9; + optional bool fired_from_gun = 10 [default = true]; + optional uint32 bullets_override = 11; + optional .CMsgFireBullets.TracerAssignment tracer_replacement = 12; + repeated .CMsgFireBullets.TracerAssignment tracer_additional = 13; + optional .CMsgQAngle angles_original = 14; + optional uint32 weapon_subclass_id = 15; + optional uint32 shot_number = 16; + optional int32 ignore_entity = 17 [default = -1]; + optional float max_range = 18; +} + +message CMsgBulletImpact { + optional .CMsgVector trace_start = 1; + optional .CMsgVector impact_origin = 2; + optional .CMsgVector surface_normal = 3; + optional uint32 damage = 4; + optional uint32 surface_type = 5; + optional int32 ability_entindex = 7 [default = -1]; + optional int32 impacted_entindex = 8 [default = -1]; + optional uint32 impacted_hitbox = 9; + optional uint32 weapon_subclass_id = 10; + optional int32 shooter_entindex = 11 [default = -1]; +} + +message CMsgPlayerAnimEvent { + optional fixed32 player = 1 [default = 16777215]; + optional uint32 event = 2; + optional int32 data = 3; +} + +message CMsgParticleSystemManager { + message CreateParticle { + optional fixed64 particle_name_index = 1; + optional int32 attach_type = 2; + optional uint32 entity_handle = 3 [default = 16777215]; + optional .CMsgVector position = 4; + optional .CMsgQAngle angles = 5; + } + + message DestroyParticle { + optional bool destroy_immediately = 1; + } + + message DestroyParticleInvolving { + optional bool destroy_immediately = 1; + optional uint32 entity_handle = 3 [default = 16777215]; + } + + message ReleaseParticleIndex { + } + + message UpdateParticle { + optional int32 control_point = 1; + optional .CMsgVector position = 2; + } + + message UpdateParticleFwd { + optional int32 control_point = 1; + optional .CMsgVector forward = 2; + } + + message UpdateParticleOrient { + optional int32 control_point = 1; + optional .CMsgVector forward = 2; + optional .CMsgVector left = 3; + optional .CMsgVector up = 4; + } + + message UpdateParticleFallback { + optional int32 control_point = 1; + optional .CMsgVector position = 2; + } + + message UpdateParticleEnt { + optional int32 control_point = 1; + optional uint32 entity_handle = 2 [default = 16777215]; + optional int32 attach_type = 3; + optional int32 attachment = 4; + optional .CMsgVector fallback_position = 5; + } + + message UpdateParticleOffset { + optional int32 control_point = 1; + optional .CMsgVector origin_offset = 2; + } + + message UpdateParticleFrozen { + optional bool set_frozen = 1; + } + + message UpdateParticleShouldDraw { + optional bool should_draw = 1; + } + + required .PARTICLE_SYSTEM_MANAGER_MESSAGE type = 1 [default = PARTICLE_SYSTEM_MANAGER_EVENT_CREATE]; + required uint32 index = 2; + optional .CMsgParticleSystemManager.CreateParticle create_particle = 3; + optional .CMsgParticleSystemManager.DestroyParticle destroy_particle = 4; + optional .CMsgParticleSystemManager.DestroyParticleInvolving destroy_particle_involving = 5; + optional .CMsgParticleSystemManager.ReleaseParticleIndex release_particle_index = 6; + optional .CMsgParticleSystemManager.UpdateParticle update_particle = 7; + optional .CMsgParticleSystemManager.UpdateParticleFwd update_particle_fwd = 8; + optional .CMsgParticleSystemManager.UpdateParticleOrient update_particle_orient = 9; + optional .CMsgParticleSystemManager.UpdateParticleFallback update_particle_fallback = 10; + optional .CMsgParticleSystemManager.UpdateParticleOffset update_particle_offset = 11; + optional .CMsgParticleSystemManager.UpdateParticleEnt update_particle_ent = 12; + optional .CMsgParticleSystemManager.UpdateParticleFrozen update_particle_frozen = 13; + optional .CMsgParticleSystemManager.UpdateParticleShouldDraw update_particle_should_draw = 14; +} + +message CMsgScreenTextPretty { + optional float x_pos = 1; + optional float y_pos = 2; + optional int32 line = 3; + optional string text = 4; + optional int32 r = 5; + optional int32 g = 6; + optional int32 b = 7; + optional int32 a = 8; + optional float duration = 9; + optional string font_name = 10; + optional int32 font_size = 11; + optional bool bold_font = 12; +} + +message CMsgServerRequestedTracer { + optional .CMsgVector origin = 1; + optional .CMsgVector end = 2; + optional int32 weaponid = 3 [default = -1]; + optional uint32 entity_handle = 4 [default = 16777215]; + optional float dps = 5; +} + +message CMsgEnableSatVolumesEvent { + optional uint32 mode = 1; + optional float desat_amount = 2; + optional fixed32 sat_tint = 3; + optional fixed32 desat_tint = 4; + optional fixed32 outline_color = 5; +} + +message CMsgPlaceSatVolumeEvent { + optional .CMsgVector position = 1; + optional .CMsgVector direction = 2; + optional float radius = 3; + optional float falloff_distance = 4; + optional float theta_dot = 5; + optional float phi_dot = 6; + optional uint32 entity_handle = 7 [default = 16777215]; + optional uint32 attachment_handle = 8; + optional uint32 type = 9; + optional int32 volume_id = 10; +} + +message CMsgRemoveSatVolumeEvent { + optional int32 volume_id = 1; +} + +message CMsgDisableSatVolumesEvent { +} diff --git a/Protobufs/deadlock/citadel_gamemessages.proto b/Protobufs/deadlock/citadel_gamemessages.proto new file mode 100644 index 0000000..2750f58 --- /dev/null +++ b/Protobufs/deadlock/citadel_gamemessages.proto @@ -0,0 +1,65 @@ +import "citadel_gcmessages_common.proto"; + +enum ECitadelGameMessages { + k_EMsgGameServerToClientConnectionStatus = 10; + k_EMsgGameServerToClientInitialGameState = 12; + k_EMsgGameServerToClientGameCompleted = 13; + k_EMsgGameServerToClientGoodbye = 15; +} + +enum ECitadelDisconnectReason { + k_ECitadelDisconnectReason_UserLeaveMatch = 1001; + k_ECitadelDisconnectReason_UserQuitApp = 1002; + k_ECitadelDisconnectReason_UserCancel = 1003; + k_ECitadelDisconnectReason_Goodbye = 1004; + k_ECitadelDisconnectReason_BadMessage = 2001; + k_ECitadelDisconnectReason_GameDestroyedUnexpectedly = 2002; + k_ECitadelDisconnectReason_ChangingServer = 2003; + k_ECitadelDisconnectReason_OldConnection = 2004; + k_ECitadelDisconnectReason_GoodbyeUnrecognizedGame = 2005; +} + +message CMsgClientServerHeader { + optional uint64 game_instance_id = 1; + optional uint32 local_player_index = 2; + optional bytes payload = 3; + optional .ECitadelGameMessages msg_id = 4 [default = k_EMsgGameServerToClientConnectionStatus]; +} + +message CMsgGameServerToClientGameCompleted { +} + +message CMsgGameServerToClientGoodbye { +} + +message CMsgGameServerToClientConnectionStatus { + message Player { + optional int32 player_slot = 1 [default = -1]; + optional .CMsgGameServerToClientConnectionStatus.EStatus status = 2 [default = k_EConnected]; + optional bool inactivity_ticking = 3; + optional uint32 inactivity_ms_remaining = 4; + optional uint32 inactivity_anim_ms_remaining = 5; + } + + enum EStatus { + k_EConnected = 1; + k_EDisconnected = 2; + } + + repeated .CMsgGameServerToClientConnectionStatus.Player players = 1; +} + +message CClientReconnectInfo { + optional fixed64 server_steam_id = 1; + optional uint64 lobby_id = 2; + optional uint32 time_updated = 3; + optional uint32 udp_connect_ip = 4; + optional uint32 udp_connect_port = 5; + optional uint32 compatibility_version = 6; +} + +message CMsgClientAccountSyncStorageFile { + optional uint32 version = 1; + repeated uint32 ids = 2; + repeated uint32 values = 3; +} diff --git a/Protobufs/deadlock/citadel_gcmessages_client.proto b/Protobufs/deadlock/citadel_gcmessages_client.proto new file mode 100644 index 0000000..5371b32 --- /dev/null +++ b/Protobufs/deadlock/citadel_gcmessages_client.proto @@ -0,0 +1,1384 @@ +import "steammessages.proto"; +import "gcsdk_gcmessages.proto"; +import "citadel_gcmessages_common.proto"; + +enum EGCCitadelClientMessages { + k_EMsgClientToGCStartMatchmaking = 9010; + k_EMsgClientToGCStartMatchmakingResponse = 9011; + k_EMsgClientToGCStopMatchmaking = 9012; + k_EMsgClientToGCStopMatchmakingResponse = 9013; + k_EMsgGCToClientMatchmakingStopped = 9014; + k_EMsgClientToGCLeaveLobby = 9015; + k_EMsgClientToGCLeaveLobbyResponse = 9016; + k_EMsgClientToGCIsInMatchmaking = 9017; + k_EMsgClientToGCIsInMatchmakingResponse = 9018; + k_EMsgGCToClientDevPlaytestStatus = 9019; + k_EMsgClientToGCDevSetMMBias = 9023; + k_EMsgClientToGCGetProfileCard = 9024; + k_EMsgClientToGCGetProfileCardResponse = 9025; + k_EMsgClientToGCUpdateRoster = 9026; + k_EMsgClientToGCUpdateRosterResponse = 9027; + k_EMsgGCToClientProfileCardUpdated = 9028; + k_EMsgGCToClientDevAnnouncements = 9029; + k_EMsgClientToGCModifyDevAnnouncements = 9030; + k_EMsgClientToGCModifyDevAnnouncementsResponse = 9031; + k_EMsgGCToClientSDRTicket = 9100; + k_EMsgClientToGCReplacementSDRTicket = 9101; + k_EMsgClientToGCReplacementSDRTicketResponse = 9102; + k_EMsgClientToGCSetServerConVar = 9107; + k_EMsgClientToGCSetServerConVarResponse = 9108; + k_EMsgClientToGCSpectateLobby = 9109; + k_EMsgClientToGCSpectateLobbyResponse = 9110; + k_EMsgClientToGCPostMatchSurveyResponse = 9111; + k_EMsgClientToGCGetMatchHistory = 9112; + k_EMsgClientToGCGetMatchHistoryResponse = 9113; + k_EMsgClientToGCSpectateUser = 9116; + k_EMsgClientToGCSpectateUserResponse = 9117; + k_EMsgClientToGCPartyCreate = 9123; + k_EMsgClientToGCPartyCreateResponse = 9124; + k_EMsgClientToGCPartyLeave = 9125; + k_EMsgClientToGCPartyLeaveResponse = 9126; + k_EMsgClientToGCPartyJoin = 9127; + k_EMsgClientToGCPartyJoinResponse = 9128; + k_EMsgClientToGCPartyAction = 9129; + k_EMsgClientToGCPartyActionResponse = 9130; + k_EMsgClientToGCPartyStartMatch = 9131; + k_EMsgClientToGCPartyStartMatchResponse = 9132; + k_EMsgClientToGCPartyInviteUser = 9133; + k_EMsgClientToGCPartyInviteUserResponse = 9134; + k_EMsgGCToClientPartyEvent = 9135; + k_EMsgGCToClientCanRejoinParty = 9137; + k_EMsgClientToGCPartyJoinViaCode = 9138; + k_EMsgClientToGCPartyJoinViaCodeResponse = 9139; + k_EMsgClientToGCPartyUpdateRoster = 9140; + k_EMsgClientToGCPartyUpdateRosterResponse = 9141; + k_EMsgClientToGCPartySetReadyState = 9142; + k_EMsgClientToGCPartySetReadyStateResponse = 9143; + k_EMsgClientToGCGetAccountStats = 9164; + k_EMsgClientToGCGetAccountStatsResponse = 9165; + k_EMsgGCToClientAccountStatsUpdated = 9166; + k_EMsgClientToGCGetMatchMetaData = 9167; + k_EMsgClientToGCGetMatchMetaDataResponse = 9168; + k_EMsgClientToGCDevAction = 9172; + k_EMsgClientToGCDevActionResponse = 9173; + k_EMsgClientToGCRecordClientEvents = 9174; + k_EMsgClientToGCRecordClientEventsResponse = 9175; + k_EMsgClientToGCSetNewPlayerProgress = 9176; + k_EMsgClientToGCSetNewPlayerProgressResponse = 9177; + k_EMsgClientToGCUpdateAccountSync = 9178; + k_EMsgClientToGCUpdateAccountSyncResponse = 9179; + k_EMsgClientToGCGetHeroChoice = 9180; + k_EMsgClientToGCGetHeroChoiceResponse = 9181; + k_EMsgClientToGCUnlockHero = 9182; + k_EMsgClientToGCUnlockHeroResponse = 9183; + k_EMsgClientToGCBookUnlock = 9184; + k_EMsgClientToGCBookUnlockResponse = 9185; + k_EMsgClientToGCGetBook = 9186; + k_EMsgClientToGCGetBookResponse = 9187; + k_EMsgGCToClientBookUpdated = 9188; + k_EMsgClientToGCSubmitPlaytestUser = 9189; + k_EMsgClientToGCSubmitPlaytestUserResponse = 9190; + k_EMsgClientToGCUpdateHeroBuild = 9193; + k_EMsgClientToGCUpdateHeroBuildResponse = 9194; + k_EMsgClientToGCFindHeroBuilds = 9195; + k_EMsgClientToGCFindHeroBuildsResponse = 9196; + k_EMsgClientToGCReportPlayerFromMatch = 9197; + k_EMsgClientToGCReportPlayerFromMatchResponse = 9198; + k_EMsgClientToGCGetAccountMatchReports = 9199; + k_EMsgClientToGCGetAccountMatchReportsResponse = 9200; + k_EMsgClientToGCDeleteHeroBuild = 9201; + k_EMsgClientToGCDeleteHeroBuildResponse = 9202; + k_EMsgClientToGCGetActiveMatches = 9203; + k_EMsgClientToGCGetActiveMatchesResponse = 9204; + k_EMsgClientToGCGetDiscordLink = 9205; + k_EMsgClientToGCGetDiscordLinkResponse = 9206; + k_EMsgClientToGCPartySetMode = 9207; + k_EMsgClientToGCPartySetModeResponse = 9208; + k_EMsgClientToGCGrantForumAccess = 9209; + k_EMsgClientToGCGrantForumAccessResponse = 9210; + k_EMsgClientToGCModeratorRequest = 9211; + k_EMsgClientToGCModeratorRequestResponse = 9212; + k_EMsgClientToGCGetFriendGameStatus = 9213; + k_EMsgClientToGCGetFriendGameStatusResponse = 9214; + k_EMsgClientToGCUpdateHeroBuildPreference = 9215; + k_EMsgClientToGCUpdateHeroBuildPreferenceResponse = 9216; + k_EMsgClientToGCGetOldHeroBuildData = 9217; + k_EMsgClientToGCGetOldHeroBuildDataResponse = 9218; + k_EMsgClientToGCUpdateSpectatorStatus = 9219; +} + +enum ECitadelAccountPermissionFlag { + k_eAccountPermission_PrivateBot = 1; + k_eAccountPermission_CoopBot = 2; + k_eAccountPermission_Unranked = 3; +} + +enum ECitadelNewPlayerProgressFlag { + k_eNewPlayerProgress_GettingStarted = 1; + k_eNewPlayerProgress_HeroTraining = 2; + k_eNewPlayerProgress_LaneTraining = 3; +} + +enum EProfileCardSlotType { + k_EProfileCardSlotType_Empty = 0; + k_EProfileCardSlotType_Stat = 1; + k_EProfileCardSlotType_Hero = 2; +} + +enum ECitadelClientAccountEvent { + k_eLaunchedHeroTest = 1; + k_eViewedProfile = 2; + k_eViewedSocial = 3; + k_eViewedHeroes = 4; + k_eViewedHeroDetails = 5; + k_eViewedPatchNotes = 6; + k_eViewedEvents = 7; + k_eViewedGettingStarted = 8; + k_eViewedGuidePage = 9; + k_eLaunchedClient = 10; + k_eEditRoster = 11; + k_eViewedWatch = 12; + k_eCreatedParty = 13; + k_eCreatedPartyWithInvite = 14; + k_eViewedSelfProfile = 15; + k_eJoinedPartyCode = 16; + k_eSentPartyInvite = 17; + k_eAcceptPartyInvite = 18; + k_eRejectPartyInvite = 19; + k_eSpectateUser = 20; + k_eSpectateMatch = 21; + k_eEnteredMatchMaking = 22; + k_eLeftMatchMaking = 23; + k_eEnteredPartyMatchMaking = 24; + k_eLeftPartyMatchMaking = 25; + k_eDownloadedReplay = 26; + k_eWatchedReplay = 27; + k_eViewMatchDetails = 28; + k_eMatchDetailsTab = 29; + k_eDeleteReplay = 30; + k_eBotMatch_Guided = 31; + k_eBotMatch_Easy = 32; + k_eBotMatch_Hard = 33; + k_eLiveUpdatedRoster = 34; + k_eMatchMakingIdle_Displayed = 35; + k_eMatchMakingIdle_Stopped = 36; + k_eConnectReacquireTicket = 37; + k_eConnectAttemptReconnect = 38; + k_eDisconnectPresentedPrompt = 39; + k_eDisconnectConfirmed = 40; + k_eViewedSettings_Options = 41; + k_eViewedSettings_Video = 42; + k_eViewedSettings_Audio = 43; + k_eViewedSettings_HotKey = 44; + k_eViewedSettings_ChatWheel = 45; + k_eViewedSettings_About = 46; + k_eOpenedSubmitFeedback = 47; + k_eTutorialSkip_Pressed = 48; + k_eTutorialSkip_Confirmed = 49; + k_eViewedGuidePage_5s = 50; + k_eViewedGuidePage_15s = 51; + k_eViewedGuidePage_30s = 52; + k_eViewedGuidePage_60s = 53; + k_eOpenedBookTest = 54; + k_eSandboxViaHeroPage = 55; +} + +message CSOGameAccountClient { + enum EFlags { + k_eDeveloper = 1; + k_eExternalModerator = 2; + k_eGotInitialHeroes = 4; + k_eClaimedDiscordLink = 16; + k_eClaimedForum = 32; + k_eAccountBanned = 64; + } + + optional uint32 account_id = 1 [(key_field) = true]; + optional uint64 flags = 2; + optional uint32 wins = 3; + optional uint32 losses = 4; + optional uint32 kills = 5; + optional uint32 most_played_hero_id = 6; + optional uint64 permissions = 7; + optional uint64 new_player_progress = 8; + optional uint32 hero_unlock_credits = 9; + optional uint32 mm_ban_until = 10; + optional uint32 comms_ban_until = 11; + optional uint32 low_priority_games_remaining = 12; +} + +message CSOAccountSyncStorage { + optional uint32 account_id = 1; + optional uint32 id = 2; + optional uint32 value = 3; +} + +message CSOAccountHeroInfo { + enum EHeroStatus { + k_eLocked = 0; + k_eOwned = 1; + } + + optional uint32 account_id = 1 [(key_field) = true]; + optional uint32 hero_id = 2; + optional .CSOAccountHeroInfo.EHeroStatus status = 3 [default = k_eLocked]; + optional uint32 wins = 4; + optional uint32 kills = 5; +} + +message CMsgCitadelClientHello { + optional .ECitadelRegionMode region_mode = 1 [default = k_ECitadelRegionMode_ROW]; +} + +message CMsgClientToGCStartMatchmaking { + optional uint32 client_version = 1; + optional .EGCPlatform client_platform = 2 [default = k_eGCPlatform_None]; + optional .CMsgStartFindingMatchInfo match_info = 3; + optional .CMsgRegionPingTimesClient ping_times = 4; + optional .CMsgHeroSelectionMatchInfo heroes = 5; +} + +message CMsgClientToGCStartMatchmakingResponse { + enum EResultCode { + k_EResult_OK = 0; + k_EResult_AlreadyFindingMatch = 1; + k_EResult_PartyMemberInLobby = 2; + k_EResult_InvalidClientVersion = 3; + k_EResult_MatchmakingDisabled = 4; + k_EResult_MatchmakingTooBusy = 5; + k_EResult_InternalError = 6; + k_EResult_NoRegionPings = 7; + k_EResult_InParty = 8; + k_EResult_ModeLocked = 9; + k_EResult_ModeBanned = 10; + k_EResult_RegionInfoNotProvided = 11; + k_EResult_DurationControlBlocked = 12; + k_EResult_InvalidHeroSelection = 13; + k_EResult_HeroesNotUnlocked = 14; + k_EResult_PermanentBan = 15; + } + + optional .CMsgClientToGCStartMatchmakingResponse.EResultCode result = 1 [default = k_EResult_OK]; + optional uint32 time_stamp = 2; + optional string debug_message = 3; +} + +message CMsgClientToGCStopMatchmaking { +} + +message CMsgClientToGCStopMatchmakingResponse { + optional bool success = 1; +} + +message CMsgGCToClientMatchmakingStopped { + enum EReason { + k_EResult_Unspecified = 0; + k_EResult_VersionUpdated = 1; + k_EResult_FailedReadyUp = 2; + } + + optional .CMsgGCToClientMatchmakingStopped.EReason reason = 1 [default = k_EResult_Unspecified]; +} + +message CMsgClientToGCLeaveLobby { + optional uint64 lobby_id = 1; +} + +message CMsgClientToGCLeaveLobbyResponse { +} + +message CMsgClientWelcomeCitadel { + optional uint32 currency = 1; + repeated .CExtraMsgBlock extra_messages = 2; + optional uint32 compatibility_version = 3; + optional .ECitadelRegionMode region_mode = 4 [default = k_ECitadelRegionMode_ROW]; +} + +message CMsgClientToGCIsInMatchmaking { +} + +message CMsgClientToGCIsInMatchmakingResponse { + optional bool in_matchmaking = 1; +} + +message CMsgDevMatchInfo { + message MatchPlayer { + optional uint32 account_id = 1; + optional .ECitadelLobbyTeam team = 2 [default = k_ECitadelLobbyTeam_Team0]; + optional bool abandoned = 3; + optional uint32 hero_id = 4; + } + + optional uint32 start_time = 1; + optional .ECitadelLobbyTeam winning_team = 2 [default = k_ECitadelLobbyTeam_Team0]; + optional uint64 match_id = 3; + repeated .CMsgDevMatchInfo.MatchPlayer players = 4; + optional fixed64 lobby_id = 5; + optional uint32 net_worth_team_0 = 9; + optional uint32 net_worth_team_1 = 10; + optional uint32 duration_s = 11; + optional uint32 spectators = 12; + optional uint32 open_spectator_slots = 13; + optional uint64 objectives_mask_team0 = 14; + optional uint64 objectives_mask_team1 = 15; + optional .ECitadelMatchMode match_mode = 16 [default = k_ECitadelMatchMode_Invalid]; + optional .ECitadelGameMode game_mode = 17 [default = k_ECitadelGameMode_Invalid]; + optional uint32 match_score = 18; + optional .ECitadelRegionMode region_mode = 19 [default = k_ECitadelRegionMode_ROW]; +} + +message CMsgGCToClientDevPlaytestStatus { + message HeroWhitelist { + optional uint32 hero_id = 1; + repeated uint32 account_ids = 2; + } + + message RegionInfo { + optional .ECitadelRegionMode region = 1 [default = k_ECitadelRegionMode_ROW]; + optional uint32 unranked_queue_size = 5; + optional uint32 coop_queue_size = 6; + optional uint32 coop_mm_formation_time = 8; + optional uint32 available_servers = 9; + } + + optional bool is_mm_enabled = 4; + optional bool locked_heroes = 8; + optional bool party_shared_heroes = 9; + repeated .CMsgGCToClientDevPlaytestStatus.HeroWhitelist hero_whitelists = 10; + optional uint32 mm_pause_time = 14; + repeated uint32 valid_client_versions = 15; + optional uint32 active_match_count = 21; + repeated .CMsgGCToClientDevPlaytestStatus.RegionInfo regions = 22; +} + +message CMsgGCToClientSDRTicket { + optional bytes ticket = 1; +} + +message CMsgClientToGCReplacementSDRTicket { + optional fixed64 lobby_id = 1; +} + +message CMsgClientToGCReplacementSDRTicketResponse { + optional bytes ticket = 1; + optional string error_message = 2; +} + +message CMsgClientToGCSetServerConVar { + optional string convar_name = 1; + optional string convar_value = 2; + optional fixed64 lobby_id = 3; +} + +message CMsgClientToGCSetServerConVarResponse { + optional string message = 1; +} + +message CMsgClientToGCPostMatchSurveyResponse { + message PostMatchSurvey { + optional uint32 question_id = 1; + optional uint32 response_value = 2; + } + + repeated .CMsgClientToGCPostMatchSurveyResponse.PostMatchSurvey post_match_survey = 1; + optional uint64 match_id = 2; +} + +message CMsgPartyMMInfo { + optional .EGCPlatform platform = 1 [default = k_eGCPlatform_None]; + optional .CMsgRegionPingTimesClient ping_times = 2; + optional uint32 client_version = 3; + optional .ECitadelRegionMode region_mode = 4 [default = k_ECitadelRegionMode_ROW]; +} + +message CMsgClientToGCPartyCreate { + optional .CMsgPartyMMInfo party_mm_info = 1; + optional uint32 invite_account_id = 3; + optional bool disable_party_code = 4; + optional bool is_private_lobby = 5; + optional .ECitadelRegionMode region_mode = 6 [default = k_ECitadelRegionMode_ROW]; + optional string server_search_key = 7; +} + +message CMsgClientToGCPartyCreateResponse { + enum EResponse { + k_eInternalError = 0; + k_eSuccess = 1; + k_eAlreadyInParty = 2; + k_eDisabled = 3; + k_eInvalidVersion = 4; + k_eNoRegionPings = 5; + k_eTooBusy = 6; + k_eRateLimited = 7; + k_eNotFriends = 8; + k_eRegionInfoNotProvided = 9; + k_eDurationControlBlocked = 10; + k_eInMatchmaking = 11; + k_ePlayerDoesntHaveGame = 12; + } + + optional .CMsgClientToGCPartyCreateResponse.EResponse result = 1 [default = k_eInternalError]; + optional fixed64 party_id = 2; +} + +message CMsgClientToGCPartyLeave { + optional fixed64 party_id = 1; +} + +message CMsgClientToGCPartyLeaveResponse { + enum EResponse { + k_eInternalError = 0; + k_eSuccess = 1; + k_eNotInParty = 2; + k_eInMatchMaking = 3; + } + + optional .CMsgClientToGCPartyLeaveResponse.EResponse result = 1 [default = k_eInternalError]; +} + +message CMsgClientToGCPartyJoin { + optional fixed64 party_id = 1; + optional bool is_rejoin = 2; + optional .CMsgPartyMMInfo party_mm_info = 3; +} + +message CMsgClientToGCPartyJoinResponse { + enum EResponse { + k_eInternalError = 0; + k_eSuccess = 1; + k_eAlreadyInParty = 2; + k_eDisabled = 3; + k_eInvalidPartyID = 4; + k_eInvalidPermissions = 5; + k_eInvalidVersion = 6; + k_eNoRegionPings = 7; + k_eTooBusy = 8; + k_eInvalidCode = 9; + k_eRateLimited = 10; + k_eRegionInfoNotProvided = 11; + k_eDurationControlBlocked = 12; + k_ePartyInMatchMaking = 13; + k_eInMatchmaking = 14; + k_ePartyFull = 15; + } + + optional .CMsgClientToGCPartyJoinResponse.EResponse result = 1 [default = k_eInternalError]; +} + +message CMsgClientToGCPartyAction { + enum EAction { + k_eKickUser = 1; + k_eCancelInvite = 2; + k_eCancelFindMatch = 3; + k_eSetPlayerType = 5; + k_eEnablePartyCode = 7; + k_eSetMemberTeam = 8; + k_eSetChatMode = 9; + k_eSetPlayerSlot = 10; + k_eSetRegionMode = 11; + k_eSetPlayerSlotBot = 12; + k_eSetAllSlotBots = 13; + } + + optional fixed64 party_id = 1; + optional uint32 target_account_id = 2; + optional .CMsgClientToGCPartyAction.EAction action_id = 3 [default = k_eKickUser]; + optional uint64 uint_value = 4; + optional bool bool_value = 5; +} + +message CMsgClientToGCPartyActionResponse { + enum EResponse { + k_eInternalError = 0; + k_eSuccess = 1; + k_eInvalidPartyID = 2; + k_eInvalidPermissions = 3; + k_eInvalidTarget = 4; + k_eInvalidValue = 5; + k_eInMatchMaking = 6; + k_eInMatch = 7; + k_eDisabled = 8; + k_eTooBusy = 9; + k_eRateLimited = 10; + k_eCannotChangeWhileReady = 12; + k_eSlotTaken = 13; + } + + optional .CMsgClientToGCPartyActionResponse.EResponse result = 1 [default = k_eInternalError]; +} + +message CMsgClientToGCPartySetMode { + optional fixed64 party_id = 1; + optional .ECitadelMatchMode match_mode = 2 [default = k_ECitadelMatchMode_Invalid]; + optional .ECitadelGameMode game_mode = 3 [default = k_ECitadelGameMode_Invalid]; + optional .ECitadelBotDifficulty bot_difficulty = 4 [default = k_ECitadelBotDifficulty_None]; + optional string dev_server_command = 5; + optional .ECitadelRegionMode region_mode = 6 [default = k_ECitadelRegionMode_ROW]; +} + +message CMsgClientToGCPartySetModeResponse { + enum EResponse { + k_eInternalError = 0; + k_eSuccess = 1; + k_eInvalidPartyID = 2; + k_eInvalidPermissions = 3; + k_ePlayerPermanentBanned = 4; + k_eInvalidValue = 5; + k_eInMatchMaking = 6; + k_eInMatch = 7; + k_eDisabled = 8; + k_eTooBusy = 9; + k_eRateLimited = 10; + k_eAlreadyDrafting = 11; + k_eCannotChangeWhileReady = 12; + k_eTooFewPlayers = 13; + k_eTooManyPlayers = 14; + k_ePlayerBanned = 15; + k_eTooManyHighMMR = 16; + k_eFiveStacksNotAllowed = 18; + } + + optional .CMsgClientToGCPartySetModeResponse.EResponse result = 1 [default = k_eInternalError]; + optional uint32 time_stamp = 2; + optional uint32 account_id = 3; +} + +message CMsgClientToGCPartyStartMatch { + optional fixed64 party_id = 1; +} + +message CMsgClientToGCPartyStartMatchResponse { + enum EResponse { + k_eInternalError = 0; + k_eSuccess = 1; + k_eDisabled = 2; + k_eInvalidPartyID = 3; + k_eInvalidPermissions = 4; + k_eTooBusy = 5; + k_eInMatchmaking = 6; + k_eInMatch = 7; + k_eInvalidVersion = 10; + k_ePlayersNotReady = 11; + k_eCannotSelectRegion = 12; + k_eNotAllPlayersAvailable = 13; + k_eTooManyPlayersForMM = 14; + k_eTooManyPlayersForPrivate = 15; + k_eTooManySpectatorsForMM = 16; + k_eTooManySpectatorsForPrivate = 17; + k_eTooFewPlayersForMM = 18; + k_eTooFewPlayersForPrivate = 19; + k_eMismatchedVersions = 20; + k_eInvalidPartyMatchMode = 21; + k_ePlayerBannedFromMode = 22; + k_eTooManyPlayersOnTeam = 23; + k_eInvalidTeam = 24; + k_eInvalidHeroLineup = 25; + k_eInvalidGroupHeroLineup = 26; + k_eUnassignedPlayers = 27; + } + + optional .CMsgClientToGCPartyStartMatchResponse.EResponse result = 1 [default = k_eInternalError]; + optional uint32 account_id = 2; +} + +message CMsgClientToGCPartyInviteUser { + optional fixed64 party_id = 1; + optional uint32 invite_account_id = 2; +} + +message CMsgClientToGCPartyInviteUserResponse { + enum EResponse { + k_eInternalError = 0; + k_eSuccess = 1; + k_eAlreadyInvited = 2; + k_eInvalidPermissions = 3; + k_eInvalidPartyID = 4; + k_eDisabled = 5; + k_eTooManyInvites = 6; + k_eNotFriends = 7; + k_eTooBusy = 8; + k_eRateLimited = 9; + k_eInvalidPartyMode = 10; + k_ePlayerDoesntHaveGame = 11; + } + + optional .CMsgClientToGCPartyInviteUserResponse.EResponse result = 1 [default = k_eInternalError]; + optional bool user_online = 2; +} + +message CMsgGCToClientPartyEvent { + enum EEvent { + k_ePlayerKicked = 1; + k_eJoinedParty = 3; + k_eMatchCompleted = 4; + k_eMatchMakingStopped_User = 5; + k_eMatchMakingStopped_Version = 6; + k_eMatchMakingStopped_NoServerRegion = 7; + k_eLeftParty = 8; + k_eDeclinedInvite = 9; + k_eMatchMakingStopped_FailedOther = 10; + k_eDraftEnded_User = 11; + k_eStartDraftMMFailed = 12; + k_eMatchMakingStopped_Cancelled = 13; + } + + optional fixed64 party_id = 1; + optional .CMsgGCToClientPartyEvent.EEvent event = 2 [default = k_ePlayerKicked]; + optional uint32 initiator_account_id = 3; + optional uint32 target_account_id = 4; + optional bytes bytes_data = 5; + optional string str_data = 6; + optional uint64 uint_data = 7; +} + +message CMsgGCToClientCanRejoinParty { + optional fixed64 party_id = 1; +} + +message CMsgClientToGCPartyJoinViaCode { + optional uint64 join_code = 1; + optional .CMsgPartyMMInfo party_mm_info = 2; +} + +message CMsgClientToGCPartyJoinViaCodeResponse { + optional .CMsgClientToGCPartyJoinResponse.EResponse result = 1 [default = k_eInternalError]; + optional fixed64 party_id = 2; +} + +message CMsgClientToGCPartyUpdateRoster { + optional fixed64 party_id = 1; + optional .CMsgHeroSelectionMatchInfo hero_roster = 2; +} + +message CMsgClientToGCPartyUpdateRosterResponse { + enum EResponse { + k_eInternalError = 0; + k_eSuccess = 1; + k_eInvalidPermissions = 2; + k_eDisabled = 3; + k_eTooBusy = 4; + k_eRateLimited = 5; + k_eInvalidRoster = 6; + k_eMatchForming = 7; + k_eInvalidGroupRoster = 8; + k_eHeroesNotUnlocked = 9; + } + + optional .CMsgClientToGCPartyUpdateRosterResponse.EResponse result = 1 [default = k_eInternalError]; +} + +message CMsgClientToGCPartySetReadyState { + optional fixed64 party_id = 1; + optional bool ready_state = 2; + optional .CMsgHeroSelectionMatchInfo hero_roster = 3; +} + +message CMsgClientToGCPartySetReadyStateResponse { + enum EResponse { + k_eInternalError = 0; + k_eSuccess = 1; + k_eInvalidPermissions = 2; + k_eDisabled = 3; + k_eTooBusy = 4; + k_eRateLimited = 5; + k_eInvalidRoster = 6; + k_eMatchForming = 7; + k_eInvalidGroupRoster = 8; + k_eInMatch = 9; + k_eHeroesNotUnlocked = 10; + k_eModeLocked = 11; + k_eModeBanned = 12; + } + + optional .CMsgClientToGCPartySetReadyStateResponse.EResponse result = 1 [default = k_eInternalError]; +} + +message CMsgClientToGCDevSetMMBias { + optional uint32 account_id = 1; + optional uint32 value = 2; +} + +message CMsgClientToGCGetMatchHistory { + optional uint32 account_id = 1; + optional uint64 continue_cursor = 2; +} + +message CMsgClientToGCGetMatchHistoryResponse { + message Match { + optional uint64 match_id = 1; + optional uint32 hero_id = 2; + optional uint32 match_duration_s = 3; + optional uint32 start_time = 4; + optional uint32 match_result = 5; + optional .ECitadelLobbyTeam player_team = 6 [default = k_ECitadelLobbyTeam_Team0]; + optional uint32 player_kills = 7; + optional uint32 player_deaths = 8; + optional uint32 player_assists = 9; + optional uint32 last_hits = 11; + optional uint32 denies = 12; + optional uint32 hero_level = 13; + optional uint32 net_worth = 14; + optional uint64 objectives_mask_team0 = 15; + optional uint64 objectives_mask_team1 = 16; + optional bool team_abandoned = 17; + optional uint32 abandoned_time_s = 18; + } + + enum EResult { + k_eResult_InternalError = 0; + k_eResult_Success = 1; + k_eResult_InvalidPermission = 2; + k_eResult_TemporarilyDisabled = 3; + k_eResult_TooBusy = 4; + k_eResult_RateLimited = 5; + } + + optional .CMsgClientToGCGetMatchHistoryResponse.EResult result = 1 [default = k_eResult_InternalError]; + optional uint64 continue_cursor = 2; + repeated .CMsgClientToGCGetMatchHistoryResponse.Match matches = 3; +} + +message CMsgClientToGCSpectateUser { + optional uint32 spectate_account_id = 1; + optional .ECitadelRegionMode region_mode = 2 [default = k_ECitadelRegionMode_ROW]; + optional uint32 client_version = 3; + optional .EGCPlatform client_platform = 4 [default = k_eGCPlatform_None]; +} + +message CMsgClientToGCSpectateUserResponse { + enum EResponse { + k_eInternalError = 0; + k_eSuccess = 1; + k_eDisabled = 2; + k_eTooBusy = 3; + k_eRateLimited = 4; + k_eNotInGame = 5; + k_eDisabledForGame = 6; + k_eServerFull = 7; + k_eNotFriends = 8; + k_eRegionInfoNotProvided = 9; + k_eDurationControlBlocked = 10; + k_eInvalidClientVersion = 11; + k_eInvalidRegion = 12; + } + + optional .CMsgClientToGCSpectateUserResponse.EResponse result = 1 [default = k_eInternalError]; + optional fixed64 server_steam_id = 3; + optional bytes sdr_key = 4; + optional uint32 udp_connect_ip = 5; + optional uint32 udp_connect_port = 6; + optional fixed64 lobby_id = 7; + optional string client_broadcast_url = 8; +} + +message CMsgClientToGCSpectateLobby { + optional uint64 lobby_id = 1; + optional .ECitadelRegionMode region_mode = 2 [default = k_ECitadelRegionMode_ROW]; + optional uint32 client_version = 3; + optional .EGCPlatform client_platform = 4 [default = k_eGCPlatform_None]; +} + +message CMsgClientToGCSpectateLobbyResponse { + optional .CMsgClientToGCSpectateUserResponse result = 1; +} + +message CMsgClientToGCGetProfileCard { + optional uint32 account_id = 1; + optional bool dev_access_hint = 2; + optional bool friend_access_hint = 3; +} + +message CMsgCitadelProfileCard { + message Slot { + message Stat { + optional .CMsgCitadelProfileCard.EStatID stat_id = 1 [default = k_eStat_Invalid]; + optional uint32 stat_score = 2; + } + + message Hero { + optional uint32 hero_id = 1; + optional uint32 hero_wins = 2; + optional uint32 hero_kills = 3; + } + + optional uint32 slot_id = 1; + optional .CMsgCitadelProfileCard.Slot.Stat stat = 2; + optional .CMsgCitadelProfileCard.Slot.Hero hero = 3; + } + + enum EStatID { + k_eStat_Invalid = 0; + k_eStat_Wins = 1; + k_eStat_Kills = 2; + k_eStat_GamesPlayed = 3; + } + + optional uint32 account_id = 1; + repeated .CMsgCitadelProfileCard.Slot slots = 2; +} + +message CMsgClientToGCUpdateRoster { + optional .CMsgHeroSelectionMatchInfo heroes = 1; + optional .ECitadelGameMode game_mode = 2 [default = k_ECitadelGameMode_Invalid]; + optional .ECitadelMatchMode match_mode = 3 [default = k_ECitadelMatchMode_Invalid]; + optional bool solo_match = 4; +} + +message CMsgClientToGCUpdateRosterResponse { + enum EResponse { + k_eInternalError = 0; + k_eSuccess = 1; + k_eDisabled = 2; + k_eTooBusy = 3; + k_eRateLimited = 4; + k_eMMBusy = 5; + k_eInvalidHeroSelection = 6; + k_eHeroesNotUnlocked = 7; + } + + optional .CMsgClientToGCUpdateRosterResponse.EResponse result = 1 [default = k_eInternalError]; +} + +message CMsgClientToGCGetAccountStats { + optional uint32 account_id = 1; + optional bool dev_access_hint = 2; + optional bool friend_access_hint = 3; +} + +message CMsgClientToGCGetAccountStatsResponse { + enum EResult { + k_eInternalError = 0; + k_eSuccess = 1; + k_eDisabled = 2; + k_eTooBusy = 3; + k_eRateLimited = 4; + k_eInvalidPermissions = 5; + } + + optional .CMsgClientToGCGetAccountStatsResponse.EResult result = 1 [default = k_eInternalError]; + optional .CMsgAccountStats stats = 2; +} + +message CMsgClientToGCGetMatchMetaData { + optional uint64 match_id = 1; + optional uint32 metadata_salt = 3; + optional uint32 target_account_id = 4; +} + +message CMsgClientToGCGetMatchMetaDataResponse { + enum EResult { + k_eResult_InternalError = 0; + k_eResult_Success = 1; + k_eResult_InvalidPermission = 2; + k_eResult_TemporarilyDisabled = 3; + k_eResult_TooBusy = 4; + k_eResult_RateLimited = 5; + k_eResult_InvalidMatch = 6; + k_eResult_MatchInFlight = 7; + } + + optional .CMsgClientToGCGetMatchMetaDataResponse.EResult result = 1 [default = k_eResult_InternalError]; + optional uint32 replay_salt = 2; + optional uint32 metadata_salt = 3; + optional uint32 replay_valid_through = 4; + optional uint32 cluster_id = 5; + optional uint32 replay_processing_through = 6; +} + +message CMsgGCToClientDevAnnouncements { + message Announcement { + optional uint32 priority = 1; + optional string title = 2; + optional string message = 3; + optional string url = 4; + optional uint32 unique_id = 5; + optional uint32 posted_time = 6; + optional string patch_version = 7; + } + + repeated .CMsgGCToClientDevAnnouncements.Announcement announcements = 1; +} + +message CMsgClientToGCModifyDevAnnouncements { + enum EOperation { + k_eCreate = 0; + k_eUpdate = 1; + k_eDelete = 2; + } + + optional .CMsgClientToGCModifyDevAnnouncements.EOperation operation = 1 [default = k_eCreate]; + optional uint32 target_id = 2; + optional uint32 priority = 3; + optional string title = 4; + optional string message = 5; + optional string url = 6; + optional string patch_version = 7; +} + +message CMsgClientToGCModifyDevAnnouncementsResponse { + enum EResult { + k_eSuccess = 0; + k_eInvalidPermission = 1; + k_eInvalidTarget = 2; + k_eInternalError = 3; + } + + optional .CMsgClientToGCModifyDevAnnouncementsResponse.EResult result = 1 [default = k_eSuccess]; +} + +message CMsgClientToGCDevAction { + enum EAction { + k_eSetDeveloper = 1; + k_eSetMMR = 2; + k_eSetMMRUncertainty = 3; + k_eSetHeroStatus = 4; + k_eSetPermission = 5; + k_eSetNewPlayerProgress = 6; + k_eForceAccountStorage = 7; + k_eBookReset = 9; + k_eBookXPGrant = 10; + k_eBanAccount = 11; + } + + optional .CMsgClientToGCDevAction.EAction action = 1 [default = k_eSetDeveloper]; + optional uint32 account_id = 2; + optional uint32 uint_value = 3; + optional int32 int_value = 4; + optional bool bool_value = 5; + optional string str_value = 6; +} + +message CMsgClientToGCDevActionResponse { + enum EResult { + k_eSuccess = 0; + k_eInvalidPermission = 1; + k_eInvalidTarget = 2; + k_eInternalError = 3; + } + + optional .CMsgClientToGCDevActionResponse.EResult result = 1 [default = k_eSuccess]; +} + +message CMsgClientToGCRecordClientEvents { + message Event { + optional uint32 time_stamp = 1; + optional .ECitadelClientAccountEvent event_id = 2 [default = k_eLaunchedHeroTest]; + optional uint64 event_data = 3; + optional uint32 client_event_index = 4; + } + + repeated .CMsgClientToGCRecordClientEvents.Event events = 1; + optional uint32 client_run_token = 2; +} + +message CMsgClientToGCRecordClientEventsResponse { + optional bool success = 1; +} + +message CMsgClientToGCSetNewPlayerProgress { + optional .ECitadelNewPlayerProgressFlag flag = 1 [default = k_eNewPlayerProgress_GettingStarted]; +} + +message CMsgClientToGCSetNewPlayerProgressResponse { + optional bool success = 1; +} + +message CMsgClientToGCUpdateAccountSync { + repeated uint32 ids = 1; + repeated uint32 values = 2; +} + +message CMsgClientToGCUpdateAccountSyncResponse { + enum EResponse { + k_eInternalError = 0; + k_eSuccess = 1; + k_eDisabled = 2; + k_eTooBusy = 3; + k_eInvalidMessage = 4; + } + + optional .CMsgClientToGCUpdateAccountSyncResponse.EResponse result = 1 [default = k_eInternalError]; +} + +message CMsgClientToGCGetHeroChoice { +} + +message CMsgClientToGCGetHeroChoiceResponse { + message Hero { + optional uint32 hero_id = 1; + } + + enum EResult { + k_eSuccess = 0; + k_eNoChoices = 1; + k_eInvalidTarget = 2; + k_eInternalError = 3; + k_eDisabled = 4; + k_eTooBusy = 5; + k_eChoiceClosed = 6; + } + + optional .CMsgClientToGCGetHeroChoiceResponse.EResult result = 1 [default = k_eSuccess]; + repeated .CMsgClientToGCGetHeroChoiceResponse.Hero hero_selections = 2; + optional uint32 hero_choice_id = 3; + optional uint32 select_count = 4; +} + +message CMsgClientToGCUnlockHero { + repeated uint32 hero_ids = 1; + optional uint32 hero_choice_id = 2; +} + +message CMsgClientToGCUnlockHeroResponse { + enum EResult { + k_eSuccess = 0; + k_eInternalError = 1; + k_eInvalidHero = 2; + k_eOutOfSync = 3; + k_eDisabled = 4; + k_eTooBusy = 5; + } + + optional .CMsgClientToGCUnlockHeroResponse.EResult result = 1 [default = k_eSuccess]; +} + +message CMsgAccountBook { + message Unlock { + optional uint32 unlock_id = 1; + optional uint32 flags = 2; + } + + optional uint32 book_id = 1; + optional uint32 book_xp = 2; + optional uint32 spent_xp = 3; + repeated .CMsgAccountBook.Unlock unlocks = 4; +} + +message CMsgClientToGCBookUnlock { + optional uint32 book_id = 1; + optional uint32 unlock_id = 2; + optional uint32 expected_cost = 3; + optional uint32 client_version = 4; +} + +message CMsgClientToGCBookUnlockResponse { + enum EResult { + k_eSuccess = 0; + k_eInternalError = 1; + k_eOutOfDateClient = 2; + k_eInvalidFunds = 3; + k_eDisabled = 4; + k_eTooBusy = 5; + k_eAlreadyUnlocked = 6; + } + + optional .CMsgClientToGCBookUnlockResponse.EResult result = 1 [default = k_eSuccess]; + optional .CMsgAccountBook updated_book = 2; +} + +message CMsgClientToGCGetBook { + optional uint32 book_id = 1; +} + +message CMsgClientToGCGetBookResponse { + enum EResult { + k_eSuccess = 0; + k_eInternalError = 1; + k_eInvalidBook = 2; + k_eDisabled = 3; + k_eTooBusy = 4; + } + + optional .CMsgClientToGCGetBookResponse.EResult result = 1 [default = k_eSuccess]; + optional .CMsgAccountBook book = 2; +} + +message CMsgGCToClientBookUpdated { + optional .CMsgAccountBook book = 1; +} + +message CMsgClientToGCSubmitPlaytestUser { + optional string location = 3; + optional uint32 target_account_id = 4; +} + +message CMsgClientToGCSubmitPlaytestUserResponse { + enum EResponse { + eResponse_Success = 0; + eResponse_InternalError = 1; + eResponse_InvalidFriend = 3; + eResponse_NotFriendsLongEnough = 4; + eResponse_AlreadyHasGame = 5; + eResponse_LimitedUser = 6; + eResponse_InviteLimitReached = 7; + } + + optional .CMsgClientToGCSubmitPlaytestUserResponse.EResponse response = 1 [default = eResponse_Success]; +} + +message CMsgHeroBuild { + message BuildModEntry { + optional uint32 ability_id = 1; + optional string annotation = 2; + } + + message BuildModCategory { + repeated .CMsgHeroBuild.BuildModEntry mods = 1; + optional string name = 2; + optional string description = 3; + optional float width = 4; + optional float height = 5; + } + + message CurrencyChange { + optional uint32 ability_id = 1; + optional int32 currency_type = 2; + optional int32 delta = 3; + optional string annotation = 4; + } + + message AbilityOrder { + repeated .CMsgHeroBuild.CurrencyChange currency_changes = 1; + } + + message Details_V0 { + repeated .CMsgHeroBuild.BuildModCategory mod_categories = 1; + optional .CMsgHeroBuild.AbilityOrder ability_order = 2; + } + + optional uint32 hero_build_id = 1; + optional uint32 hero_id = 2; + optional uint32 author_account_id = 3; + optional uint32 last_updated_timestamp = 4; + optional string name = 5; + optional string description = 6; + optional uint32 language = 7; + optional uint32 version = 8; + optional uint32 origin_build_id = 9; + optional .CMsgHeroBuild.Details_V0 details = 10; +} + +message CMsgClientToGCUpdateHeroBuild { + optional .CMsgHeroBuild hero_build = 1; +} + +message CMsgClientToGCUpdateHeroBuildResponse { + enum EResponse { + k_eInternalError = 0; + k_eSuccess = 1; + } + + optional .CMsgClientToGCUpdateHeroBuildResponse.EResponse response = 1 [default = k_eInternalError]; + optional uint32 hero_build_id = 2; + optional uint32 version = 3; +} + +message CMsgClientToGCFindHeroBuilds { + optional uint32 author_account_id = 1; + optional uint32 hero_id = 2; + repeated int32 language = 3; + optional string search_text = 4; +} + +message CMsgHeroBuildPreference { + optional bool favorited = 1; + optional bool ignored = 2; + optional bool reported = 3; +} + +message CMsgClientToGCFindHeroBuildsResponse { + message HeroBuildResult { + optional .CMsgHeroBuild hero_build = 1; + optional .CMsgHeroBuildPreference preference = 2; + optional uint32 num_favorites = 3; + optional uint32 num_ignores = 4; + optional uint32 num_reports = 5; + } + + enum EResponse { + k_eInternalError = 0; + k_eSuccess = 1; + } + + optional .CMsgClientToGCFindHeroBuildsResponse.EResponse response = 1 [default = k_eInternalError]; + repeated .CMsgClientToGCFindHeroBuildsResponse.HeroBuildResult results = 2; +} + +message CMsgClientToGCUpdateHeroBuildPreference { + optional uint32 hero_build_id = 1; + optional .CMsgHeroBuildPreference preference = 2; +} + +message CMsgClientToGCUpdateHeroBuildPreferenceResponse { + enum EResponse { + k_eInternalError = 0; + k_eSuccess = 1; + } + + optional .CMsgClientToGCUpdateHeroBuildPreferenceResponse.EResponse response = 1 [default = k_eInternalError]; +} + +message CMsgClientToGCGetOldHeroBuildData { + optional uint32 author_account_id = 1; +} + +message CMsgClientToGCGetOldHeroBuildDataResponse { + message OldDetails_V0 { + repeated uint32 recommended_mod_ability_ids = 1; + } + + message OldBuild { + optional string name = 1; + optional uint32 hero_id = 2; + optional string description = 3; + optional .CMsgClientToGCGetOldHeroBuildDataResponse.OldDetails_V0 details = 4; + } + + enum EResponse { + k_eInternalError = 0; + k_eSuccess = 1; + } + + optional .CMsgClientToGCGetOldHeroBuildDataResponse.EResponse response = 1 [default = k_eInternalError]; + optional uint32 author_account_id = 2; + repeated .CMsgClientToGCGetOldHeroBuildDataResponse.OldBuild results = 3; +} + +message CMsgClientToGCReportPlayerFromMatch { + enum EReportType { + k_eReport_None = 0; + k_eReport_VoiceChat = 1; + k_eReport_Griefing = 2; + k_eReport_LeftMatch = 3; + k_eReport_Matchmaking = 4; + } + + optional uint64 match_id = 1; + optional uint32 target_account_id = 2; + optional .CMsgClientToGCReportPlayerFromMatch.EReportType report_type = 3 [default = k_eReport_None]; + optional string report_text = 4; +} + +message CMsgClientToGCReportPlayerFromMatchResponse { + enum EResponse { + k_eInternalError = 0; + k_eSuccess = 1; + k_eRateLimited = 2; + k_eAlreadyReported = 3; + k_eDisabled = 4; + k_eInvalidPermissions = 5; + k_eReportingWindowExpired = 6; + k_eTooBusy = 7; + } + + optional .CMsgClientToGCReportPlayerFromMatchResponse.EResponse response = 1 [default = k_eInternalError]; +} + +message CMsgClientToGCGetAccountMatchReports { + optional uint64 match_id = 1; +} + +message CMsgClientToGCGetAccountMatchReportsResponse { + message Report { + optional uint32 account_id = 1; + } + + enum EResponse { + k_eInternalError = 0; + k_eSuccess = 1; + k_eDisabled = 4; + k_eTooBusy = 7; + } + + optional .CMsgClientToGCGetAccountMatchReportsResponse.EResponse response = 1 [default = k_eInternalError]; + repeated .CMsgClientToGCGetAccountMatchReportsResponse.Report reports = 2; +} + +message CMsgClientToGCDeleteHeroBuild { + optional uint32 author_account_id = 1; + optional uint32 hero_build_id = 2; +} + +message CMsgClientToGCDeleteHeroBuildResponse { + enum EResponse { + k_eInternalError = 0; + k_eSuccess = 1; + } + + optional .CMsgClientToGCDeleteHeroBuildResponse.EResponse response = 1 [default = k_eInternalError]; + optional uint32 builds_deleted = 2; +} + +message CMsgClientToGCGetActiveMatches { +} + +message CMsgClientToGCGetActiveMatchesResponse { + repeated .CMsgDevMatchInfo active_matches = 1; +} + +message CMsgClientToGCGetDiscordLink { +} + +message CMsgClientToGCGetDiscordLinkResponse { + enum EResponse { + k_eInternalError = 0; + k_eSuccess = 1; + k_eDiscordTooBusy = 2; + k_eAlreadyClaimed = 3; + k_eDisabled = 4; + } + + optional .CMsgClientToGCGetDiscordLinkResponse.EResponse response = 1 [default = k_eInternalError]; + optional string discord_link = 2; + optional uint32 valid_hours = 3; +} + +message CMsgClientToGCGrantForumAccess { + optional string email = 1; +} + +message CMsgClientToGCGrantForumAccessResponse { + enum EResponse { + k_eInternalError = 0; + k_eSuccess = 1; + k_eAlreadyClaimed = 2; + k_eDisabled = 3; + k_eEmailUsed = 4; + } + + optional .CMsgClientToGCGrantForumAccessResponse.EResponse response = 1 [default = k_eInternalError]; + optional string email = 2; + optional string username = 3; + optional string forum_password = 4; +} + +message CMsgClientToGCModeratorRequest { + optional uint32 account_id = 1; +} + +message CMsgClientToGCModeratorRequestResponse { + optional bool success = 1; + repeated string response_text = 2; +} + +message CMsgClientToGCGetFriendGameStatus { + optional bool include_invited = 1; +} + +message CMsgClientToGCGetFriendGameStatusResponse { + enum EResponse { + k_eInternalError = 0; + k_eSuccess = 1; + k_eTooBusy = 2; + k_eDisabled = 3; + } + + optional .CMsgClientToGCGetFriendGameStatusResponse.EResponse response = 1 [default = k_eInternalError]; + repeated uint32 friends_played_game = 2 [packed = true]; + repeated uint32 friends_invited = 3 [packed = true]; +} + +message CMsgClientToGCUpdateSpectatorStatus { + optional fixed64 spectating_lobby_id = 1; + optional bool stopped_spectating = 2; +} diff --git a/Protobufs/deadlock/citadel_gcmessages_common.proto b/Protobufs/deadlock/citadel_gcmessages_common.proto new file mode 100644 index 0000000..00cf2c7 --- /dev/null +++ b/Protobufs/deadlock/citadel_gcmessages_common.proto @@ -0,0 +1,565 @@ +import "steammessages.proto"; +import "gcsdk_gcmessages.proto"; + +enum CMsgLaneColor { + k_ELaneColor_Invalid = 0; + k_ELaneColor_Yellow = 1; + k_ELaneColor_Green = 3; + k_ELaneColor_Blue = 4; + k_ELaneColor_Purple = 6; +} + +enum EGCCitadelCommonMessages { + k_EMsgAnyToGCReportAsserts = 7000; + k_EMsgAnyToGCReportAssertsResponse = 7001; +} + +enum ECitadelMatchMode { + k_ECitadelMatchMode_Invalid = 0; + k_ECitadelMatchMode_Unranked = 1; + k_ECitadelMatchMode_PrivateLobby = 2; + k_ECitadelMatchMode_CoopBot = 3; + k_ECitadelMatchMode_Ranked = 4; + k_ECitadelMatchMode_ServerTest = 5; + k_ECitadelMatchMode_Tutorial = 6; +} + +enum ECitadelLobbyTeam { + k_ECitadelLobbyTeam_Team0 = 0; + k_ECitadelLobbyTeam_Team1 = 1; + k_ECitadelLobbyTeam_Spectator = 16; +} + +enum ECitadelAccountStatMedal { + k_eNone = 0; + k_eBronze = 1; + k_eSilver = 2; + k_eGold = 3; +} + +enum ECitadelObjective { + k_eCitadelObjective_Team0_Core = 0; + k_eCitadelObjective_Team0_Tier1_Lane1 = 1; + k_eCitadelObjective_Team0_Tier1_Lane2 = 2; + k_eCitadelObjective_Team0_Tier1_Lane3 = 3; + k_eCitadelObjective_Team0_Tier1_Lane4 = 4; + k_eCitadelObjective_Team0_Tier2_Lane1 = 5; + k_eCitadelObjective_Team0_Tier2_Lane2 = 6; + k_eCitadelObjective_Team0_Tier2_Lane3 = 7; + k_eCitadelObjective_Team0_Tier2_Lane4 = 8; + k_eCitadelObjective_Team0_Titan = 9; + k_eCitadelObjective_Team0_TitanShieldGenerator_1 = 10; + k_eCitadelObjective_Team0_TitanShieldGenerator_2 = 11; + k_eCitadelObjective_Team0_BarrackBoss_Lane1 = 12; + k_eCitadelObjective_Team0_BarrackBoss_Lane2 = 13; + k_eCitadelObjective_Team0_BarrackBoss_Lane3 = 14; + k_eCitadelObjective_Team0_BarrackBoss_Lane4 = 15; + k_eCitadelObjective_Team1_Core = 16; + k_eCitadelObjective_Team1_Tier1_Lane1 = 17; + k_eCitadelObjective_Team1_Tier1_Lane2 = 18; + k_eCitadelObjective_Team1_Tier1_Lane3 = 19; + k_eCitadelObjective_Team1_Tier1_Lane4 = 20; + k_eCitadelObjective_Team1_Tier2_Lane1 = 21; + k_eCitadelObjective_Team1_Tier2_Lane2 = 22; + k_eCitadelObjective_Team1_Tier2_Lane3 = 23; + k_eCitadelObjective_Team1_Tier2_Lane4 = 24; + k_eCitadelObjective_Team1_Titan = 25; + k_eCitadelObjective_Team1_TitanShieldGenerator_1 = 26; + k_eCitadelObjective_Team1_TitanShieldGenerator_2 = 27; + k_eCitadelObjective_Team1_BarrackBoss_Lane1 = 28; + k_eCitadelObjective_Team1_BarrackBoss_Lane2 = 29; + k_eCitadelObjective_Team1_BarrackBoss_Lane3 = 30; + k_eCitadelObjective_Team1_BarrackBoss_Lane4 = 31; + k_eCitadelObjective_Neutral_Mid = 32; +} + +enum ECitadelTeamObjective { + k_eCitadelTeamObjective_Core = 0; + k_eCitadelTeamObjective_Tier1_Lane1 = 1; + k_eCitadelTeamObjective_Tier1_Lane2 = 2; + k_eCitadelTeamObjective_Tier1_Lane3 = 3; + k_eCitadelTeamObjective_Tier1_Lane4 = 4; + k_eCitadelTeamObjective_Tier2_Lane1 = 5; + k_eCitadelTeamObjective_Tier2_Lane2 = 6; + k_eCitadelTeamObjective_Tier2_Lane3 = 7; + k_eCitadelTeamObjective_Tier2_Lane4 = 8; + k_eCitadelTeamObjective_Titan = 9; + k_eCitadelTeamObjective_TitanShieldGenerator_1 = 10; + k_eCitadelTeamObjective_TitanShieldGenerator_2 = 11; + k_eCitadelTeamObjective_BarrackBoss_Lane1 = 12; + k_eCitadelTeamObjective_BarrackBoss_Lane2 = 13; + k_eCitadelTeamObjective_BarrackBoss_Lane3 = 14; + k_eCitadelTeamObjective_BarrackBoss_Lane4 = 15; +} + +enum ECitadelBotDifficulty { + k_ECitadelBotDifficulty_None = 0; + k_ECitadelBotDifficulty_Easy = 1; + k_ECitadelBotDifficulty_Medium = 2; + k_ECitadelBotDifficulty_Hard = 3; + k_ECitadelBotDifficulty_Nightmare = 4; + k_ECitadelBotDifficulty_Guided = 5; +} + +enum ECitadelRegionMode { + k_ECitadelRegionMode_ROW = 0; + k_ECitadelRegionMode_Europe = 1; + k_ECitadelRegionMode_SEAsia = 2; + k_ECitadelRegionMode_SAmerica = 3; + k_ECitadelRegionMode_Russia = 4; + k_ECitadelRegionMode_Oceania = 5; +} + +enum ECitadelGameMode { + k_ECitadelGameMode_Invalid = 0; + k_ECitadelGameMode_Normal = 1; + k_ECitadelGameMode_1v1Test = 2; + k_ECitadelGameMode_Sandbox = 3; +} + +enum ELobbyServerState { + k_eLobbyServerState_Assign = 0; + k_eLobbyServerState_InGame = 1; + k_eLobbyServerState_PostMatch = 2; + k_eLobbyServerState_SignedOut = 3; + k_eLobbyServerState_Abandoned = 4; +} + +enum EBannedFeature { + k_eBannedFeature_Invalid = 0; + k_eBannedFeature_LowPriorityMatchmaking = 1; + k_eBannedFeature_CommsRestricted = 2; +} + +enum EFeatureBanReason { + k_eFeatureBanReason_Invalid = 0; + k_eFeatureBanReason_DevCommand = 1; + k_eFeatureBanReason_PlayerReports = 2; + k_eFeatureBanReason_MatchAbandons = 3; +} + +message CSOCitadelLobby { + optional uint64 lobby_id = 1; + optional uint64 match_id = 2; + optional .ECitadelMatchMode match_mode = 3 [default = k_ECitadelMatchMode_Invalid]; + optional .ECitadelGameMode game_mode = 4 [default = k_ECitadelGameMode_Invalid]; + optional uint32 compatibility_version = 5; + repeated .CExtraMsgBlock extra_messages = 6; + optional fixed64 server_steam_id = 7; + optional .ELobbyServerState server_state = 8 [default = k_eLobbyServerState_Assign]; + optional uint32 udp_connect_ip = 9; + optional uint32 udp_connect_port = 10; + optional bytes sdr_address = 12; + optional uint32 server_version = 13; + optional bool safe_to_abandon = 14; +} + +message CLobbyData_PostMatchSurvey { + message PlayerSurvey { + optional uint32 account_id = 1; + optional uint32 question_id = 2; + } + + repeated .CLobbyData_PostMatchSurvey.PlayerSurvey surveys = 1; +} + +message CMsgHeroSelectionMatchInfo { + message Hero { + optional uint32 hero_id = 1; + optional uint32 priority = 2; + } + + repeated .CMsgHeroSelectionMatchInfo.Hero hero_selections = 1; +} + +message CMsgStartFindingMatchInfo { + optional string server_search_key = 1; + optional string server_command_string = 2; + optional .ECitadelMatchMode match_mode = 3 [default = k_ECitadelMatchMode_Invalid]; + optional .ECitadelGameMode game_mode = 5 [default = k_ECitadelGameMode_Invalid]; + optional bool solo_match = 6; + optional .ECitadelBotDifficulty bot_difficulty = 7 [default = k_ECitadelBotDifficulty_None]; + optional .ECitadelRegionMode region_mode = 8 [default = k_ECitadelRegionMode_ROW]; +} + +message CMsgAnyToGCReportAsserts { + message TrackedAssert { + optional string filename = 1; + optional uint32 line_number = 2; + optional string sample_msg = 3; + optional string sample_stack = 4; + optional uint32 times_fired = 5; + optional string function_name = 6; + optional string condition = 7; + optional uint32 total_times_fired = 8; + } + + optional uint32 version = 1; + repeated .CMsgAnyToGCReportAsserts.TrackedAssert asserts = 2; +} + +message CMsgAnyToGCReportAssertsResponse { + optional bool success = 1; +} + +message CMsgRegionPingTimesClient { + repeated fixed32 data_center_codes = 1 [packed = true]; + repeated uint32 ping_times = 2 [packed = true]; +} + +message CSOCitadelParty { + message PrivateLobbySlot { + optional uint32 slot_id = 1; + optional uint32 player_account_id = 2; + optional .ECitadelBotDifficulty bot_difficulty = 3 [default = k_ECitadelBotDifficulty_None]; + } + + message PrivateLobbySettings { + optional uint32 min_roster_size = 1; + repeated .CSOCitadelParty.PrivateLobbySlot match_slots = 2; + } + + message Member { + optional uint32 account_id = 1; + optional string persona_name = 2; + optional uint32 rights_flags = 3; + optional bool is_ready = 4; + optional .CSOCitadelParty.EPlayerType player_type = 5 [default = k_ePlayerType_Player]; + optional uint32 compatibility_version = 6; + optional .EGCPlatform platform = 7 [default = k_eGCPlatform_None]; + optional uint32 team = 8; + optional .CMsgHeroSelectionMatchInfo hero_roster = 9; + optional uint64 permissions = 10; + optional uint64 new_player_progress = 11; + repeated uint32 owned_heroes = 12 [packed = true]; + } + + message LeftMember { + optional uint32 account_id = 1; + optional uint32 rights_flags = 2; + optional .CSOCitadelParty.EPlayerType player_type = 3 [default = k_ePlayerType_Player]; + } + + message Invite { + optional uint32 account_id = 1; + optional string persona_name = 2; + optional uint32 invited_by = 3; + } + + enum EMemberRights { + k_eMemberRights_Admin = 1; + k_eMemberRights_Creator = 2; + } + + enum EPlayerType { + k_ePlayerType_Player = 0; + k_ePlayerType_Spectator = 1; + } + + enum EChatMode { + k_eNone = 0; + k_ePartyChat = 1; + k_eTeamChat = 2; + } + + optional uint64 party_id = 1; + repeated .CSOCitadelParty.Member members = 2; + repeated .CSOCitadelParty.Invite invites = 3; + optional string dev_server_command = 4; + repeated .CSOCitadelParty.LeftMember left_members = 5; + optional uint64 join_code = 6; + optional .ECitadelBotDifficulty bot_difficulty = 7 [default = k_ECitadelBotDifficulty_None]; + optional .ECitadelMatchMode match_mode = 9 [default = k_ECitadelMatchMode_Invalid]; + optional .ECitadelGameMode game_mode = 10 [default = k_ECitadelGameMode_Invalid]; + optional uint32 match_making_start_time = 11; + optional string server_search_key = 12; + optional bool is_high_skill_range_party = 13; + optional .CSOCitadelParty.EChatMode chat_mode = 14 [default = k_eNone]; + optional .ECitadelRegionMode region_mode = 15 [default = k_ECitadelRegionMode_ROW]; + optional bool is_private_lobby = 16; + optional .CSOCitadelParty.PrivateLobbySettings private_lobby_settings = 17; +} + +message CMsgMatchPlayerPathsData { + message Path { + optional uint32 player_slot = 1; + optional float x_min = 2; + optional float y_min = 3; + optional float x_max = 4; + optional float y_max = 5; + repeated uint32 x_pos = 6 [packed = true]; + repeated uint32 y_pos = 7 [packed = true]; + repeated bool alive = 8 [packed = true]; + repeated uint32 health = 9 [packed = true]; + } + + optional uint32 version = 1; + optional float interval_s = 2; + optional uint32 x_resolution = 3; + optional uint32 y_resolution = 4; + repeated .CMsgMatchPlayerPathsData.Path paths = 5; +} + +message CMsgMatchPlayerDamageMatrix { + message DamageToPlayer { + optional uint32 target_player_slot = 1; + repeated uint32 damage = 2 [packed = true]; + } + + message DamageSource { + repeated .CMsgMatchPlayerDamageMatrix.DamageToPlayer damage_to_players = 2; + optional uint32 source_details_index = 4; + } + + message DamageDealer { + optional uint32 dealer_player_slot = 1; + repeated .CMsgMatchPlayerDamageMatrix.DamageSource damage_sources = 2; + } + + message SourceDetails { + repeated .CMsgMatchPlayerDamageMatrix.EStatType stat_type = 1 [packed = true]; + repeated string source_name = 2; + } + + enum EStatType { + k_eType_Damage = 0; + k_eType_Healing = 1; + k_eType_HealPrevented = 2; + k_eType_Mitigated = 3; + k_eType_LethalDamage = 4; + } + + repeated .CMsgMatchPlayerDamageMatrix.DamageDealer damage_dealers = 1; + repeated uint32 sample_time_s = 2 [packed = true]; + optional .CMsgMatchPlayerDamageMatrix.SourceDetails source_details = 3; +} + +message CMsgMatchMetaDataContents { + message Position { + optional float x = 1; + optional float y = 2; + optional float z = 3; + } + + message Deaths { + optional uint32 game_time_s = 1; + optional uint32 killer_player_slot = 9; + optional .CMsgMatchMetaDataContents.Position death_pos = 10; + optional .CMsgMatchMetaDataContents.Position killer_pos = 11; + optional uint32 death_duration_s = 12; + } + + message Items { + optional uint32 game_time_s = 1; + optional uint32 item_id = 2; + optional uint32 upgrade_id = 3; + optional uint32 sold_time_s = 4; + optional uint32 flags = 5; + optional uint32 imbued_ability_id = 6; + } + + message Ping { + optional uint32 ping_type = 1; + optional uint32 ping_data = 2; + optional uint32 game_time_s = 3; + } + + message GoldSource { + optional .CMsgMatchMetaDataContents.EGoldSource source = 1 [default = k_ePlayers]; + optional uint32 kills = 2; + optional uint32 damage = 3; + optional uint32 gold = 4; + optional uint32 gold_orbs = 5; + } + + message CustomUserStatInfo { + optional string name = 1; + optional uint32 id = 2; + } + + message CustomUserStat { + optional uint32 value = 2; + optional uint32 id = 3; + } + + message PlayerStats { + optional uint32 time_stamp_s = 1; + optional uint32 net_worth = 2; + optional uint32 gold_player = 3; + optional uint32 gold_player_orbs = 4; + optional uint32 gold_lane_creep_orbs = 5; + optional uint32 gold_neutral_creep_orbs = 6; + optional uint32 gold_boss = 7; + optional uint32 gold_boss_orb = 8; + optional uint32 gold_treasure = 9; + optional uint32 gold_denied = 10; + optional uint32 gold_death_loss = 11; + optional uint32 gold_lane_creep = 12; + optional uint32 gold_neutral_creep = 13; + optional uint32 kills = 14; + optional uint32 deaths = 15; + optional uint32 assists = 16; + optional uint32 creep_kills = 17; + optional uint32 neutral_kills = 18; + optional uint32 possible_creeps = 19; + optional uint32 creep_damage = 20; + optional uint32 player_damage = 21; + optional uint32 neutral_damage = 22; + optional uint32 boss_damage = 23; + optional uint32 denies = 24; + optional uint32 player_healing = 25; + optional uint32 ability_points = 26; + optional uint32 self_healing = 27; + optional uint32 player_damage_taken = 28; + optional uint32 max_health = 29; + optional uint32 weapon_power = 30; + optional uint32 tech_power = 31; + optional uint32 shots_hit = 32; + optional uint32 shots_missed = 33; + optional uint32 damage_absorbed = 34; + optional uint32 absorption_provided = 35; + optional uint32 hero_bullets_hit = 36; + optional uint32 hero_bullets_hit_crit = 37; + optional uint32 heal_prevented = 38; + optional uint32 heal_lost = 39; + repeated .CMsgMatchMetaDataContents.GoldSource gold_sources = 40; + repeated .CMsgMatchMetaDataContents.CustomUserStat custom_user_stats = 41; + optional uint32 damage_mitigated = 42; + optional uint32 level = 43; + } + + message AbilityStat { + optional uint32 ability_id = 1; + optional uint32 ability_value = 2; + } + + message BookReward { + optional uint32 book_id = 1; + optional uint32 xp_amount = 2; + optional uint32 starting_xp = 3; + } + + message Players { + optional uint32 account_id = 1; + optional uint32 player_slot = 2; + repeated .CMsgMatchMetaDataContents.Deaths death_details = 3; + repeated .CMsgMatchMetaDataContents.Items items = 4; + repeated .CMsgMatchMetaDataContents.PlayerStats stats = 5; + optional .ECitadelLobbyTeam team = 6 [default = k_ECitadelLobbyTeam_Team0]; + optional uint32 kills = 8; + optional uint32 deaths = 9; + optional uint32 assists = 10; + optional uint32 net_worth = 11; + optional uint32 hero_id = 12; + optional uint32 last_hits = 13; + optional uint32 denies = 14; + optional uint32 ability_points = 15; + optional uint32 party = 16; + optional uint32 assigned_lane = 17; + optional uint32 level = 18; + repeated .CMsgMatchMetaDataContents.Ping pings = 19; + repeated .CMsgMatchMetaDataContents.AbilityStat ability_stats = 20; + repeated float stats_type_stat = 21 [packed = true]; + repeated .CMsgMatchMetaDataContents.BookReward book_rewards = 22; + optional uint32 abandon_match_time_s = 23; + } + + message Objective { + optional .ECitadelObjective legacy_objective_id = 1 [default = k_eCitadelObjective_Team0_Core]; + optional uint32 destroyed_time_s = 2; + optional uint32 creep_damage = 4; + optional uint32 creep_damage_mitigated = 5; + optional uint32 player_damage = 6; + optional uint32 player_damage_mitigated = 7; + optional uint32 first_damage_time_s = 8; + optional .ECitadelTeamObjective team_objective_id = 9 [default = k_eCitadelTeamObjective_Core]; + optional .ECitadelLobbyTeam team = 10 [default = k_ECitadelLobbyTeam_Team0]; + } + + message MidBoss { + optional .ECitadelLobbyTeam team_killed = 1 [default = k_ECitadelLobbyTeam_Team0]; + optional .ECitadelLobbyTeam team_claimed = 2 [default = k_ECitadelLobbyTeam_Team0]; + optional uint32 destroyed_time_s = 3; + } + + message Pause { + optional uint32 game_time_s = 1; + optional uint32 pause_duration_s = 2; + optional uint32 player_slot = 3; + } + + message WatchedDeathReplay { + optional uint32 game_time_s = 1; + optional uint32 player_slot = 2; + } + + message MatchInfo { + optional uint32 duration_s = 1; + optional .CMsgMatchMetaDataContents.EMatchOutcome match_outcome = 2 [default = k_eOutcome_TeamWin]; + optional .ECitadelLobbyTeam winning_team = 3 [default = k_ECitadelLobbyTeam_Team0]; + repeated .CMsgMatchMetaDataContents.Players players = 4; + optional uint32 start_time = 5; + optional uint64 match_id = 6; + optional uint32 legacy_objectives_mask = 8; + optional .ECitadelGameMode game_mode = 9 [default = k_ECitadelGameMode_Invalid]; + optional .ECitadelMatchMode match_mode = 10 [default = k_ECitadelMatchMode_Invalid]; + repeated .CMsgMatchMetaDataContents.Objective objectives = 11; + optional .CMsgMatchPlayerPathsData match_paths = 12; + optional .CMsgMatchPlayerDamageMatrix damage_matrix = 13; + repeated .CMsgMatchMetaDataContents.Pause match_pauses = 14; + repeated .CMsgMatchMetaDataContents.CustomUserStatInfo custom_user_stats = 15; + repeated .CMsgMatchMetaDataContents.WatchedDeathReplay watched_death_replays = 16; + optional uint64 objectives_mask_team0 = 17; + optional uint64 objectives_mask_team1 = 18; + repeated .CMsgMatchMetaDataContents.MidBoss mid_boss = 19; + } + + enum EMatchOutcome { + k_eOutcome_TeamWin = 0; + k_eOutcome_Error = 1; + } + + enum EGoldSource { + k_ePlayers = 1; + k_eLaneCreeps = 2; + k_eNeutrals = 3; + k_eBosses = 4; + k_eTreasure = 5; + k_eAssists = 6; + k_eDenies = 7; + } + + optional .CMsgMatchMetaDataContents.MatchInfo match_info = 2; +} + +message CMsgMatchMetaData { + optional uint32 version = 1; + optional bytes match_details = 2; + optional uint64 match_id = 3; +} + +message CMsgMapLine { + optional int32 x = 1; + optional int32 y = 2; + optional bool initial = 3; +} + +message CMsgAccountHeroStats { + optional uint32 hero_id = 1; + repeated uint32 stat_id = 2; + repeated uint64 total_value = 3; + repeated uint32 medals_bronze = 4; + repeated uint32 medals_silver = 5; + repeated uint32 medals_gold = 6; +} + +message CMsgAccountBookStats { + optional uint32 book_id = 1; + optional uint32 book_xp = 2; + optional uint32 book_max_xp = 3; +} + +message CMsgAccountStats { + optional uint32 account_id = 1; + repeated .CMsgAccountHeroStats stats = 2; +} diff --git a/Protobufs/deadlock/citadel_gcmessages_server.proto b/Protobufs/deadlock/citadel_gcmessages_server.proto new file mode 100644 index 0000000..83bcbfd --- /dev/null +++ b/Protobufs/deadlock/citadel_gcmessages_server.proto @@ -0,0 +1,597 @@ +import "steammessages.proto"; +import "gcsdk_gcmessages.proto"; +import "citadel_gcmessages_common.proto"; + +enum EGCCitadelServerMessages { + k_EMsgServerToGCMatchSignoutPermission = 10012; + k_EMsgServerToGCMatchSignoutPermissionResponse = 10013; + k_EMsgServerToGCMatchSignout = 10014; + k_EMsgServerToGCMatchSignoutResponse = 10015; + k_EMsgGCToServerAddSpectator = 10016; + k_EMsgGCToServerAddSpectatorResponse = 10017; + k_EMsgServerToGCIdlePing = 10018; + k_EMsgGCToServerRequestPing = 10019; + k_EMsgGCToServerAllocateForMatch = 10021; + k_EMsgGCToServerAllocateForMatchResponse = 10022; + k_EMsgServerToGCEnterMatchmaking = 10023; + k_EMsgGCToServerCancelAllocateForMatch = 10024; + k_EMsgServerToGCUpdateLobbyServerState = 10025; + k_EMsgServerToGCAbandonMatch = 10026; + k_EMsgServerToGCAbandonMatchResponse = 10027; + k_EMsgServerToGCTestConnection = 10028; + k_EMsgServerToGCTestConnectionResponse = 10029; + k_EMsgGCToServerSetServerConVar = 10039; + k_EMsgGCToServerSetServerConVarResponse = 10040; + k_EMsgServerToGCUpdateMatchInfo = 10041; +} + +enum EGCServerLobbyData { + k_EServerLobbyData_PlayerMMR = 1; + k_EServerLobbyData_PlayerInfo = 2; + k_EServerLobbyData_PostMatchSurvey = 3; + k_EServerLobbyData_AutoTest = 4; +} + +enum EGCServerSignoutData { + k_EServerSignoutData_Disconnections = 2; + k_EServerSignoutData_AccountStatChanges = 3; + k_EServerSignoutData_DetailedStats = 4; + k_EServerSignoutData_ServerPerfStats = 5; + k_EServerSignoutData_PerfData = 6; + k_EServerSignoutData_PlayerChat = 7; + k_EServerSignoutData_BookRewards = 8; + k_EServerSignoutData_PenalizedPlayers = 9; +} + +message CMsgServerCrashSentinelFile { + message Player { + optional uint32 account_id = 1; + optional uint32 hero_id = 2; + } + + message GameInfo { + optional uint64 match_id = 1; + optional fixed64 lobby_id = 2; + optional uint32 server_state = 3; + repeated .CMsgServerCrashSentinelFile.Player players = 5; + optional .ECitadelMatchMode match_mode = 6 [default = k_ECitadelMatchMode_Invalid]; + optional .ECitadelGameMode game_mode = 7 [default = k_ECitadelGameMode_Invalid]; + optional bool was_server_shutdown = 8; + } + + optional uint32 version = 1; + optional fixed64 server_steam_id = 2; + optional fixed32 server_public_ip_addr = 3; + optional uint32 server_port = 4; + optional uint32 server_cluster = 5; + optional uint32 pid = 6; + optional uint32 saved_time = 7; + optional uint32 server_version = 8; + optional .CMsgServerCrashSentinelFile.GameInfo game_info = 9; + optional uint32 server_private_ip_addr = 10; + optional uint32 instance_id = 11; +} + +message CServerLobbyData_PlayerMMR { + message Player { + optional uint32 account_id = 1; + optional uint32 player_mmr = 2; + optional uint32 player_uncertainty = 3; + optional uint32 hero_mmr = 4; + } + + repeated .CServerLobbyData_PlayerMMR.Player players = 1; +} + +message CServerLobbyData_PlayerInfo { + optional uint32 account_id = 1; + repeated .CMsgAccountHeroStats account_stats = 2; + optional uint32 mmr_level = 4; + repeated .CMsgAccountBookStats book_info = 5; +} + +message CServerLobbyData_PostMatchSurvey { + message PlayerSurvey { + optional uint32 account_id = 1; + optional uint32 question_id = 2; + } + + repeated .CServerLobbyData_PostMatchSurvey.PlayerSurvey surveys = 1; +} + +message CServerLobbyData_AutoTest { + optional uint32 max_duration_s = 2; +} + +message CSOCitadelServerDynamicLobby { + optional uint64 lobby_id = 1; + repeated uint32 left_account_ids = 2 [packed = true]; + optional bool broadcast_active = 3; + optional uint32 spectator_count = 4; +} + +message CSOCitadelServerStaticLobby { + message Member { + optional uint32 account_id = 1; + optional string persona_name = 2; + optional .ECitadelLobbyTeam team = 3 [default = k_ECitadelLobbyTeam_Team0]; + optional uint32 player_slot = 4; + optional uint32 hero_id = 5; + optional uint32 party_index = 6; + optional .EGCPlatform platform = 7 [default = k_eGCPlatform_None]; + repeated .CSOCitadelServerStaticLobby.EAwardIDs award_ids = 8; + optional bool is_comms_restricted = 9; + } + + message DevSettings { + optional string console_string = 1; + } + + enum EAwardIDs { + k_eAward_KingPanda = 1; + } + + repeated .CExtraMsgBlock extra_messages = 1; + optional fixed64 server_steam_id = 2; + optional uint64 lobby_id = 3; + optional fixed32 replay_salt = 4; + optional string level_name = 5; + repeated .CSOCitadelServerStaticLobby.Member members = 6; + optional .CSOCitadelServerStaticLobby.DevSettings dev_settings = 7; + optional bool gc_provided_heroes = 8; + optional .ECitadelBotDifficulty bot_difficulty = 9 [default = k_ECitadelBotDifficulty_None]; + optional fixed32 metadata_salt = 10; + optional uint32 match_start_time = 11; + optional uint32 experimental_gameplay_state = 15; + optional .ECitadelRegionMode region_mode = 16 [default = k_ECitadelRegionMode_ROW]; + optional string broadcast_url = 17; + optional bool new_player_pool = 18; + optional bool low_pri_pool = 19; +} + +message CMsgServerSignoutData_ServerPerfStats { + message FrameCounts { + optional uint32 num_frames = 1; + optional uint32 longest_run = 2; + optional uint32 num_runs = 3; + } + + message PerfSample { + optional uint32 game_time_s = 1; + optional float avg_frame = 2; + optional float avg_idle = 3; + optional uint32 total_frames = 4; + optional .CMsgServerSignoutData_ServerPerfStats.FrameCounts performant_frames = 5; + optional .CMsgServerSignoutData_ServerPerfStats.FrameCounts long_frames = 6; + optional .CMsgServerSignoutData_ServerPerfStats.FrameCounts low_idle_frames = 7; + optional uint64 memory_bytes = 8; + optional uint64 peak_memory_bytes = 9; + } + + message MatchPerfSamples { + optional float long_frame_threshold = 1; + optional float low_idle_threshold = 2; + repeated .CMsgServerSignoutData_ServerPerfStats.PerfSample samples = 3; + } + + optional uint64 peak_memory_bytes = 1; + optional uint64 end_memory_bytes = 2; + optional uint32 frame_time_max_micro_s = 3; + optional uint32 frame_time_95_micro_s = 4; + optional uint32 frame_time_avg_micro_s = 5; + optional uint32 frame_idle_time_95_micro_s = 6; + optional uint32 frame_idle_time_avg_micro_s = 7; + optional uint32 frame_time_80_micro_s = 8; + optional uint32 frame_time_99_micro_s = 9; + optional .CMsgServerSignoutData_ServerPerfStats.MatchPerfSamples perf_samples = 10; +} + +message CMsgServerToGCUpdateMatchInfo { + optional uint64 lobby_id = 1; + optional uint32 kills_team_0 = 3; + optional uint32 kills_team_1 = 4; + optional uint32 net_worth_team_0 = 5; + optional uint32 net_worth_team_1 = 6; + optional uint32 spectators = 7; + optional uint32 open_spectator_slots = 8; + optional uint64 objectives_mask_team0 = 9; + optional uint64 objectives_mask_team1 = 10; +} + +message CMsgServerToGCMatchSignoutPermission { + optional uint32 signout_start = 1; + optional uint32 permission_request = 2; + optional uint64 match_id = 3; + optional .ECitadelMatchMode match_mode = 4 [default = k_ECitadelMatchMode_Invalid]; +} + +message CMsgServerToGCMatchSignoutPermissionResponse { + optional bool can_sign_out = 1; + optional uint32 retry_time_s = 2; + repeated .EGCServerSignoutData requested_data = 3; +} + +message CMsgServerSignoutData_Disconnections { + message CMsgMatchDisconnection { + optional uint32 account_id = 1; + optional uint32 disconnect_time = 2; + optional uint32 connection_state = 3; + optional uint32 reason_code = 4; + optional uint32 reconnect_delay = 5; + optional uint32 match_disconnect_time = 6; + optional uint32 match_reconnect_delay = 7; + } + + repeated .CMsgServerSignoutData_Disconnections.CMsgMatchDisconnection disconnections = 1; +} + +message CMsgServerSignoutData_DetailedStats { + message Position { + optional float x = 1; + optional float y = 2; + optional float z = 3; + } + + message TimeSample { + message Stats { + optional uint32 net_worth = 1; + optional uint32 kills = 2; + optional uint32 deaths = 3; + optional uint32 assists = 4; + optional uint32 possible_creeps = 5; + optional uint32 creep_kills = 6; + optional uint32 neutral_kills = 7; + optional uint32 creep_damage = 8; + optional uint32 neutral_damage = 9; + optional uint32 boss_damage = 10; + optional uint32 player_damage = 11; + optional uint32 denies = 12; + optional uint32 player_healing = 13; + optional uint32 ability_points = 14; + optional uint32 self_healing = 15; + optional uint32 player_damage_taken = 16; + optional uint32 max_health = 17; + optional uint32 weapon_power = 18; + optional uint32 tech_power = 19; + optional uint32 shots_hit = 20; + optional uint32 shots_missed = 21; + optional uint32 damage_absorbed = 22; + optional uint32 absorption_provided = 23; + optional uint32 heal_prevented = 26; + optional uint32 heal_lost = 27; + } + + message GoldStats { + optional uint32 player = 1; + optional uint32 player_orb = 2; + optional uint32 lane_creep_orb = 3; + optional uint32 neutral_creep_orb = 4; + optional uint32 boss = 5; + optional uint32 boss_orb = 6; + optional uint32 treasure = 7; + optional uint32 denied = 8; + optional uint32 death_loss = 9; + optional uint32 lane_creep = 10; + optional uint32 neutral_creep = 11; + } + + optional uint32 match_time_s = 1; + optional .CMsgServerSignoutData_DetailedStats.TimeSample.Stats stats = 2; + optional .CMsgServerSignoutData_DetailedStats.TimeSample.GoldStats gold_stats = 4; + } + + message Objective { + optional uint32 destroyed_time_s = 2; + optional uint32 creep_damage = 4; + optional uint32 creep_damage_mitigated = 5; + optional uint32 player_damage = 6; + optional uint32 player_damage_mitigated = 7; + optional uint32 first_damage_time_s = 8; + optional .ECitadelTeamObjective team_objective_id = 9 [default = k_eCitadelTeamObjective_Core]; + optional .ECitadelLobbyTeam team = 10 [default = k_ECitadelLobbyTeam_Team0]; + } + + message MidBoss { + optional .ECitadelLobbyTeam team_killed = 1 [default = k_ECitadelLobbyTeam_Team0]; + optional .ECitadelLobbyTeam team_claimed = 2 [default = k_ECitadelLobbyTeam_Team0]; + optional uint32 destroyed_time_s = 3; + } + + message Player { + optional uint32 player_slot = 1; + repeated .CMsgServerSignoutData_DetailedStats.TimeSample time_samples = 3; + } + + repeated .CMsgServerSignoutData_DetailedStats.Player player_stats = 1; + repeated .CMsgServerSignoutData_DetailedStats.Objective objectives = 2; + repeated .CMsgServerSignoutData_DetailedStats.MidBoss mid_boss = 3; +} + +message CMsgServerSignoutData_PerfData { + repeated float average_frame_time = 1; + repeated float max_frame_time = 2; + optional float server_average_frame_time = 3; + optional float server_max_frame_time = 4; + repeated float average_compute_time = 5; + repeated float max_compute_time = 6; + repeated float average_client_tick_time = 7; + repeated float max_client_tick_time = 8; + repeated float average_client_simulate_time = 9; + repeated float max_client_simulate_time = 10; + repeated float average_output_time = 11; + repeated float max_output_time = 12; + repeated float average_wait_for_rendering_to_complete_time = 13; + repeated float max_wait_for_rendering_to_complete_time = 14; + repeated float average_swap_time = 15; + repeated float max_swap_time = 16; + repeated float average_frame_update_time = 17; + repeated float max_frame_update_time = 18; + repeated float average_idle_time = 19; + repeated float max_idle_time = 20; + repeated float average_input_processing_time = 21; + repeated float max_input_processing_time = 22; +} + +message CMsgServerSignoutData_BookRewards { + message BookReward { + optional uint32 book_id = 1; + optional uint32 xp_reward = 2; + } + + message AccountRewards { + optional uint32 account_id = 1; + optional .CMsgServerSignoutData_BookRewards.BookReward book_reward = 2; + } + + repeated .CMsgServerSignoutData_BookRewards.AccountRewards account_rewards = 1; +} + +message CMsgServerSignoutData_AccountStatChanges { + message Stat { + optional uint32 hero_id = 1; + optional uint32 stat_id = 2; + optional uint32 value = 3; + optional .ECitadelAccountStatMedal medal = 4 [default = k_eNone]; + } + + message AccountStats { + optional uint32 account_id = 1; + repeated .CMsgServerSignoutData_AccountStatChanges.Stat stats = 2; + } + + repeated .CMsgServerSignoutData_AccountStatChanges.AccountStats account_stats = 1; +} + +message CMsgServerSignoutData_PlayerChat { + message ChatLine { + optional uint32 player_slot = 1; + optional float game_time = 2; + optional bool team_only = 3; + optional string chat_line = 4; + } + + repeated .CMsgServerSignoutData_PlayerChat.ChatLine chat_lines = 1; +} + +message CMsgServerSignoutData_PenalizedPlayers { + message Penalty { + optional uint32 account_id = 1; + optional .CMsgServerSignoutData_PenalizedPlayers.EPenaltyReason reason = 2 [default = k_EPenaltyReason_Abandon]; + optional uint32 match_time_s = 3; + optional uint32 time_stamp = 4; + } + + enum EPenaltyReason { + k_EPenaltyReason_Abandon = 0; + k_EPenaltyReason_DisconnectedTooLong = 1; + } + + repeated .CMsgServerSignoutData_PenalizedPlayers.Penalty penalized_players = 1; +} + +message CMsgMatchData { + message PlayerItem { + optional uint32 item_id = 1; + optional uint32 game_time_s = 2; + optional uint32 upgrade_id = 3; + optional uint32 sold_time_s = 4; + optional uint32 flags = 5; + optional uint32 imbued_ability_id = 6; + } + + message PlayerInfo { + optional uint32 account_id = 1; + optional .ECitadelLobbyTeam team = 2 [default = k_ECitadelLobbyTeam_Team0]; + optional uint32 player_slot = 3; + optional uint32 player_mmr = 5; + optional uint32 player_uncertainty = 6; + optional uint32 hero_id = 7; + optional uint32 kills = 8; + optional uint32 deaths = 9; + optional uint32 net_worth = 10; + optional uint32 assists = 11; + optional uint32 hero_mmr = 12; + repeated .CMsgMatchData.PlayerItem items = 13; + optional uint32 gpm_10min = 14; + optional uint32 gpm_15min = 15; + optional uint32 gpm_20min = 16; + optional uint32 gpm_25min = 17; + optional uint32 gpm_30min = 18; + optional uint32 gpm_35min = 19; + optional uint32 gpm_end = 20; + optional uint32 last_hits = 21; + optional uint32 denies = 22; + optional uint32 ability_points = 23; + optional uint32 level = 24; + optional uint32 assigned_lane = 25; + optional uint32 party_index = 26; + optional .EGCPlatform platform = 27 [default = k_eGCPlatform_None]; + optional uint32 ability_damage = 28; + optional uint32 bullet_damage = 29; + optional uint32 hero_bullets_hit = 30; + optional uint32 hero_bullets_hit_crit = 31; + optional uint32 player_healing = 32; + optional uint32 hero_bullets_fired = 33; + optional uint32 hero_incoming_bullets_fired = 34; + optional uint32 hero_incoming_bullets_hit = 35; + optional uint32 hero_incoming_bullets_crit = 36; + optional uint32 time_dead_s = 37; + optional uint32 player_bullet_damage = 38; + optional uint32 player_ability_damage = 39; + optional uint32 player_melee_damage = 40; + optional uint32 abandon_match_time_s = 41; + optional uint32 abandon_time_stamp = 42; + } + + enum EEndReason { + k_EEndReason_TeamWin = 0; + k_EEndReason_AllAbandoned = 2; + k_EEndReason_NetworkIssues = 3; + k_EEndReason_MatchLength = 4; + k_EEndReason_PlayerNeverConnected = 5; + } + + optional uint32 match_duration_s = 1; + optional .CMsgMatchData.EEndReason end_reason = 2 [default = k_EEndReason_TeamWin]; + optional .ECitadelLobbyTeam winning_team = 3 [default = k_ECitadelLobbyTeam_Team0]; + repeated .CMsgMatchData.PlayerInfo players = 4; + optional uint32 objectives_mask_legacy = 5; + optional uint32 server_version = 6; + optional .ECitadelGameMode game_mode = 7 [default = k_ECitadelGameMode_Invalid]; + optional .ECitadelMatchMode match_mode = 8 [default = k_ECitadelMatchMode_Invalid]; + optional uint64 objectives_mask_team0 = 9; + optional uint64 objectives_mask_team1 = 10; + optional uint32 match_end_time = 11; + optional float stomp_score = 12; + optional bool safe_to_abandon = 13; + optional bool team_abandon = 14; + optional bool new_player_pool = 15; + optional bool low_pri_pool = 16; +} + +message CMsgServerToGCMatchSignout { + repeated .CExtraMsgBlock additional_data = 1; + optional uint32 signout_attempt = 2; + optional uint64 lobby_id = 3; + optional uint64 match_id = 4; + optional uint32 cluster_id = 9; + optional .CMsgMatchData match_data = 10; +} + +message CMsgServerToGCMatchSignoutResponse { + enum ESignoutResult { + k_ESignout_Failed_Retry = 1; + k_ESignout_Failed_NoRetry = 2; + k_ESignout_Failed_InFlight = 3; + k_ESignout_Success = 4; + k_ESignout_Success_AlreadySignedOut = 5; + } + + optional .CMsgServerToGCMatchSignoutResponse.ESignoutResult result = 1 [default = k_ESignout_Failed_Retry]; +} + +message CMsgServerWelcomeCitadel { +} + +message CMsgServerToGCIdlePing { + optional uint32 server_version = 1; +} + +message CMsgGCToServerRequestPing { +} + +message CMsgGCToServerAllocateForMatch { + optional uint64 match_id = 1; +} + +message CMsgGCToServerAllocateForMatchResponse { + optional bool success = 1; +} + +message CMsgServerToGCEnterMatchmaking { + optional uint32 server_version = 1; + optional string search_key = 2; + optional uint32 region_id = 3; + optional uint32 cluster_id = 4; + optional uint32 server_public_ip = 5; + optional uint32 server_private_ip = 6; + optional uint32 server_port = 7; + optional bytes sdr_address = 9; +} + +message CMsgGCToServerCancelAllocateForMatch { + optional uint64 match_id = 1; +} + +message CMsgServerToGCUpdateLobbyServerState { + optional uint64 lobby_id = 1; + optional .ELobbyServerState server_state = 2 [default = k_eLobbyServerState_Assign]; + optional bool safe_to_abandon = 3; +} + +message CMsgServerToGCAbandonMatch { + message Player { + optional uint32 account_id = 1; + optional uint64 additional_data = 2; + optional uint32 hero_id = 3; + } + + enum EReason { + eReason_ServerCrash = 1; + eReason_ClientsFailedToConnect = 2; + } + + optional fixed64 server_steam_id = 1; + optional fixed64 lobby_id = 2; + optional uint32 cluster_id = 3; + optional .CMsgServerToGCAbandonMatch.EReason reason_code = 4 [default = eReason_ServerCrash]; + optional uint64 additional_data = 5; + optional uint64 match_id = 6; + repeated .CMsgServerToGCAbandonMatch.Player players = 8; + optional fixed32 public_ip_address = 9; + optional uint32 port = 10; + optional uint32 server_version = 11; + optional uint32 pid = 12; + optional uint32 instance_id = 13; + optional uint32 private_ip_address = 14; + optional .ECitadelMatchMode match_mode = 15 [default = k_ECitadelMatchMode_Invalid]; + optional .ECitadelGameMode game_mode = 16 [default = k_ECitadelGameMode_Invalid]; + optional bool was_server_shutdown = 17; +} + +message CMsgServerToGCAbandonMatchResponse { +} + +message CMsgServerToGCTestConnection { +} + +message CMsgServerToGCTestConnectionResponse { + optional uint32 state = 1; + optional uint64 lobby_id = 2; +} + +message CMsgGCToServerSetServerConVar { + optional string convar_name = 1; + optional string convar_value = 2; +} + +message CMsgGCToServerSetServerConVarResponse { + optional bool success = 1; +} + +message CMsgGCToServerAddSpectator { + optional uint64 lobby_id = 1; + optional uint32 account_id = 2; + optional uint32 account_to_spectate = 3; +} + +message CMsgGCToServerAddSpectatorResponse { + enum EResponse { + k_eInternalError = 0; + k_eSuccess = 1; + k_eServerFull = 2; + } + + optional .CMsgGCToServerAddSpectatorResponse.EResponse result = 1 [default = k_eInternalError]; + optional uint32 requesting_account_id = 2; +} diff --git a/Protobufs/deadlock/citadel_usercmd.proto b/Protobufs/deadlock/citadel_usercmd.proto new file mode 100644 index 0000000..0b8da0b --- /dev/null +++ b/Protobufs/deadlock/citadel_usercmd.proto @@ -0,0 +1,13 @@ +import "networkbasetypes.proto"; +import "usercmd.proto"; + +message CCitadelUserCmdPB { + optional .CBaseUserCmdPB base = 1; + optional .CMsgVector vec_camera_position = 2; + optional .CMsgQAngle ang_camera_angles = 3; + optional int32 execute_ability_indices = 4; + optional bool in_shop = 5; + optional float camera_roaming_speed = 6; + optional bool using_free_cursor = 8; + optional int32 enemy_hero_aimed_at = 10 [default = -1]; +} diff --git a/Protobufs/deadlock/citadel_usermessages.proto b/Protobufs/deadlock/citadel_usermessages.proto new file mode 100644 index 0000000..1d960d0 --- /dev/null +++ b/Protobufs/deadlock/citadel_usermessages.proto @@ -0,0 +1,530 @@ +import "networkbasetypes.proto"; +import "citadel_gcmessages_common.proto"; +import "gameevents.proto"; + +enum CitadelUserMessageIds { + k_EUserMsg_Damage = 300; + k_EUserMsg_MapPing = 303; + k_EUserMsg_TeamRewards = 304; + k_EUserMsg_AbilityFailed = 306; + k_EUserMsg_TriggerDamageFlash = 308; + k_EUserMsg_AbilitiesChanged = 309; + k_EUserMsg_RecentDamageSummary = 310; + k_EUserMsg_SpectatorTeamChanged = 311; + k_EUserMsg_ChatWheel = 312; + k_EUserMsg_GoldHistory = 313; + k_EUserMsg_ChatMsg = 314; + k_EUserMsg_QuickResponse = 315; + k_EUserMsg_PostMatchDetails = 316; + k_EUserMsg_ChatEvent = 317; + k_EUserMsg_AbilityInterrupted = 318; + k_EUserMsg_HeroKilled = 319; + k_EUserMsg_ReturnIdol = 320; + k_EUserMsg_SetClientCameraAngles = 321; + k_EUserMsg_MapLine = 322; + k_EUserMsg_BulletHit = 323; + k_EUserMsg_ObjectiveMask = 324; + k_EUserMsg_ModifierApplied = 325; + k_EUserMsg_CameraController = 326; + k_EUserMsg_AuraModifierApplied = 327; + k_EUserMsg_ObstructedShotFired = 329; + k_EUserMsg_AbilityLateFailure = 330; + k_EUserMsg_AbilityPing = 331; + k_EUserMsg_PostProcessingAnim = 332; + k_EUserMsg_DeathReplayData = 333; + k_EUserMsg_PlayerLifetimeStatInfo = 334; + k_EUserMsg_ForceShopClosed = 336; + k_EUserMsg_StaminaDrained = 337; + k_EUserMsg_AbilityNotify = 338; + k_EUserMsg_GetDamageStatsResponse = 339; + k_EUserMsg_ParticipantStartSoundEvent = 340; + k_EUserMsg_ParticipantStopSoundEvent = 341; + k_EUserMsg_ParticipantStopSoundEventHash = 342; + k_EUserMsg_ParticipantSetSoundEventParams = 343; + k_EUserMsg_ParticipantSetLibraryStackFields = 344; + k_EUserMsg_CurrencyChanged = 345; + k_EUserMsg_GameOver = 346; + k_EUserMsg_BossKilled = 347; +} + +enum CitadelEntityMessageIds { + k_EEntityMsg_BreakablePropSpawnDebris = 500; +} + +enum ChatMsgPingMarkerInfo { + k_EPingMarkerInfo_ShowMarkerAndSound = 0; + k_EPingMarkerInfo_HideMarkerAndSound = 1; + k_EPingMarkerInfo_ShowMarkerOnSender = 2; + k_EPingMarkerInfo_OnlyShowMarker = 3; + k_EPingMarkerInfo_OnlyPlaySound = 4; +} + +enum CameraOperation { + k_ECameraOp_Maintain = 2; + k_ECameraOp_Approach = 3; + k_ECameraOp_Spring = 4; + k_ECameraOp_Lerp = 5; + k_ECameraOp_Lag = 6; +} + +enum CameraParam { + k_EParam_ClearAllOps = 0; + k_EParam_ClearAllOpsForContext = 1; + k_EParam_Distance = 2; + k_EParam_FOV = 3; + k_EParam_TargetPosition = 4; + k_EParam_VertOffset = 5; + k_EParam_HorizOffset = 6; +} + +enum CameraParamMode { + k_EParamMode_AllowInOneContext = 0; + k_EParamMode_AllowInMultipleContexts = 1; +} + +enum CameraAction { + k_EAction_AddOp = 0; + k_EAction_ClearAllOps = 1; + k_EAction_ClearOpsForContext = 2; +} + +enum ECitadelChatMessage { + CITADEL_CHAT_MESSAGE_UNPAUSE_COUNTDOWN = 1; + CITADEL_CHAT_MESSAGE_UNPAUSED = 2; + CITADEL_CHAT_MESSAGE_AUTO_UNPAUSED = 3; + CITADEL_CHAT_MESSAGE_PAUSE_COUNTDOWN = 4; + CITADEL_CHAT_MESSAGE_PAUSED = 5; + CITADEL_CHAT_MESSAGE_YOUPAUSED = 6; + CITADEL_CHAT_MESSAGE_CANTPAUSE = 7; + CITADEL_CHAT_MESSAGE_CANTUNPAUSETEAM = 8; + CITADEL_CHAT_MESSAGE_NOPAUSESLEFT = 9; + CITADEL_CHAT_MESSAGE_CANTPAUSEYET = 10; + CITADEL_CHAT_MESSAGE_PREGAME_COUNTDOWN = 11; + CITADEL_CHAT_MESSAGE_NOTEAMPAUSESLEFT = 12; + CITADEL_CHAT_MESSAGE_COMMS_RESTRICTED = 13; +} + +enum PostProcessingGameStates { + PostProcState_Killed = 0; + PostProcState_Black = 1; + PostProcState_Blinded = 2; + PostProcState_ShivPossessed = 3; +} + +message CUserMessageEmpty { + optional uint32 empty = 1; +} + +message CCitadelUserMessage_Damage { + optional int32 damage = 1; + optional int32 pre_damage = 2; + optional int32 type = 3; + optional int32 citadel_type = 4; + optional .CMsgVector origin = 5; + optional int32 entindex_victim = 6 [default = -1]; + optional int32 entindex_inflictor = 7 [default = -1]; + optional int32 entindex_attacker = 8 [default = -1]; + optional int32 entindex_ability = 9 [default = -1]; + optional int32 damage_absorbed = 10; + optional int32 victim_health_max = 11; + optional int32 victim_health_new = 12; + optional uint64 flags = 13; + optional uint32 ability_id = 14; + optional uint32 attacker_class = 15; + optional uint32 victim_class = 16; + optional int32 victim_shield_max = 17; + optional int32 victim_shield_new = 18; + optional int32 hits = 19; + optional int32 health_lost = 20; +} + +message PingCommonData { + optional uint32 ping_message_id = 1; + optional .CMsgVector ping_location = 2; + optional uint32 entity_index = 3 [default = 16777215]; + optional int32 sender_player_slot = 4 [default = -1]; + optional int32 speech_concept = 5; + optional string response_chosen = 6; + optional float cooldown_time = 7; +} + +message CCitadelUserMsg_MapPing { + required .PingCommonData ping_data = 1; + optional uint32 event_type = 2; + optional .ChatMsgPingMarkerInfo ping_marker_and_sound_info = 3 [default = k_EPingMarkerInfo_ShowMarkerAndSound]; + optional bool pinged_enemy_entity = 4; + optional uint32 pinged_entity_class = 5; + optional bool is_minimap_ping = 6; + optional string pinged_hero_name = 7; + optional bool is_blind_ping = 8; +} + +message CCitadelUserMsg_PingWheel { + required .PingCommonData ping_data = 1; + optional uint32 ping_wheel_option_id = 2; +} + +message CCitadelUserMsg_AbilityPing { + optional .PingCommonData ping_data = 1; + optional uint32 ability_id = 2; + optional float ability_cooldown = 3; + optional .ChatMsgPingMarkerInfo ping_marker_and_sound_info = 4 [default = k_EPingMarkerInfo_ShowMarkerAndSound]; +} + +message CCitadelUserMsg_QuickResponse { + required .PingCommonData ping_data = 1; + optional uint32 responding_to_ping_message_id = 2; + optional int32 responding_to_player_slot = 3 [default = -1]; + optional .CMsgLaneColor lane_color = 4 [default = k_ELaneColor_Invalid]; +} + +message CCitadelUserMsg_MapLine { + optional int32 sender_player_slot = 1 [default = -1]; + optional .CMsgMapLine mapline = 2; +} + +message CCitadelUserMsg_TeamRewards { + optional uint32 xp = 1; + optional uint32 gold = 2; + optional bool winner = 3; +} + +message CCitadelUserMsg_TriggerDamageFlash { + optional int32 entindex_flash_victim = 1 [default = -1]; + optional int32 entindex_flash_attacker = 2 [default = -1]; + optional int32 entindex_flash_hitgroup = 3; + optional uint32 flash_value = 4; + optional uint32 flash_type = 5; + optional uint32 flash_flags = 6; + optional .CMsgVector flash_position = 7; +} + +message CCitadelUserMsg_AbilitiesChanged { + enum Change { + EInvalid = -1; + EPurchased = 0; + EUpgraded = 1; + ESold = 2; + ESwappedActivatedAbility = 3; + } + + optional int32 entindex_purchaser = 1 [default = -1]; + optional int32 entindex_ability = 2 [default = -1]; + optional uint32 ability_id = 3; + optional .CCitadelUserMsg_AbilitiesChanged.Change change = 4 [default = EInvalid]; +} + +message CCitadelUserMsg_AbilityInterrupted { + optional int32 entindex_victim = 1 [default = -1]; + optional int32 entindex_interrupter = 2 [default = -1]; + optional uint32 ability_id_interrupted = 3; + optional uint32 ability_id_interrupter = 4; + optional uint32 hero_id_interrupter = 5; +} + +message CCitadelUserMsg_AbilityLateFailure { + optional int32 entindex_caster = 1 [default = -1]; + optional int32 entindex_ability = 2 [default = -1]; + optional uint32 failure_type = 3; +} + +message CCitadelUserMsg_RecentDamageSummary { + message DamageRecord { + optional int32 damage = 1; + optional int32 hits = 2; + optional uint32 damage_type = 3; + optional uint32 hero_id = 4; + optional uint32 ability_id = 5; + optional uint32 attacker_class = 6; + optional int32 damage_absorbed = 7; + optional bool is_killing_blow = 8; + optional uint32 victim_hero_id = 9; + } + + message ModifierRecord { + optional uint32 ability_id = 1; + optional uint32 modifier_type_id = 2; + optional int32 entindex_caster = 3 [default = -1]; + optional float start_time = 4; + optional float end_time = 5; + optional bool debuff = 6; + } + + optional int32 player_slot = 1 [default = -1]; + repeated .CCitadelUserMsg_RecentDamageSummary.DamageRecord damage_records = 2; + optional float start_time = 3; + optional float end_time = 4; + optional int32 total_damage = 5; + optional int32 lost_gold = 6; + repeated .CCitadelUserMsg_RecentDamageSummary.ModifierRecord modifier_records = 7; +} + +message CCitadelUserMsg_SpectatorTeamChanged { + optional int32 teamnumber = 1; +} + +message CCitadelUserMsg_ChatWheel { + optional uint32 chat_message_id = 1; + optional int32 player_slot = 2 [default = -1]; + optional int32 pawn_entindex = 3 [default = -1]; + optional uint32 account_id = 4; + optional uint32 hero_id = 5; + optional string param_1 = 6; + optional .CMsgLaneColor lane_color = 7 [default = k_ELaneColor_Invalid]; +} + +message CCitadelUserMsg_ChatMsg { + optional int32 player_slot = 1 [default = -1]; + optional string text = 2; + optional bool all_chat = 3; + optional .CMsgLaneColor lane_color = 4 [default = k_ELaneColor_Invalid]; +} + +message CCitadelUserMsg_GoldHistory { + message GoldRecord { + optional int32 currency_source = 1; + optional int32 gold = 2; + optional int32 events = 3; + } + + message MinuteRecord { + optional int32 match_minute = 1; + repeated .CCitadelUserMsg_GoldHistory.GoldRecord gold_records = 2; + } + + optional int32 entindex_player = 1 [default = -1]; + repeated .CCitadelUserMsg_GoldHistory.MinuteRecord minute_records = 2; +} + +message CCitadelUserMsg_CameraController { + message Maintain { + optional float duration = 1 [default = 1]; + optional .CMsgVector maintain_vector = 2; + optional float maintain_float = 3; + optional bool maintain_current = 4; + } + + message Approach { + optional float speed = 1 [default = 600]; + optional float default_speed = 2 [default = 600]; + optional float acceleration = 3 [default = 1000]; + optional float min_duration = 4 [default = 0]; + optional float approach_float = 5; + optional .CMsgVector approach_vector = 6; + optional bool chase_default = 7; + } + + message Spring { + optional float spring_strength = 1 [default = 10]; + optional float min_speed = 4 [default = 0]; + optional float max_duration = 5 [default = 0]; + optional float target_float = 6; + optional .CMsgVector target_vector = 7; + } + + message Lerp { + optional float start_float = 1; + optional .CMsgVector start_vector = 2; + optional float end_float = 3; + optional .CMsgVector end_vector = 4; + optional float bias = 5; + optional float gain = 6; + optional float duration = 7 [default = 1]; + } + + message Lag { + optional float min_duration = 1; + optional float lag_time = 2; + optional float max_speed = 3; + optional float spring_strength = 4; + } + + required .CameraAction action = 1 [default = k_EAction_AddOp]; + optional .CameraOperation operation = 2 [default = k_ECameraOp_Maintain]; + optional .CameraParam param = 3 [default = k_EParam_ClearAllOps]; + optional .CameraParamMode param_mode = 12 [default = k_EParamMode_AllowInOneContext]; + optional float delay = 4; + optional bool relative_values = 11; + optional uint32 context_symbol_id = 5; + optional .CCitadelUserMsg_CameraController.Maintain maintain = 6; + optional .CCitadelUserMsg_CameraController.Approach approach = 7; + optional .CCitadelUserMsg_CameraController.Spring spring = 8; + optional .CCitadelUserMsg_CameraController.Lerp lerp = 9; + optional .CCitadelUserMsg_CameraController.Lag lag = 10; +} + +message CCitadelUserMsg_PostMatchDetails { + optional bytes match_details = 1; +} + +message CCitadelUserMsg_ChatEvent { + optional .ECitadelChatMessage type = 1 [default = CITADEL_CHAT_MESSAGE_UNPAUSE_COUNTDOWN]; + repeated uint32 values = 2; + repeated int32 player_slots = 3; +} + +message CCitadelUserMsg_HeroKilled { + optional int32 entindex_victim = 1 [default = -1]; + optional int32 entindex_inflictor = 2 [default = -1]; + optional int32 entindex_attacker = 3 [default = -1]; + repeated int32 entindex_assisters = 4; + optional int32 entindex_scorer = 5 [default = -1]; + optional int32 respawn_reason = 6; +} + +message CCitadelEntityMsg_BreakablePropSpawnDebris { + optional .CEntityMsg entity_msg = 1; + optional .CMsgVector damage_pos = 2; + optional float damage = 3; +} + +message CCitadelUserMsg_ReturnIdol { + optional int32 location_index = 1; + optional .CMsgVector return_location = 2; + optional bool location_enabled = 3; +} + +message CCitadelUserMsg_SetClientCameraAngles { + optional int32 player_slot = 1 [default = -1]; + optional .CMsgQAngle camera_angles = 2; +} + +message CCitadelUserMessage_BulletHit { + optional int32 shotid = 1; + optional int32 pellet = 2; + optional int32 hit_entindex = 3 [default = -1]; +} + +message CCitadelUserMessage_ObjectiveMask { + optional uint64 objective_mask_team0 = 2; + optional uint64 objective_mask_team1 = 3; +} + +message CCitadelUserMessage_ModifierApplied { + optional int32 entindex_caster = 1 [default = -1]; + optional int32 entindex_parent = 2 [default = -1]; + optional int32 serial_number = 3; +} + +message CCitadelUserMessage_AuraModifierApplied { + optional int32 entindex_caster = 1 [default = -1]; + optional int32 entindex_target = 2 [default = -1]; + optional uint32 modifier_type_id = 3; + optional int32 modifier_serial_number = 4; + optional float aura_start_time = 5; + optional float aura_end_time = 6; +} + +message CCitadelUserMsg_ObstructedShotFired { +} + +message CCitadelUserMsg_PostProcessingAnim { + optional int32 entindex_owner = 1 [default = -1]; + optional bool clear_all_states = 2; + optional .PostProcessingGameStates state = 3 [default = PostProcState_Killed]; + optional float start_time = 4; + optional float fade_in_time = 5; + optional float hold_time = 6; + optional float fade_out_time = 7; + optional float scale = 8; +} + +message CCitadelUserMsg_DeathReplayData { + optional int32 killer_scorer = 1 [default = -1]; + optional int32 killer_inflictor = 2 [default = -1]; + optional .CCitadelUserMsg_RecentDamageSummary damage_summary = 3; +} + +message CCitadelUserMsg_ForceShopClosed { +} + +message CCitadelUserMsg_PlayerLifetimeStatInfo { + message Stat { + optional string stat_name = 1; + optional uint32 match_total = 2; + optional uint32 lifetime_value = 3; + optional uint32 priority = 4; + optional uint32 prev_lifetime_max = 5; + optional uint32 stat_type = 6; + optional uint32 stat_type_id = 7; + } + + repeated .CCitadelUserMsg_PlayerLifetimeStatInfo.Stat stats = 1; + optional uint64 match_id = 2; + optional bool end_of_match = 3; + optional bool is_official_match = 4; +} + +message CCitadelUserMsg_StaminaDrained { + optional int32 entindex_victim = 1 [default = -1]; + optional int32 stamina_drained = 2; +} + +message CCitadelUserMessage_AbilityNotify { + optional int32 entindex_victim = 1 [default = -1]; + optional int32 entindex_attacker = 2 [default = -1]; + optional uint32 ability_id = 3; +} + +message CCitadelUserMessage_CurrencyChanged { + optional int32 entindex_hero_pawn = 1 [default = -1]; + optional int32 currency_type = 2; + optional int32 currency_source = 3; + optional int32 delta = 4; + optional bool notification = 5; + optional int32 entindex_victim = 6 [default = -1]; + optional .CMsgVector victim_pos = 7; + optional int32 playsound = 8; + optional uint32 ability_id = 9; +} + +message CCitadelUserMessage_GameOver { + optional int32 winning_team = 1; + optional bool just_a_test = 2; +} + +message CCitadelUserMsg_GetDamageStatsResponse { + message StatType { + repeated uint32 target_player_slot = 1 [packed = true]; + repeated uint32 value = 2 [packed = true]; + } + + optional uint32 player_slot = 1; + optional string ability_name = 2; + optional .CCitadelUserMsg_GetDamageStatsResponse.StatType damage = 3; + optional .CCitadelUserMsg_GetDamageStatsResponse.StatType healing = 4; +} + +message CCitadelUserMsg_ParticipantStartSoundEvent { + required .CMsgSosStartSoundEvent event = 1; + repeated int32 player_slots = 2; +} + +message CCitadelUserMsg_ParticipantStopSoundEvent { + required .CMsgSosStopSoundEvent event = 1; + repeated int32 player_slots = 2; +} + +message CCitadelUserMsg_ParticipantStopSoundEventHash { + required .CMsgSosStopSoundEventHash event = 1; + repeated int32 player_slots = 2; +} + +message CCitadelUserMsg_ParticipantSetSoundEventParams { + required .CMsgSosSetSoundEventParams event = 1; + repeated int32 player_slots = 2; +} + +message CCitadelUserMsg_ParticipantSetLibraryStackFields { + required .CMsgSosSetLibraryStackFields event = 1; + repeated int32 player_slots = 2; +} + +message CCitadelUserMsg_BossKilled { + optional int32 objective_team = 1; + optional int32 objective_mask_change = 2; + required uint32 entity_killed = 3 [default = 16777215]; + required int32 entity_killed_class = 4; + required uint32 entity_killer = 5 [default = 16777215]; + required float gametime = 6; +} diff --git a/Protobufs/deadlock/clientmessages.proto b/Protobufs/deadlock/clientmessages.proto new file mode 100644 index 0000000..484ae57 --- /dev/null +++ b/Protobufs/deadlock/clientmessages.proto @@ -0,0 +1,53 @@ +enum EBaseClientMessages { + CM_CustomGameEvent = 280; + CM_CustomGameEventBounce = 281; + CM_ClientUIEvent = 282; + CM_DevPaletteVisibilityChanged = 283; + CM_WorldUIControllerHasPanelChanged = 284; + CM_RotateAnchor = 285; + CM_ListenForResponseFound = 286; + CM_MAX_BASE = 300; +} + +enum EClientUIEvent { + EClientUIEvent_Invalid = 0; + EClientUIEvent_DialogFinished = 1; + EClientUIEvent_FireOutput = 2; +} + +message CClientMsg_CustomGameEvent { + optional string event_name = 1; + optional bytes data = 2; +} + +message CClientMsg_CustomGameEventBounce { + optional string event_name = 1; + optional bytes data = 2; + optional int32 player_slot = 3 [default = -1]; +} + +message CClientMsg_ClientUIEvent { + optional .EClientUIEvent event = 1 [default = EClientUIEvent_Invalid]; + optional uint32 ent_ehandle = 2; + optional uint32 client_ehandle = 3; + optional string data1 = 4; + optional string data2 = 5; +} + +message CClientMsg_DevPaletteVisibilityChangedEvent { + optional bool visible = 1; +} + +message CClientMsg_WorldUIControllerHasPanelChangedEvent { + optional bool has_panel = 1; + optional uint32 client_ehandle = 2; + optional uint32 literal_hand_type = 3; +} + +message CClientMsg_RotateAnchor { + optional float angle = 1; +} + +message CClientMsg_ListenForResponseFound { + optional int32 player_slot = 1 [default = -1]; +} diff --git a/Protobufs/deadlock/connectionless_netmessages.proto b/Protobufs/deadlock/connectionless_netmessages.proto new file mode 100644 index 0000000..10f7a9e --- /dev/null +++ b/Protobufs/deadlock/connectionless_netmessages.proto @@ -0,0 +1,17 @@ +import "netmessages.proto"; + +message C2S_CONNECT_Message { + optional uint32 host_version = 1; + optional uint32 auth_protocol = 2; + optional uint32 challenge_number = 3; + optional fixed64 reservation_cookie = 4; + optional bool low_violence = 5; + optional bytes encrypted_password = 6; + repeated .CCLCMsg_SplitPlayerConnect splitplayers = 7; + optional bytes auth_steam = 8; + optional string challenge_context = 9; +} + +message C2S_CONNECTION_Message { + optional string addon_name = 1; +} diff --git a/Protobufs/deadlock/demo.proto b/Protobufs/deadlock/demo.proto new file mode 100644 index 0000000..1741b71 --- /dev/null +++ b/Protobufs/deadlock/demo.proto @@ -0,0 +1,173 @@ +enum EDemoCommands { + DEM_Error = -1; + DEM_Stop = 0; + DEM_FileHeader = 1; + DEM_FileInfo = 2; + DEM_SyncTick = 3; + DEM_SendTables = 4; + DEM_ClassInfo = 5; + DEM_StringTables = 6; + DEM_Packet = 7; + DEM_SignonPacket = 8; + DEM_ConsoleCmd = 9; + DEM_CustomData = 10; + DEM_CustomDataCallbacks = 11; + DEM_UserCmd = 12; + DEM_FullPacket = 13; + DEM_SaveGame = 14; + DEM_SpawnGroups = 15; + DEM_AnimationData = 16; + DEM_AnimationHeader = 17; + DEM_Max = 18; + DEM_IsCompressed = 64; +} + +message CDemoFileHeader { + required string demo_file_stamp = 1; + optional int32 network_protocol = 2; + optional string server_name = 3; + optional string client_name = 4; + optional string map_name = 5; + optional string game_directory = 6; + optional int32 fullpackets_version = 7; + optional bool allow_clientside_entities = 8; + optional bool allow_clientside_particles = 9; + optional string addons = 10; + optional string demo_version_name = 11; + optional string demo_version_guid = 12; + optional int32 build_num = 13; + optional string game = 14; + optional int32 server_start_tick = 15; +} + +message CGameInfo { + message CDotaGameInfo { + message CPlayerInfo { + optional string hero_name = 1; + optional string player_name = 2; + optional bool is_fake_client = 3; + optional uint64 steamid = 4; + optional int32 game_team = 5; + } + + message CHeroSelectEvent { + optional bool is_pick = 1; + optional uint32 team = 2; + optional int32 hero_id = 3; + } + + optional uint64 match_id = 1; + optional int32 game_mode = 2; + optional int32 game_winner = 3; + repeated .CGameInfo.CDotaGameInfo.CPlayerInfo player_info = 4; + optional uint32 leagueid = 5; + repeated .CGameInfo.CDotaGameInfo.CHeroSelectEvent picks_bans = 6; + optional uint32 radiant_team_id = 7; + optional uint32 dire_team_id = 8; + optional string radiant_team_tag = 9; + optional string dire_team_tag = 10; + optional uint32 end_time = 11; + } + + message CCSGameInfo { + repeated int32 round_start_ticks = 1; + } + + optional .CGameInfo.CDotaGameInfo dota = 4; + optional .CGameInfo.CCSGameInfo cs = 5; +} + +message CDemoFileInfo { + optional float playback_time = 1; + optional int32 playback_ticks = 2; + optional int32 playback_frames = 3; + optional .CGameInfo game_info = 4; +} + +message CDemoPacket { + optional bytes data = 3; +} + +message CDemoFullPacket { + optional .CDemoStringTables string_table = 1; + optional .CDemoPacket packet = 2; +} + +message CDemoSaveGame { + optional bytes data = 1; + optional fixed64 steam_id = 2; + optional fixed64 signature = 3; + optional int32 version = 4; +} + +message CDemoSyncTick { +} + +message CDemoConsoleCmd { + optional string cmdstring = 1; +} + +message CDemoSendTables { + optional bytes data = 1; +} + +message CDemoClassInfo { + message class_t { + optional int32 class_id = 1; + optional string network_name = 2; + optional string table_name = 3; + } + + repeated .CDemoClassInfo.class_t classes = 1; +} + +message CDemoCustomData { + optional int32 callback_index = 1; + optional bytes data = 2; +} + +message CDemoCustomDataCallbacks { + repeated string save_id = 1; +} + +message CDemoAnimationHeader { + optional sint32 entity_id = 1; + optional int32 tick = 2; + optional bytes data = 3; +} + +message CDemoAnimationData { + optional sint32 entity_id = 1; + optional int32 start_tick = 2; + optional int32 end_tick = 3; + optional bytes data = 4; + optional int64 data_checksum = 5; +} + +message CDemoStringTables { + message items_t { + optional string str = 1; + optional bytes data = 2; + } + + message table_t { + optional string table_name = 1; + repeated .CDemoStringTables.items_t items = 2; + repeated .CDemoStringTables.items_t items_clientside = 3; + optional int32 table_flags = 4; + } + + repeated .CDemoStringTables.table_t tables = 1; +} + +message CDemoStop { +} + +message CDemoUserCmd { + optional int32 cmd_number = 1; + optional bytes data = 2; +} + +message CDemoSpawnGroups { + repeated bytes msgs = 3; +} diff --git a/Protobufs/deadlock/econ_gcmessages.proto b/Protobufs/deadlock/econ_gcmessages.proto new file mode 100644 index 0000000..167e800 --- /dev/null +++ b/Protobufs/deadlock/econ_gcmessages.proto @@ -0,0 +1,1077 @@ +import "steammessages.proto"; +import "econ_shared_enums.proto"; +import "gcsdk_gcmessages.proto"; +import "base_gcmessages.proto"; + +enum EGCItemMsg { + k_EMsgGCBase = 1000; + k_EMsgGCSetItemPosition = 1001; + k_EMsgClientToGCPackBundle = 1002; + k_EMsgClientToGCPackBundleResponse = 1003; + k_EMsgGCDelete = 1004; + k_EMsgGCVerifyCacheSubscription = 1005; + k_EMsgClientToGCNameItem = 1006; + k_EMsgGCPaintItem = 1009; + k_EMsgGCPaintItemResponse = 1010; + k_EMsgGCNameBaseItem = 1019; + k_EMsgGCNameBaseItemResponse = 1020; + k_EMsgGCUseItemRequest = 1025; + k_EMsgGCUseItemResponse = 1026; + k_EMsgGCGiftedItems = 1027; + k_EMsgGCUnwrapGiftRequest = 1037; + k_EMsgGCUnwrapGiftResponse = 1038; + k_EMsgGCSortItems = 1041; + k_EMsgGCBackpackSortFinished = 1058; + k_EMsgGCAdjustItemEquippedState = 1059; + k_EMsgGCItemAcknowledged = 1062; + k_EMsgClientToGCNameItemResponse = 1068; + k_EMsgGCApplyStrangePart = 1073; + k_EMsgGCApplyPennantUpgrade = 1076; + k_EMsgGCSetItemPositions = 1077; + k_EMsgGCApplyEggEssence = 1078; + k_EMsgGCNameEggEssenceResponse = 1079; + k_EMsgGCExtractGems = 1086; + k_EMsgGCAddSocket = 1087; + k_EMsgGCAddItemToSocket = 1088; + k_EMsgGCAddItemToSocketResponse = 1089; + k_EMsgGCAddSocketResponse = 1090; + k_EMsgGCResetStrangeGemCount = 1091; + k_EMsgGCRequestCrateItems = 1092; + k_EMsgGCRequestCrateItemsResponse = 1093; + k_EMsgGCExtractGemsResponse = 1094; + k_EMsgGCResetStrangeGemCountResponse = 1095; + k_EMsgGCServerUseItemRequest = 1103; + k_EMsgGCAddGiftItem = 1104; + k_EMsgSQLGCToGCRevokeUntrustedGift = 1105; + k_EMsgClientToGCRemoveItemGifterAttributes = 1109; + k_EMsgClientToGCRemoveItemName = 1110; + k_EMsgClientToGCRemoveItemDescription = 1111; + k_EMsgClientToGCRemoveItemAttributeResponse = 1112; + k_EMsgGCDev_NewItemRequest = 2001; + k_EMsgGCDev_NewItemRequestResponse = 2002; + k_EMsgGCDev_UnlockAllItemStylesRequest = 2003; + k_EMsgGCDev_UnlockAllItemStylesResponse = 2004; + k_EMsgGCStorePurchaseFinalize = 2504; + k_EMsgGCStorePurchaseFinalizeResponse = 2505; + k_EMsgGCStorePurchaseCancel = 2506; + k_EMsgGCStorePurchaseCancelResponse = 2507; + k_EMsgGCStorePurchaseInit = 2510; + k_EMsgGCStorePurchaseInitResponse = 2511; + k_EMsgGCToGCBannedWordListUpdated = 2515; + k_EMsgGCToGCDirtySDOCache = 2516; + k_EMsgGCToGCUpdateSQLKeyValue = 2518; + k_EMsgGCToGCBroadcastConsoleCommand = 2521; + k_EMsgGCServerVersionUpdated = 2522; + k_EMsgGCApplyAutograph = 2523; + k_EMsgGCToGCWebAPIAccountChanged = 2524; + k_EMsgGCClientVersionUpdated = 2528; + k_EMsgGCToGCUpdateWelcomeMsg = 2529; + k_EMsgGCToGCPlayerStrangeCountAdjustments = 2535; + k_EMsgGCRequestStoreSalesData = 2536; + k_EMsgGCRequestStoreSalesDataResponse = 2537; + k_EMsgGCRequestStoreSalesDataUpToDateResponse = 2538; + k_EMsgGCToGCPingRequest = 2539; + k_EMsgGCToGCPingResponse = 2540; + k_EMsgGCToGCGetUserSessionServer = 2541; + k_EMsgGCToGCGetUserSessionServerResponse = 2542; + k_EMsgGCToGCGetUserServerMembers = 2543; + k_EMsgGCToGCGetUserServerMembersResponse = 2544; + k_EMsgGCToGCCanUseDropRateBonus = 2547; + k_EMsgSQLAddDropRateBonus = 2548; + k_EMsgGCToGCRefreshSOCache = 2549; + k_EMsgGCToGCGrantAccountRolledItems = 2554; + k_EMsgGCToGCGrantSelfMadeItemToAccount = 2555; + k_EMsgGCStatueCraft = 2561; + k_EMsgGCRedeemCode = 2562; + k_EMsgGCRedeemCodeResponse = 2563; + k_EMsgGCToGCItemConsumptionRollback = 2564; + k_EMsgClientToGCWrapAndDeliverGift = 2565; + k_EMsgClientToGCWrapAndDeliverGiftResponse = 2566; + k_EMsgClientToGCUnpackBundleResponse = 2567; + k_EMsgGCToClientStoreTransactionCompleted = 2568; + k_EMsgClientToGCEquipItems = 2569; + k_EMsgClientToGCEquipItemsResponse = 2570; + k_EMsgClientToGCUnlockItemStyle = 2571; + k_EMsgClientToGCUnlockItemStyleResponse = 2572; + k_EMsgClientToGCSetItemInventoryCategory = 2573; + k_EMsgClientToGCUnlockCrate = 2574; + k_EMsgClientToGCUnlockCrateResponse = 2575; + k_EMsgClientToGCUnpackBundle = 2576; + k_EMsgClientToGCSetItemStyle = 2577; + k_EMsgClientToGCSetItemStyleResponse = 2578; + k_EMsgSQLGCToGCGrantBackpackSlots = 2580; + k_EMsgClientToGCLookupAccountName = 2581; + k_EMsgClientToGCLookupAccountNameResponse = 2582; + k_EMsgClientToGCCreateStaticRecipe = 2584; + k_EMsgClientToGCCreateStaticRecipeResponse = 2585; + k_EMsgGCToGCStoreProcessCDKeyTransaction = 2586; + k_EMsgGCToGCStoreProcessCDKeyTransactionResponse = 2587; + k_EMsgGCToGCStoreProcessSettlement = 2588; + k_EMsgGCToGCStoreProcessSettlementResponse = 2589; + k_EMsgGCToGCConsoleOutput = 2590; + k_EMsgGCToClientItemAges = 2591; + k_EMsgGCToGCInternalTestMsg = 2592; + k_EMsgGCToGCClientServerVersionsUpdated = 2593; + k_EMsgGCUseMultipleItemsRequest = 2594; + k_EMsgGCGetAccountSubscriptionItem = 2595; + k_EMsgGCGetAccountSubscriptionItemResponse = 2596; + k_EMsgGCToGCBroadcastMessageFromSub = 2598; + k_EMsgGCToClientCurrencyPricePoints = 2599; + k_EMsgGCToGCAddSubscriptionTime = 2600; + k_EMsgGCToGCFlushSteamInventoryCache = 2601; + k_EMsgGCRequestCrateEscalationLevel = 2602; + k_EMsgGCRequestCrateEscalationLevelResponse = 2603; + k_EMsgGCToGCUpdateSubscriptionItems = 2604; + k_EMsgGCToGCSelfPing = 2605; + k_EMsgGCToGCGetInfuxIntervalStats = 2606; + k_EMsgGCToGCGetInfuxIntervalStatsResponse = 2607; + k_EMsgGCToGCPurchaseSucceeded = 2608; + k_EMsgClientToGCGetLimitedItemPurchaseQuantity = 2609; + k_EMsgClientToGCGetLimitedItemPurchaseQuantityResponse = 2610; + k_EMsgGCToGCBetaDeleteItems = 2611; + k_EMsgClientToGCGetInFlightItemCharges = 2612; + k_EMsgClientToGCGetInFlightItemChargesResponse = 2613; + k_EMsgGCToClientInFlightChargesUpdated = 2614; + k_EMsgClientToGCPurchaseChargeCostItems = 2615; + k_EMsgClientToGCPurchaseChargeCostItemsResponse = 2616; + k_EMsgClientToGCCancelUnfinalizedTransactions = 2617; + k_EMsgClientToGCCancelUnfinalizedTransactionsResponse = 2618; +} + +enum EGCMsgInitiateTradeResponse { + k_EGCMsgInitiateTradeResponse_Accepted = 0; + k_EGCMsgInitiateTradeResponse_Declined = 1; + k_EGCMsgInitiateTradeResponse_VAC_Banned_Initiator = 2; + k_EGCMsgInitiateTradeResponse_VAC_Banned_Target = 3; + k_EGCMsgInitiateTradeResponse_Target_Already_Trading = 4; + k_EGCMsgInitiateTradeResponse_Disabled = 5; + k_EGCMsgInitiateTradeResponse_NotLoggedIn = 6; + k_EGCMsgInitiateTradeResponse_Cancel = 7; + k_EGCMsgInitiateTradeResponse_TooSoon = 8; + k_EGCMsgInitiateTradeResponse_TooSoonPenalty = 9; + k_EGCMsgInitiateTradeResponse_Trade_Banned_Initiator = 10; + k_EGCMsgInitiateTradeResponse_Trade_Banned_Target = 11; + k_EGCMsgInitiateTradeResponse_Free_Account_Initiator_DEPRECATED = 12; + k_EGCMsgInitiateTradeResponse_Shared_Account_Initiator = 13; + k_EGCMsgInitiateTradeResponse_Service_Unavailable = 14; + k_EGCMsgInitiateTradeResponse_Target_Blocked = 15; + k_EGCMsgInitiateTradeResponse_NeedVerifiedEmail = 16; + k_EGCMsgInitiateTradeResponse_NeedSteamGuard = 17; + k_EGCMsgInitiateTradeResponse_SteamGuardDuration = 18; + k_EGCMsgInitiateTradeResponse_TheyCannotTrade = 19; + k_EGCMsgInitiateTradeResponse_Recent_Password_Reset = 20; + k_EGCMsgInitiateTradeResponse_Using_New_Device = 21; + k_EGCMsgInitiateTradeResponse_Sent_Invalid_Cookie = 22; + k_EGCMsgInitiateTradeResponse_TooRecentFriend = 23; + k_EGCMsgInitiateTradeResponse_WalledFundsNotTrusted = 24; +} + +message CMsgApplyAutograph { + optional uint64 autograph_item_id = 1; + optional uint64 item_item_id = 2; +} + +message CMsgAdjustItemEquippedState { + optional uint64 item_id = 1; + optional uint32 new_class = 2; + optional uint32 new_slot = 3; + optional uint32 style_index = 4 [default = 255]; +} + +message CMsgEconPlayerStrangeCountAdjustment { + message CStrangeCountAdjustment { + optional uint32 event_type = 1; + optional uint64 item_id = 2; + optional uint32 adjustment = 3; + } + + optional uint32 account_id = 1; + repeated .CMsgEconPlayerStrangeCountAdjustment.CStrangeCountAdjustment strange_count_adjustments = 2; + optional bool turbo_mode = 3; +} + +message CMsgCraftingResponse { + repeated uint64 item_ids = 1; +} + +message CMsgGCRequestStoreSalesData { + optional uint32 version = 1; + optional uint32 currency = 2; +} + +message CMsgGCRequestStoreSalesDataResponse { + message Price { + optional uint32 item_def = 1; + optional uint32 price = 2; + } + + repeated .CMsgGCRequestStoreSalesDataResponse.Price sale_price = 1; + optional uint32 version = 2; + optional uint32 expiration_time = 3; +} + +message CMsgGCRequestStoreSalesDataUpToDateResponse { + optional uint32 version = 1; + optional uint32 expiration_time = 2; +} + +message CMsgGCToGCPingRequest { +} + +message CMsgGCToGCPingResponse { +} + +message CMsgGCToGCGetUserSessionServer { + optional uint32 account_id = 1; +} + +message CMsgGCToGCGetUserSessionServerResponse { + optional fixed64 server_steam_id = 1; + optional bool is_online = 2; +} + +message CMsgGCToGCGetUserServerMembers { + optional uint32 account_id = 1; + optional uint32 max_spectators = 2; +} + +message CMsgGCToGCGetUserServerMembersResponse { + repeated uint32 member_account_id = 1; +} + +message CMsgLookupMultipleAccountNames { + repeated uint32 accountids = 1 [packed = true]; +} + +message CMsgLookupMultipleAccountNamesResponse { + message Account { + optional uint32 accountid = 1; + optional string persona = 2; + } + + repeated .CMsgLookupMultipleAccountNamesResponse.Account accounts = 1; +} + +message CMsgRequestCrateItems { + optional uint32 crate_item_def = 1; +} + +message CMsgRequestCrateItemsResponse { + enum EResult { + k_Succeeded = 0; + k_Failed = 1; + } + + optional uint32 response = 1; + repeated uint32 item_defs = 2; + repeated uint32 peek_item_defs = 3; + repeated .CSOEconItem peek_items = 4; +} + +message CMsgRequestCrateEscalationLevel { + optional uint32 crate_item_def = 1; +} + +message CMsgRequestCrateEscalationLevelResponse { + enum EResult { + k_Succeeded = 0; + k_Failed = 1; + } + + optional uint32 response = 1; + optional uint32 escalation_level0 = 2; + optional uint32 escalation_level1 = 3; + optional uint32 escalation_level2 = 4; + optional uint32 escalation_level3 = 5; +} + +message CMsgGCToGCCanUseDropRateBonus { + optional uint32 account_id = 1; + optional float drop_rate_bonus = 2; + optional uint32 booster_type = 3; + optional uint32 exclusive_item_def = 4; + optional bool allow_equal_rate = 5; +} + +message CMsgSQLAddDropRateBonus { + optional uint32 account_id = 1; + optional uint64 item_id = 2; + optional uint32 item_def = 3; + optional float drop_rate_bonus = 4; + optional uint32 booster_type = 5; + optional uint32 seconds_duration = 6; + optional uint32 end_time_stamp = 7; +} + +message CMsgSQLUpgradeBattleBooster { + optional uint32 account_id = 1; + optional uint32 item_def = 2; + optional float bonus_to_add = 3; + optional uint32 booster_type = 4; +} + +message CMsgGCToGCRefreshSOCache { + optional uint32 account_id = 1; + optional bool reload = 2; +} + +message CMsgGCToGCAddSubscriptionTime { + optional uint32 account_id = 1; + repeated uint32 matching_subscription_def_indexes = 2; + optional uint32 additional_seconds = 3; +} + +message CMsgGCToGCGrantAccountRolledItems { + message Item { + message DynamicAttribute { + optional string name = 1; + optional uint32 value_uint32 = 2; + optional float value_float = 3; + optional string value_string = 4; + } + + message AdditionalAuditEntry { + optional uint32 owner_account_id = 1; + optional uint32 audit_action = 2; + optional uint64 audit_data = 3; + } + + optional uint32 item_def = 1; + repeated string loot_lists = 2; + optional bool ignore_limit = 3; + optional uint32 origin = 4; + repeated .CMsgGCToGCGrantAccountRolledItems.Item.DynamicAttribute dynamic_attributes = 5; + repeated .CMsgGCToGCGrantAccountRolledItems.Item.AdditionalAuditEntry additional_audit_entries = 6; + optional uint32 inventory_token = 7; + optional int32 quality = 8 [default = -1]; + } + + optional uint32 account_id = 1; + repeated .CMsgGCToGCGrantAccountRolledItems.Item items = 2; + optional uint32 audit_action = 3; + optional uint64 audit_data = 4; +} + +message CMsgGCToGCBetaDeleteItems { + optional uint32 account_id = 1; + repeated uint64 item_ids = 2; + repeated uint32 item_defs = 3; +} + +message CMsgGCToGCGrantSelfMadeItemToAccount { + optional uint32 item_def_index = 1; + optional uint32 accountid = 2; +} + +message CMsgUseItem { + optional uint64 item_id = 1; + optional fixed64 target_steam_id = 2; + repeated uint32 gift__potential_targets = 3; + optional uint32 duel__class_lock = 4; + optional uint64 initiator_steam_id = 5; + optional bool itempack__ack_immediately = 6; +} + +message CMsgServerUseItem { + optional uint32 initiator_account_id = 1; + optional .CMsgUseItem use_item_msg = 2; +} + +message CMsgUseMultipleItems { + repeated uint64 item_ids = 1; +} + +message CGCStoreRechargeRedirect_LineItem { + optional uint32 item_def_id = 1; + optional uint32 quantity = 2; +} + +message CMsgGCEconSQLWorkItemEmbeddedRollbackData { + optional uint32 account_id = 1; + optional uint64 deleted_item_id = 2; + optional uint32 old_audit_action = 3; + optional uint32 new_audit_action = 4; + optional uint32 expected_audit_action = 5; +} + +message CMsgCraftStatue { + optional uint32 heroid = 1; + optional string sequencename = 2; + optional float cycle = 3; + optional string description = 4; + optional uint32 pedestal_itemdef = 5; + optional uint64 toolid = 6; +} + +message CMsgRedeemCode { + optional string code = 1; +} + +message CMsgRedeemCodeResponse { + enum EResultCode { + k_Succeeded = 0; + k_Failed_CodeNotFound = 1; + k_Failed_CodeAlreadyUsed = 2; + k_Failed_OtherError = 3; + } + + optional uint32 response = 1; + optional uint64 item_id = 2; +} + +message CMsgDevNewItemRequest { + optional string item_def_name = 3; + optional string loot_list_name = 4; + repeated string attr_def_name = 5; + repeated string attr_value = 6; + optional uint32 item_quality = 7; +} + +message CMsgDevNewItemRequestResponse { + optional bool success = 1; +} + +message CMsgDevUnlockAllItemStyles { + optional uint64 item_id = 1; +} + +message CMsgDevUnlockAllItemStylesResponse { + optional bool success = 1; +} + +message CMsgGCGetAccountSubscriptionItem { + optional uint32 account_id = 1; +} + +message CMsgGCGetAccountSubscriptionItemResponse { + optional uint32 def_index = 1; +} + +message CMsgGCAddGiftItem { + optional uint32 gifter_account_id = 1; + optional uint32 receiver_account_id = 2; + optional .CSOEconItem wrapped_item = 3; + optional string gift_message = 4; + optional bool is_wallet_cash_trusted = 5; +} + +message CMsgClientToGCWrapAndDeliverGift { + optional uint64 item_id = 1; + optional uint32 give_to_account_id = 2; + optional string gift_message = 3; +} + +message CMsgSQLGCToGCRevokeUntrustedGift { + optional uint32 account_id = 1; + optional uint64 sent_item_id = 4; +} + +message CMsgClientToGCWrapAndDeliverGiftResponse { + optional .EGCMsgResponse response = 1 [default = k_EGCMsgResponseOK]; + optional uint32 gifting_charge_uses = 2; + optional int32 gifting_charge_max = 3; + optional uint32 gifting_uses = 4; + optional int32 gifting_max = 5; + optional uint32 gifting_window_hours = 6; + optional .EGCMsgInitiateTradeResponse trade_restriction = 7 [default = k_EGCMsgInitiateTradeResponse_Accepted]; +} + +message CMsgClientToGCUnwrapGift { + optional uint64 item_id = 1; +} + +message CMsgClientToGCGetGiftPermissions { +} + +message CMsgClientToGCGetGiftPermissionsResponse { + message FriendPermission { + optional uint32 account_id = 1; + optional .EGCMsgInitiateTradeResponse permission = 2 [default = k_EGCMsgInitiateTradeResponse_Accepted]; + } + + optional bool is_unlimited = 1; + optional bool has_two_factor = 3; + optional .EGCMsgInitiateTradeResponse sender_permission = 6 [default = k_EGCMsgInitiateTradeResponse_Accepted]; + optional uint32 friendship_age_requirement = 7; + optional uint32 friendship_age_requirement_two_factor = 8; + repeated .CMsgClientToGCGetGiftPermissionsResponse.FriendPermission friend_permissions = 9; +} + +message CMsgClientToGCUnpackBundle { + optional uint64 item_id = 1; +} + +message CMsgClientToGCUnpackBundleResponse { + enum EUnpackBundle { + k_UnpackBundle_Succeeded = 0; + k_UnpackBundle_Failed_ItemIsNotBundle = 1; + k_UnpackBundle_Failed_UnableToCreateContainedItem = 2; + k_UnpackBundle_Failed_SOCacheError = 3; + k_UnpackBundle_Failed_ItemIsInvalid = 4; + k_UnpackBundle_Failed_BadItemQuantity = 5; + k_UnpackBundle_Failed_UnableToDeleteItem = 6; + } + + repeated uint64 unpacked_item_ids = 1; + optional .CMsgClientToGCUnpackBundleResponse.EUnpackBundle response = 2 [default = k_UnpackBundle_Succeeded]; + repeated uint32 unpacked_item_def_indexes = 3; +} + +message CMsgClientToGCPackBundle { + repeated uint64 item_ids = 1; + optional uint32 bundle_item_def_index = 2; +} + +message CMsgClientToGCPackBundleResponse { + enum EPackBundle { + k_PackBundle_Succeeded = 0; + k_PackBundle_Failed_InternalError = 1; + k_PackBundle_Failed_ItemIsNotBundle = 2; + k_PackBundle_Failed_SOCacheError = 3; + k_PackBundle_Failed_ItemIsInvalid = 4; + k_PackBundle_Failed_BadItemQuantity = 5; + k_PackBundle_Failed_UnableToDeleteItem = 6; + k_PackBundle_Failed_BundleCannotBePacked = 7; + k_PackBundle_Failed_ItemIsUntradeable = 8; + k_PackBundle_Failed_ItemIsEquipped = 9; + k_PackBundle_Failed_ItemHasGems = 10; + k_PackBundle_Failed_ItemMixedQuality = 11; + k_PackBundle_Failed_ItemInvalidQuality = 12; + k_PackBundle_Failed_ItemIsNonEconomy = 13; + k_PackBundle_Failed_Disabled = 14; + } + + optional uint64 item_id = 1; + optional .CMsgClientToGCPackBundleResponse.EPackBundle response = 2 [default = k_PackBundle_Succeeded]; +} + +message CMsgGCToClientStoreTransactionCompleted { + optional uint64 txn_id = 1; + repeated uint64 item_ids = 2; +} + +message CMsgClientToGCEquipItems { + repeated .CMsgAdjustItemEquippedState equips = 1; +} + +message CMsgClientToGCEquipItemsResponse { + optional fixed64 so_cache_version_id = 1; +} + +message CMsgClientToGCSetItemStyle { + optional uint64 item_id = 1; + optional uint32 style_index = 2 [default = 255]; +} + +message CMsgClientToGCSetItemStyleResponse { + enum ESetStyle { + k_SetStyle_Succeeded = 0; + k_SetStyle_Failed = 1; + k_SetStyle_Failed_StyleIsLocked = 2; + } + + optional .CMsgClientToGCSetItemStyleResponse.ESetStyle response = 1 [default = k_SetStyle_Succeeded]; +} + +message CMsgClientToGCUnlockItemStyle { + optional uint64 item_to_unlock = 1; + optional uint32 style_index = 2 [default = 255]; + repeated uint64 consumable_item_ids = 3; +} + +message CMsgClientToGCUnlockItemStyleResponse { + enum EUnlockStyle { + k_UnlockStyle_Succeeded = 0; + k_UnlockStyle_Failed_PreReq = 1; + k_UnlockStyle_Failed_CantAfford = 2; + k_UnlockStyle_Failed_CantCommit = 3; + k_UnlockStyle_Failed_CantLockCache = 4; + k_UnlockStyle_Failed_CantAffordAttrib = 5; + k_UnlockStyle_Failed_CantAffordGem = 6; + k_UnlockStyle_Failed_NoCompendiumLevel = 7; + k_UnlockStyle_Failed_AlreadyUnlocked = 8; + k_UnlockStyle_Failed_OtherError = 9; + k_UnlockStyle_Failed_ItemIsInvalid = 10; + k_UnlockStyle_Failed_ToolIsInvalid = 11; + } + + optional .CMsgClientToGCUnlockItemStyleResponse.EUnlockStyle response = 1 [default = k_UnlockStyle_Succeeded]; + optional uint64 item_id = 2; + optional uint32 style_index = 3 [default = 255]; + optional uint32 style_prereq = 4 [default = 255]; +} + +message CMsgClientToGCSetItemInventoryCategory { + repeated uint64 item_ids = 1; + optional uint32 set_to_value = 2; + optional uint32 remove_categories = 3; + optional uint32 add_categories = 4; +} + +message CMsgClientToGCUnlockCrate { + optional uint64 crate_item_id = 1; + optional uint64 key_item_id = 2; +} + +message CMsgClientToGCUnlockCrateResponse { + message Item { + optional uint64 item_id = 1; + optional uint32 def_index = 2; + } + + optional .EGCMsgResponse result = 1 [default = k_EGCMsgResponseOK]; + repeated .CMsgClientToGCUnlockCrateResponse.Item granted_items = 2; +} + +message CMsgClientToGCRemoveItemAttribute { + optional uint64 item_id = 1; +} + +message CMsgClientToGCRemoveItemAttributeResponse { + enum ERemoveItemAttribute { + k_RemoveItemAttribute_Succeeded = 0; + k_RemoveItemAttribute_Failed = 1; + k_RemoveItemAttribute_Failed_ItemIsInvalid = 2; + k_RemoveItemAttribute_Failed_AttributeCannotBeRemoved = 3; + k_RemoveItemAttribute_Failed_AttributeDoesntExist = 4; + } + + optional .CMsgClientToGCRemoveItemAttributeResponse.ERemoveItemAttribute response = 1 [default = k_RemoveItemAttribute_Succeeded]; + optional uint64 item_id = 2; +} + +message CMsgClientToGCNameItem { + optional uint64 subject_item_id = 1; + optional uint64 tool_item_id = 2; + optional string name = 3; +} + +message CMsgClientToGCNameItemResponse { + enum ENameItem { + k_NameItem_Succeeded = 0; + k_NameItem_Failed = 1; + k_NameItem_Failed_ToolIsInvalid = 2; + k_NameItem_Failed_ItemIsInvalid = 3; + k_NameItem_Failed_NameIsInvalid = 4; + } + + optional .CMsgClientToGCNameItemResponse.ENameItem response = 1 [default = k_NameItem_Succeeded]; + optional uint64 item_id = 2; +} + +message CMsgGCSetItemPosition { + optional uint64 item_id = 1; + optional uint32 new_position = 2; +} + +message CAttribute_ItemDynamicRecipeComponent { + optional uint32 item_def = 1; + optional uint32 item_quality = 2; + optional uint32 item_flags = 3; + optional string attributes_string = 4; + optional uint32 item_count = 5; + optional uint32 items_fulfilled = 6; + optional uint32 item_rarity = 7; + optional string lootlist = 8; + optional uint64 fulfilled_item_id = 9; + optional uint32 associated_item_def = 10; +} + +message CProtoItemSocket { + optional uint64 item_id = 1; + optional uint32 attr_def_index = 2; + optional uint32 required_type = 3; + optional string required_hero = 4; + optional uint32 gem_def_index = 5; + optional bool not_tradable = 6; + optional string required_item_slot = 7; +} + +message CProtoItemSocket_Empty { + optional .CProtoItemSocket socket = 1; +} + +message CProtoItemSocket_Effect { + optional .CProtoItemSocket socket = 1; + optional uint32 effect = 2; +} + +message CProtoItemSocket_Color { + optional .CProtoItemSocket socket = 1; + optional uint32 red = 2; + optional uint32 green = 3; + optional uint32 blue = 4; +} + +message CProtoItemSocket_Strange { + optional .CProtoItemSocket socket = 1; + optional uint32 strange_type = 2; + optional uint32 strange_value = 3; +} + +message CProtoItemSocket_Strange_DESERIALIZE_FROM_STRING_ONLY { + optional .CProtoItemSocket socket = 1; + optional uint32 strange_type = 2; + optional uint32 strange_value = 3; + optional uint32 ability_effect = 4; +} + +message CProtoItemSocket_Spectator { + optional .CProtoItemSocket socket = 1; + optional uint32 games_viewed = 2; + optional uint32 corporation_id = 3; + optional uint32 league_id = 4; + optional uint32 team_id = 5; +} + +message CProtoItemSocket_AssetModifier { + optional .CProtoItemSocket socket = 1; + optional uint32 asset_modifier = 2; +} + +message CProtoItemSocket_AssetModifier_DESERIALIZE_FROM_STRING_ONLY { + optional .CProtoItemSocket socket = 1; + optional uint32 asset_modifier = 2; + optional uint32 anim_modifier = 3; + optional uint32 ability_effect = 4; +} + +message CProtoItemSocket_Autograph { + optional .CProtoItemSocket socket = 1; + optional string autograph = 2; + optional uint32 autograph_id = 3; + optional uint32 autograph_score = 4; +} + +message CProtoItemSocket_StaticVisuals { + optional .CProtoItemSocket socket = 1; +} + +message CAttribute_String { + optional string value = 1; +} + +message CWorkshop_GetItemDailyRevenue_Request { + optional uint32 appid = 1; + optional uint32 item_id = 2; + optional uint32 date_start = 3; + optional uint32 date_end = 4; +} + +message CWorkshop_GetItemDailyRevenue_Response { + message CountryDailyRevenue { + optional string country_code = 1; + optional uint32 date = 2; + optional int64 revenue_usd = 3; + optional int32 units = 4; + } + + repeated .CWorkshop_GetItemDailyRevenue_Response.CountryDailyRevenue country_revenue = 1; +} + +message CWorkshop_GetPackageDailyRevenue_Request { + optional uint32 packageid = 1; + optional uint32 date_start = 2; + optional uint32 date_end = 3; +} + +message CWorkshop_GetPackageDailyRevenue_Response { + message CountryDailyRevenue { + optional string country_code = 1; + optional uint32 date = 2; + optional int64 revenue_usd = 3; + optional int32 units = 4; + } + + repeated .CWorkshop_GetPackageDailyRevenue_Response.CountryDailyRevenue country_revenue = 1; +} + +message CMsgSQLGCToGCGrantBackpackSlots { + optional uint32 account_id = 1; + optional uint32 add_slots = 2; +} + +message CMsgClientToGCLookupAccountName { + optional uint32 account_id = 1; +} + +message CMsgClientToGCLookupAccountNameResponse { + optional uint32 account_id = 1; + optional string account_name = 2; +} + +message CMsgClientToGCCreateStaticRecipe { + message Item { + optional uint64 item_id = 1; + optional uint32 slot_id = 2; + } + + repeated .CMsgClientToGCCreateStaticRecipe.Item items = 1; + optional uint32 recipe_def_index = 2; +} + +message CMsgClientToGCCreateStaticRecipeResponse { + message OutputItem { + optional uint32 def_index = 1; + optional uint64 item_id = 2; + optional uint32 slot_id = 3; + } + + message InputError { + optional uint32 slot_id = 1; + optional .CMsgClientToGCCreateStaticRecipeResponse.EResponse error = 2 [default = eResponse_Success]; + } + + message AdditionalOutput { + optional uint32 slot_id = 1; + optional uint64 value = 2; + } + + enum EResponse { + eResponse_Success = 0; + eResponse_OfferingDisabled = 1; + eResponse_InvalidItems = 2; + eResponse_InternalError = 3; + eResponse_MissingLeague = 4; + eResponse_MissingEvent = 5; + } + + optional .CMsgClientToGCCreateStaticRecipeResponse.EResponse response = 1 [default = eResponse_Success]; + repeated .CMsgClientToGCCreateStaticRecipeResponse.OutputItem output_items = 2; + repeated .CMsgClientToGCCreateStaticRecipeResponse.InputError input_errors = 3; + repeated .CMsgClientToGCCreateStaticRecipeResponse.AdditionalOutput additional_outputs = 4; +} + +message CMsgProcessTransactionOrder { + message Item { + optional uint32 item_def_index = 1; + optional uint32 item_price = 2; + optional uint32 quantity = 3; + optional string category_desc = 4; + optional uint32 store_purchase_type = 5; + optional uint64 source_reference_id = 6; + optional int32 parent_stack_index = 7; + optional bool default_price = 8; + optional bool is_user_facing = 9; + optional int32 price_index = 11; + } + + optional uint64 txn_id = 1; + optional uint64 steam_txn_id = 2; + optional uint64 partner_txn_id = 3; + optional fixed64 steam_id = 4; + optional uint32 time_stamp = 5; + optional uint64 watermark = 6; + optional int32 purchase_report_status = 7; + optional uint32 currency = 8; + repeated .CMsgProcessTransactionOrder.Item items = 9; +} + +message CMsgGCToGCStoreProcessCDKeyTransaction { + optional .CMsgProcessTransactionOrder order = 1; + optional uint32 reason_code = 2; + optional uint32 partner = 3; +} + +message CMsgGCToGCStoreProcessCDKeyTransactionResponse { + optional bool success = 1; +} + +message CMsgGCToGCStoreProcessSettlement { + optional .CMsgProcessTransactionOrder order = 1; +} + +message CMsgGCToGCStoreProcessSettlementResponse { + optional bool success = 1; +} + +message CMsgGCToGCBroadcastConsoleCommand { + optional string con_command = 1; + optional bool report_output = 2; + optional int32 sending_gc = 3 [default = -1]; + optional string output_initiator = 4; + optional string sender_source = 5; +} + +message CMsgGCToGCConsoleOutput { + message OutputLine { + optional string text = 1; + optional uint32 spew_level = 2; + } + + optional string initiator = 1; + optional int32 sending_gc = 2 [default = -1]; + repeated .CMsgGCToGCConsoleOutput.OutputLine msgs = 3; + optional bool is_last_for_source_job = 4; +} + +message CMsgItemAges { + message MaxItemIDTimestamp { + optional uint32 timestamp = 1; + optional uint64 max_item_id = 2; + } + + repeated .CMsgItemAges.MaxItemIDTimestamp max_item_id_timestamps = 1; +} + +message CMsgGCToGCInternalTestMsg { + optional int32 sending_gc = 1 [default = -1]; + optional fixed64 sender_id = 2; + optional uint32 context = 3; + optional uint32 message_id = 4; + optional bytes message_body = 5; + optional fixed64 job_id_source = 6; + optional fixed64 job_id_target = 7; +} + +message CMsgGCToGCClientServerVersionsUpdated { + optional uint32 client_min_allowed_version = 1; + optional uint32 client_active_version = 2; + optional uint32 server_active_version = 3; + optional uint32 server_deployed_version = 4; + optional uint32 what_changed = 5; +} + +message CMsgGCToGCBroadcastMessageFromSub { + optional uint32 msg_id = 1; + optional bytes serialized_msg = 2; + repeated uint32 account_id_list = 3 [packed = true]; + repeated fixed64 steam_id_list = 4 [packed = true]; +} + +message CMsgGCToClientCurrencyPricePoints { + message Currency { + optional uint32 currency_id = 1; + repeated uint64 currency_price = 2 [packed = true]; + } + + repeated uint64 price_key = 1 [packed = true]; + repeated .CMsgGCToClientCurrencyPricePoints.Currency currencies = 2; +} + +message CMsgBannedWordList { + optional uint32 version = 1; + repeated string banned_words = 2; +} + +message CMsgGCToGCFlushSteamInventoryCache { + message Key { + optional uint64 steamid = 1; + optional uint64 contextid = 2; + } + + repeated .CMsgGCToGCFlushSteamInventoryCache.Key keys = 1; +} + +message CMsgGCToGCUpdateSubscriptionItems { + optional uint32 account_id = 1; + optional bool always_notify = 2; +} + +message CMsgGCToGCSelfPing { + optional uint32 sample_id = 1; +} + +message CMsgGCToGCGetInfuxIntervalStats { +} + +message CMsgGCToGCGetInfuxIntervalStatsResponse { + repeated fixed32 stat_ids = 1 [packed = true]; + repeated uint64 stat_total = 2 [packed = true]; + repeated uint32 stat_samples = 3 [packed = true]; + repeated uint32 stat_max = 4 [packed = true]; + optional uint32 sample_duration_ms = 5; +} + +message CMsgGCToGCPurchaseSucceeded { +} + +message CMsgClientToGCGetLimitedItemPurchaseQuantity { + optional uint32 item_def = 1; +} + +message CMsgClientToGCGetLimitedItemPurchaseQuantityResponse { + enum EResponse { + k_eInternalError = 0; + k_eSuccess = 1; + k_eTooBusy = 2; + k_eDisabled = 3; + k_eTimeout = 4; + k_eInvalidItemDef = 5; + k_eItemDefNotLimited = 6; + } + + optional .CMsgClientToGCGetLimitedItemPurchaseQuantityResponse.EResponse result = 1 [default = k_eInternalError]; + optional uint32 quantity_purchased = 2; +} + +message CMsgClientToGCGetInFlightItemCharges { + optional uint32 item_def = 1; +} + +message CMsgClientToGCGetInFlightItemChargesResponse { + enum EResponse { + k_eInternalError = 0; + k_eSuccess = 1; + k_eTooBusy = 2; + k_eDisabled = 3; + k_eTimeout = 4; + k_eInvalidItemDef = 5; + } + + optional .CMsgClientToGCGetInFlightItemChargesResponse.EResponse result = 1 [default = k_eInternalError]; + optional uint32 charges_in_flight = 2; +} + +message CMsgClientToGCPurchaseChargeCostItems { + message Item { + optional uint32 item_def_index = 1; + optional uint32 quantity = 2; + optional uint64 source_reference_id = 3; + optional int32 price_index = 4; + } + + repeated .CMsgClientToGCPurchaseChargeCostItems.Item items = 1; + optional uint32 currency = 2; +} + +message CMsgClientToGCPurchaseChargeCostItemsResponse { + enum EResponse { + k_eInternalError = 0; + k_eSuccess = 1; + k_eTooBusy = 2; + k_eDisabled = 3; + k_eTimeout = 4; + k_eInvalidParam = 5; + k_eInvalidPrice = 6; + k_eInsufficientCharges = 7; + k_eLimitedItem = 8; + k_eMissingPrereq = 10; + } + + optional .CMsgClientToGCPurchaseChargeCostItemsResponse.EResponse result = 1 [default = k_eInternalError]; + repeated uint64 item_ids = 2; +} + +message CMsgGCToClientInFlightChargesUpdated { + message ItemCharges { + optional uint32 item_def = 1; + optional uint32 charges_in_flight = 2; + } + + repeated .CMsgGCToClientInFlightChargesUpdated.ItemCharges in_flight_charges = 2; +} + +message CMsgClientToGCCancelUnfinalizedTransactions { + optional uint32 unused = 1; +} + +message CMsgClientToGCCancelUnfinalizedTransactionsResponse { + optional uint32 result = 1; +} + +message CMsgGCToGCUpdateWelcomeMsg { + optional bool server = 1; + optional .CExtraMsgBlock new_msg = 2; + optional bool broadcast = 3; +} diff --git a/Protobufs/deadlock/econ_shared_enums.proto b/Protobufs/deadlock/econ_shared_enums.proto new file mode 100644 index 0000000..9fc32a0 --- /dev/null +++ b/Protobufs/deadlock/econ_shared_enums.proto @@ -0,0 +1,37 @@ +enum EGCEconBaseMsg { + k_EMsgGCGenericResult = 2579; +} + +enum EGCMsgResponse { + k_EGCMsgResponseOK = 0; + k_EGCMsgResponseDenied = 1; + k_EGCMsgResponseServerError = 2; + k_EGCMsgResponseTimeout = 3; + k_EGCMsgResponseInvalid = 4; + k_EGCMsgResponseNoMatch = 5; + k_EGCMsgResponseUnknownError = 6; + k_EGCMsgResponseNotLoggedOn = 7; + k_EGCMsgFailedToCreate = 8; +} + +enum EGCMsgUseItemResponse { + k_EGCMsgUseItemResponse_ItemUsed = 0; + k_EGCMsgUseItemResponse_GiftNoOtherPlayers = 1; + k_EGCMsgUseItemResponse_ServerError = 2; + k_EGCMsgUseItemResponse_MiniGameAlreadyStarted = 3; + k_EGCMsgUseItemResponse_ItemUsed_ItemsGranted = 4; + k_EGCMsgUseItemResponse_DropRateBonusAlreadyGranted = 5; + k_EGCMsgUseItemResponse_NotInLowPriorityPool = 6; + k_EGCMsgUseItemResponse_NotHighEnoughLevel = 7; + k_EGCMsgUseItemResponse_EventNotActive = 8; + k_EGCMsgUseItemResponse_ItemUsed_EventPointsGranted = 9; + k_EGCMsgUseItemResponse_MissingRequirement = 10; + k_EGCMsgUseItemResponse_EmoticonUnlock_NoNew = 11; + k_EGCMsgUseItemResponse_EmoticonUnlock_Complete = 12; + k_EGCMsgUseItemResponse_ItemUsed_Compendium = 13; +} + +message CMsgGenericResult { + optional uint32 eresult = 1 [default = 2]; + optional string debug_message = 2; +} diff --git a/Protobufs/deadlock/engine_gcmessages.proto b/Protobufs/deadlock/engine_gcmessages.proto new file mode 100644 index 0000000..7f81bb6 --- /dev/null +++ b/Protobufs/deadlock/engine_gcmessages.proto @@ -0,0 +1,14 @@ +import "google/protobuf/descriptor.proto"; + +message CEngineGotvSyncPacket { + optional uint64 match_id = 1; + optional uint32 instance_id = 2; + optional uint32 signupfragment = 3; + optional uint32 currentfragment = 4; + optional float tickrate = 5; + optional uint32 tick = 6; + optional float rtdelay = 8; + optional float rcvage = 9; + optional float keyframe_interval = 10; + optional uint32 cdndelay = 11; +} diff --git a/Protobufs/deadlock/enums_clientserver.proto b/Protobufs/deadlock/enums_clientserver.proto new file mode 100644 index 0000000..54bf0f7 --- /dev/null +++ b/Protobufs/deadlock/enums_clientserver.proto @@ -0,0 +1,1529 @@ +option optimize_for = SPEED; +option cc_generic_services = false; + +enum EMsg { + option allow_alias = true; + k_EMsgInvalid = 0; + k_EMsgMulti = 1; + k_EMsgProtobufWrapped = 2; + k_EMsgBaseGeneral = 100; + k_EMsgGenericReply = 100; + k_EMsgDestJobFailed = 113; + k_EMsgAlert = 115; + k_EMsgSCIDRequest = 120; + k_EMsgSCIDResponse = 121; + k_EMsgJobHeartbeat = 123; + k_EMsgHubConnect = 124; + k_EMsgSubscribe = 126; + k_EMRouteMessage = 127; + k_EMsgWGRequest = 130; + k_EMsgWGResponse = 131; + k_EMsgKeepAlive = 132; + k_EMsgWebAPIJobRequest = 133; + k_EMsgWebAPIJobResponse = 134; + k_EMsgClientSessionStart = 135; + k_EMsgClientSessionEnd = 136; + k_EMsgClientSessionUpdate = 137; + k_EMsgStatsDeprecated = 138; + k_EMsgPing = 139; + k_EMsgPingResponse = 140; + k_EMsgStats = 141; + k_EMsgRequestFullStatsBlock = 142; + k_EMsgLoadDBOCacheItem = 143; + k_EMsgLoadDBOCacheItemResponse = 144; + k_EMsgInvalidateDBOCacheItems = 145; + k_EMsgServiceMethod = 146; + k_EMsgServiceMethodResponse = 147; + k_EMsgClientPackageVersions = 148; + k_EMsgTimestampRequest = 149; + k_EMsgTimestampResponse = 150; + k_EMsgServiceMethodCallFromClient = 151; + k_EMsgServiceMethodSendToClient = 152; + k_EMsgBaseShell = 200; + k_EMsgAssignSysID = 200; + k_EMsgExit = 201; + k_EMsgDirRequest = 202; + k_EMsgDirResponse = 203; + k_EMsgZipRequest = 204; + k_EMsgZipResponse = 205; + k_EMsgUpdateRecordResponse = 215; + k_EMsgUpdateCreditCardRequest = 221; + k_EMsgUpdateUserBanResponse = 225; + k_EMsgPrepareToExit = 226; + k_EMsgContentDescriptionUpdate = 227; + k_EMsgTestResetServer = 228; + k_EMsgUniverseChanged = 229; + k_EMsgShellConfigInfoUpdate = 230; + k_EMsgRequestWindowsEventLogEntries = 233; + k_EMsgProvideWindowsEventLogEntries = 234; + k_EMsgShellSearchLogs = 235; + k_EMsgShellSearchLogsResponse = 236; + k_EMsgShellCheckWindowsUpdates = 237; + k_EMsgShellCheckWindowsUpdatesResponse = 238; + k_EMsgTestFlushDelayedSQL = 240; + k_EMsgTestFlushDelayedSQLResponse = 241; + k_EMsgEnsureExecuteScheduledTask_TEST = 242; + k_EMsgEnsureExecuteScheduledTaskResponse_TEST = 243; + k_EMsgUpdateScheduledTaskEnableState_TEST = 244; + k_EMsgUpdateScheduledTaskEnableStateResponse_TEST = 245; + k_EMsgContentDescriptionDeltaUpdate = 246; + k_EMsgGMShellAndServerAddressUpdates = 247; + k_EMsgBaseGM = 300; + k_EMsgHeartbeat = 300; + k_EMsgShellFailed = 301; + k_EMsgExitShells = 307; + k_EMsgExitShell = 308; + k_EMsgGracefulExitShell = 309; + k_EMsgLicenseProcessingComplete = 316; + k_EMsgSetTestFlag = 317; + k_EMsgQueuedEmailsComplete = 318; + k_EMsgGMReportPHPError = 319; + k_EMsgGMDRMSync = 320; + k_EMsgPhysicalBoxInventory = 321; + k_EMsgUpdateConfigFile = 322; + k_EMsgTestInitDB = 323; + k_EMsgGMWriteConfigToSQL = 324; + k_EMsgGMLoadActivationCodes = 325; + k_EMsgGMQueueForFBS = 326; + k_EMsgGMSchemaConversionResults = 327; + k_EMsgGMWriteShellFailureToSQL = 329; + k_EMsgGMWriteStatsToSOS = 330; + k_EMsgGMGetServiceMethodRouting = 331; + k_EMsgGMGetServiceMethodRoutingResponse = 332; + k_EMsgGMTestNextBuildSchemaConversion = 334; + k_EMsgGMTestNextBuildSchemaConversionResponse = 335; + k_EMsgExpectShellRestart = 336; + k_EMsgHotFixProgress = 337; + k_EMsgGMStatsForwardToAdminConnections = 338; + k_EMsgBaseAIS = 400; + k_EMsgAISRequestContentDescription = 402; + k_EMsgAISUpdateAppInfo = 403; + k_EMsgAISGetPackageChangeNumber = 405; + k_EMsgAISGetPackageChangeNumberResponse = 406; + k_EMsgAIGetAppGCFlags = 423; + k_EMsgAIGetAppGCFlagsResponse = 424; + k_EMsgAIGetAppList = 425; + k_EMsgAIGetAppListResponse = 426; + k_EMsgAISGetCouponDefinition = 429; + k_EMsgAISGetCouponDefinitionResponse = 430; + k_EMsgAISUpdateSubordinateContentDescription = 431; + k_EMsgAISUpdateSubordinateContentDescriptionResponse = 432; + k_EMsgAISTestEnableGC = 433; + k_EMsgBaseAM = 500; + k_EMsgAMUpdateUserBanRequest = 504; + k_EMsgAMAddLicense = 505; + k_EMsgAMSendSystemIMToUser = 508; + k_EMsgAMExtendLicense = 509; + k_EMsgAMAddMinutesToLicense = 510; + k_EMsgAMCancelLicense = 511; + k_EMsgAMInitPurchase = 512; + k_EMsgAMPurchaseResponse = 513; + k_EMsgAMGetFinalPrice = 514; + k_EMsgAMGetFinalPriceResponse = 515; + k_EMsgAMGetLegacyGameKey = 516; + k_EMsgAMGetLegacyGameKeyResponse = 517; + k_EMsgAMFindHungTransactions = 518; + k_EMsgAMSetAccountTrustedRequest = 519; + k_EMsgAMCancelPurchase = 522; + k_EMsgAMNewChallenge = 523; + k_EMsgAMLoadOEMTickets = 524; + k_EMsgAMFixPendingPurchase = 525; + k_EMsgAMFixPendingPurchaseResponse = 526; + k_EMsgAMIsUserBanned = 527; + k_EMsgAMRegisterKey = 528; + k_EMsgAMLoadActivationCodes = 529; + k_EMsgAMLoadActivationCodesResponse = 530; + k_EMsgAMLookupKeyResponse = 531; + k_EMsgAMLookupKey = 532; + k_EMsgAMChatCleanup = 533; + k_EMsgAMClanCleanup = 534; + k_EMsgAMFixPendingRefund = 535; + k_EMsgAMReverseChargeback = 536; + k_EMsgAMReverseChargebackResponse = 537; + k_EMsgAMClanCleanupList = 538; + k_EMsgAMGetLicenses = 539; + k_EMsgAMGetLicensesResponse = 540; + k_EMsgAMSendCartRepurchase = 541; + k_EMsgAMSendCartRepurchaseResponse = 542; + k_EMsgAllowUserToPlayQuery = 550; + k_EMsgAllowUserToPlayResponse = 551; + k_EMsgAMVerfiyUser = 552; + k_EMsgAMClientNotPlaying = 553; + k_EMsgAMClientRequestFriendship = 554; + k_EMsgAMRelayPublishStatus = 555; + k_EMsgAMInitPurchaseResponse = 560; + k_EMsgAMRevokePurchaseResponse = 561; + k_EMsgAMRefreshGuestPasses = 563; + k_EMsgAMGrantGuestPasses = 566; + k_EMsgAMClanDataUpdated = 567; + k_EMsgAMReloadAccount = 568; + k_EMsgAMClientChatMsgRelay = 569; + k_EMsgAMChatMulti = 570; + k_EMsgAMClientChatInviteRelay = 571; + k_EMsgAMChatInvite = 572; + k_EMsgAMClientJoinChatRelay = 573; + k_EMsgAMClientChatMemberInfoRelay = 574; + k_EMsgAMPublishChatMemberInfo = 575; + k_EMsgAMClientAcceptFriendInvite = 576; + k_EMsgAMChatEnter = 577; + k_EMsgAMClientPublishRemovalFromSource = 578; + k_EMsgAMChatActionResult = 579; + k_EMsgAMFindAccounts = 580; + k_EMsgAMFindAccountsResponse = 581; + k_EMsgAMIsAccountNameInUse = 582; + k_EMsgAMIsAccountNameInUseResponse = 583; + k_EMsgAMSetAccountFlags = 584; + k_EMsgAMCreateClan = 586; + k_EMsgAMCreateClanResponse = 587; + k_EMsgAMGetClanDetails = 588; + k_EMsgAMGetClanDetailsResponse = 589; + k_EMsgAMSetPersonaName = 590; + k_EMsgAMSetAvatar = 591; + k_EMsgAMAuthenticateUser = 592; + k_EMsgAMAuthenticateUserResponse = 593; + k_EMsgAMP2PIntroducerMessage = 596; + k_EMsgClientChatAction = 597; + k_EMsgAMClientChatActionRelay = 598; + k_EMsgBaseVS = 600; + k_EMsgReqChallenge = 600; + k_EMsgVACResponse = 601; + k_EMsgReqChallengeTest = 602; + k_EMsgVSMarkCheat = 604; + k_EMsgVSAddCheat = 605; + k_EMsgVSPurgeCodeModDB = 606; + k_EMsgVSGetChallengeResults = 607; + k_EMsgVSChallengeResultText = 608; + k_EMsgVSReportLingerer = 609; + k_EMsgVSRequestManagedChallenge = 610; + k_EMsgVSLoadDBFinished = 611; + k_EMsgBaseDRMS = 625; + k_EMsgDRMBuildBlobRequest = 628; + k_EMsgDRMBuildBlobResponse = 629; + k_EMsgDRMResolveGuidRequest = 630; + k_EMsgDRMResolveGuidResponse = 631; + k_EMsgDRMVariabilityReport = 633; + k_EMsgDRMVariabilityReportResponse = 634; + k_EMsgDRMStabilityReport = 635; + k_EMsgDRMStabilityReportResponse = 636; + k_EMsgDRMDetailsReportRequest = 637; + k_EMsgDRMDetailsReportResponse = 638; + k_EMsgDRMProcessFile = 639; + k_EMsgDRMAdminUpdate = 640; + k_EMsgDRMAdminUpdateResponse = 641; + k_EMsgDRMSync = 642; + k_EMsgDRMSyncResponse = 643; + k_EMsgDRMProcessFileResponse = 644; + k_EMsgDRMEmptyGuidCache = 645; + k_EMsgDRMEmptyGuidCacheResponse = 646; + k_EMsgBaseCS = 650; + k_EMsgBaseClient = 700; + k_EMsgClientLogOn_Deprecated = 701; + k_EMsgClientAnonLogOn_Deprecated = 702; + k_EMsgClientHeartBeat = 703; + k_EMsgClientVACResponse = 704; + k_EMsgClientGamesPlayed_obsolete = 705; + k_EMsgClientLogOff = 706; + k_EMsgClientNoUDPConnectivity = 707; + k_EMsgClientConnectionStats = 710; + k_EMsgClientPingResponse = 712; + k_EMsgClientRemoveFriend = 714; + k_EMsgClientGamesPlayedNoDataBlob = 715; + k_EMsgClientChangeStatus = 716; + k_EMsgClientVacStatusResponse = 717; + k_EMsgClientFriendMsg = 718; + k_EMsgClientGameConnect_obsolete = 719; + k_EMsgClientGamesPlayed2_obsolete = 720; + k_EMsgClientGameEnded_obsolete = 721; + k_EMsgClientSystemIM = 726; + k_EMsgClientSystemIMAck = 727; + k_EMsgClientGetLicenses = 728; + k_EMsgClientGetLegacyGameKey = 730; + k_EMsgClientContentServerLogOn_Deprecated = 731; + k_EMsgClientAckVACBan2 = 732; + k_EMsgClientGetPurchaseReceipts = 736; + k_EMsgClientGamesPlayed3_obsolete = 738; + k_EMsgClientAckGuestPass = 740; + k_EMsgClientRedeemGuestPass = 741; + k_EMsgClientGamesPlayed = 742; + k_EMsgClientRegisterKey = 743; + k_EMsgClientInviteUserToClan = 744; + k_EMsgClientAcknowledgeClanInvite = 745; + k_EMsgClientPurchaseWithMachineID = 746; + k_EMsgClientAppUsageEvent = 747; + k_EMsgClientLogOnResponse = 751; + k_EMsgClientSetHeartbeatRate = 755; + k_EMsgClientNotLoggedOnDeprecated = 756; + k_EMsgClientLoggedOff = 757; + k_EMsgGSApprove = 758; + k_EMsgGSDeny = 759; + k_EMsgGSKick = 760; + k_EMsgClientPurchaseResponse = 763; + k_EMsgClientPing = 764; + k_EMsgClientNOP = 765; + k_EMsgClientPersonaState = 766; + k_EMsgClientFriendsList = 767; + k_EMsgClientAccountInfo = 768; + k_EMsgClientNewsUpdate = 771; + k_EMsgClientGameConnectDeny = 773; + k_EMsgGSStatusReply = 774; + k_EMsgClientGameConnectTokens = 779; + k_EMsgClientLicenseList = 780; + k_EMsgClientVACBanStatus = 782; + k_EMsgClientCMList = 783; + k_EMsgClientEncryptPct = 784; + k_EMsgClientGetLegacyGameKeyResponse = 785; + k_EMsgClientAddFriend = 791; + k_EMsgClientAddFriendResponse = 792; + k_EMsgClientAckGuestPassResponse = 796; + k_EMsgClientRedeemGuestPassResponse = 797; + k_EMsgClientUpdateGuestPassesList = 798; + k_EMsgClientChatMsg = 799; + k_EMsgClientChatInvite = 800; + k_EMsgClientJoinChat = 801; + k_EMsgClientChatMemberInfo = 802; + k_EMsgClientLogOnWithCredentials_Deprecated = 803; + k_EMsgClientPasswordChangeResponse = 805; + k_EMsgClientChatEnter = 807; + k_EMsgClientFriendRemovedFromSource = 808; + k_EMsgClientCreateChat = 809; + k_EMsgClientCreateChatResponse = 810; + k_EMsgClientP2PIntroducerMessage = 813; + k_EMsgClientChatActionResult = 814; + k_EMsgClientRequestFriendData = 815; + k_EMsgClientGetUserStats = 818; + k_EMsgClientGetUserStatsResponse = 819; + k_EMsgClientStoreUserStats = 820; + k_EMsgClientStoreUserStatsResponse = 821; + k_EMsgClientClanState = 822; + k_EMsgClientServiceModule = 830; + k_EMsgClientServiceCall = 831; + k_EMsgClientServiceCallResponse = 832; + k_EMsgClientNatTraversalStatEvent = 839; + k_EMsgClientSteamUsageEvent = 842; + k_EMsgClientCheckPassword = 845; + k_EMsgClientResetPassword = 846; + k_EMsgClientCheckPasswordResponse = 848; + k_EMsgClientResetPasswordResponse = 849; + k_EMsgClientSessionToken = 850; + k_EMsgClientDRMProblemReport = 851; + k_EMsgClientSetIgnoreFriend = 855; + k_EMsgClientSetIgnoreFriendResponse = 856; + k_EMsgClientGetAppOwnershipTicket = 857; + k_EMsgClientGetAppOwnershipTicketResponse = 858; + k_EMsgClientGetLobbyListResponse = 860; + k_EMsgClientServerList = 880; + k_EMsgClientDRMBlobRequest = 896; + k_EMsgClientDRMBlobResponse = 897; + k_EMsgBaseGameServer = 900; + k_EMsgGSDisconnectNotice = 901; + k_EMsgGSStatus = 903; + k_EMsgGSUserPlaying = 905; + k_EMsgGSStatus2 = 906; + k_EMsgGSStatusUpdate_Unused = 907; + k_EMsgGSServerType = 908; + k_EMsgGSPlayerList = 909; + k_EMsgGSGetUserAchievementStatus = 910; + k_EMsgGSGetUserAchievementStatusResponse = 911; + k_EMsgGSGetPlayStats = 918; + k_EMsgGSGetPlayStatsResponse = 919; + k_EMsgGSGetUserGroupStatus = 920; + k_EMsgAMGetUserGroupStatus = 921; + k_EMsgAMGetUserGroupStatusResponse = 922; + k_EMsgGSGetUserGroupStatusResponse = 923; + k_EMsgGSGetReputation = 936; + k_EMsgGSGetReputationResponse = 937; + k_EMsgGSAssociateWithClan = 938; + k_EMsgGSAssociateWithClanResponse = 939; + k_EMsgGSComputeNewPlayerCompatibility = 940; + k_EMsgGSComputeNewPlayerCompatibilityResponse = 941; + k_EMsgBaseAdmin = 1000; + k_EMsgAdminCmd = 1000; + k_EMsgAdminCmdResponse = 1004; + k_EMsgAdminLogListenRequest = 1005; + k_EMsgAdminLogEvent = 1006; + k_EMsgUniverseData = 1010; + k_EMsgAdminSpew = 1019; + k_EMsgAdminConsoleTitle = 1020; + k_EMsgAdminGCSpew = 1023; + k_EMsgAdminGCCommand = 1024; + k_EMsgAdminGCGetCommandList = 1025; + k_EMsgAdminGCGetCommandListResponse = 1026; + k_EMsgFBSConnectionData = 1027; + k_EMsgAdminMsgSpew = 1028; + k_EMsgBaseFBS = 1100; + k_EMsgFBSReqVersion = 1100; + k_EMsgFBSVersionInfo = 1101; + k_EMsgFBSForceRefresh = 1102; + k_EMsgFBSForceBounce = 1103; + k_EMsgFBSDeployPackage = 1104; + k_EMsgFBSDeployResponse = 1105; + k_EMsgFBSUpdateBootstrapper = 1106; + k_EMsgFBSSetState = 1107; + k_EMsgFBSApplyOSUpdates = 1108; + k_EMsgFBSRunCMDScript = 1109; + k_EMsgFBSRebootBox = 1110; + k_EMsgFBSSetBigBrotherMode = 1111; + k_EMsgFBSMinidumpServer = 1112; + k_EMsgFBSDeployHotFixPackage = 1114; + k_EMsgFBSDeployHotFixResponse = 1115; + k_EMsgFBSDownloadHotFix = 1116; + k_EMsgFBSDownloadHotFixResponse = 1117; + k_EMsgFBSUpdateTargetConfigFile = 1118; + k_EMsgFBSApplyAccountCred = 1119; + k_EMsgFBSApplyAccountCredResponse = 1120; + k_EMsgFBSSetShellCount = 1121; + k_EMsgFBSTerminateShell = 1122; + k_EMsgFBSQueryGMForRequest = 1123; + k_EMsgFBSQueryGMResponse = 1124; + k_EMsgFBSTerminateZombies = 1125; + k_EMsgFBSInfoFromBootstrapper = 1126; + k_EMsgFBSRebootBoxResponse = 1127; + k_EMsgFBSBootstrapperPackageRequest = 1128; + k_EMsgFBSBootstrapperPackageResponse = 1129; + k_EMsgFBSBootstrapperGetPackageChunk = 1130; + k_EMsgFBSBootstrapperGetPackageChunkResponse = 1131; + k_EMsgFBSBootstrapperPackageTransferProgress = 1132; + k_EMsgFBSRestartBootstrapper = 1133; + k_EMsgFBSPauseFrozenDumps = 1134; + k_EMsgBaseFileXfer = 1200; + k_EMsgFileXferRequest = 1200; + k_EMsgFileXferResponse = 1201; + k_EMsgFileXferData = 1202; + k_EMsgFileXferEnd = 1203; + k_EMsgFileXferDataAck = 1204; + k_EMsgBaseChannelAuth = 1300; + k_EMsgChannelAuthChallenge = 1300; + k_EMsgChannelAuthResponse = 1301; + k_EMsgChannelAuthResult = 1302; + k_EMsgChannelEncryptRequest = 1303; + k_EMsgChannelEncryptResponse = 1304; + k_EMsgChannelEncryptResult = 1305; + k_EMsgBaseBS = 1400; + k_EMsgBSPurchaseStart = 1401; + k_EMsgBSPurchaseResponse = 1402; + k_EMsgBSAuthenticateCCTrans = 1403; + k_EMsgBSAuthenticateCCTransResponse = 1404; + k_EMsgBSSettleComplete = 1406; + k_EMsgBSInitPayPalTxn = 1408; + k_EMsgBSInitPayPalTxnResponse = 1409; + k_EMsgBSGetPayPalUserInfo = 1410; + k_EMsgBSGetPayPalUserInfoResponse = 1411; + k_EMsgBSPaymentInstrBan = 1417; + k_EMsgBSPaymentInstrBanResponse = 1418; + k_EMsgBSInitGCBankXferTxn = 1421; + k_EMsgBSInitGCBankXferTxnResponse = 1422; + k_EMsgBSCommitGCTxn = 1425; + k_EMsgBSQueryTransactionStatus = 1426; + k_EMsgBSQueryTransactionStatusResponse = 1427; + k_EMsgBSQueryTxnExtendedInfo = 1433; + k_EMsgBSQueryTxnExtendedInfoResponse = 1434; + k_EMsgBSUpdateConversionRates = 1435; + k_EMsgBSPurchaseRunFraudChecks = 1437; + k_EMsgBSPurchaseRunFraudChecksResponse = 1438; + k_EMsgBSQueryBankInformation = 1440; + k_EMsgBSQueryBankInformationResponse = 1441; + k_EMsgBSValidateXsollaSignature = 1445; + k_EMsgBSValidateXsollaSignatureResponse = 1446; + k_EMsgBSQiwiWalletInvoice = 1448; + k_EMsgBSQiwiWalletInvoiceResponse = 1449; + k_EMsgBSUpdateInventoryFromProPack = 1450; + k_EMsgBSUpdateInventoryFromProPackResponse = 1451; + k_EMsgBSSendShippingRequest = 1452; + k_EMsgBSSendShippingRequestResponse = 1453; + k_EMsgBSGetProPackOrderStatus = 1454; + k_EMsgBSGetProPackOrderStatusResponse = 1455; + k_EMsgBSCheckJobRunning = 1456; + k_EMsgBSCheckJobRunningResponse = 1457; + k_EMsgBSResetPackagePurchaseRateLimit = 1458; + k_EMsgBSResetPackagePurchaseRateLimitResponse = 1459; + k_EMsgBSUpdatePaymentData = 1460; + k_EMsgBSUpdatePaymentDataResponse = 1461; + k_EMsgBSGetBillingAddress = 1462; + k_EMsgBSGetBillingAddressResponse = 1463; + k_EMsgBSGetCreditCardInfo = 1464; + k_EMsgBSGetCreditCardInfoResponse = 1465; + k_EMsgBSRemoveExpiredPaymentData = 1468; + k_EMsgBSRemoveExpiredPaymentDataResponse = 1469; + k_EMsgBSConvertToCurrentKeys = 1470; + k_EMsgBSConvertToCurrentKeysResponse = 1471; + k_EMsgBSInitPurchase = 1472; + k_EMsgBSInitPurchaseResponse = 1473; + k_EMsgBSCompletePurchase = 1474; + k_EMsgBSCompletePurchaseResponse = 1475; + k_EMsgBSPruneCardUsageStats = 1476; + k_EMsgBSPruneCardUsageStatsResponse = 1477; + k_EMsgBSStoreBankInformation = 1478; + k_EMsgBSStoreBankInformationResponse = 1479; + k_EMsgBSVerifyPOSAKey = 1480; + k_EMsgBSVerifyPOSAKeyResponse = 1481; + k_EMsgBSReverseRedeemPOSAKey = 1482; + k_EMsgBSReverseRedeemPOSAKeyResponse = 1483; + k_EMsgBSQueryFindCreditCard = 1484; + k_EMsgBSQueryFindCreditCardResponse = 1485; + k_EMsgBSStatusInquiryPOSAKey = 1486; + k_EMsgBSStatusInquiryPOSAKeyResponse = 1487; + k_EMsgBSBoaCompraConfirmProductDelivery = 1494; + k_EMsgBSBoaCompraConfirmProductDeliveryResponse = 1495; + k_EMsgBSGenerateBoaCompraMD5 = 1496; + k_EMsgBSGenerateBoaCompraMD5Response = 1497; + k_EMsgBSCommitWPTxn = 1498; + k_EMsgBSCommitAdyenTxn = 1499; + k_EMsgBaseATS = 1500; + k_EMsgATSStartStressTest = 1501; + k_EMsgATSStopStressTest = 1502; + k_EMsgATSRunFailServerTest = 1503; + k_EMsgATSUFSPerfTestTask = 1504; + k_EMsgATSUFSPerfTestResponse = 1505; + k_EMsgATSCycleTCM = 1506; + k_EMsgATSInitDRMSStressTest = 1507; + k_EMsgATSCallTest = 1508; + k_EMsgATSCallTestReply = 1509; + k_EMsgATSStartExternalStress = 1510; + k_EMsgATSExternalStressJobStart = 1511; + k_EMsgATSExternalStressJobQueued = 1512; + k_EMsgATSExternalStressJobRunning = 1513; + k_EMsgATSExternalStressJobStopped = 1514; + k_EMsgATSExternalStressJobStopAll = 1515; + k_EMsgATSExternalStressActionResult = 1516; + k_EMsgATSStarted = 1517; + k_EMsgATSCSPerfTestTask = 1518; + k_EMsgATSCSPerfTestResponse = 1519; + k_EMsgBaseDP = 1600; + k_EMsgDPSetPublishingState = 1601; + k_EMsgDPUniquePlayersStat = 1603; + k_EMsgDPStreamingUniquePlayersStat = 1604; + k_EMsgDPBlockingStats = 1607; + k_EMsgDPNatTraversalStats = 1608; + k_EMsgDPCloudStats = 1612; + k_EMsgDPGetPlayerCount = 1615; + k_EMsgDPGetPlayerCountResponse = 1616; + k_EMsgDPGameServersPlayersStats = 1617; + k_EMsgClientDPCheckSpecialSurvey = 1620; + k_EMsgClientDPCheckSpecialSurveyResponse = 1621; + k_EMsgClientDPSendSpecialSurveyResponse = 1622; + k_EMsgClientDPSendSpecialSurveyResponseReply = 1623; + k_EMsgDPStoreSaleStatistics = 1624; + k_EMsgClientDPUpdateAppJobReport = 1625; + k_EMsgClientDPUnsignedInstallScript = 1627; + k_EMsgDPPartnerMicroTxns = 1628; + k_EMsgDPPartnerMicroTxnsResponse = 1629; + k_EMsgClientDPContentStatsReport = 1630; + k_EMsgDPVRUniquePlayersStat = 1631; + k_EMsgBaseCM = 1700; + k_EMsgCMSetAllowState = 1701; + k_EMsgCMSpewAllowState = 1702; + k_EMsgCMSessionRejected = 1703; + k_EMsgCMSetSecrets = 1704; + k_EMsgCMGetSecrets = 1705; + k_EMsgBaseGC = 2200; + k_EMsgGCCmdRevive = 2203; + k_EMsgGCCmdDown = 2206; + k_EMsgGCCmdDeploy = 2207; + k_EMsgGCCmdDeployResponse = 2208; + k_EMsgGCCmdSwitch = 2209; + k_EMsgAMRefreshSessions = 2210; + k_EMsgGCAchievementAwarded = 2212; + k_EMsgGCSystemMessage = 2213; + k_EMsgGCCmdStatus = 2216; + k_EMsgGCRegisterWebInterfaces_Deprecated = 2217; + k_EMsgGCGetAccountDetails_DEPRECATED = 2218; + k_EMsgGCInterAppMessage = 2219; + k_EMsgGCGetEmailTemplate = 2220; + k_EMsgGCGetEmailTemplateResponse = 2221; + k_EMsgGCHRelay = 2222; + k_EMsgGCHRelayToClient = 2223; + k_EMsgGCHUpdateSession = 2224; + k_EMsgGCHRequestUpdateSession = 2225; + k_EMsgGCHRequestStatus = 2226; + k_EMsgGCHRequestStatusResponse = 2227; + k_EMsgGCHAccountVacStatusChange = 2228; + k_EMsgGCHSpawnGC = 2229; + k_EMsgGCHSpawnGCResponse = 2230; + k_EMsgGCHKillGC = 2231; + k_EMsgGCHKillGCResponse = 2232; + k_EMsgGCHAccountTradeBanStatusChange = 2233; + k_EMsgGCHAccountLockStatusChange = 2234; + k_EMsgGCHVacVerificationChange = 2235; + k_EMsgGCHAccountPhoneNumberChange = 2236; + k_EMsgGCHAccountTwoFactorChange = 2237; + k_EMsgGCHInviteUserToLobby = 2238; + k_EMsgGCHUpdateMultipleSessions = 2239; + k_EMsgGCHMarkAppSessionsAuthoritative = 2240; + k_EMsgGCHRecurringSubscriptionStatusChange = 2241; + k_EMsgGCHAppCheersReceived = 2242; + k_EMsgGCHAppCheersGetAllowedTypes = 2243; + k_EMsgGCHAppCheersGetAllowedTypesResponse = 2244; + k_EMsgBaseP2P = 2500; + k_EMsgP2PIntroducerMessage = 2502; + k_EMsgBaseSM = 2900; + k_EMsgSMExpensiveReport = 2902; + k_EMsgSMHourlyReport = 2903; + k_EMsgSMPartitionRenames = 2905; + k_EMsgSMMonitorSpace = 2906; + k_EMsgSMTestNextBuildSchemaConversion = 2907; + k_EMsgSMTestNextBuildSchemaConversionResponse = 2908; + k_EMsgBaseTest = 3000; + k_EMsgFailServer = 3000; + k_EMsgJobHeartbeatTest = 3001; + k_EMsgJobHeartbeatTestResponse = 3002; + k_EMsgBaseFTSRange = 3100; + k_EMsgBaseCCSRange = 3150; + k_EMsgCCSDeleteAllCommentsByAuthor = 3161; + k_EMsgCCSDeleteAllCommentsByAuthorResponse = 3162; + k_EMsgBaseLBSRange = 3200; + k_EMsgLBSSetScore = 3201; + k_EMsgLBSSetScoreResponse = 3202; + k_EMsgLBSFindOrCreateLB = 3203; + k_EMsgLBSFindOrCreateLBResponse = 3204; + k_EMsgLBSGetLBEntries = 3205; + k_EMsgLBSGetLBEntriesResponse = 3206; + k_EMsgLBSGetLBList = 3207; + k_EMsgLBSGetLBListResponse = 3208; + k_EMsgLBSSetLBDetails = 3209; + k_EMsgLBSDeleteLB = 3210; + k_EMsgLBSDeleteLBEntry = 3211; + k_EMsgLBSResetLB = 3212; + k_EMsgLBSResetLBResponse = 3213; + k_EMsgLBSDeleteLBResponse = 3214; + k_EMsgBaseOGS = 3400; + k_EMsgOGSBeginSession = 3401; + k_EMsgOGSBeginSessionResponse = 3402; + k_EMsgOGSEndSession = 3403; + k_EMsgOGSEndSessionResponse = 3404; + k_EMsgOGSWriteAppSessionRow = 3406; + k_EMsgBaseBRP = 3600; + k_EMsgBRPPostTransactionTax = 3629; + k_EMsgBRPPostTransactionTaxResponse = 3630; + k_EMsgBaseAMRange2 = 4000; + k_EMsgAMCreateChat = 4001; + k_EMsgAMCreateChatResponse = 4002; + k_EMsgAMSetProfileURL = 4005; + k_EMsgAMGetAccountEmailAddress = 4006; + k_EMsgAMGetAccountEmailAddressResponse = 4007; + k_EMsgAMRequestClanData = 4008; + k_EMsgAMRouteToClients = 4009; + k_EMsgAMLeaveClan = 4010; + k_EMsgAMClanPermissions = 4011; + k_EMsgAMClanPermissionsResponse = 4012; + k_EMsgAMCreateClanEventDummyForRateLimiting = 4013; + k_EMsgAMUpdateClanEventDummyForRateLimiting = 4015; + k_EMsgAMSetClanPermissionSettings = 4021; + k_EMsgAMSetClanPermissionSettingsResponse = 4022; + k_EMsgAMGetClanPermissionSettings = 4023; + k_EMsgAMGetClanPermissionSettingsResponse = 4024; + k_EMsgAMPublishChatRoomInfo = 4025; + k_EMsgClientChatRoomInfo = 4026; + k_EMsgAMGetClanHistory = 4039; + k_EMsgAMGetClanHistoryResponse = 4040; + k_EMsgAMGetClanPermissionBits = 4041; + k_EMsgAMGetClanPermissionBitsResponse = 4042; + k_EMsgAMSetClanPermissionBits = 4043; + k_EMsgAMSetClanPermissionBitsResponse = 4044; + k_EMsgAMSessionInfoRequest = 4045; + k_EMsgAMSessionInfoResponse = 4046; + k_EMsgAMValidateWGToken = 4047; + k_EMsgAMGetClanRank = 4050; + k_EMsgAMGetClanRankResponse = 4051; + k_EMsgAMSetClanRank = 4052; + k_EMsgAMSetClanRankResponse = 4053; + k_EMsgAMGetClanPOTW = 4054; + k_EMsgAMGetClanPOTWResponse = 4055; + k_EMsgAMSetClanPOTW = 4056; + k_EMsgAMSetClanPOTWResponse = 4057; + k_EMsgAMDumpUser = 4059; + k_EMsgAMKickUserFromClan = 4060; + k_EMsgAMAddFounderToClan = 4061; + k_EMsgAMValidateWGTokenResponse = 4062; + k_EMsgAMSetAccountDetails = 4064; + k_EMsgAMGetChatBanList = 4065; + k_EMsgAMGetChatBanListResponse = 4066; + k_EMsgAMUnBanFromChat = 4067; + k_EMsgAMSetClanDetails = 4068; + k_EMsgUGSGetUserGameStats = 4073; + k_EMsgUGSGetUserGameStatsResponse = 4074; + k_EMsgAMCheckClanMembership = 4075; + k_EMsgAMGetClanMembers = 4076; + k_EMsgAMGetClanMembersResponse = 4077; + k_EMsgAMNotifyChatOfClanChange = 4079; + k_EMsgAMResubmitPurchase = 4080; + k_EMsgAMAddFriend = 4081; + k_EMsgAMAddFriendResponse = 4082; + k_EMsgAMRemoveFriend = 4083; + k_EMsgAMDumpClan = 4084; + k_EMsgAMChangeClanOwner = 4085; + k_EMsgAMCancelEasyCollect = 4086; + k_EMsgAMCancelEasyCollectResponse = 4087; + k_EMsgAMClansInCommon = 4090; + k_EMsgAMClansInCommonResponse = 4091; + k_EMsgAMIsValidAccountID = 4092; + k_EMsgAMWipeFriendsList = 4095; + k_EMsgAMSetIgnored = 4096; + k_EMsgAMClansInCommonCountResponse = 4097; + k_EMsgAMFriendsList = 4098; + k_EMsgAMFriendsListResponse = 4099; + k_EMsgAMFriendsInCommon = 4100; + k_EMsgAMFriendsInCommonResponse = 4101; + k_EMsgAMFriendsInCommonCountResponse = 4102; + k_EMsgAMClansInCommonCount = 4103; + k_EMsgAMChallengeVerdict = 4104; + k_EMsgAMChallengeNotification = 4105; + k_EMsgAMFindGSByIP = 4106; + k_EMsgAMFoundGSByIP = 4107; + k_EMsgAMGiftRevoked = 4108; + k_EMsgAMUserClanList = 4110; + k_EMsgAMUserClanListResponse = 4111; + k_EMsgAMGetAccountDetails2 = 4112; + k_EMsgAMGetAccountDetailsResponse2 = 4113; + k_EMsgAMSetCommunityProfileSettings = 4114; + k_EMsgAMSetCommunityProfileSettingsResponse = 4115; + k_EMsgAMGetCommunityPrivacyState = 4116; + k_EMsgAMGetCommunityPrivacyStateResponse = 4117; + k_EMsgAMCheckClanInviteRateLimiting = 4118; + k_EMsgUGSGetUserAchievementStatus = 4119; + k_EMsgAMGetIgnored = 4120; + k_EMsgAMGetIgnoredResponse = 4121; + k_EMsgAMSetIgnoredResponse = 4122; + k_EMsgAMSetFriendRelationshipNone = 4123; + k_EMsgAMGetFriendRelationship = 4124; + k_EMsgAMGetFriendRelationshipResponse = 4125; + k_EMsgAMServiceModulesCache = 4126; + k_EMsgAMServiceModulesCall = 4127; + k_EMsgAMServiceModulesCallResponse = 4128; + k_EMsgCommunityAddFriendNews = 4140; + k_EMsgAMFindClanUser = 4143; + k_EMsgAMFindClanUserResponse = 4144; + k_EMsgAMBanFromChat = 4145; + k_EMsgAMGetUserNewsSubscriptions = 4147; + k_EMsgAMGetUserNewsSubscriptionsResponse = 4148; + k_EMsgAMSetUserNewsSubscriptions = 4149; + k_EMsgAMSendQueuedEmails = 4152; + k_EMsgAMSetLicenseFlags = 4153; + k_EMsgCommunityDeleteUserNews = 4155; + k_EMsgAMAllowUserFilesRequest = 4156; + k_EMsgAMAllowUserFilesResponse = 4157; + k_EMsgAMGetAccountStatus = 4158; + k_EMsgAMGetAccountStatusResponse = 4159; + k_EMsgAMEditBanReason = 4160; + k_EMsgAMCheckClanMembershipResponse = 4161; + k_EMsgAMProbeClanMembershipList = 4162; + k_EMsgAMProbeClanMembershipListResponse = 4163; + k_EMsgUGSGetUserAchievementStatusResponse = 4164; + k_EMsgAMGetFriendsLobbies = 4165; + k_EMsgAMGetFriendsLobbiesResponse = 4166; + k_EMsgAMGetUserFriendNewsResponse = 4172; + k_EMsgCommunityGetUserFriendNews = 4173; + k_EMsgAMGetUserClansNewsResponse = 4174; + k_EMsgAMGetUserClansNews = 4175; + k_EMsgAMGetPreviousCBAccount = 4184; + k_EMsgAMGetPreviousCBAccountResponse = 4185; + k_EMsgAMGetUserLicenseHistory = 4190; + k_EMsgAMGetUserLicenseHistoryResponse = 4191; + k_EMsgAMSupportChangePassword = 4194; + k_EMsgAMSupportChangeEmail = 4195; + k_EMsgAMResetUserVerificationGSByIP = 4197; + k_EMsgAMUpdateGSPlayStats = 4198; + k_EMsgAMSupportEnableOrDisable = 4199; + k_EMsgAMGetPurchaseStatus = 4206; + k_EMsgAMSupportIsAccountEnabled = 4209; + k_EMsgAMSupportIsAccountEnabledResponse = 4210; + k_EMsgUGSGetUserStats = 4211; + k_EMsgAMGSSearch = 4213; + k_EMsgMarketingMessageUpdate = 4216; + k_EMsgChatServerRouteFriendMsg = 4219; + k_EMsgAMTicketAuthRequestOrResponse = 4220; + k_EMsgAMAddFreeLicense = 4224; + k_EMsgAMValidateEmailLink = 4231; + k_EMsgAMValidateEmailLinkResponse = 4232; + k_EMsgUGSStoreUserStats = 4236; + k_EMsgAMDeleteStoredCard = 4241; + k_EMsgAMRevokeLegacyGameKeys = 4242; + k_EMsgAMGetWalletDetails = 4244; + k_EMsgAMGetWalletDetailsResponse = 4245; + k_EMsgAMDeleteStoredPaymentInfo = 4246; + k_EMsgAMGetStoredPaymentSummary = 4247; + k_EMsgAMGetStoredPaymentSummaryResponse = 4248; + k_EMsgAMGetWalletConversionRate = 4249; + k_EMsgAMGetWalletConversionRateResponse = 4250; + k_EMsgAMConvertWallet = 4251; + k_EMsgAMConvertWalletResponse = 4252; + k_EMsgAMSetPreApproval = 4255; + k_EMsgAMSetPreApprovalResponse = 4256; + k_EMsgAMCreateRefund = 4258; + k_EMsgAMCreateChargeback = 4260; + k_EMsgAMCreateDispute = 4262; + k_EMsgAMClearDispute = 4264; + k_EMsgAMCreateFinancialAdjustment = 4265; + k_EMsgAMPlayerNicknameList = 4266; + k_EMsgAMPlayerNicknameListResponse = 4267; + k_EMsgAMSetDRMTestConfig = 4268; + k_EMsgAMGetUserCurrentGameInfo = 4269; + k_EMsgAMGetUserCurrentGameInfoResponse = 4270; + k_EMsgAMGetGSPlayerList = 4271; + k_EMsgAMGetGSPlayerListResponse = 4272; + k_EMsgAMGetSteamIDForMicroTxn = 4278; + k_EMsgAMGetSteamIDForMicroTxnResponse = 4279; + k_EMsgAMSetPartnerMember = 4280; + k_EMsgAMRemovePublisherUser = 4281; + k_EMsgAMGetUserLicenseList = 4282; + k_EMsgAMGetUserLicenseListResponse = 4283; + k_EMsgAMReloadGameGroupPolicy = 4284; + k_EMsgAMAddFreeLicenseResponse = 4285; + k_EMsgAMVACStatusUpdate = 4286; + k_EMsgAMGetAccountDetails = 4287; + k_EMsgAMGetAccountDetailsResponse = 4288; + k_EMsgAMGetPlayerLinkDetails = 4289; + k_EMsgAMGetPlayerLinkDetailsResponse = 4290; + k_EMsgAMGetAccountFlagsForWGSpoofing = 4294; + k_EMsgAMGetAccountFlagsForWGSpoofingResponse = 4295; + k_EMsgAMGetClanOfficers = 4298; + k_EMsgAMGetClanOfficersResponse = 4299; + k_EMsgAMNameChange = 4300; + k_EMsgAMGetNameHistory = 4301; + k_EMsgAMGetNameHistoryResponse = 4302; + k_EMsgAMUpdateProviderStatus = 4305; + k_EMsgAMSupportRemoveAccountSecurity = 4307; + k_EMsgAMIsAccountInCaptchaGracePeriod = 4308; + k_EMsgAMIsAccountInCaptchaGracePeriodResponse = 4309; + k_EMsgAMAccountPS3Unlink = 4310; + k_EMsgAMAccountPS3UnlinkResponse = 4311; + k_EMsgUGSStoreUserStatsResponse = 4312; + k_EMsgAMGetAccountPSNInfo = 4313; + k_EMsgAMGetAccountPSNInfoResponse = 4314; + k_EMsgAMAuthenticatedPlayerList = 4315; + k_EMsgAMGetUserGifts = 4316; + k_EMsgAMGetUserGiftsResponse = 4317; + k_EMsgAMTransferLockedGifts = 4320; + k_EMsgAMTransferLockedGiftsResponse = 4321; + k_EMsgAMPlayerHostedOnGameServer = 4322; + k_EMsgAMGetAccountBanInfo = 4323; + k_EMsgAMGetAccountBanInfoResponse = 4324; + k_EMsgAMRecordBanEnforcement = 4325; + k_EMsgAMRollbackGiftTransfer = 4326; + k_EMsgAMRollbackGiftTransferResponse = 4327; + k_EMsgAMHandlePendingTransaction = 4328; + k_EMsgAMRequestClanDetails = 4329; + k_EMsgAMDeleteStoredPaypalAgreement = 4330; + k_EMsgAMGameServerUpdate = 4331; + k_EMsgAMGameServerRemove = 4332; + k_EMsgAMGetPaypalAgreements = 4333; + k_EMsgAMGetPaypalAgreementsResponse = 4334; + k_EMsgAMGameServerPlayerCompatibilityCheck = 4335; + k_EMsgAMGameServerPlayerCompatibilityCheckResponse = 4336; + k_EMsgAMRenewLicense = 4337; + k_EMsgAMGetAccountCommunityBanInfo = 4338; + k_EMsgAMGetAccountCommunityBanInfoResponse = 4339; + k_EMsgAMGameServerAccountChangePassword = 4340; + k_EMsgAMGameServerAccountDeleteAccount = 4341; + k_EMsgAMRenewAgreement = 4342; + k_EMsgAMXsollaPayment = 4344; + k_EMsgAMXsollaPaymentResponse = 4345; + k_EMsgAMAcctAllowedToPurchase = 4346; + k_EMsgAMAcctAllowedToPurchaseResponse = 4347; + k_EMsgAMSwapKioskDeposit = 4348; + k_EMsgAMSwapKioskDepositResponse = 4349; + k_EMsgAMSetUserGiftUnowned = 4350; + k_EMsgAMSetUserGiftUnownedResponse = 4351; + k_EMsgAMClaimUnownedUserGift = 4352; + k_EMsgAMClaimUnownedUserGiftResponse = 4353; + k_EMsgAMSetClanName = 4354; + k_EMsgAMSetClanNameResponse = 4355; + k_EMsgAMGrantCoupon = 4356; + k_EMsgAMGrantCouponResponse = 4357; + k_EMsgAMIsPackageRestrictedInUserCountry = 4358; + k_EMsgAMIsPackageRestrictedInUserCountryResponse = 4359; + k_EMsgAMHandlePendingTransactionResponse = 4360; + k_EMsgAMGrantGuestPasses2 = 4361; + k_EMsgAMGrantGuestPasses2Response = 4362; + k_EMsgAMGetPlayerBanDetails = 4365; + k_EMsgAMGetPlayerBanDetailsResponse = 4366; + k_EMsgAMFinalizePurchase = 4367; + k_EMsgAMFinalizePurchaseResponse = 4368; + k_EMsgAMPersonaChangeResponse = 4372; + k_EMsgAMGetClanDetailsForForumCreation = 4373; + k_EMsgAMGetClanDetailsForForumCreationResponse = 4374; + k_EMsgAMGetPendingNotificationCount = 4375; + k_EMsgAMGetPendingNotificationCountResponse = 4376; + k_EMsgAMPasswordHashUpgrade = 4377; + k_EMsgAMBoaCompraPayment = 4380; + k_EMsgAMBoaCompraPaymentResponse = 4381; + k_EMsgAMCompleteExternalPurchase = 4383; + k_EMsgAMCompleteExternalPurchaseResponse = 4384; + k_EMsgAMResolveNegativeWalletCredits = 4385; + k_EMsgAMResolveNegativeWalletCreditsResponse = 4386; + k_EMsgAMPlayerGetClanBasicDetails = 4389; + k_EMsgAMPlayerGetClanBasicDetailsResponse = 4390; + k_EMsgAMMOLPayment = 4391; + k_EMsgAMMOLPaymentResponse = 4392; + k_EMsgGetUserIPCountry = 4393; + k_EMsgGetUserIPCountryResponse = 4394; + k_EMsgNotificationOfSuspiciousActivity = 4395; + k_EMsgAMDegicaPayment = 4396; + k_EMsgAMDegicaPaymentResponse = 4397; + k_EMsgAMEClubPayment = 4398; + k_EMsgAMEClubPaymentResponse = 4399; + k_EMsgAMPayPalPaymentsHubPayment = 4400; + k_EMsgAMPayPalPaymentsHubPaymentResponse = 4401; + k_EMsgAMTwoFactorRecoverAuthenticatorRequest = 4402; + k_EMsgAMTwoFactorRecoverAuthenticatorResponse = 4403; + k_EMsgAMSmart2PayPayment = 4404; + k_EMsgAMSmart2PayPaymentResponse = 4405; + k_EMsgAMValidatePasswordResetCodeAndSendSmsRequest = 4406; + k_EMsgAMValidatePasswordResetCodeAndSendSmsResponse = 4407; + k_EMsgAMGetAccountResetDetailsRequest = 4408; + k_EMsgAMGetAccountResetDetailsResponse = 4409; + k_EMsgAMBitPayPayment = 4410; + k_EMsgAMBitPayPaymentResponse = 4411; + k_EMsgAMSendAccountInfoUpdate = 4412; + k_EMsgAMSendScheduledGift = 4413; + k_EMsgAMNodwinPayment = 4414; + k_EMsgAMNodwinPaymentResponse = 4415; + k_EMsgAMResolveWalletRevoke = 4416; + k_EMsgAMResolveWalletReverseRevoke = 4417; + k_EMsgAMFundedPayment = 4418; + k_EMsgAMFundedPaymentResponse = 4419; + k_EMsgAMRequestPersonaUpdateForChatServer = 4420; + k_EMsgAMPerfectWorldPayment = 4421; + k_EMsgAMPerfectWorldPaymentResponse = 4422; + k_EMsgAMECommPayPayment = 4423; + k_EMsgAMECommPayPaymentResponse = 4424; + k_EMsgBasePSRange = 5000; + k_EMsgPSCreateShoppingCart = 5001; + k_EMsgPSCreateShoppingCartResponse = 5002; + k_EMsgPSIsValidShoppingCart = 5003; + k_EMsgPSIsValidShoppingCartResponse = 5004; + k_EMsgPSRemoveLineItemFromShoppingCart = 5007; + k_EMsgPSRemoveLineItemFromShoppingCartResponse = 5008; + k_EMsgPSGetShoppingCartContents = 5009; + k_EMsgPSGetShoppingCartContentsResponse = 5010; + k_EMsgPSAddWalletCreditToShoppingCart = 5011; + k_EMsgPSAddWalletCreditToShoppingCartResponse = 5012; + k_EMsgBaseUFSRange = 5200; + k_EMsgClientUFSUploadFileRequest = 5202; + k_EMsgClientUFSUploadFileResponse = 5203; + k_EMsgClientUFSUploadFileChunk = 5204; + k_EMsgClientUFSUploadFileFinished = 5205; + k_EMsgClientUFSGetFileListForApp = 5206; + k_EMsgClientUFSGetFileListForAppResponse = 5207; + k_EMsgClientUFSDownloadRequest = 5210; + k_EMsgClientUFSDownloadResponse = 5211; + k_EMsgClientUFSDownloadChunk = 5212; + k_EMsgClientUFSLoginRequest = 5213; + k_EMsgClientUFSLoginResponse = 5214; + k_EMsgUFSReloadPartitionInfo = 5215; + k_EMsgClientUFSTransferHeartbeat = 5216; + k_EMsgUFSSynchronizeFile = 5217; + k_EMsgUFSSynchronizeFileResponse = 5218; + k_EMsgClientUFSDeleteFileRequest = 5219; + k_EMsgClientUFSDeleteFileResponse = 5220; + k_EMsgClientUFSGetUGCDetails = 5226; + k_EMsgClientUFSGetUGCDetailsResponse = 5227; + k_EMsgUFSUpdateFileFlags = 5228; + k_EMsgUFSUpdateFileFlagsResponse = 5229; + k_EMsgClientUFSGetSingleFileInfo = 5230; + k_EMsgClientUFSGetSingleFileInfoResponse = 5231; + k_EMsgClientUFSShareFile = 5232; + k_EMsgClientUFSShareFileResponse = 5233; + k_EMsgUFSReloadAccount = 5234; + k_EMsgUFSReloadAccountResponse = 5235; + k_EMsgUFSUpdateRecordBatched = 5236; + k_EMsgUFSUpdateRecordBatchedResponse = 5237; + k_EMsgUFSMigrateFile = 5238; + k_EMsgUFSMigrateFileResponse = 5239; + k_EMsgUFSGetUGCURLs = 5240; + k_EMsgUFSGetUGCURLsResponse = 5241; + k_EMsgUFSHttpUploadFileFinishRequest = 5242; + k_EMsgUFSHttpUploadFileFinishResponse = 5243; + k_EMsgUFSDownloadStartRequest = 5244; + k_EMsgUFSDownloadStartResponse = 5245; + k_EMsgUFSDownloadChunkRequest = 5246; + k_EMsgUFSDownloadChunkResponse = 5247; + k_EMsgUFSDownloadFinishRequest = 5248; + k_EMsgUFSDownloadFinishResponse = 5249; + k_EMsgUFSFlushURLCache = 5250; + k_EMsgClientUFSUploadCommit = 5251; + k_EMsgClientUFSUploadCommitResponse = 5252; + k_EMsgUFSMigrateFileAppID = 5253; + k_EMsgUFSMigrateFileAppIDResponse = 5254; + k_EMsgBaseClient2 = 5400; + k_EMsgClientRequestForgottenPasswordEmail = 5401; + k_EMsgClientRequestForgottenPasswordEmailResponse = 5402; + k_EMsgClientCreateAccountResponse = 5403; + k_EMsgClientResetForgottenPassword = 5404; + k_EMsgClientResetForgottenPasswordResponse = 5405; + k_EMsgClientInformOfResetForgottenPassword = 5407; + k_EMsgClientInformOfResetForgottenPasswordResponse = 5408; + k_EMsgClientAnonUserLogOn_Deprecated = 5409; + k_EMsgClientGamesPlayedWithDataBlob = 5410; + k_EMsgClientUpdateUserGameInfo = 5411; + k_EMsgClientFileToDownload = 5412; + k_EMsgClientFileToDownloadResponse = 5413; + k_EMsgClientLBSSetScore = 5414; + k_EMsgClientLBSSetScoreResponse = 5415; + k_EMsgClientLBSFindOrCreateLB = 5416; + k_EMsgClientLBSFindOrCreateLBResponse = 5417; + k_EMsgClientLBSGetLBEntries = 5418; + k_EMsgClientLBSGetLBEntriesResponse = 5419; + k_EMsgClientChatDeclined = 5426; + k_EMsgClientFriendMsgIncoming = 5427; + k_EMsgClientAuthList_Deprecated = 5428; + k_EMsgClientTicketAuthComplete = 5429; + k_EMsgClientIsLimitedAccount = 5430; + k_EMsgClientRequestAuthList = 5431; + k_EMsgClientAuthList = 5432; + k_EMsgClientStat = 5433; + k_EMsgClientP2PConnectionInfo = 5434; + k_EMsgClientP2PConnectionFailInfo = 5435; + k_EMsgClientGetDepotDecryptionKey = 5438; + k_EMsgClientGetDepotDecryptionKeyResponse = 5439; + k_EMsgGSPerformHardwareSurvey = 5440; + k_EMsgClientEnableTestLicense = 5443; + k_EMsgClientEnableTestLicenseResponse = 5444; + k_EMsgClientDisableTestLicense = 5445; + k_EMsgClientDisableTestLicenseResponse = 5446; + k_EMsgClientRequestValidationMail = 5448; + k_EMsgClientRequestValidationMailResponse = 5449; + k_EMsgClientCheckAppBetaPassword = 5450; + k_EMsgClientCheckAppBetaPasswordResponse = 5451; + k_EMsgClientToGC = 5452; + k_EMsgClientFromGC = 5453; + k_EMsgClientEmailAddrInfo = 5456; + k_EMsgClientPasswordChange3 = 5457; + k_EMsgClientEmailChange3 = 5458; + k_EMsgClientPersonalQAChange3 = 5459; + k_EMsgClientResetForgottenPassword3 = 5460; + k_EMsgClientRequestForgottenPasswordEmail3 = 5461; + k_EMsgClientNewLoginKey = 5463; + k_EMsgClientNewLoginKeyAccepted = 5464; + k_EMsgClientLogOnWithHash_Deprecated = 5465; + k_EMsgClientStoreUserStats2 = 5466; + k_EMsgClientStatsUpdated = 5467; + k_EMsgClientActivateOEMLicense = 5468; + k_EMsgClientRegisterOEMMachine = 5469; + k_EMsgClientRegisterOEMMachineResponse = 5470; + k_EMsgClientRequestedClientStats = 5480; + k_EMsgClientStat2Int32 = 5481; + k_EMsgClientStat2 = 5482; + k_EMsgClientVerifyPassword = 5483; + k_EMsgClientVerifyPasswordResponse = 5484; + k_EMsgClientDRMDownloadRequest = 5485; + k_EMsgClientDRMDownloadResponse = 5486; + k_EMsgClientDRMFinalResult = 5487; + k_EMsgClientGetFriendsWhoPlayGame = 5488; + k_EMsgClientGetFriendsWhoPlayGameResponse = 5489; + k_EMsgClientOGSBeginSession = 5490; + k_EMsgClientOGSBeginSessionResponse = 5491; + k_EMsgClientOGSEndSession = 5492; + k_EMsgClientOGSEndSessionResponse = 5493; + k_EMsgClientOGSWriteRow = 5494; + k_EMsgClientDRMTest = 5495; + k_EMsgClientDRMTestResult = 5496; + k_EMsgClientServerUnavailable = 5500; + k_EMsgClientServersAvailable = 5501; + k_EMsgClientRegisterAuthTicketWithCM = 5502; + k_EMsgClientGCMsgFailed = 5503; + k_EMsgClientMicroTxnAuthRequest = 5504; + k_EMsgClientMicroTxnAuthorize = 5505; + k_EMsgClientMicroTxnAuthorizeResponse = 5506; + k_EMsgClientGetMicroTxnInfo = 5508; + k_EMsgClientGetMicroTxnInfoResponse = 5509; + k_EMsgClientMarketingMessageUpdate2 = 5510; + k_EMsgClientDeregisterWithServer = 5511; + k_EMsgClientSubscribeToPersonaFeed = 5512; + k_EMsgClientLogon = 5514; + k_EMsgClientGetClientDetails = 5515; + k_EMsgClientGetClientDetailsResponse = 5516; + k_EMsgClientReportOverlayDetourFailure = 5517; + k_EMsgClientGetClientAppList = 5518; + k_EMsgClientGetClientAppListResponse = 5519; + k_EMsgClientInstallClientApp = 5520; + k_EMsgClientInstallClientAppResponse = 5521; + k_EMsgClientUninstallClientApp = 5522; + k_EMsgClientUninstallClientAppResponse = 5523; + k_EMsgClientSetClientAppUpdateState = 5524; + k_EMsgClientSetClientAppUpdateStateResponse = 5525; + k_EMsgClientRequestEncryptedAppTicket = 5526; + k_EMsgClientRequestEncryptedAppTicketResponse = 5527; + k_EMsgClientWalletInfoUpdate = 5528; + k_EMsgClientLBSSetUGC = 5529; + k_EMsgClientLBSSetUGCResponse = 5530; + k_EMsgClientAMGetClanOfficers = 5531; + k_EMsgClientAMGetClanOfficersResponse = 5532; + k_EMsgClientFriendProfileInfo = 5535; + k_EMsgClientFriendProfileInfoResponse = 5536; + k_EMsgClientUpdateMachineAuth = 5537; + k_EMsgClientUpdateMachineAuthResponse = 5538; + k_EMsgClientReadMachineAuth = 5539; + k_EMsgClientReadMachineAuthResponse = 5540; + k_EMsgClientRequestMachineAuth = 5541; + k_EMsgClientRequestMachineAuthResponse = 5542; + k_EMsgClientScreenshotsChanged = 5543; + k_EMsgClientGetCDNAuthToken = 5546; + k_EMsgClientGetCDNAuthTokenResponse = 5547; + k_EMsgClientDownloadRateStatistics = 5548; + k_EMsgClientRequestAccountData = 5549; + k_EMsgClientRequestAccountDataResponse = 5550; + k_EMsgClientResetForgottenPassword4 = 5551; + k_EMsgClientHideFriend = 5552; + k_EMsgClientFriendsGroupsList = 5553; + k_EMsgClientGetClanActivityCounts = 5554; + k_EMsgClientGetClanActivityCountsResponse = 5555; + k_EMsgClientOGSReportString = 5556; + k_EMsgClientOGSReportBug = 5557; + k_EMsgClientSentLogs = 5558; + k_EMsgClientLogonGameServer = 5559; + k_EMsgAMClientCreateFriendsGroup = 5560; + k_EMsgAMClientCreateFriendsGroupResponse = 5561; + k_EMsgAMClientDeleteFriendsGroup = 5562; + k_EMsgAMClientDeleteFriendsGroupResponse = 5563; + k_EMsgAMClientManageFriendsGroup = 5564; + k_EMsgAMClientManageFriendsGroupResponse = 5565; + k_EMsgAMClientAddFriendToGroup = 5566; + k_EMsgAMClientAddFriendToGroupResponse = 5567; + k_EMsgAMClientRemoveFriendFromGroup = 5568; + k_EMsgAMClientRemoveFriendFromGroupResponse = 5569; + k_EMsgClientAMGetPersonaNameHistory = 5570; + k_EMsgClientAMGetPersonaNameHistoryResponse = 5571; + k_EMsgClientRequestFreeLicense = 5572; + k_EMsgClientRequestFreeLicenseResponse = 5573; + k_EMsgClientDRMDownloadRequestWithCrashData = 5574; + k_EMsgClientAuthListAck = 5575; + k_EMsgClientItemAnnouncements = 5576; + k_EMsgClientRequestItemAnnouncements = 5577; + k_EMsgClientFriendMsgEchoToSender = 5578; + k_EMsgClientCommentNotifications = 5582; + k_EMsgClientRequestCommentNotifications = 5583; + k_EMsgClientPersonaChangeResponse = 5584; + k_EMsgClientRequestWebAPIAuthenticateUserNonce = 5585; + k_EMsgClientRequestWebAPIAuthenticateUserNonceResponse = 5586; + k_EMsgClientPlayerNicknameList = 5587; + k_EMsgAMClientSetPlayerNickname = 5588; + k_EMsgAMClientSetPlayerNicknameResponse = 5589; + k_EMsgClientGetNumberOfCurrentPlayersDP = 5592; + k_EMsgClientGetNumberOfCurrentPlayersDPResponse = 5593; + k_EMsgClientServiceMethodLegacy = 5594; + k_EMsgClientServiceMethodLegacyResponse = 5595; + k_EMsgClientFriendUserStatusPublished = 5596; + k_EMsgClientCurrentUIMode = 5597; + k_EMsgClientVanityURLChangedNotification = 5598; + k_EMsgClientUserNotifications = 5599; + k_EMsgBaseDFS = 5600; + k_EMsgDFSGetFile = 5601; + k_EMsgDFSInstallLocalFile = 5602; + k_EMsgDFSConnection = 5603; + k_EMsgDFSConnectionReply = 5604; + k_EMsgClientDFSAuthenticateRequest = 5605; + k_EMsgClientDFSAuthenticateResponse = 5606; + k_EMsgClientDFSEndSession = 5607; + k_EMsgDFSPurgeFile = 5608; + k_EMsgDFSRouteFile = 5609; + k_EMsgDFSGetFileFromServer = 5610; + k_EMsgDFSAcceptedResponse = 5611; + k_EMsgDFSRequestPingback = 5612; + k_EMsgDFSRecvTransmitFile = 5613; + k_EMsgDFSSendTransmitFile = 5614; + k_EMsgDFSRequestPingback2 = 5615; + k_EMsgDFSResponsePingback2 = 5616; + k_EMsgClientDFSDownloadStatus = 5617; + k_EMsgDFSStartTransfer = 5618; + k_EMsgDFSTransferComplete = 5619; + k_EMsgDFSRouteFileResponse = 5620; + k_EMsgClientNetworkingCertRequest = 5621; + k_EMsgClientNetworkingCertRequestResponse = 5622; + k_EMsgClientChallengeRequest = 5623; + k_EMsgClientChallengeResponse = 5624; + k_EMsgBadgeCraftedNotification = 5625; + k_EMsgClientNetworkingMobileCertRequest = 5626; + k_EMsgClientNetworkingMobileCertRequestResponse = 5627; + k_EMsgBaseMDS = 5800; + k_EMsgMDSGetDepotDecryptionKey = 5812; + k_EMsgMDSGetDepotDecryptionKeyResponse = 5813; + k_EMsgMDSContentServerConfigRequest = 5827; + k_EMsgMDSContentServerConfig = 5828; + k_EMsgMDSGetDepotManifest = 5829; + k_EMsgMDSGetDepotManifestResponse = 5830; + k_EMsgMDSGetDepotManifestChunk = 5831; + k_EMsgMDSGetDepotChunk = 5832; + k_EMsgMDSGetDepotChunkResponse = 5833; + k_EMsgMDSGetDepotChunkChunk = 5834; + k_EMsgMDSToCSFlushChunk = 5844; + k_EMsgMDSMigrateChunk = 5847; + k_EMsgMDSMigrateChunkResponse = 5848; + k_EMsgMDSToCSFlushManifest = 5849; + k_EMsgCSBase = 6200; + k_EMsgCSPing = 6201; + k_EMsgCSPingResponse = 6202; + k_EMsgGMSBase = 6400; + k_EMsgGMSGameServerReplicate = 6401; + k_EMsgClientGMSServerQuery = 6403; + k_EMsgGMSClientServerQueryResponse = 6404; + k_EMsgAMGMSGameServerUpdate = 6405; + k_EMsgAMGMSGameServerRemove = 6406; + k_EMsgGameServerOutOfDate = 6407; + k_EMsgDeviceAuthorizationBase = 6500; + k_EMsgClientAuthorizeLocalDeviceRequest = 6501; + k_EMsgClientAuthorizeLocalDeviceResponse = 6502; + k_EMsgClientDeauthorizeDeviceRequest = 6503; + k_EMsgClientDeauthorizeDevice = 6504; + k_EMsgClientUseLocalDeviceAuthorizations = 6505; + k_EMsgClientGetAuthorizedDevices = 6506; + k_EMsgClientGetAuthorizedDevicesResponse = 6507; + k_EMsgAMNotifySessionDeviceAuthorized = 6508; + k_EMsgClientAuthorizeLocalDeviceNotification = 6509; + k_EMsgMMSBase = 6600; + k_EMsgClientMMSCreateLobby = 6601; + k_EMsgClientMMSCreateLobbyResponse = 6602; + k_EMsgClientMMSJoinLobby = 6603; + k_EMsgClientMMSJoinLobbyResponse = 6604; + k_EMsgClientMMSLeaveLobby = 6605; + k_EMsgClientMMSLeaveLobbyResponse = 6606; + k_EMsgClientMMSGetLobbyList = 6607; + k_EMsgClientMMSGetLobbyListResponse = 6608; + k_EMsgClientMMSSetLobbyData = 6609; + k_EMsgClientMMSSetLobbyDataResponse = 6610; + k_EMsgClientMMSGetLobbyData = 6611; + k_EMsgClientMMSLobbyData = 6612; + k_EMsgClientMMSSendLobbyChatMsg = 6613; + k_EMsgClientMMSLobbyChatMsg = 6614; + k_EMsgClientMMSSetLobbyOwner = 6615; + k_EMsgClientMMSSetLobbyOwnerResponse = 6616; + k_EMsgClientMMSSetLobbyGameServer = 6617; + k_EMsgClientMMSLobbyGameServerSet = 6618; + k_EMsgClientMMSUserJoinedLobby = 6619; + k_EMsgClientMMSUserLeftLobby = 6620; + k_EMsgClientMMSInviteToLobby = 6621; + k_EMsgClientMMSFlushFrenemyListCache = 6622; + k_EMsgClientMMSFlushFrenemyListCacheResponse = 6623; + k_EMsgClientMMSSetLobbyLinked = 6624; + k_EMsgClientMMSSetRatelimitPolicyOnClient = 6625; + k_EMsgClientMMSGetLobbyStatus = 6626; + k_EMsgClientMMSGetLobbyStatusResponse = 6627; + k_EMsgMMSGetLobbyList = 6628; + k_EMsgMMSGetLobbyListResponse = 6629; + k_EMsgNonStdMsgBase = 6800; + k_EMsgNonStdMsgMemcached = 6801; + k_EMsgNonStdMsgHTTPServer = 6802; + k_EMsgNonStdMsgHTTPClient = 6803; + k_EMsgNonStdMsgWGResponse = 6804; + k_EMsgNonStdMsgPHPSimulator = 6805; + k_EMsgNonStdMsgChase = 6806; + k_EMsgNonStdMsgDFSTransfer = 6807; + k_EMsgNonStdMsgTests = 6808; + k_EMsgNonStdMsgUMQpipeAAPL = 6809; + k_EMSgNonStdMsgSyslog = 6810; + k_EMsgNonStdMsgLogsink = 6811; + k_EMsgNonStdMsgSteam2Emulator = 6812; + k_EMsgNonStdMsgRTMPServer = 6813; + k_EMsgNonStdMsgWebSocket = 6814; + k_EMsgNonStdMsgRedis = 6815; + k_EMsgUDSBase = 7000; + k_EMsgClientUDSP2PSessionStarted = 7001; + k_EMsgClientUDSP2PSessionEnded = 7002; + k_EMsgUDSRenderUserAuth = 7003; + k_EMsgUDSRenderUserAuthResponse = 7004; + k_EMsgClientInviteToGame = 7005; + k_EMsgUDSHasSession = 7006; + k_EMsgUDSHasSessionResponse = 7007; + k_EMsgMPASBase = 7100; + k_EMsgMPASVacBanReset = 7101; + k_EMsgKGSBase = 7200; + k_EMsgUCMBase = 7300; + k_EMsgClientUCMAddScreenshot = 7301; + k_EMsgClientUCMAddScreenshotResponse = 7302; + k_EMsgUCMResetCommunityContent = 7307; + k_EMsgUCMResetCommunityContentResponse = 7308; + k_EMsgClientUCMDeleteScreenshot = 7309; + k_EMsgClientUCMDeleteScreenshotResponse = 7310; + k_EMsgClientUCMPublishFile = 7311; + k_EMsgClientUCMPublishFileResponse = 7312; + k_EMsgClientUCMDeletePublishedFile = 7315; + k_EMsgClientUCMDeletePublishedFileResponse = 7316; + k_EMsgClientUCMUpdatePublishedFile = 7325; + k_EMsgClientUCMUpdatePublishedFileResponse = 7326; + k_EMsgUCMUpdatePublishedFile = 7327; + k_EMsgUCMUpdatePublishedFileResponse = 7328; + k_EMsgUCMDeletePublishedFile = 7329; + k_EMsgUCMDeletePublishedFileResponse = 7330; + k_EMsgUCMUpdatePublishedFileStat = 7331; + k_EMsgUCMReloadPublishedFile = 7337; + k_EMsgUCMReloadUserFileListCaches = 7338; + k_EMsgUCMPublishedFileReported = 7339; + k_EMsgUCMPublishedFilePreviewAdd = 7341; + k_EMsgUCMPublishedFilePreviewAddResponse = 7342; + k_EMsgUCMPublishedFilePreviewRemove = 7343; + k_EMsgUCMPublishedFilePreviewRemoveResponse = 7344; + k_EMsgUCMPublishedFileSubscribed = 7349; + k_EMsgUCMPublishedFileUnsubscribed = 7350; + k_EMsgUCMPublishFile = 7351; + k_EMsgUCMPublishFileResponse = 7352; + k_EMsgUCMPublishedFileChildAdd = 7353; + k_EMsgUCMPublishedFileChildAddResponse = 7354; + k_EMsgUCMPublishedFileChildRemove = 7355; + k_EMsgUCMPublishedFileChildRemoveResponse = 7356; + k_EMsgUCMPublishedFileParentChanged = 7359; + k_EMsgClientUCMSetUserPublishedFileAction = 7364; + k_EMsgClientUCMSetUserPublishedFileActionResponse = 7365; + k_EMsgClientUCMEnumeratePublishedFilesByUserAction = 7366; + k_EMsgClientUCMEnumeratePublishedFilesByUserActionResponse = 7367; + k_EMsgUCMGetUserSubscribedFiles = 7369; + k_EMsgUCMGetUserSubscribedFilesResponse = 7370; + k_EMsgUCMFixStatsPublishedFile = 7371; + k_EMsgClientUCMEnumerateUserSubscribedFilesWithUpdates = 7378; + k_EMsgClientUCMEnumerateUserSubscribedFilesWithUpdatesResponse = 7379; + k_EMsgUCMPublishedFileContentUpdated = 7380; + k_EMsgClientUCMPublishedFileUpdated = 7381; + k_EMsgClientWorkshopItemChangesRequest = 7382; + k_EMsgClientWorkshopItemChangesResponse = 7383; + k_EMsgFSBase = 7500; + k_EMsgClientRichPresenceUpload = 7501; + k_EMsgClientRichPresenceRequest = 7502; + k_EMsgClientRichPresenceInfo = 7503; + k_EMsgFSRichPresenceRequest = 7504; + k_EMsgFSRichPresenceResponse = 7505; + k_EMsgFSComputeFrenematrix = 7506; + k_EMsgFSComputeFrenematrixResponse = 7507; + k_EMsgFSPlayStatusNotification = 7508; + k_EMsgFSAddOrRemoveFollower = 7510; + k_EMsgFSAddOrRemoveFollowerResponse = 7511; + k_EMsgFSUpdateFollowingList = 7512; + k_EMsgFSCommentNotification = 7513; + k_EMsgFSCommentNotificationViewed = 7514; + k_EMsgClientFSGetFollowerCount = 7515; + k_EMsgClientFSGetFollowerCountResponse = 7516; + k_EMsgClientFSGetIsFollowing = 7517; + k_EMsgClientFSGetIsFollowingResponse = 7518; + k_EMsgClientFSEnumerateFollowingList = 7519; + k_EMsgClientFSEnumerateFollowingListResponse = 7520; + k_EMsgFSGetPendingNotificationCount = 7521; + k_EMsgFSGetPendingNotificationCountResponse = 7522; + k_EMsgClientChatOfflineMessageNotification = 7523; + k_EMsgClientChatRequestOfflineMessageCount = 7524; + k_EMsgClientChatGetFriendMessageHistory = 7525; + k_EMsgClientChatGetFriendMessageHistoryResponse = 7526; + k_EMsgClientChatGetFriendMessageHistoryForOfflineMessages = 7527; + k_EMsgClientFSGetFriendsSteamLevels = 7528; + k_EMsgClientFSGetFriendsSteamLevelsResponse = 7529; + k_EMsgAMRequestFriendData = 7530; + k_EMsgDRMRange2 = 7600; + k_EMsgCEGVersionSetEnableDisableRequest = 7600; + k_EMsgCEGVersionSetEnableDisableResponse = 7601; + k_EMsgCEGPropStatusDRMSRequest = 7602; + k_EMsgCEGPropStatusDRMSResponse = 7603; + k_EMsgCEGWhackFailureReportRequest = 7604; + k_EMsgCEGWhackFailureReportResponse = 7605; + k_EMsgDRMSFetchVersionSet = 7606; + k_EMsgDRMSFetchVersionSetResponse = 7607; + k_EMsgEconBase = 7700; + k_EMsgEconTrading_InitiateTradeRequest = 7701; + k_EMsgEconTrading_InitiateTradeProposed = 7702; + k_EMsgEconTrading_InitiateTradeResponse = 7703; + k_EMsgEconTrading_InitiateTradeResult = 7704; + k_EMsgEconTrading_StartSession = 7705; + k_EMsgEconTrading_CancelTradeRequest = 7706; + k_EMsgEconFlushInventoryCache = 7707; + k_EMsgEconFlushInventoryCacheResponse = 7708; + k_EMsgEconCDKeyProcessTransaction = 7711; + k_EMsgEconCDKeyProcessTransactionResponse = 7712; + k_EMsgEconGetErrorLogs = 7713; + k_EMsgEconGetErrorLogsResponse = 7714; + k_EMsgRMRange = 7800; + k_EMsgRMTestVerisignOTP = 7800; + k_EMsgRMTestVerisignOTPResponse = 7801; + k_EMsgRMDeleteMemcachedKeys = 7803; + k_EMsgRMRemoteInvoke = 7804; + k_EMsgBadLoginIPList = 7805; + k_EMsgRMMsgTraceAddTrigger = 7806; + k_EMsgRMMsgTraceRemoveTrigger = 7807; + k_EMsgRMMsgTraceEvent = 7808; + k_EMsgUGSBase = 7900; + k_EMsgUGSUpdateGlobalStats = 7900; + k_EMsgClientUGSGetGlobalStats = 7901; + k_EMsgClientUGSGetGlobalStatsResponse = 7902; + k_EMsgStoreBase = 8000; + k_EMsgUMQBase = 8100; + k_EMsgUMQLogonRequest = 8100; + k_EMsgUMQLogonResponse = 8101; + k_EMsgUMQLogoffRequest = 8102; + k_EMsgUMQLogoffResponse = 8103; + k_EMsgUMQSendChatMessage = 8104; + k_EMsgUMQIncomingChatMessage = 8105; + k_EMsgUMQPoll = 8106; + k_EMsgUMQPollResults = 8107; + k_EMsgUMQ2AM_ClientMsgBatch = 8108; + k_EMsgWorkshopBase = 8200; + k_EMsgWebAPIBase = 8300; + k_EMsgWebAPIValidateOAuth2Token = 8300; + k_EMsgWebAPIValidateOAuth2TokenResponse = 8301; + k_EMsgWebAPIRegisterGCInterfaces = 8303; + k_EMsgWebAPIInvalidateOAuthClientCache = 8304; + k_EMsgWebAPIInvalidateOAuthTokenCache = 8305; + k_EMsgWebAPISetSecrets = 8306; + k_EMsgBackpackBase = 8400; + k_EMsgBackpackAddToCurrency = 8401; + k_EMsgBackpackAddToCurrencyResponse = 8402; + k_EMsgCREBase = 8500; + k_EMsgCREItemVoteSummary = 8503; + k_EMsgCREItemVoteSummaryResponse = 8504; + k_EMsgCREUpdateUserPublishedItemVote = 8507; + k_EMsgCREUpdateUserPublishedItemVoteResponse = 8508; + k_EMsgCREGetUserPublishedItemVoteDetails = 8509; + k_EMsgCREGetUserPublishedItemVoteDetailsResponse = 8510; + k_EMsgSecretsBase = 8600; + k_EMsgSecretsRequestCredentialPair = 8600; + k_EMsgSecretsCredentialPairResponse = 8601; + k_EMsgBoxMonitorBase = 8700; + k_EMsgBoxMonitorReportRequest = 8700; + k_EMsgBoxMonitorReportResponse = 8701; + k_EMsgLogsinkBase = 8800; + k_EMsgLogsinkWriteReport = 8800; + k_EMsgPICSBase = 8900; + k_EMsgClientPICSChangesSinceRequest = 8901; + k_EMsgClientPICSChangesSinceResponse = 8902; + k_EMsgClientPICSProductInfoRequest = 8903; + k_EMsgClientPICSProductInfoResponse = 8904; + k_EMsgClientPICSAccessTokenRequest = 8905; + k_EMsgClientPICSAccessTokenResponse = 8906; + k_EMsgWorkerProcess = 9000; + k_EMsgWorkerProcessPingRequest = 9000; + k_EMsgWorkerProcessPingResponse = 9001; + k_EMsgWorkerProcessShutdown = 9002; + k_EMsgDRMWorkerProcess = 9100; + k_EMsgDRMWorkerProcessDRMAndSign = 9100; + k_EMsgDRMWorkerProcessDRMAndSignResponse = 9101; + k_EMsgDRMWorkerProcessSteamworksInfoRequest = 9102; + k_EMsgDRMWorkerProcessSteamworksInfoResponse = 9103; + k_EMsgDRMWorkerProcessInstallDRMDLLRequest = 9104; + k_EMsgDRMWorkerProcessInstallDRMDLLResponse = 9105; + k_EMsgDRMWorkerProcessSecretIdStringRequest = 9106; + k_EMsgDRMWorkerProcessSecretIdStringResponse = 9107; + k_EMsgDRMWorkerProcessInstallProcessedFilesRequest = 9110; + k_EMsgDRMWorkerProcessInstallProcessedFilesResponse = 9111; + k_EMsgDRMWorkerProcessExamineBlobRequest = 9112; + k_EMsgDRMWorkerProcessExamineBlobResponse = 9113; + k_EMsgDRMWorkerProcessDescribeSecretRequest = 9114; + k_EMsgDRMWorkerProcessDescribeSecretResponse = 9115; + k_EMsgDRMWorkerProcessBackfillOriginalRequest = 9116; + k_EMsgDRMWorkerProcessBackfillOriginalResponse = 9117; + k_EMsgDRMWorkerProcessValidateDRMDLLRequest = 9118; + k_EMsgDRMWorkerProcessValidateDRMDLLResponse = 9119; + k_EMsgDRMWorkerProcessValidateFileRequest = 9120; + k_EMsgDRMWorkerProcessValidateFileResponse = 9121; + k_EMsgDRMWorkerProcessSplitAndInstallRequest = 9122; + k_EMsgDRMWorkerProcessSplitAndInstallResponse = 9123; + k_EMsgDRMWorkerProcessGetBlobRequest = 9124; + k_EMsgDRMWorkerProcessGetBlobResponse = 9125; + k_EMsgDRMWorkerProcessEvaluateCrashRequest = 9126; + k_EMsgDRMWorkerProcessEvaluateCrashResponse = 9127; + k_EMsgDRMWorkerProcessAnalyzeFileRequest = 9128; + k_EMsgDRMWorkerProcessAnalyzeFileResponse = 9129; + k_EMsgDRMWorkerProcessUnpackBlobRequest = 9130; + k_EMsgDRMWorkerProcessUnpackBlobResponse = 9131; + k_EMsgDRMWorkerProcessInstallAllRequest = 9132; + k_EMsgDRMWorkerProcessInstallAllResponse = 9133; + k_EMsgTestWorkerProcess = 9200; + k_EMsgTestWorkerProcessLoadUnloadModuleRequest = 9200; + k_EMsgTestWorkerProcessLoadUnloadModuleResponse = 9201; + k_EMsgTestWorkerProcessServiceModuleCallRequest = 9202; + k_EMsgTestWorkerProcessServiceModuleCallResponse = 9203; + k_EMsgQuestServerBase = 9300; + k_EMsgClientGetEmoticonList = 9330; + k_EMsgClientEmoticonList = 9331; + k_EMsgSLCBase = 9400; + k_EMsgSLCUserSessionStatus = 9400; + k_EMsgSLCRequestUserSessionStatus = 9401; + k_EMsgSLCSharedLicensesLockStatus = 9402; + k_EMsgClientSharedLibraryLockStatus = 9405; + k_EMsgClientSharedLibraryStopPlaying = 9406; + k_EMsgSLCOwnerLibraryChanged = 9407; + k_EMsgSLCSharedLibraryChanged = 9408; + k_EMsgRemoteClientBase = 9500; + k_EMsgRemoteClientAuth_OBSOLETE = 9500; + k_EMsgRemoteClientAuthResponse_OBSOLETE = 9501; + k_EMsgRemoteClientAppStatus = 9502; + k_EMsgRemoteClientStartStream = 9503; + k_EMsgRemoteClientStartStreamResponse = 9504; + k_EMsgRemoteClientPing = 9505; + k_EMsgRemoteClientPingResponse = 9506; + k_EMsgClientUnlockStreaming = 9507; + k_EMsgClientUnlockStreamingResponse = 9508; + k_EMsgRemoteClientAcceptEULA = 9509; + k_EMsgRemoteClientGetControllerConfig = 9510; + k_EMsgRemoteClientGetControllerConfigResponse = 9511; + k_EMsgRemoteClientStreamingEnabled = 9512; + k_EMsgClientUnlockHEVC = 9513; + k_EMsgClientUnlockHEVCResponse = 9514; + k_EMsgRemoteClientStatusRequest = 9515; + k_EMsgRemoteClientStatusResponse = 9516; + k_EMsgClientConcurrentSessionsBase = 9600; + k_EMsgClientPlayingSessionState = 9600; + k_EMsgClientKickPlayingSession = 9601; + k_EMsgClientBroadcastBase = 9700; + k_EMsgClientBroadcastInit = 9700; + k_EMsgClientBroadcastFrames = 9701; + k_EMsgClientBroadcastDisconnect = 9702; + k_EMsgClientBroadcastScreenshot = 9703; + k_EMsgClientBroadcastUploadConfig = 9704; + k_EMsgBaseClient3 = 9800; + k_EMsgClientVoiceCallPreAuthorize = 9800; + k_EMsgClientVoiceCallPreAuthorizeResponse = 9801; + k_EMsgClientServerTimestampRequest = 9802; + k_EMsgClientServerTimestampResponse = 9803; + k_EMsgServiceMethodCallFromClientNonAuthed = 9804; + k_EMsgClientHello = 9805; + k_EMsgClientLANP2PBase = 9900; + k_EMsgClientLANP2PRequestChunk = 9900; + k_EMsgClientLANP2PRequestChunkResponse = 9901; + k_EMsgClientLANP2PMax = 9999; + k_EMsgBaseWatchdogServer = 10000; + k_EMsgNotifyWatchdog = 10000; + k_EMsgClientSiteLicenseBase = 10100; + k_EMsgClientSiteLicenseSiteInfoNotification = 10100; + k_EMsgClientSiteLicenseCheckout = 10101; + k_EMsgClientSiteLicenseCheckoutResponse = 10102; + k_EMsgClientSiteLicenseGetAvailableSeats = 10103; + k_EMsgClientSiteLicenseGetAvailableSeatsResponse = 10104; + k_EMsgClientSiteLicenseGetContentCacheInfo = 10105; + k_EMsgClientSiteLicenseGetContentCacheInfoResponse = 10106; + k_EMsgBaseChatServer = 12000; + k_EMsgChatServerGetPendingNotificationCount = 12000; + k_EMsgChatServerGetPendingNotificationCountResponse = 12001; + k_EMsgBaseSecretServer = 12100; + k_EMsgServerSecretChanged = 12100; +} + +enum EClientPersonaStateFlag { + k_EClientPersonaStateFlagStatus = 1; + k_EClientPersonaStateFlagPlayerName = 2; + k_EClientPersonaStateFlagQueryPort = 4; + k_EClientPersonaStateFlagSourceID = 8; + k_EClientPersonaStateFlagPresence = 16; + k_EClientPersonaStateFlagLastSeen = 64; + k_EClientPersonaStateFlagUserClanRank = 128; + k_EClientPersonaStateGameExtraInfo = 256; + k_EClientPersonaStateGameDataBlob = 512; + k_EClientPersonaStateFlagClanData = 1024; + k_EClientPersonaStateFlagFacebook = 2048; + k_EClientPersonaStateFlagRichPresence = 4096; + k_EClientPersonaStateFlagBroadcast = 8192; + k_EClientPersonaStateFlagWatching = 16384; +} + +enum EMsgClanAccountFlags { + k_EMsgClanAccountFlagPublic = 1; + k_EMsgClanAccountFlagLarge = 2; + k_EMsgClanAccountFlagLocked = 4; + k_EMsgClanAccountFlagDisabled = 8; + k_EMsgClanAccountFlagOGG = 16; +} + +enum ESteamReviewScore { + k_ESteamReviewScore_OverwhelminglyPositive = 9; + k_ESteamReviewScore_VeryPositive = 8; + k_ESteamReviewScore_Positive = 7; + k_ESteamReviewScore_MostlyPositive = 6; + k_ESteamReviewScore_Mixed = 5; + k_ESteamReviewScore_MostlyNegative = 4; + k_ESteamReviewScore_Negative = 3; + k_ESteamReviewScore_VeryNegative = 2; + k_ESteamReviewScore_OverwhelminglyNegative = 1; + k_ESteamReviewScore_None = 0; +} diff --git a/Protobufs/deadlock/gameevents.proto b/Protobufs/deadlock/gameevents.proto new file mode 100644 index 0000000..8bf8c05 --- /dev/null +++ b/Protobufs/deadlock/gameevents.proto @@ -0,0 +1,120 @@ +import "networkbasetypes.proto"; + +enum EBaseGameEvents { + GE_VDebugGameSessionIDEvent = 200; + GE_PlaceDecalEvent = 201; + GE_ClearWorldDecalsEvent = 202; + GE_ClearEntityDecalsEvent = 203; + GE_ClearDecalsForSkeletonInstanceEvent = 204; + GE_Source1LegacyGameEventList = 205; + GE_Source1LegacyListenEvents = 206; + GE_Source1LegacyGameEvent = 207; + GE_SosStartSoundEvent = 208; + GE_SosStopSoundEvent = 209; + GE_SosSetSoundEventParams = 210; + GE_SosSetLibraryStackFields = 211; + GE_SosStopSoundEventHash = 212; +} + +message CMsgVDebugGameSessionIDEvent { + optional int32 clientid = 1; + optional string gamesessionid = 2; +} + +message CMsgPlaceDecalEvent { + optional .CMsgVector position = 1; + optional .CMsgVector normal = 2; + optional .CMsgVector saxis = 3; + optional uint32 decalmaterialindex = 4; + optional uint32 flags = 5; + optional fixed32 color = 6; + optional float width = 7; + optional float height = 8; + optional float depth = 9; + optional uint32 entityhandleindex = 10; + optional fixed32 skeletoninstancehash = 11; + optional int32 boneindex = 12; + optional bool translucenthit = 13; + optional bool is_adjacent = 14; +} + +message CMsgClearWorldDecalsEvent { + optional uint32 flagstoclear = 1; +} + +message CMsgClearEntityDecalsEvent { + optional uint32 flagstoclear = 1; +} + +message CMsgClearDecalsForSkeletonInstanceEvent { + optional uint32 flagstoclear = 1; + optional uint32 entityhandleindex = 2; + optional uint32 skeletoninstancehash = 3; +} + +message CMsgSource1LegacyGameEventList { + message key_t { + optional int32 type = 1; + optional string name = 2; + } + + message descriptor_t { + optional int32 eventid = 1; + optional string name = 2; + repeated .CMsgSource1LegacyGameEventList.key_t keys = 3; + } + + repeated .CMsgSource1LegacyGameEventList.descriptor_t descriptors = 1; +} + +message CMsgSource1LegacyListenEvents { + optional int32 playerslot = 1; + repeated uint32 eventarraybits = 2; +} + +message CMsgSource1LegacyGameEvent { + message key_t { + optional int32 type = 1; + optional string val_string = 2; + optional float val_float = 3; + optional int32 val_long = 4; + optional int32 val_short = 5; + optional int32 val_byte = 6; + optional bool val_bool = 7; + optional uint64 val_uint64 = 8; + } + + optional string event_name = 1; + optional int32 eventid = 2; + repeated .CMsgSource1LegacyGameEvent.key_t keys = 3; + optional int32 server_tick = 4; + optional int32 passthrough = 5; +} + +message CMsgSosStartSoundEvent { + optional int32 soundevent_guid = 1; + optional fixed32 soundevent_hash = 2; + optional int32 source_entity_index = 3 [default = -1]; + optional int32 seed = 4; + optional bytes packed_params = 5; + optional float start_time = 6; +} + +message CMsgSosStopSoundEvent { + optional int32 soundevent_guid = 1; +} + +message CMsgSosStopSoundEventHash { + optional fixed32 soundevent_hash = 1; + optional int32 source_entity_index = 2 [default = -1]; +} + +message CMsgSosSetSoundEventParams { + optional int32 soundevent_guid = 1; + optional bytes packed_params = 5; +} + +message CMsgSosSetLibraryStackFields { + optional fixed32 stack_hash = 1; + optional bytes packed_fields = 5; +} diff --git a/Protobufs/deadlock/gcsdk_gcmessages.proto b/Protobufs/deadlock/gcsdk_gcmessages.proto new file mode 100644 index 0000000..baf9767 --- /dev/null +++ b/Protobufs/deadlock/gcsdk_gcmessages.proto @@ -0,0 +1,494 @@ +import "steammessages.proto"; +import "steammessages_steamlearn.steamworkssdk.proto"; + +enum ESourceEngine { + k_ESE_Source1 = 0; + k_ESE_Source2 = 1; +} + +enum PartnerAccountType { + PARTNER_NONE = 0; + PARTNER_PERFECT_WORLD = 1; + PARTNER_INVALID = 3; +} + +enum GCConnectionStatus { + GCConnectionStatus_HAVE_SESSION = 0; + GCConnectionStatus_GC_GOING_DOWN = 1; + GCConnectionStatus_NO_SESSION = 2; + GCConnectionStatus_NO_SESSION_IN_LOGON_QUEUE = 3; + GCConnectionStatus_NO_STEAM = 4; + GCConnectionStatus_SUSPENDED = 5; + GCConnectionStatus_STEAM_GOING_DOWN = 6; +} + +message CExtraMsgBlock { + optional uint32 msg_type = 1; + optional bytes contents = 2; + optional uint64 msg_key = 3; + optional bool is_compressed = 4; +} + +message CMsgSteamLearnServerInfo { + message ProjectInfo { + optional uint32 project_id = 1; + optional uint32 snapshot_published_version = 2; + optional uint32 inference_published_version = 3; + optional uint32 snapshot_percentage = 6; + optional bool snapshot_enabled = 7; + } + + optional .CMsgSteamLearnAccessTokens access_tokens = 4; + repeated .CMsgSteamLearnServerInfo.ProjectInfo project_infos = 5; +} + +message CMsgGCAssertJobData { + optional string message_type = 1; + optional bytes message_data = 2; +} + +message CMsgGCConCommand { + optional string command = 1; +} + +message CMsgSDOAssert { + message Request { + repeated uint64 key = 1; + optional string requesting_job = 2; + } + + optional int32 sdo_type = 1; + repeated .CMsgSDOAssert.Request requests = 2; +} + +message CMsgSOIDOwner { + optional uint32 type = 1; + optional uint64 id = 2; +} + +message CMsgSOSingleObject { + optional int32 type_id = 2; + optional bytes object_data = 3; + optional fixed64 version = 4; + optional .CMsgSOIDOwner owner_soid = 5; + optional uint32 service_id = 6; +} + +message CMsgSOMultipleObjects { + message SingleObject { + option (msgpool_soft_limit) = 256; + option (msgpool_hard_limit) = 1024; + + optional int32 type_id = 1; + optional bytes object_data = 2; + } + + repeated .CMsgSOMultipleObjects.SingleObject objects_modified = 2; + optional fixed64 version = 3; + repeated .CMsgSOMultipleObjects.SingleObject objects_added = 4; + repeated .CMsgSOMultipleObjects.SingleObject objects_removed = 5; + optional .CMsgSOIDOwner owner_soid = 6; + optional uint32 service_id = 7; +} + +message CMsgSOCacheSubscribed { + message SubscribedType { + optional int32 type_id = 1; + repeated bytes object_data = 2; + } + + repeated .CMsgSOCacheSubscribed.SubscribedType objects = 2; + optional fixed64 version = 3; + optional .CMsgSOIDOwner owner_soid = 4; + optional uint32 service_id = 5; + repeated uint32 service_list = 6; + optional fixed64 sync_version = 7; +} + +message CMsgSOCacheSubscribedUpToDate { + optional fixed64 version = 1; + optional .CMsgSOIDOwner owner_soid = 2; + optional uint32 service_id = 3; + repeated uint32 service_list = 4; + optional fixed64 sync_version = 5; +} + +message CMsgSOCacheUnsubscribed { + optional .CMsgSOIDOwner owner_soid = 2; +} + +message CMsgSOCacheSubscriptionCheck { + optional fixed64 version = 2; + optional .CMsgSOIDOwner owner_soid = 3; + optional uint32 service_id = 4; + repeated uint32 service_list = 5; + optional fixed64 sync_version = 6; +} + +message CMsgSOCacheSubscriptionRefresh { + optional .CMsgSOIDOwner owner_soid = 2; +} + +message CMsgSOCacheVersion { + optional fixed64 version = 1; +} + +message CMsgGCMultiplexMessage { + optional uint32 msgtype = 1; + optional bytes payload = 2; + repeated fixed64 steamids = 3; +} + +message CMsgGCToGCSubGCStarting { + optional int32 dir_index = 1 [default = -1]; +} + +message CGCToGCMsgMasterAck { + message Process { + optional int32 dir_index = 1 [default = -1]; + repeated uint32 type_instances = 2; + } + + optional int32 dir_index = 1 [default = -1]; + optional string machine_name = 3; + optional string process_name = 4; + repeated .CGCToGCMsgMasterAck.Process directory = 6; +} + +message CGCToGCMsgMasterAck_Response { + optional int32 eresult = 1 [default = 2]; +} + +message CMsgGCToGCUniverseStartup { + optional bool is_initial_startup = 1; +} + +message CMsgGCToGCUniverseStartupResponse { + optional int32 eresult = 1; +} + +message CGCToGCMsgMasterStartupComplete { + message GCInfo { + optional int32 dir_index = 1 [default = -1]; + optional string machine_name = 2; + } + + repeated .CGCToGCMsgMasterStartupComplete.GCInfo gc_info = 1; +} + +message CGCToGCMsgRouted { + optional uint32 msg_type = 1; + optional fixed64 sender_id = 2; + optional bytes net_message = 3; +} + +message CGCToGCMsgRoutedReply { + optional uint32 msg_type = 1; + optional bytes net_message = 2; +} + +message CMsgGCUpdateSubGCSessionInfo { + message CMsgUpdate { + optional fixed64 steamid = 1; + optional fixed32 ip = 2; + optional bool trusted = 3; + } + + repeated .CMsgGCUpdateSubGCSessionInfo.CMsgUpdate updates = 1; +} + +message CMsgGCRequestSubGCSessionInfo { + optional fixed64 steamid = 1; +} + +message CMsgGCRequestSubGCSessionInfoResponse { + optional fixed32 ip = 1; + optional bool trusted = 2; + optional uint32 port = 3; + optional bool success = 4; +} + +message CMsgSOCacheHaveVersion { + optional .CMsgSOIDOwner soid = 1; + optional fixed64 version = 2; + optional uint32 service_id = 3; + optional uint32 cached_file_version = 4; +} + +message CMsgClientHello { + optional uint32 version = 1; + repeated .CMsgSOCacheHaveVersion socache_have_versions = 2; + optional uint32 client_session_need = 3; + optional .PartnerAccountType client_launcher = 4 [default = PARTNER_NONE]; + optional string secret_key = 5; + optional uint32 client_language = 6; + optional .ESourceEngine engine = 7 [default = k_ESE_Source1]; + optional bytes steamdatagram_login = 8; + optional uint32 platform_id = 9; + optional bytes game_msg = 10; + optional int32 os_type = 11; + optional uint32 render_system = 12; + optional uint32 render_system_req = 13; + optional uint32 screen_width = 14; + optional uint32 screen_height = 15; + optional uint32 screen_refresh = 16; + optional uint32 render_width = 17; + optional uint32 render_height = 18; + optional uint32 swap_width = 19; + optional uint32 swap_height = 20; + optional bool is_steam_china = 22; + optional bool is_steam_china_client = 24; + optional string platform_name = 23; +} + +message CMsgClientWelcome { + message Location { + optional float latitude = 1; + optional float longitude = 2; + optional string country = 3; + } + + optional uint32 version = 1; + optional bytes game_data = 2; + repeated .CMsgSOCacheSubscribed outofdate_subscribed_caches = 3; + repeated .CMsgSOCacheSubscriptionCheck uptodate_subscribed_caches = 4; + optional .CMsgClientWelcome.Location location = 5; + optional uint32 gc_socache_file_version = 9; + optional string txn_country_code = 10; + optional bytes game_data2 = 11; + optional uint32 rtime32_gc_welcome_timestamp = 12; + optional uint32 currency = 13; + optional uint32 balance = 14; + optional string balance_url = 15; + optional bool has_accepted_china_ssa = 16; + optional bool is_banned_steam_china = 17; + optional .CExtraMsgBlock additional_welcome_msgs = 18; + optional .CMsgSteamLearnServerInfo steam_learn_server_info = 20; +} + +message CMsgConnectionStatus { + optional .GCConnectionStatus status = 1 [default = GCConnectionStatus_HAVE_SESSION]; + optional uint32 client_session_need = 2; + optional int32 queue_position = 3; + optional int32 queue_size = 4; + optional int32 wait_seconds = 5; + optional int32 estimated_wait_seconds_remaining = 6; +} + +message CMsgGCToGCSOCacheSubscribe { + message CMsgHaveVersions { + optional uint32 service_id = 1; + optional uint64 version = 2; + } + + optional fixed64 subscriber = 1; + optional fixed64 subscribe_to_id = 2; + optional fixed64 sync_version = 3; + repeated .CMsgGCToGCSOCacheSubscribe.CMsgHaveVersions have_versions = 4; + optional uint32 subscribe_to_type = 5; +} + +message CMsgGCToGCSOCacheUnsubscribe { + optional fixed64 subscriber = 1; + optional fixed64 unsubscribe_from_id = 2; + optional uint32 unsubscribe_from_type = 3; +} + +message CMsgGCClientPing { +} + +message CMsgGCToGCForwardAccountDetails { + optional fixed64 steamid = 1; + optional .CGCSystemMsg_GetAccountDetails_Response account_details = 2; + optional uint32 age_seconds = 3; +} + +message CMsgGCToGCLoadSessionSOCache { + optional uint32 account_id = 1; + optional .CMsgGCToGCForwardAccountDetails forward_account_details = 2; +} + +message CMsgGCToGCLoadSessionSOCacheResponse { +} + +message CMsgGCToGCUpdateSessionStats { + optional uint32 user_sessions = 1; + optional uint32 server_sessions = 2; + optional bool in_logon_surge = 3; +} + +message CMsgGCToClientRequestDropped { +} + +message CWorkshop_PopulateItemDescriptions_Request { + message SingleItemDescription { + optional uint32 gameitemid = 1; + optional string item_description = 2; + } + + message ItemDescriptionsLanguageBlock { + optional string language = 1; + repeated .CWorkshop_PopulateItemDescriptions_Request.SingleItemDescription descriptions = 2; + } + + optional uint32 appid = 1; + repeated .CWorkshop_PopulateItemDescriptions_Request.ItemDescriptionsLanguageBlock languages = 2; +} + +message CWorkshop_GetContributors_Request { + optional uint32 appid = 1; + optional uint32 gameitemid = 2; +} + +message CWorkshop_GetContributors_Response { + repeated fixed64 contributors = 1; +} + +message CWorkshop_SetItemPaymentRules_Request { + message WorkshopItemPaymentRule { + optional uint64 workshop_file_id = 1; + optional float revenue_percentage = 2; + optional string rule_description = 3; + optional uint32 rule_type = 4 [default = 1]; + } + + message WorkshopDirectPaymentRule { + optional uint64 workshop_file_id = 1; + optional string rule_description = 2; + } + + message PartnerItemPaymentRule { + optional uint32 account_id = 1; + optional float revenue_percentage = 2; + optional string rule_description = 3; + } + + optional uint32 appid = 1; + optional uint32 gameitemid = 2; + repeated .CWorkshop_SetItemPaymentRules_Request.WorkshopItemPaymentRule associated_workshop_files = 3; + repeated .CWorkshop_SetItemPaymentRules_Request.PartnerItemPaymentRule partner_accounts = 4; + optional bool validate_only = 5; + optional bool make_workshop_files_subscribable = 6; + optional .CWorkshop_SetItemPaymentRules_Request.WorkshopDirectPaymentRule associated_workshop_file_for_direct_payments = 7; +} + +message CWorkshop_SetItemPaymentRules_Response { + repeated string validation_errors = 1; +} + +message CCommunity_ClanAnnouncementInfo { + optional uint64 gid = 1; + optional uint64 clanid = 2; + optional uint64 posterid = 3; + optional string headline = 4; + optional uint32 posttime = 5; + optional uint32 updatetime = 6; + optional string body = 7; + optional int32 commentcount = 8; + repeated string tags = 9; + optional int32 language = 10; + optional bool hidden = 11; + optional fixed64 forum_topic_id = 12; +} + +message CCommunity_GetClanAnnouncements_Request { + optional uint64 steamid = 1; + optional uint32 offset = 2; + optional uint32 count = 3; + optional uint32 maxchars = 4; + optional bool strip_html = 5; + repeated string required_tags = 6; + optional bool require_no_tags = 7; + repeated uint32 language_preference = 8; + optional bool hidden_only = 9; + optional bool only_gid = 10; + optional uint32 rtime_oldest_date = 11; + optional bool include_hidden = 12; + optional bool include_partner_events = 13; +} + +message CCommunity_GetClanAnnouncements_Response { + optional uint32 maxchars = 1; + optional bool strip_html = 2; + repeated .CCommunity_ClanAnnouncementInfo announcements = 3; +} + +message CBroadcast_PostGameDataFrame_Request { + optional uint32 appid = 1; + optional fixed64 steamid = 2; + optional fixed64 broadcast_id = 3; + optional bytes frame_data = 4; +} + +message CMsgSerializedSOCache { + message TypeCache { + optional uint32 type = 1; + repeated bytes objects = 2; + optional uint32 service_id = 3; + } + + message Cache { + message Version { + optional uint32 service = 1; + optional uint64 version = 2; + } + + optional uint32 type = 1; + optional uint64 id = 2; + repeated .CMsgSerializedSOCache.Cache.Version versions = 3; + repeated .CMsgSerializedSOCache.TypeCache type_caches = 4; + } + + optional uint32 file_version = 1; + repeated .CMsgSerializedSOCache.Cache caches = 2; + optional uint32 gc_socache_file_version = 3; +} + +message CMsgGCToClientPollConvarRequest { + optional string convar_name = 1; + optional uint32 poll_id = 2; +} + +message CMsgGCToClientPollConvarResponse { + optional uint32 poll_id = 1; + optional string convar_value = 2; +} + +message CGCMsgCompressedMsgToClient { + optional uint32 msg_id = 1; + optional bytes compressed_msg = 2; +} + +message CMsgGCToGCMasterBroadcastMessage { + optional uint32 users_per_second = 1; + optional bool send_to_users = 2; + optional bool send_to_servers = 3; + optional uint32 msg_id = 4; + optional bytes msg_data = 5; +} + +message CMsgGCToGCMasterSubscribeToCache { + optional uint32 soid_type = 1; + optional fixed64 soid_id = 2; + repeated uint32 account_ids = 3; + repeated fixed64 steam_ids = 4; +} + +message CMsgGCToGCMasterSubscribeToCacheResponse { +} + +message CMsgGCToGCMasterSubscribeToCacheAsync { + optional .CMsgGCToGCMasterSubscribeToCache subscribe_msg = 1; +} + +message CMsgGCToGCMasterUnsubscribeFromCache { + optional uint32 soid_type = 1; + optional fixed64 soid_id = 2; + repeated uint32 account_ids = 3; + repeated fixed64 steam_ids = 4; +} + +message CMsgGCToGCMasterDestroyCache { + optional uint32 soid_type = 1; + optional fixed64 soid_id = 2; +} diff --git a/Protobufs/deadlock/gcsystemmsgs.proto b/Protobufs/deadlock/gcsystemmsgs.proto new file mode 100644 index 0000000..5b41afc --- /dev/null +++ b/Protobufs/deadlock/gcsystemmsgs.proto @@ -0,0 +1,26 @@ +enum ESOMsg { + k_ESOMsg_Create = 21; + k_ESOMsg_Update = 22; + k_ESOMsg_Destroy = 23; + k_ESOMsg_CacheSubscribed = 24; + k_ESOMsg_CacheUnsubscribed = 25; + k_ESOMsg_UpdateMultiple = 26; + k_ESOMsg_CacheSubscriptionRefresh = 28; + k_ESOMsg_CacheSubscribedUpToDate = 29; +} + +enum EGCBaseClientMsg { + k_EMsgGCPingRequest = 3001; + k_EMsgGCPingResponse = 3002; + k_EMsgGCToClientPollConvarRequest = 3003; + k_EMsgGCToClientPollConvarResponse = 3004; + k_EMsgGCCompressedMsgToClient = 3005; + k_EMsgGCCompressedMsgToClient_Legacy = 523; + k_EMsgGCToClientRequestDropped = 3006; + k_EMsgGCClientWelcome = 4004; + k_EMsgGCServerWelcome = 4005; + k_EMsgGCClientHello = 4006; + k_EMsgGCServerHello = 4007; + k_EMsgGCClientConnectionStatus = 4009; + k_EMsgGCServerConnectionStatus = 4010; +} diff --git a/Protobufs/deadlock/netmessages.proto b/Protobufs/deadlock/netmessages.proto new file mode 100644 index 0000000..d938ddf --- /dev/null +++ b/Protobufs/deadlock/netmessages.proto @@ -0,0 +1,669 @@ +import "networkbasetypes.proto"; + +enum CLC_Messages { + clc_ClientInfo = 20; + clc_Move = 21; + clc_VoiceData = 22; + clc_BaselineAck = 23; + clc_RespondCvarValue = 25; + clc_FileCRCCheck = 26; + clc_LoadingProgress = 27; + clc_SplitPlayerConnect = 28; + clc_SplitPlayerDisconnect = 30; + clc_ServerStatus = 31; + clc_RequestPause = 33; + clc_CmdKeyValues = 34; + clc_RconServerDetails = 35; + clc_HltvReplay = 36; + clc_Diagnostic = 37; +} + +enum SVC_Messages { + svc_ServerInfo = 40; + svc_FlattenedSerializer = 41; + svc_ClassInfo = 42; + svc_SetPause = 43; + svc_CreateStringTable = 44; + svc_UpdateStringTable = 45; + svc_VoiceInit = 46; + svc_VoiceData = 47; + svc_Print = 48; + svc_Sounds = 49; + svc_SetView = 50; + svc_ClearAllStringTables = 51; + svc_CmdKeyValues = 52; + svc_BSPDecal = 53; + svc_SplitScreen = 54; + svc_PacketEntities = 55; + svc_Prefetch = 56; + svc_Menu = 57; + svc_GetCvarValue = 58; + svc_StopSound = 59; + svc_PeerList = 60; + svc_PacketReliable = 61; + svc_HLTVStatus = 62; + svc_ServerSteamID = 63; + svc_FullFrameSplit = 70; + svc_RconServerDetails = 71; + svc_UserMessage = 72; + svc_Broadcast_Command = 74; + svc_HltvFixupOperatorStatus = 75; + svc_UserCmds = 76; +} + +enum VoiceDataFormat_t { + VOICEDATA_FORMAT_STEAM = 0; + VOICEDATA_FORMAT_ENGINE = 1; + VOICEDATA_FORMAT_OPUS = 2; +} + +enum RequestPause_t { + RP_PAUSE = 0; + RP_UNPAUSE = 1; + RP_TOGGLEPAUSE = 2; +} + +enum PrefetchType { + PFT_SOUND = 0; +} + +enum ESplitScreenMessageType { + MSG_SPLITSCREEN_ADDUSER = 0; + MSG_SPLITSCREEN_REMOVEUSER = 1; +} + +enum EQueryCvarValueStatus { + eQueryCvarValueStatus_ValueIntact = 0; + eQueryCvarValueStatus_CvarNotFound = 1; + eQueryCvarValueStatus_NotACvar = 2; + eQueryCvarValueStatus_CvarProtected = 3; +} + +enum DIALOG_TYPE { + DIALOG_MSG = 0; + DIALOG_MENU = 1; + DIALOG_TEXT = 2; + DIALOG_ENTRY = 3; + DIALOG_ASKCONNECT = 4; +} + +enum SVC_Messages_LowFrequency { + svc_dummy = 600; +} + +enum Bidirectional_Messages { + bi_RebroadcastGameEvent = 16; + bi_RebroadcastSource = 17; + bi_GameEvent = 18; +} + +enum Bidirectional_Messages_LowFrequency { + bi_RelayInfo = 700; + bi_RelayPacket = 701; +} + +enum ReplayEventType_t { + REPLAY_EVENT_CANCEL = 0; + REPLAY_EVENT_DEATH = 1; + REPLAY_EVENT_GENERIC = 2; + REPLAY_EVENT_STUCK_NEED_FULL_UPDATE = 3; + REPLAY_EVENT_VICTORY = 4; +} + +message CCLCMsg_ClientInfo { + optional fixed32 send_table_crc = 1; + optional uint32 server_count = 2; + optional bool is_hltv = 3; + optional uint32 friends_id = 5; + optional string friends_name = 6; +} + +message CCLCMsg_Move { + optional bytes data = 3; + optional uint32 last_command_number = 4; +} + +message CMsgVoiceAudio { + optional .VoiceDataFormat_t format = 1 [default = VOICEDATA_FORMAT_STEAM]; + optional bytes voice_data = 2; + optional int32 sequence_bytes = 3; + optional uint32 section_number = 4; + optional uint32 sample_rate = 5; + optional uint32 uncompressed_sample_offset = 6; + optional uint32 num_packets = 7; + repeated uint32 packet_offsets = 8 [packed = true]; + optional float voice_level = 9; +} + +message CCLCMsg_VoiceData { + optional .CMsgVoiceAudio audio = 1; + optional fixed64 xuid = 2; + optional uint32 tick = 3; +} + +message CCLCMsg_BaselineAck { + optional int32 baseline_tick = 1; + optional int32 baseline_nr = 2; +} + +message CCLCMsg_ListenEvents { + repeated fixed32 event_mask = 1; +} + +message CCLCMsg_RespondCvarValue { + optional int32 cookie = 1; + optional int32 status_code = 2; + optional string name = 3; + optional string value = 4; +} + +message CCLCMsg_FileCRCCheck { + optional int32 code_path = 1; + optional string path = 2; + optional int32 code_filename = 3; + optional string filename = 4; + optional fixed32 crc = 5; +} + +message CCLCMsg_LoadingProgress { + optional int32 progress = 1; +} + +message CCLCMsg_SplitPlayerConnect { + optional string playername = 1; +} + +message CCLCMsg_SplitPlayerDisconnect { + optional int32 slot = 1; +} + +message CCLCMsg_ServerStatus { + optional bool simplified = 1; +} + +message CCLCMsg_RequestPause { + optional .RequestPause_t pause_type = 1 [default = RP_PAUSE]; + optional int32 pause_group = 2; +} + +message CCLCMsg_CmdKeyValues { + optional bytes data = 1; +} + +message CCLCMsg_RconServerDetails { + optional bytes token = 1; +} + +message CMsgSource2SystemSpecs { + optional string cpu_id = 1; + optional string cpu_brand = 2; + optional uint32 cpu_model = 3; + optional uint32 cpu_num_physical = 4; + optional uint32 ram_physical_total_mb = 21; + optional string gpu_rendersystem_dll_name = 41; + optional uint32 gpu_vendor_id = 42; + optional string gpu_driver_name = 43; + optional uint32 gpu_driver_version_high = 44; + optional uint32 gpu_driver_version_low = 45; + optional uint32 gpu_dx_support_level = 46; + optional uint32 gpu_texture_memory_size_mb = 47; +} + +message CMsgSource2VProfLiteReportItem { + optional string name = 1; + optional uint32 active_samples = 2; + optional uint32 usec_max = 3; + optional uint32 usec_avg_active = 11; + optional uint32 usec_p50_active = 12; + optional uint32 usec_p99_active = 13; + optional uint32 usec_avg_all = 21; + optional uint32 usec_p50_all = 22; + optional uint32 usec_p99_all = 23; +} + +message CMsgSource2VProfLiteReport { + optional .CMsgSource2VProfLiteReportItem total = 1; + repeated .CMsgSource2VProfLiteReportItem items = 2; + optional uint32 discarded_frames = 3; +} + +message CCLCMsg_Diagnostic { + optional .CMsgSource2SystemSpecs system_specs = 1; + optional .CMsgSource2VProfLiteReport vprof_report = 2; +} + +message CSource2Metrics_MatchPerfSummary_Notification { + message Client { + optional .CMsgSource2SystemSpecs system_specs = 1; + optional .CMsgSource2VProfLiteReport profile = 2; + optional uint32 build_id = 3; + optional fixed64 steamid = 10; + } + + optional uint32 appid = 1; + optional string game_mode = 2; + optional uint32 server_build_id = 3; + optional .CMsgSource2VProfLiteReport server_profile = 10; + repeated .CSource2Metrics_MatchPerfSummary_Notification.Client clients = 11; + optional string map = 20; +} + +message CSVCMsg_ServerInfo { + optional int32 protocol = 1; + optional int32 server_count = 2; + optional bool is_dedicated = 3; + optional bool is_hltv = 4; + optional int32 c_os = 6; + optional int32 max_clients = 10; + optional int32 max_classes = 11; + optional int32 player_slot = 12 [default = -1]; + optional float tick_interval = 13; + optional string game_dir = 14; + optional string map_name = 15; + optional string sky_name = 16; + optional string host_name = 17; + optional string addon_name = 18; + optional .CSVCMsg_GameSessionConfiguration game_session_config = 19; + optional bytes game_session_manifest = 20; +} + +message CSVCMsg_ClassInfo { + message class_t { + optional int32 class_id = 1; + optional string class_name = 3; + } + + optional bool create_on_client = 1; + repeated .CSVCMsg_ClassInfo.class_t classes = 2; +} + +message CSVCMsg_SetPause { + optional bool paused = 1; +} + +message CSVCMsg_VoiceInit { + optional int32 quality = 1; + optional string codec = 2; + optional int32 version = 3 [default = 0]; +} + +message CSVCMsg_Print { + optional string text = 1; +} + +message CSVCMsg_Sounds { + message sounddata_t { + optional sint32 origin_x = 1; + optional sint32 origin_y = 2; + optional sint32 origin_z = 3; + optional uint32 volume = 4; + optional float delay_value = 5; + optional int32 sequence_number = 6; + optional int32 entity_index = 7 [default = -1]; + optional int32 channel = 8; + optional int32 pitch = 9; + optional int32 flags = 10; + optional uint32 sound_num = 11; + optional fixed32 sound_num_handle = 12; + optional int32 speaker_entity = 13; + optional int32 random_seed = 14; + optional int32 sound_level = 15; + optional bool is_sentence = 16; + optional bool is_ambient = 17; + optional uint32 guid = 18; + optional fixed64 sound_resource_id = 19; + } + + optional bool reliable_sound = 1; + repeated .CSVCMsg_Sounds.sounddata_t sounds = 2; +} + +message CSVCMsg_Prefetch { + optional int32 sound_index = 1; + optional .PrefetchType resource_type = 2 [default = PFT_SOUND]; +} + +message CSVCMsg_SetView { + optional int32 entity_index = 1 [default = -1]; + optional int32 slot = 2 [default = -1]; +} + +message CSVCMsg_FixAngle { + optional bool relative = 1; + optional .CMsgQAngle angle = 2; +} + +message CSVCMsg_CrosshairAngle { + optional .CMsgQAngle angle = 1; +} + +message CSVCMsg_BSPDecal { + optional .CMsgVector pos = 1; + optional int32 decal_texture_index = 2; + optional int32 entity_index = 3 [default = -1]; + optional int32 model_index = 4; + optional bool low_priority = 5; +} + +message CSVCMsg_SplitScreen { + optional .ESplitScreenMessageType type = 1 [default = MSG_SPLITSCREEN_ADDUSER]; + optional int32 slot = 2; + optional int32 player_index = 3 [default = -1]; +} + +message CSVCMsg_GetCvarValue { + optional int32 cookie = 1; + optional string cvar_name = 2; +} + +message CSVCMsg_Menu { + optional int32 dialog_type = 1; + optional bytes menu_key_values = 2; +} + +message CSVCMsg_UserMessage { + optional int32 msg_type = 1; + optional bytes msg_data = 2; + optional int32 passthrough = 3; +} + +message CSVCMsg_SendTable { + message sendprop_t { + optional int32 type = 1; + optional string var_name = 2; + optional int32 flags = 3; + optional int32 priority = 4; + optional string dt_name = 5; + optional int32 num_elements = 6; + optional float low_value = 7; + optional float high_value = 8; + optional int32 num_bits = 9; + } + + optional bool is_end = 1; + optional string net_table_name = 2; + optional bool needs_decoder = 3; + repeated .CSVCMsg_SendTable.sendprop_t props = 4; +} + +message CSVCMsg_GameEventList { + message key_t { + optional int32 type = 1; + optional string name = 2; + } + + message descriptor_t { + optional int32 eventid = 1; + optional string name = 2; + repeated .CSVCMsg_GameEventList.key_t keys = 3; + } + + repeated .CSVCMsg_GameEventList.descriptor_t descriptors = 1; +} + +message CSVCMsg_PacketEntities { + message alternate_baseline_t { + optional int32 entity_index = 1; + optional int32 baseline_index = 2; + } + + message non_transmitted_entities_t { + optional int32 header_count = 1; + optional bytes data = 2; + } + + optional int32 max_entries = 1; + optional int32 updated_entries = 2; + optional bool legacy_is_delta = 3; + optional bool update_baseline = 4; + optional int32 baseline = 5; + optional int32 delta_from = 6; + optional bytes entity_data = 7; + optional bool pending_full_frame = 8; + optional uint32 active_spawngroup_handle = 9; + optional uint32 max_spawngroup_creationsequence = 10; + optional uint32 last_cmd_number_executed = 11; + optional sint32 last_cmd_number_recv_delta = 17; + optional uint32 server_tick = 12; + optional bytes serialized_entities = 13; + repeated .CSVCMsg_PacketEntities.alternate_baseline_t alternate_baselines = 15; + optional uint32 has_pvs_vis_bits = 16; + repeated sint32 cmd_recv_status = 22 [packed = true]; + optional .CSVCMsg_PacketEntities.non_transmitted_entities_t non_transmitted_entities = 19; + optional uint32 cq_starved_command_ticks = 20; + optional uint32 cq_discarded_command_ticks = 21; + optional bytes dev_padding = 999; +} + +message CSVCMsg_TempEntities { + optional bool reliable = 1; + optional int32 num_entries = 2; + optional bytes entity_data = 3; +} + +message CSVCMsg_CreateStringTable { + optional string name = 1; + optional int32 num_entries = 2; + optional bool user_data_fixed_size = 3; + optional int32 user_data_size = 4; + optional int32 user_data_size_bits = 5; + optional int32 flags = 6; + optional bytes string_data = 7; + optional int32 uncompressed_size = 8; + optional bool data_compressed = 9; + optional bool using_varint_bitcounts = 10; +} + +message CSVCMsg_UpdateStringTable { + optional int32 table_id = 1; + optional int32 num_changed_entries = 2; + optional bytes string_data = 3; +} + +message CSVCMsg_VoiceData { + optional .CMsgVoiceAudio audio = 1; + optional int32 client = 2 [default = -1]; + optional bool proximity = 3; + optional fixed64 xuid = 4; + optional int32 audible_mask = 5; + optional uint32 tick = 6; + optional int32 passthrough = 7; +} + +message CSVCMsg_PacketReliable { + optional int32 tick = 1; + optional int32 messagessize = 2; + optional bool state = 3; +} + +message CSVCMsg_FullFrameSplit { + optional int32 tick = 1; + optional int32 section = 2; + optional int32 total = 3; + optional bytes data = 4; +} + +message CSVCMsg_HLTVStatus { + optional string master = 1; + optional int32 clients = 2; + optional int32 slots = 3; + optional int32 proxies = 4; +} + +message CSVCMsg_ServerSteamID { + optional uint64 steam_id = 1; +} + +message CSVCMsg_CmdKeyValues { + optional bytes data = 1; +} + +message CSVCMsg_RconServerDetails { + optional bytes token = 1; + optional string details = 2; +} + +message CMsgIPCAddress { + optional fixed64 computer_guid = 1; + optional uint32 process_id = 2; +} + +message CMsgServerPeer { + optional int32 player_slot = 1 [default = -1]; + optional fixed64 steamid = 2; + optional .CMsgIPCAddress ipc = 3; + optional bool they_hear_you = 4; + optional bool you_hear_them = 5; + optional bool is_listenserver_host = 6; +} + +message CSVCMsg_PeerList { + repeated .CMsgServerPeer peer = 1; +} + +message CSVCMsg_ClearAllStringTables { + optional string mapname = 1; + optional bool create_tables_skipped = 3; +} + +message ProtoFlattenedSerializerField_t { + message polymorphic_field_t { + optional int32 polymorphic_field_serializer_name_sym = 1; + optional int32 polymorphic_field_serializer_version = 2; + } + + optional int32 var_type_sym = 1; + optional int32 var_name_sym = 2; + optional int32 bit_count = 3; + optional float low_value = 4; + optional float high_value = 5; + optional int32 encode_flags = 6; + optional int32 field_serializer_name_sym = 7; + optional int32 field_serializer_version = 8; + optional int32 send_node_sym = 9; + optional int32 var_encoder_sym = 10; + repeated .ProtoFlattenedSerializerField_t.polymorphic_field_t polymorphic_types = 11; + optional int32 var_serializer_sym = 12; +} + +message ProtoFlattenedSerializer_t { + optional int32 serializer_name_sym = 1; + optional int32 serializer_version = 2; + repeated int32 fields_index = 3; +} + +message CSVCMsg_FlattenedSerializer { + repeated .ProtoFlattenedSerializer_t serializers = 1; + repeated string symbols = 2; + repeated .ProtoFlattenedSerializerField_t fields = 3; +} + +message CSVCMsg_StopSound { + optional fixed32 guid = 1; +} + +message CBidirMsg_RebroadcastGameEvent { + optional bool posttoserver = 1; + optional int32 buftype = 2; + optional uint32 clientbitcount = 3; + optional uint64 receivingclients = 4; +} + +message CBidirMsg_RebroadcastSource { + optional int32 eventsource = 1; +} + +message CMsgServerNetworkStats { + message Port { + optional int32 port = 1; + optional string name = 2; + } + + message Player { + optional uint64 steamid = 1; + optional string remote_addr = 2; + optional int32 ping_avg_ms = 4; + optional float packet_loss_pct = 5; + optional bool is_bot = 6; + optional float loss_in = 7; + optional float loss_out = 8; + optional int32 engine_latency_ms = 9; + } + + optional bool dedicated = 1; + optional int32 cpu_usage = 2; + optional int32 memory_used_mb = 3; + optional int32 memory_free_mb = 4; + optional int32 uptime = 5; + optional int32 spawn_count = 6; + optional int32 num_clients = 8; + optional int32 num_bots = 9; + optional int32 num_spectators = 10; + optional int32 num_tv_relays = 11; + optional float fps = 12; + repeated .CMsgServerNetworkStats.Port ports = 17; + optional float avg_ping_ms = 18; + optional float avg_engine_latency_out = 19; + optional float avg_packets_out = 20; + optional float avg_packets_in = 21; + optional float avg_loss_out = 22; + optional float avg_loss_in = 23; + optional float avg_data_out = 24; + optional float avg_data_in = 25; + optional uint64 total_data_in = 26; + optional uint64 total_packets_in = 27; + optional uint64 total_data_out = 28; + optional uint64 total_packets_out = 29; + repeated .CMsgServerNetworkStats.Player players = 30; +} + +message CSVCMsg_HltvReplay { + optional int32 delay = 1; + optional int32 primary_target = 2 [default = -1]; + optional int32 replay_stop_at = 3; + optional int32 replay_start_at = 4; + optional int32 replay_slowdown_begin = 5; + optional int32 replay_slowdown_end = 6; + optional float replay_slowdown_rate = 7; + optional int32 reason = 8; +} + +message CCLCMsg_HltvReplay { + optional int32 request = 1; + optional float slowdown_length = 2; + optional float slowdown_rate = 3; + optional int32 primary_target = 4 [default = -1]; + optional float event_time = 5; +} + +message CSVCMsg_Broadcast_Command { + optional string cmd = 1; +} + +message CCLCMsg_HltvFixupOperatorTick { + optional int32 tick = 1; + optional bytes props_data = 2; + optional .CMsgVector origin = 3; + optional .CMsgQAngle eye_angles = 4; + optional int32 observer_mode = 5; + optional bool cameraman_scoreboard = 6; + optional int32 observer_target = 7; + optional .CMsgVector view_offset = 8; +} + +message CSVCMsg_HltvFixupOperatorStatus { + optional uint32 mode = 1; + optional string override_operator_name = 2; +} + +message CMsgServerUserCmd { + optional bytes data = 1; + optional int32 cmd_number = 2; + optional int32 player_slot = 3 [default = -1]; + optional int32 server_tick_executed = 4; + optional int32 client_tick = 5; +} + +message CSVCMsg_UserCommands { + repeated .CMsgServerUserCmd commands = 1; +} diff --git a/Protobufs/deadlock/network_connection.proto b/Protobufs/deadlock/network_connection.proto new file mode 100644 index 0000000..90edb2f --- /dev/null +++ b/Protobufs/deadlock/network_connection.proto @@ -0,0 +1,128 @@ +import "google/protobuf/descriptor.proto"; + +extend .google.protobuf.EnumValueOptions { + optional string network_connection_token = 50500; + optional string network_connection_detail_token = 50501; +} + +enum ENetworkDisconnectionReason { + NETWORK_DISCONNECT_INVALID = 0; + NETWORK_DISCONNECT_SHUTDOWN = 1; + NETWORK_DISCONNECT_DISCONNECT_BY_USER = 2 [(network_connection_token) = "#GameUI_Disconnect_User"]; + NETWORK_DISCONNECT_DISCONNECT_BY_SERVER = 3 [(network_connection_token) = "#GameUI_Disconnect_Server"]; + NETWORK_DISCONNECT_LOST = 4 [(network_connection_token) = "#GameUI_Disconnect_ConnectionLost"]; + NETWORK_DISCONNECT_OVERFLOW = 5 [(network_connection_token) = "#GameUI_Disconnect_ConnectionOverflow"]; + NETWORK_DISCONNECT_STEAM_BANNED = 6 [(network_connection_token) = "#GameUI_Disconnect_SteamIDBanned"]; + NETWORK_DISCONNECT_STEAM_INUSE = 7 [(network_connection_token) = "#GameUI_Disconnect_SteamIDInUse"]; + NETWORK_DISCONNECT_STEAM_TICKET = 8 [(network_connection_token) = "#GameUI_Disconnect_SteamTicket"]; + NETWORK_DISCONNECT_STEAM_LOGON = 9 [(network_connection_token) = "#GameUI_Disconnect_SteamLogon"]; + NETWORK_DISCONNECT_STEAM_AUTHCANCELLED = 10 [(network_connection_token) = "#GameUI_Disconnect_SteamLogon"]; + NETWORK_DISCONNECT_STEAM_AUTHALREADYUSED = 11 [(network_connection_token) = "#GameUI_Disconnect_SteamLogon"]; + NETWORK_DISCONNECT_STEAM_AUTHINVALID = 12 [(network_connection_token) = "#GameUI_Disconnect_SteamLogon"]; + NETWORK_DISCONNECT_STEAM_VACBANSTATE = 13 [(network_connection_token) = "#GameUI_Disconnect_SteamVAC"]; + NETWORK_DISCONNECT_STEAM_LOGGED_IN_ELSEWHERE = 14 [(network_connection_token) = "#GameUI_Disconnect_SteamInUse"]; + NETWORK_DISCONNECT_STEAM_VAC_CHECK_TIMEDOUT = 15 [(network_connection_token) = "#GameUI_Disconnect_SteamTimeOut"]; + NETWORK_DISCONNECT_STEAM_DROPPED = 16 [(network_connection_token) = "#GameUI_Disconnect_SteamDropped"]; + NETWORK_DISCONNECT_STEAM_OWNERSHIP = 17 [(network_connection_token) = "#GameUI_Disconnect_SteamOwnership"]; + NETWORK_DISCONNECT_SERVERINFO_OVERFLOW = 18 [(network_connection_token) = "#GameUI_Disconnect_ServerInfoOverflow"]; + NETWORK_DISCONNECT_TICKMSG_OVERFLOW = 19 [(network_connection_token) = "#GameUI_Disconnect_TickMessage"]; + NETWORK_DISCONNECT_STRINGTABLEMSG_OVERFLOW = 20 [(network_connection_token) = "#GameUI_Disconnect_StringTableMessage"]; + NETWORK_DISCONNECT_DELTAENTMSG_OVERFLOW = 21 [(network_connection_token) = "#GameUI_Disconnect_DeltaEntMessage"]; + NETWORK_DISCONNECT_TEMPENTMSG_OVERFLOW = 22 [(network_connection_token) = "#GameUI_Disconnect_TempEntMessage"]; + NETWORK_DISCONNECT_SOUNDSMSG_OVERFLOW = 23 [(network_connection_token) = "#GameUI_Disconnect_SoundsMessage"]; + NETWORK_DISCONNECT_SNAPSHOTOVERFLOW = 24 [(network_connection_token) = "#GameUI_Disconnect_SnapshotOverflow"]; + NETWORK_DISCONNECT_SNAPSHOTERROR = 25 [(network_connection_token) = "#GameUI_Disconnect_SnapshotError"]; + NETWORK_DISCONNECT_RELIABLEOVERFLOW = 26 [(network_connection_token) = "#GameUI_Disconnect_ReliableOverflow"]; + NETWORK_DISCONNECT_BADDELTATICK = 27 [(network_connection_token) = "#GameUI_Disconnect_BadClientDeltaTick"]; + NETWORK_DISCONNECT_NOMORESPLITS = 28 [(network_connection_token) = "#GameUI_Disconnect_NoMoreSplits"]; + NETWORK_DISCONNECT_TIMEDOUT = 29 [(network_connection_token) = "#GameUI_Disconnect_TimedOut"]; + NETWORK_DISCONNECT_DISCONNECTED = 30 [(network_connection_token) = "#GameUI_Disconnect_Disconnected"]; + NETWORK_DISCONNECT_LEAVINGSPLIT = 31 [(network_connection_token) = "#GameUI_Disconnect_LeavingSplit"]; + NETWORK_DISCONNECT_DIFFERENTCLASSTABLES = 32 [(network_connection_token) = "#GameUI_Disconnect_DifferentClassTables"]; + NETWORK_DISCONNECT_BADRELAYPASSWORD = 33 [(network_connection_token) = "#GameUI_Disconnect_BadRelayPassword"]; + NETWORK_DISCONNECT_BADSPECTATORPASSWORD = 34 [(network_connection_token) = "#GameUI_Disconnect_BadSpectatorPassword"]; + NETWORK_DISCONNECT_HLTVRESTRICTED = 35 [(network_connection_token) = "#GameUI_Disconnect_HLTVRestricted"]; + NETWORK_DISCONNECT_NOSPECTATORS = 36 [(network_connection_token) = "#GameUI_Disconnect_NoSpectators"]; + NETWORK_DISCONNECT_HLTVUNAVAILABLE = 37 [(network_connection_token) = "#GameUI_Disconnect_HLTVUnavailable"]; + NETWORK_DISCONNECT_HLTVSTOP = 38 [(network_connection_token) = "#GameUI_Disconnect_HLTVStop"]; + NETWORK_DISCONNECT_KICKED = 39 [(network_connection_token) = "#GameUI_Disconnect_Kicked"]; + NETWORK_DISCONNECT_BANADDED = 40 [(network_connection_token) = "#GameUI_Disconnect_BanAdded"]; + NETWORK_DISCONNECT_KICKBANADDED = 41 [(network_connection_token) = "#GameUI_Disconnect_KickBanAdded"]; + NETWORK_DISCONNECT_HLTVDIRECT = 42 [(network_connection_token) = "#GameUI_Disconnect_HLTVDirect"]; + NETWORK_DISCONNECT_PURESERVER_CLIENTEXTRA = 43 [(network_connection_token) = "#GameUI_Disconnect_PureServer_ClientExtra"]; + NETWORK_DISCONNECT_PURESERVER_MISMATCH = 44 [(network_connection_token) = "#GameUI_Disconnect_PureServer_Mismatch"]; + NETWORK_DISCONNECT_USERCMD = 45 [(network_connection_token) = "#GameUI_Disconnect_UserCmd"]; + NETWORK_DISCONNECT_REJECTED_BY_GAME = 46 [(network_connection_token) = "#GameUI_Disconnect_RejectedByGame"]; + NETWORK_DISCONNECT_MESSAGE_PARSE_ERROR = 47 [(network_connection_token) = "#GameUI_Disconnect_MessageParseError"]; + NETWORK_DISCONNECT_INVALID_MESSAGE_ERROR = 48 [(network_connection_token) = "#GameUI_Disconnect_InvalidMessageError"]; + NETWORK_DISCONNECT_BAD_SERVER_PASSWORD = 49 [(network_connection_token) = "#GameUI_Disconnect_BadServerPassword"]; + NETWORK_DISCONNECT_DIRECT_CONNECT_RESERVATION = 50; + NETWORK_DISCONNECT_CONNECTION_FAILURE = 51 [(network_connection_token) = "#GameUI_Disconnect_ConnectionFailure"]; + NETWORK_DISCONNECT_NO_PEER_GROUP_HANDLERS = 52 [(network_connection_token) = "#GameUI_Disconnect_NoPeerGroupHandlers"]; + NETWORK_DISCONNECT_RECONNECTION = 53; + NETWORK_DISCONNECT_LOOPSHUTDOWN = 54 [(network_connection_token) = "#GameUI_Disconnect_LoopShutdown"]; + NETWORK_DISCONNECT_LOOPDEACTIVATE = 55 [(network_connection_token) = "#GameUI_Disconnect_LoopDeactivate"]; + NETWORK_DISCONNECT_HOST_ENDGAME = 56 [(network_connection_token) = "#GameUI_Disconnect_Host_EndGame"]; + NETWORK_DISCONNECT_LOOP_LEVELLOAD_ACTIVATE = 57 [(network_connection_token) = "#GameUI_Disconnect_LoopLevelLoadActivate"]; + NETWORK_DISCONNECT_CREATE_SERVER_FAILED = 58 [(network_connection_token) = "#GameUI_Disconnect_CreateServerFailed"]; + NETWORK_DISCONNECT_EXITING = 59 [(network_connection_token) = "#GameUI_Disconnect_ExitingEngine"]; + NETWORK_DISCONNECT_REQUEST_HOSTSTATE_IDLE = 60 [(network_connection_token) = "#GameUI_Disconnect_Request_HSIdle"]; + NETWORK_DISCONNECT_REQUEST_HOSTSTATE_HLTVRELAY = 61 [(network_connection_token) = "#GameUI_Disconnect_Request_HLTVRelay"]; + NETWORK_DISCONNECT_CLIENT_CONSISTENCY_FAIL = 62 [(network_connection_token) = "#GameUI_ClientConsistencyFail"]; + NETWORK_DISCONNECT_CLIENT_UNABLE_TO_CRC_MAP = 63 [(network_connection_token) = "#GameUI_ClientUnableToCRCMap"]; + NETWORK_DISCONNECT_CLIENT_NO_MAP = 64 [(network_connection_token) = "#GameUI_ClientNoMap"]; + NETWORK_DISCONNECT_CLIENT_DIFFERENT_MAP = 65 [(network_connection_token) = "#GameUI_ClientDifferentMap"]; + NETWORK_DISCONNECT_SERVER_REQUIRES_STEAM = 66 [(network_connection_token) = "#GameUI_ServerRequireSteams"]; + NETWORK_DISCONNECT_STEAM_DENY_MISC = 67 [(network_connection_token) = "#GameUI_Disconnect_SteamDeny_Misc"]; + NETWORK_DISCONNECT_STEAM_DENY_BAD_ANTI_CHEAT = 68 [(network_connection_token) = "#GameUI_Disconnect_SteamDeny_BadAntiCheat"]; + NETWORK_DISCONNECT_SERVER_SHUTDOWN = 69 [(network_connection_token) = "#GameUI_Disconnect_ServerShutdown"]; + NETWORK_DISCONNECT_REPLAY_INCOMPATIBLE = 71 [(network_connection_token) = "#GameUI_Disconnect_ReplayIncompatible"]; + NETWORK_DISCONNECT_CONNECT_REQUEST_TIMEDOUT = 72 [(network_connection_token) = "#GameUI_Disconnect_ConnectionTimedout"]; + NETWORK_DISCONNECT_SERVER_INCOMPATIBLE = 73 [(network_connection_token) = "#GameUI_Disconnect_ServerIncompatible"]; + NETWORK_DISCONNECT_LOCALPROBLEM_MANYRELAYS = 74 [(network_connection_token) = "#GameUI_Disconnect_LocalProblem_ManyRelays"]; + NETWORK_DISCONNECT_LOCALPROBLEM_HOSTEDSERVERPRIMARYRELAY = 75 [(network_connection_token) = "#GameUI_Disconnect_LocalProblem_HostedServerPrimaryRelay"]; + NETWORK_DISCONNECT_LOCALPROBLEM_NETWORKCONFIG = 76 [(network_connection_token) = "#GameUI_Disconnect_LocalProblem_NetworkConfig"]; + NETWORK_DISCONNECT_LOCALPROBLEM_OTHER = 77 [(network_connection_token) = "#GameUI_Disconnect_LocalProblem_Other"]; + NETWORK_DISCONNECT_REMOTE_TIMEOUT = 79 [(network_connection_token) = "#GameUI_Disconnect_RemoteProblem_Timeout"]; + NETWORK_DISCONNECT_REMOTE_TIMEOUT_CONNECTING = 80 [(network_connection_token) = "#GameUI_Disconnect_RemoteProblem_TimeoutConnecting"]; + NETWORK_DISCONNECT_REMOTE_OTHER = 81 [(network_connection_token) = "#GameUI_Disconnect_RemoteProblem_Other"]; + NETWORK_DISCONNECT_REMOTE_BADCRYPT = 82 [(network_connection_token) = "#GameUI_Disconnect_RemoteProblem_BadCrypt"]; + NETWORK_DISCONNECT_REMOTE_CERTNOTTRUSTED = 83 [(network_connection_token) = "#GameUI_Disconnect_RemoteProblem_BadCert"]; + NETWORK_DISCONNECT_UNUSUAL = 84 [(network_connection_token) = "#GameUI_Disconnect_Unusual"]; + NETWORK_DISCONNECT_INTERNAL_ERROR = 85 [(network_connection_token) = "#GameUI_Disconnect_InternalError"]; + NETWORK_DISCONNECT_REJECT_BADCHALLENGE = 128 [(network_connection_token) = "#GameUI_ServerRejectBadChallenge"]; + NETWORK_DISCONNECT_REJECT_NOLOBBY = 129 [(network_connection_token) = "#GameUI_ServerNoLobby"]; + NETWORK_DISCONNECT_REJECT_BACKGROUND_MAP = 130 [(network_connection_token) = "#Valve_Reject_Background_Map"]; + NETWORK_DISCONNECT_REJECT_SINGLE_PLAYER = 131 [(network_connection_token) = "#Valve_Reject_Single_Player"]; + NETWORK_DISCONNECT_REJECT_HIDDEN_GAME = 132 [(network_connection_token) = "#Valve_Reject_Hidden_Game"]; + NETWORK_DISCONNECT_REJECT_LANRESTRICT = 133 [(network_connection_token) = "#GameUI_ServerRejectLANRestrict"]; + NETWORK_DISCONNECT_REJECT_BADPASSWORD = 134 [(network_connection_token) = "#GameUI_ServerRejectBadPassword"]; + NETWORK_DISCONNECT_REJECT_SERVERFULL = 135 [(network_connection_token) = "#GameUI_ServerRejectServerFull"]; + NETWORK_DISCONNECT_REJECT_INVALIDRESERVATION = 136 [(network_connection_token) = "#GameUI_ServerRejectInvalidReservation"]; + NETWORK_DISCONNECT_REJECT_FAILEDCHANNEL = 137 [(network_connection_token) = "#GameUI_ServerRejectFailedChannel"]; + NETWORK_DISCONNECT_REJECT_CONNECT_FROM_LOBBY = 138 [(network_connection_token) = "#Valve_Reject_Connect_From_Lobby"]; + NETWORK_DISCONNECT_REJECT_RESERVED_FOR_LOBBY = 139 [(network_connection_token) = "#Valve_Reject_Reserved_For_Lobby"]; + NETWORK_DISCONNECT_REJECT_INVALIDKEYLENGTH = 140 [(network_connection_token) = "#GameUI_ServerReject_InvalidKeyLength"]; + NETWORK_DISCONNECT_REJECT_OLDPROTOCOL = 141 [(network_connection_token) = "#GameUI_ServerRejectOldProtocol"]; + NETWORK_DISCONNECT_REJECT_NEWPROTOCOL = 142 [(network_connection_token) = "#GameUI_ServerRejectNewProtocol"]; + NETWORK_DISCONNECT_REJECT_INVALIDCONNECTION = 143 [(network_connection_token) = "#GameUI_ServerRejectInvalidConnection"]; + NETWORK_DISCONNECT_REJECT_INVALIDCERTLEN = 144 [(network_connection_token) = "#GameUI_ServerRejectInvalidCertLen"]; + NETWORK_DISCONNECT_REJECT_INVALIDSTEAMCERTLEN = 145 [(network_connection_token) = "#GameUI_ServerRejectInvalidSteamCertLen"]; + NETWORK_DISCONNECT_REJECT_STEAM = 146 [(network_connection_token) = "#GameUI_ServerRejectSteam"]; + NETWORK_DISCONNECT_REJECT_SERVERAUTHDISABLED = 147 [(network_connection_token) = "#GameUI_ServerAuthDisabled"]; + NETWORK_DISCONNECT_REJECT_SERVERCDKEYAUTHINVALID = 148 [(network_connection_token) = "#GameUI_ServerCDKeyAuthInvalid"]; + NETWORK_DISCONNECT_REJECT_BANNED = 149 [(network_connection_token) = "#GameUI_ServerRejectBanned"]; + NETWORK_DISCONNECT_KICKED_TEAMKILLING = 150 [(network_connection_token) = "#Player_DisconnectReason_TeamKilling"]; + NETWORK_DISCONNECT_KICKED_TK_START = 151 [(network_connection_token) = "#Player_DisconnectReason_TK_Start"]; + NETWORK_DISCONNECT_KICKED_UNTRUSTEDACCOUNT = 152 [(network_connection_token) = "#Player_DisconnectReason_UntrustedAccount"]; + NETWORK_DISCONNECT_KICKED_CONVICTEDACCOUNT = 153 [(network_connection_token) = "#Player_DisconnectReason_ConvictedAccount"]; + NETWORK_DISCONNECT_KICKED_COMPETITIVECOOLDOWN = 154 [(network_connection_token) = "#Player_DisconnectReason_CompetitiveCooldown"]; + NETWORK_DISCONNECT_KICKED_TEAMHURTING = 155 [(network_connection_token) = "#Player_DisconnectReason_TeamHurting"]; + NETWORK_DISCONNECT_KICKED_HOSTAGEKILLING = 156 [(network_connection_token) = "#Player_DisconnectReason_HostageKilling"]; + NETWORK_DISCONNECT_KICKED_VOTEDOFF = 157 [(network_connection_token) = "#Player_DisconnectReason_VotedOff"]; + NETWORK_DISCONNECT_KICKED_IDLE = 158 [(network_connection_token) = "#Player_DisconnectReason_Idle"]; + NETWORK_DISCONNECT_KICKED_SUICIDE = 159 [(network_connection_token) = "#Player_DisconnectReason_Suicide"]; + NETWORK_DISCONNECT_KICKED_NOSTEAMLOGIN = 160 [(network_connection_token) = "#Player_DisconnectReason_NoSteamLogin"]; + NETWORK_DISCONNECT_KICKED_NOSTEAMTICKET = 161 [(network_connection_token) = "#Player_DisconnectReason_NoSteamTicket"]; + NETWORK_DISCONNECT_KICKED_INPUTAUTOMATION = 162 [(network_connection_token) = "#Player_DisconnectReason_InputAutomation", (network_connection_detail_token) = "#Player_DisconnectReason_InputAutomation_Detail"]; +} diff --git a/Protobufs/deadlock/networkbasetypes.proto b/Protobufs/deadlock/networkbasetypes.proto new file mode 100644 index 0000000..e2c049e --- /dev/null +++ b/Protobufs/deadlock/networkbasetypes.proto @@ -0,0 +1,243 @@ +import "network_connection.proto"; + +enum SignonState_t { + SIGNONSTATE_NONE = 0; + SIGNONSTATE_CHALLENGE = 1; + SIGNONSTATE_CONNECTED = 2; + SIGNONSTATE_NEW = 3; + SIGNONSTATE_PRESPAWN = 4; + SIGNONSTATE_SPAWN = 5; + SIGNONSTATE_FULL = 6; + SIGNONSTATE_CHANGELEVEL = 7; +} + +enum NET_Messages { + net_NOP = 0; + net_Disconnect_Legacy = 1; + net_SplitScreenUser = 3; + net_Tick = 4; + net_StringCmd = 5; + net_SetConVar = 6; + net_SignonState = 7; + net_SpawnGroup_Load = 8; + net_SpawnGroup_ManifestUpdate = 9; + net_SpawnGroup_SetCreationTick = 11; + net_SpawnGroup_Unload = 12; + net_SpawnGroup_LoadCompleted = 13; + net_DebugOverlay = 15; +} + +enum SpawnGroupFlags_t { + SPAWN_GROUP_LOAD_ENTITIES_FROM_SAVE = 1; + SPAWN_GROUP_DONT_SPAWN_ENTITIES = 2; + SPAWN_GROUP_SYNCHRONOUS_SPAWN = 4; + SPAWN_GROUP_IS_INITIAL_SPAWN_GROUP = 8; + SPAWN_GROUP_CREATE_CLIENT_ONLY_ENTITIES = 16; + SPAWN_GROUP_BLOCK_UNTIL_LOADED = 64; + SPAWN_GROUP_LOAD_STREAMING_DATA = 128; + SPAWN_GROUP_CREATE_NEW_SCENE_WORLD = 256; +} + +message CMsgVector { + optional float x = 1; + optional float y = 2; + optional float z = 3; + optional float w = 4; +} + +message CMsgVector2D { + optional float x = 1; + optional float y = 2; +} + +message CMsgQAngle { + optional float x = 1; + optional float y = 2; + optional float z = 3; +} + +message CMsgQuaternion { + optional float x = 1; + optional float y = 2; + optional float z = 3; + optional float w = 4; +} + +message CMsgTransform { + optional .CMsgVector position = 1; + optional float scale = 2; + optional .CMsgQuaternion orientation = 3; +} + +message CMsgRGBA { + optional int32 r = 1; + optional int32 g = 2; + optional int32 b = 3; + optional int32 a = 4; +} + +message CMsgPlayerInfo { + optional string name = 1; + optional fixed64 xuid = 2; + optional int32 userid = 3; + optional fixed64 steamid = 4; + optional bool fakeplayer = 5; + optional bool ishltv = 6; +} + +message CEntityMsg { + optional uint32 target_entity = 1 [default = 16777215]; +} + +message CMsg_CVars { + message CVar { + optional string name = 1; + optional string value = 2; + } + + repeated .CMsg_CVars.CVar cvars = 1; +} + +message CNETMsg_NOP { +} + +message CNETMsg_SplitScreenUser { + optional int32 slot = 1; +} + +message CNETMsg_Tick { + optional uint32 tick = 1; + optional uint32 host_frametime = 2; + optional uint32 host_frametime_std_deviation = 3; + optional uint32 host_computationtime = 4; + optional uint32 host_computationtime_std_deviation = 5; + optional uint32 host_framestarttime_std_deviation = 6; + optional uint32 host_loss = 7; + optional uint32 host_unfiltered_frametime = 8; + optional uint32 hltv_replay_flags = 9; + optional uint32 expected_long_tick = 10; + optional string expected_long_tick_reason = 11; + optional uint32 jitter = 12; +} + +message CNETMsg_StringCmd { + optional string command = 1; + optional uint32 prediction_sync = 2; +} + +message CNETMsg_SetConVar { + optional .CMsg_CVars convars = 1; +} + +message CNETMsg_SignonState { + optional .SignonState_t signon_state = 1 [default = SIGNONSTATE_NONE]; + optional uint32 spawn_count = 2; + optional uint32 num_server_players = 3; + repeated string players_networkids = 4; + optional string map_name = 5; + optional string addons = 6; +} + +message CSVCMsg_GameEvent { + message key_t { + optional int32 type = 1; + optional string val_string = 2; + optional float val_float = 3; + optional int32 val_long = 4; + optional int32 val_short = 5; + optional int32 val_byte = 6; + optional bool val_bool = 7; + optional uint64 val_uint64 = 8; + } + + optional string event_name = 1; + optional int32 eventid = 2; + repeated .CSVCMsg_GameEvent.key_t keys = 3; +} + +message CSVCMsgList_GameEvents { + message event_t { + optional int32 tick = 1; + optional .CSVCMsg_GameEvent event = 2; + } + + repeated .CSVCMsgList_GameEvents.event_t events = 1; +} + +message CNETMsg_SpawnGroup_Load { + optional string worldname = 1; + optional string entitylumpname = 2; + optional string entityfiltername = 3; + optional uint32 spawngrouphandle = 4; + optional uint32 spawngroupownerhandle = 5; + optional .CMsgVector world_offset_pos = 6; + optional .CMsgQAngle world_offset_angle = 7; + optional bytes spawngroupmanifest = 8; + optional uint32 flags = 9; + optional int32 tickcount = 10; + optional bool manifestincomplete = 11; + optional string localnamefixup = 12; + optional string parentnamefixup = 13; + optional int32 manifestloadpriority = 14; + optional uint32 worldgroupid = 15; + optional uint32 creationsequence = 16; + optional string savegamefilename = 17; + optional uint32 spawngroupparenthandle = 18; + optional bool leveltransition = 19; + optional string worldgroupname = 20; +} + +message CNETMsg_SpawnGroup_ManifestUpdate { + optional uint32 spawngrouphandle = 1; + optional bytes spawngroupmanifest = 2; + optional bool manifestincomplete = 3; +} + +message CNETMsg_SpawnGroup_SetCreationTick { + optional uint32 spawngrouphandle = 1; + optional int32 tickcount = 2; + optional uint32 creationsequence = 3; +} + +message CNETMsg_SpawnGroup_Unload { + optional uint32 spawngrouphandle = 1; + optional uint32 flags = 2; + optional int32 tickcount = 3; +} + +message CNETMsg_SpawnGroup_LoadCompleted { + optional uint32 spawngrouphandle = 1; +} + +message CSVCMsg_GameSessionConfiguration { + optional bool is_multiplayer = 1; + optional bool is_loadsavegame = 2; + optional bool is_background_map = 3; + optional bool is_headless = 4; + optional uint32 min_client_limit = 5; + optional uint32 max_client_limit = 6; + optional uint32 max_clients = 7; + optional fixed32 tick_interval = 8; + optional string hostname = 9; + optional string savegamename = 10; + optional string s1_mapname = 11; + optional string gamemode = 12; + optional string server_ip_address = 13; + optional bytes data = 14; + optional bool is_localonly = 15; + optional bool no_steam_server = 19; + optional bool is_transition = 16; + optional string previouslevel = 17; + optional string landmarkname = 18; +} + +message CNETMsg_DebugOverlay { + optional int32 etype = 1; + repeated .CMsgVector vectors = 2; + repeated .CMsgRGBA colors = 3; + repeated float dimensions = 4; + repeated float times = 5; + repeated bool bools = 6; + repeated uint64 uint64s = 7; + repeated string strings = 8; +} diff --git a/Protobufs/deadlock/networksystem_protomessages.proto b/Protobufs/deadlock/networksystem_protomessages.proto new file mode 100644 index 0000000..1fa36b3 --- /dev/null +++ b/Protobufs/deadlock/networksystem_protomessages.proto @@ -0,0 +1,17 @@ +message NetMessageSplitscreenUserChanged { + optional uint32 slot = 1; +} + +message NetMessageConnectionClosed { + optional uint32 reason = 1; +} + +message NetMessageConnectionCrashed { + optional uint32 reason = 1; +} + +message NetMessagePacketStart { +} + +message NetMessagePacketEnd { +} diff --git a/Protobufs/deadlock/steamdatagram_messages_auth.proto b/Protobufs/deadlock/steamdatagram_messages_auth.proto new file mode 100644 index 0000000..c97793e --- /dev/null +++ b/Protobufs/deadlock/steamdatagram_messages_auth.proto @@ -0,0 +1,65 @@ +import "steamnetworkingsockets_messages_certs.proto"; + +option optimize_for = SPEED; +option cc_generic_services = false; + +message CMsgSteamDatagramRelayAuthTicket { + message ExtraField { + optional string name = 1; + optional string string_value = 2; + optional sint64 int64_value = 3; + optional fixed64 fixed64_value = 5; + } + + optional fixed32 time_expiry = 1; + optional string authorized_client_identity_string = 14; + optional string gameserver_identity_string = 15; + optional fixed32 authorized_public_ip = 3; + optional bytes gameserver_address = 11; + optional uint32 app_id = 7; + optional uint32 virtual_port = 10; + repeated .CMsgSteamDatagramRelayAuthTicket.ExtraField extra_fields = 8; + optional fixed64 legacy_authorized_steam_id = 2; + optional fixed64 legacy_gameserver_steam_id = 4; + optional fixed32 legacy_gameserver_pop_id = 9; + optional bytes legacy_authorized_client_identity_binary = 12; + optional bytes legacy_gameserver_identity_binary = 13; +} + +message CMsgSteamDatagramSignedRelayAuthTicket { + optional fixed64 reserved_do_not_use = 1; + optional bytes ticket = 3; + optional bytes signature = 4; + optional fixed64 key_id = 2; + repeated .CMsgSteamDatagramCertificateSigned certs = 5; +} + +message CMsgSteamDatagramCachedCredentialsForApp { + optional bytes private_key = 1; + optional bytes cert = 2; + repeated bytes relay_tickets = 3; +} + +message CMsgSteamDatagramGameCoordinatorServerLogin { + optional uint32 time_generated = 1; + optional uint32 appid = 2; + optional bytes routing = 3; + optional bytes appdata = 4; + optional bytes legacy_identity_binary = 5; + optional string identity_string = 6; + optional fixed64 dummy_steam_id = 99; +} + +message CMsgSteamDatagramSignedGameCoordinatorServerLogin { + optional .CMsgSteamDatagramCertificateSigned cert = 1; + optional bytes login = 2; + optional bytes signature = 3; +} + +message CMsgSteamDatagramHostedServerAddressPlaintext { + optional fixed32 ipv4 = 1; + optional bytes ipv6 = 2; + optional uint32 port = 3; + optional fixed64 routing_secret = 4; + optional uint32 protocol_version = 5; +} diff --git a/Protobufs/deadlock/steamdatagram_messages_sdr.proto b/Protobufs/deadlock/steamdatagram_messages_sdr.proto new file mode 100644 index 0000000..d257e92 --- /dev/null +++ b/Protobufs/deadlock/steamdatagram_messages_sdr.proto @@ -0,0 +1,545 @@ +import "steamnetworkingsockets_messages_certs.proto"; +import "steamnetworkingsockets_messages.proto"; + +option optimize_for = SPEED; +option cc_generic_services = false; + +enum ESteamDatagramMsgID { + k_ESteamDatagramMsg_Invalid = 0; + k_ESteamDatagramMsg_RouterPingRequest = 1; + k_ESteamDatagramMsg_RouterPingReply = 2; + k_ESteamDatagramMsg_GameserverPingRequest = 3; + k_ESteamDatagramMsg_GameserverSessionRequest = 5; + k_ESteamDatagramMsg_GameserverSessionEstablished = 6; + k_ESteamDatagramMsg_NoSession = 7; + k_ESteamDatagramMsg_Diagnostic = 8; + k_ESteamDatagramMsg_DataClientToRouter = 9; + k_ESteamDatagramMsg_DataRouterToServer = 10; + k_ESteamDatagramMsg_DataServerToRouter = 11; + k_ESteamDatagramMsg_DataRouterToClient = 12; + k_ESteamDatagramMsg_Stats = 13; + k_ESteamDatagramMsg_ClientPingSampleRequest = 14; + k_ESteamDatagramMsg_ClientPingSampleReply = 15; + k_ESteamDatagramMsg_ClientToRouterSwitchedPrimary = 16; + k_ESteamDatagramMsg_RelayHealth = 17; + k_ESteamDatagramMsg_ConnectRequest = 18; + k_ESteamDatagramMsg_ConnectOK = 19; + k_ESteamDatagramMsg_ConnectionClosed = 20; + k_ESteamDatagramMsg_NoConnection = 21; + k_ESteamDatagramMsg_TicketDecryptRequest = 22; + k_ESteamDatagramMsg_TicketDecryptReply = 23; + k_ESteamDatagramMsg_P2PSessionRequest = 24; + k_ESteamDatagramMsg_P2PSessionEstablished = 25; + k_ESteamDatagramMsg_P2PStatsClient = 26; + k_ESteamDatagramMsg_P2PStatsRelay = 27; + k_ESteamDatagramMsg_P2PBadRoute = 28; + k_ESteamDatagramMsg_GameserverPingReply = 29; + k_ESteamDatagramMsg_LegacyGameserverRegistration = 30; + k_ESteamDatagramMsg_SetSecondaryAddressRequest = 31; + k_ESteamDatagramMsg_SetSecondaryAddressResult = 32; + k_ESteamDatagramMsg_RelayToRelayPingRequest = 33; + k_ESteamDatagramMsg_RelayToRelayPingReply = 34; +} + +message CMsgSteamNetworkingIPAddress { + optional fixed32 v4 = 1; + optional bytes v6 = 2; +} + +message CMsgSteamDatagramSignedMessageGeneric { + optional .CMsgSteamDatagramCertificateSigned cert = 1; + optional bytes signed_data = 2; + optional bytes signature = 3; + optional bytes dummy_pad = 1023; +} + +message CMsgSteamDatagramRouterPingReply { + message RouteException { + optional fixed32 data_center_id = 1; + optional uint32 flags = 2; + optional uint32 penalty = 3; + } + + message AltAddress { + enum Protocol { + DefaultProtocol = 0; + } + + optional fixed32 ipv4 = 1; + optional uint32 port = 2; + optional uint32 penalty = 3; + optional .CMsgSteamDatagramRouterPingReply.AltAddress.Protocol protocol = 4 [default = DefaultProtocol]; + optional string id = 5; + } + + enum Flags { + FLAG_MAYBE_MORE_DATA_CENTERS = 1; + FLAG_MAYBE_MORE_ALT_ADDRESSES = 2; + } + + optional fixed32 client_timestamp = 1; + repeated fixed32 latency_datacenter_ids = 2 [packed = true]; + repeated uint32 latency_ping_ms = 3 [packed = true]; + repeated fixed32 latency_datacenter_ids_p2p = 14 [packed = true]; + repeated uint32 latency_ping_ms_p2p = 15 [packed = true]; + optional fixed32 your_public_ip = 4; + optional fixed32 your_public_port = 11; + optional fixed32 server_time = 5; + optional fixed64 challenge = 6; + optional uint32 seconds_until_shutdown = 7; + optional fixed32 client_cookie = 8; + optional uint32 recv_tos = 16; + optional uint32 echo_sent_tos = 17; + optional uint32 sent_tos = 18; + optional uint32 echo_request_reply_tos = 19; + optional uint32 scoring_penalty_relay_cluster = 9; + optional uint32 flags = 12; + repeated .CMsgSteamDatagramRouterPingReply.RouteException route_exceptions = 10; + repeated .CMsgSteamDatagramRouterPingReply.AltAddress alt_addresses = 13; + optional bytes dummy_pad = 99; + optional uint64 dummy_varint = 100; +} + +message CMsgSteamDatagramGameserverPingRequestBody { + optional fixed32 relay_popid = 1; + optional .CMsgSteamNetworkingIPAddress your_public_ip = 2; + optional uint32 your_public_port = 3; + optional uint64 relay_unix_time = 4; + optional fixed64 routing_secret = 5; + repeated .CMsgSteamNetworkingIPAddress my_ips = 6; + optional bytes echo = 8; +} + +message CMsgSteamDatagramGameserverPingRequestEnvelope { + optional .CMsgSteamDatagramCertificateSigned cert = 6; + optional bytes signed_data = 7; + optional bytes signature = 8; + optional fixed32 legacy_your_public_ip = 1; + optional fixed32 legacy_your_public_port = 5; + optional fixed32 legacy_relay_unix_time = 2; + optional fixed64 legacy_challenge = 3; + optional fixed32 legacy_router_timestamp = 4; + optional bytes dummy_pad = 1023; +} + +message CMsgSteamDatagramGameserverPingReplyData { + optional fixed32 echo_relay_unix_time = 2; + optional bytes echo = 8; + optional fixed64 legacy_challenge = 3; + optional fixed32 legacy_router_timestamp = 4; + optional fixed32 data_center_id = 5; + optional uint32 appid = 6; + optional uint32 protocol_version = 7; + optional string build = 9; + optional uint64 network_config_version = 10; + optional fixed32 my_unix_time = 11; + optional bytes routing_blob = 12; +} + +message CMsgSteamDatagramNoSessionRelayToClient { + optional fixed32 connection_id = 7; + optional fixed32 your_public_ip = 2; + optional fixed32 your_public_port = 6; + optional fixed32 server_time = 3; + optional fixed64 challenge = 4; + optional uint32 seconds_until_shutdown = 5; +} + +message CMsgSteamDatagramNoSessionRelayToPeer { + optional uint32 legacy_relay_session_id = 1; + optional fixed32 from_relay_session_id = 2; + optional fixed32 from_connection_id = 7; + optional fixed64 kludge_pad = 99; +} + +message CMsgTOSTreatment { + optional string l4s_detect = 1; + optional string up_ecn1 = 2; + optional string down_dscp45 = 3; +} + +message CMsgSteamDatagramClientPingSampleRequest { + optional fixed32 connection_id = 1; +} + +message CMsgSteamDatagramClientPingSampleReply { + message POP { + message AltAddress { + optional string id = 1; + optional uint32 front_ping_ms = 2; + optional uint32 penalty = 3; + } + + optional fixed32 pop_id = 1; + optional uint32 default_front_ping_ms = 2; + optional uint32 cluster_penalty = 4; + repeated .CMsgSteamDatagramClientPingSampleReply.POP.AltAddress alt_addresses = 7; + optional uint32 default_e2e_ping_ms = 3; + optional uint32 default_e2e_score = 5; + optional fixed32 p2p_via_peer_relay_pop_id = 6; + optional uint32 best_dc_ping_ms = 9; + optional uint32 best_dc_score = 10; + optional fixed32 best_dc_via_relay_pop_id = 11; + optional uint32 default_dc_ping_ms = 12; + optional uint32 default_dc_score = 13; + optional fixed32 default_dc_via_relay_pop_id = 14; + optional uint32 test_dc_ping_ms = 15; + optional uint32 test_dc_score = 16; + optional fixed32 test_dc_via_relay_pop_id = 17; + } + + message LegacyDataCenter { + optional fixed32 data_center_id = 1; + optional fixed32 best_dc_via_relay_pop_id = 2; + optional uint32 best_dc_ping_ms = 3; + } + + optional fixed32 connection_id = 1; + optional bool relay_override_active = 5; + optional .CMsgTOSTreatment tos = 6; + repeated .CMsgSteamDatagramClientPingSampleReply.POP pops = 2; + repeated .CMsgSteamDatagramClientPingSampleReply.LegacyDataCenter legacy_data_centers = 3; +} + +message CMsgSteamDatagramClientSwitchedPrimary { + message RouterQuality { + optional uint32 score = 1; + optional uint32 front_ping = 2; + optional uint32 back_ping = 3; + optional uint32 seconds_until_down = 4; + } + + optional fixed32 connection_id = 1; + optional fixed32 from_ip = 2; + optional uint32 from_port = 3; + optional fixed32 from_router_cluster = 4; + optional uint32 from_active_time = 5; + optional uint32 from_active_packets_recv = 6; + optional string from_dropped_reason = 7; + optional uint32 gap_ms = 8; + optional .CMsgSteamDatagramClientSwitchedPrimary.RouterQuality from_quality_now = 9; + optional .CMsgSteamDatagramClientSwitchedPrimary.RouterQuality to_quality_now = 10; + optional .CMsgSteamDatagramClientSwitchedPrimary.RouterQuality from_quality_then = 11; + optional .CMsgSteamDatagramClientSwitchedPrimary.RouterQuality to_quality_then = 12; +} + +message CMsgSteamDatagramConnectRequest { + optional fixed32 connection_id = 1; + optional fixed64 my_timestamp = 4; + optional uint32 ping_est_ms = 5; + optional uint32 virtual_port = 9; + optional uint32 gameserver_relay_session_id = 2; + optional .CMsgSteamDatagramSessionCryptInfoSigned crypt = 6; + optional .CMsgSteamDatagramCertificateSigned cert = 7; + optional fixed64 routing_secret = 10; + optional fixed64 legacy_client_steam_id = 3; +} + +message CMsgSteamDatagramConnectOK { + optional fixed32 client_connection_id = 1; + optional fixed32 server_connection_id = 7; + optional fixed64 your_timestamp = 3; + optional uint32 delay_time_usec = 4; + optional uint32 gameserver_relay_session_id = 2; + optional .CMsgSteamDatagramSessionCryptInfoSigned crypt = 5; + optional .CMsgSteamDatagramCertificateSigned cert = 6; +} + +message CMsgSteamNetworkingP2PSDRRoutingSummary { + optional uint32 initial_ping = 1; + optional uint32 initial_ping_front_local = 2; + optional uint32 initial_ping_front_remote = 3; + optional uint32 initial_score = 4; + optional fixed32 initial_pop_local = 5; + optional fixed32 initial_pop_remote = 6; + optional uint32 best_ping = 11; + optional uint32 best_ping_front_local = 12; + optional uint32 best_ping_front_remote = 13; + optional uint32 best_score = 14; + optional fixed32 best_pop_local = 15; + optional fixed32 best_pop_remote = 16; + optional uint32 best_time = 17; + optional uint32 negotiation_ms = 7; + optional uint32 selected_seconds = 8; +} + +message CMsgSteamDatagramP2PRoutingSummary { + optional .CMsgSteamNetworkingICESessionSummary ice = 2; + optional .CMsgSteamNetworkingP2PSDRRoutingSummary sdr = 3; +} + +message CMsgSteamDatagramConnectionClosed { + enum ERelayMode { + None = 0; + EndToEnd = 1; + ClosedByPeer = 2; + } + + optional fixed32 to_connection_id = 7; + optional fixed32 from_connection_id = 8; + optional string from_identity_string = 15; + optional .CMsgSteamNetworkingIdentityLegacyBinary legacy_from_identity_binary = 13; + optional fixed64 legacy_from_steam_id = 3; + optional uint32 legacy_gameserver_relay_session_id = 2; + optional fixed32 to_relay_session_id = 9; + optional fixed32 from_relay_session_id = 10; + optional bytes forward_target_relay_routing_token = 11; + optional uint32 forward_target_revision = 12; + optional .CMsgSteamDatagramConnectionClosed.ERelayMode relay_mode = 4 [default = None]; + optional string debug = 5; + optional uint32 reason_code = 6; + optional fixed64 routing_secret = 14; + optional bool not_primary_session = 16; + optional bool not_primary_transport = 19; + optional bool relay_override_active = 22; + optional .CMsgSteamDatagramConnectionQuality quality_relay = 17; + optional .CMsgSteamDatagramConnectionQuality quality_e2e = 18; + optional .CMsgSteamDatagramP2PRoutingSummary p2p_routing_summary = 21; +} + +message CMsgSteamDatagramNoConnection { + optional fixed32 to_connection_id = 5; + optional fixed32 from_connection_id = 6; + optional uint32 legacy_gameserver_relay_session_id = 2; + optional fixed32 to_relay_session_id = 9; + optional fixed32 from_relay_session_id = 10; + optional string from_identity_string = 7; + optional fixed64 legacy_from_steam_id = 3; + optional bool end_to_end = 4; + optional bool not_primary_session = 12; + optional bool not_primary_transport = 15; + optional bool relay_override_active = 17; + optional .CMsgSteamDatagramConnectionQuality quality_relay = 13; + optional .CMsgSteamDatagramConnectionQuality quality_e2e = 14; + optional .CMsgSteamDatagramP2PRoutingSummary p2p_routing_summary = 16; + optional fixed64 routing_secret = 11; + optional fixed32 dummy_pad = 1023; +} + +message CMsgSteamDatagramGameserverSessionRequest { + optional bytes ticket = 1; + optional fixed32 challenge_time = 3; + optional fixed64 challenge = 4; + optional fixed32 client_connection_id = 5; + optional fixed32 server_connection_id = 8; + optional uint64 network_config_version = 6; + optional uint32 protocol_version = 7; + optional string platform = 9; + optional string build = 10; + optional string dev_gameserver_identity = 100; + optional .CMsgSteamDatagramCertificateSigned dev_client_cert = 101; +} + +message CMsgSteamDatagramGameserverSessionEstablished { + optional fixed32 connection_id = 1; + optional string gameserver_identity_string = 2; + optional uint32 seconds_until_shutdown = 4; + optional uint32 seq_num_r2c = 6; + optional bytes dummy_legacy_identity_binary = 7; + optional fixed64 legacy_gameserver_steamid = 3; +} + +message CMsgSteamDatagramConnectionStatsClientToRouter { + enum Flags { + ACK_REQUEST_RELAY = 1; + ACK_REQUEST_E2E = 2; + ACK_REQUEST_IMMEDIATE = 4; + NOT_PRIMARY_SESSION = 8; + CLIENT_RELAY_OVERRIDE = 32; + } + + optional .CMsgSteamDatagramConnectionQuality quality_relay = 1; + optional .CMsgSteamDatagramConnectionQuality quality_e2e = 2; + repeated fixed32 ack_relay = 4; + repeated fixed32 legacy_ack_e2e = 5; + optional uint32 flags = 6; + optional fixed32 client_connection_id = 8; + optional uint32 seq_num_c2r = 9; + optional uint32 seq_num_e2e = 10; +} + +message CMsgSteamDatagramConnectionStatsRouterToClient { + enum Flags { + ACK_REQUEST_RELAY = 1; + ACK_REQUEST_E2E = 2; + ACK_REQUEST_IMMEDIATE = 4; + } + + optional .CMsgSteamDatagramConnectionQuality quality_relay = 1; + optional .CMsgSteamDatagramConnectionQuality quality_e2e = 2; + optional uint32 seconds_until_shutdown = 6; + optional fixed32 migrate_request_ip = 10; + optional uint32 migrate_request_port = 11; + optional uint32 scoring_penalty_relay_cluster = 12; + repeated fixed32 ack_relay = 13; + repeated fixed32 legacy_ack_e2e = 14; + optional uint32 flags = 15; + optional fixed32 client_connection_id = 7; + optional uint32 seq_num_r2c = 8; + optional uint32 seq_num_e2e = 9; +} + +message CMsgSteamDatagramConnectionStatsRouterToServer { + enum Flags { + ACK_REQUEST_RELAY = 1; + ACK_REQUEST_E2E = 2; + ACK_REQUEST_IMMEDIATE = 4; + } + + optional .CMsgSteamDatagramConnectionQuality quality_relay = 1; + optional .CMsgSteamDatagramConnectionQuality quality_e2e = 2; + repeated fixed32 ack_relay = 10; + repeated fixed32 legacy_ack_e2e = 11; + optional uint32 flags = 12; + optional uint32 seq_num_r2s = 5; + optional uint32 seq_num_e2e = 6; + optional string client_identity_string = 15; + optional fixed64 legacy_client_steam_id = 7; + optional uint32 relay_session_id = 8; + optional fixed32 client_connection_id = 9; + optional fixed32 server_connection_id = 13; + optional fixed64 routing_secret = 14; +} + +message CMsgSteamDatagramConnectionStatsServerToRouter { + enum Flags { + ACK_REQUEST_RELAY = 1; + ACK_REQUEST_E2E = 2; + ACK_REQUEST_IMMEDIATE = 4; + } + + optional .CMsgSteamDatagramConnectionQuality quality_relay = 1; + optional .CMsgSteamDatagramConnectionQuality quality_e2e = 2; + repeated fixed32 ack_relay = 8; + repeated fixed32 legacy_ack_e2e = 9; + optional uint32 flags = 10; + optional uint32 seq_num_s2r = 3; + optional uint32 seq_num_e2e = 4; + optional uint32 relay_session_id = 6; + optional fixed32 client_connection_id = 7; + optional fixed32 server_connection_id = 11; +} + +message CMsgSteamDatagramP2PSessionRequestBody { + message EncryptedData { + optional string peer_identity_string = 1; + } + + optional fixed32 challenge_time = 1; + optional fixed64 challenge = 2; + optional fixed32 client_connection_id = 3; + optional fixed64 legacy_peer_steam_id = 4; + optional string peer_identity_string = 11; + optional fixed32 peer_connection_id = 5; + optional bytes encrypted_data = 14; + optional uint32 encryption_your_public_key_lead_byte = 15; + optional bytes encryption_my_ephemeral_public_key = 16; + optional uint32 protocol_version = 8; + optional uint64 network_config_version = 9; + optional string platform = 12; + optional string build = 13; +} + +message CMsgSteamDatagramP2PSessionRequest { + optional .CMsgSteamDatagramCertificateSigned cert = 1; + optional bytes body = 2; + optional bytes signature = 3; +} + +message CMsgSteamDatagramP2PSessionEstablished { + optional fixed32 connection_id = 1; + optional uint32 seconds_until_shutdown = 3; + optional bytes relay_routing_token = 4; + optional uint32 seq_num_r2c = 5; +} + +message CMsgSteamDatagramConnectionStatsP2PClientToRouter { + enum Flags { + ACK_REQUEST_RELAY = 1; + ACK_REQUEST_E2E = 2; + ACK_REQUEST_IMMEDIATE = 4; + NOT_PRIMARY_SESSION = 8; + NOT_PRIMARY_TRANSPORT_E2E = 16; + CLIENT_RELAY_OVERRIDE = 32; + } + + optional .CMsgSteamDatagramConnectionQuality quality_relay = 1; + optional .CMsgSteamDatagramConnectionQuality quality_e2e = 2; + optional .CMsgSteamDatagramP2PRoutingSummary p2p_routing_summary = 14; + repeated fixed32 ack_relay = 3; + repeated fixed32 legacy_ack_e2e = 4; + optional uint32 flags = 5; + optional bytes forward_target_relay_routing_token = 6; + optional uint32 forward_target_revision = 7; + optional bytes routes = 8; + optional uint32 ack_peer_routes_revision = 9; + optional fixed32 connection_id = 10; + optional uint32 seq_num_c2r = 11; + optional uint32 seq_num_e2e = 12; +} + +message CMsgSteamDatagramConnectionStatsP2PRouterToClient { + enum Flags { + ACK_REQUEST_RELAY = 1; + ACK_REQUEST_E2E = 2; + ACK_REQUEST_IMMEDIATE = 4; + NOT_PRIMARY_TRANSPORT_E2E = 16; + } + + optional .CMsgSteamDatagramConnectionQuality quality_relay = 1; + optional .CMsgSteamDatagramConnectionQuality quality_e2e = 2; + optional uint32 seconds_until_shutdown = 3; + optional fixed32 migrate_request_ip = 4; + optional uint32 migrate_request_port = 5; + optional uint32 scoring_penalty_relay_cluster = 6; + repeated fixed32 ack_relay = 7; + repeated fixed32 legacy_ack_e2e = 8; + optional uint32 flags = 9; + optional uint32 ack_forward_target_revision = 10; + optional bytes routes = 11; + optional uint32 ack_peer_routes_revision = 12; + optional fixed32 connection_id = 13; + optional uint32 seq_num_r2c = 14; + optional uint32 seq_num_e2e = 15; +} + +message CMsgSteamDatagramP2PBadRouteRouterToClient { + optional fixed32 connection_id = 1; + optional bytes failed_relay_routing_token = 2; + optional uint32 ack_forward_target_revision = 3; + optional fixed64 kludge_pad = 99; +} + +message CMsgSteamDatagramP2PRoutes { + message RelayCluster { + optional fixed32 pop_id = 1; + optional uint32 ping_ms = 2; + optional uint32 score_penalty = 3; + optional bytes session_relay_routing_token = 4; + } + + message Route { + optional fixed32 my_pop_id = 1; + optional fixed32 your_pop_id = 2; + optional uint32 legacy_score = 3; + optional uint32 interior_score = 4; + } + + repeated .CMsgSteamDatagramP2PRoutes.RelayCluster relay_clusters = 1; + repeated .CMsgSteamDatagramP2PRoutes.Route routes = 2; + optional uint32 revision = 3; +} + +message CMsgSteamDatagramSetSecondaryAddressRequest { + optional fixed32 client_main_ip = 1; + optional fixed32 client_main_port = 2; + optional fixed32 client_connection_id = 3; + optional string client_identity = 4; + optional bool request_send_duplication = 5; + optional bytes kludge_pad = 99; +} + +message CMsgSteamDatagramSetSecondaryAddressResult { + optional bool success = 1; + optional string message = 2; +} diff --git a/Protobufs/deadlock/steammessages.proto b/Protobufs/deadlock/steammessages.proto new file mode 100644 index 0000000..86272c2 --- /dev/null +++ b/Protobufs/deadlock/steammessages.proto @@ -0,0 +1,108 @@ +import "google/protobuf/descriptor.proto"; + +extend .google.protobuf.FieldOptions { + optional bool key_field = 60000 [default = false]; +} + +extend .google.protobuf.MessageOptions { + optional int32 msgpool_soft_limit = 60000 [default = 32]; + optional int32 msgpool_hard_limit = 60001 [default = 384]; +} + +enum EGCPlatform { + k_eGCPlatform_None = 0; + k_eGCPlatform_PC = 1; + k_eGCPlatform_Mac = 2; + k_eGCPlatform_Linux = 3; + k_eGCPlatform_Android = 4; + k_eGCPlatform_iOS = 5; +} + +enum GCProtoBufMsgSrc { + GCProtoBufMsgSrc_Unspecified = 0; + GCProtoBufMsgSrc_FromSystem = 1; + GCProtoBufMsgSrc_FromSteamID = 2; + GCProtoBufMsgSrc_FromGC = 3; + GCProtoBufMsgSrc_ReplySystem = 4; + GCProtoBufMsgSrc_SpoofedSteamID = 5; +} + +message CMsgProtoBufHeader { + option (msgpool_soft_limit) = 256; + option (msgpool_hard_limit) = 1024; + + optional fixed64 client_steam_id = 1; + optional int32 client_session_id = 2; + optional uint32 source_app_id = 3; + optional fixed64 job_id_source = 10 [default = 18446744073709551615]; + optional fixed64 job_id_target = 11 [default = 18446744073709551615]; + optional string target_job_name = 12; + optional int32 eresult = 13 [default = 2]; + optional string error_message = 14; + optional .GCProtoBufMsgSrc gc_msg_src = 200 [default = GCProtoBufMsgSrc_Unspecified]; + optional int32 gc_dir_index_source = 201 [default = -1]; +} + +message CGCSystemMsg_GetAccountDetails { + option (msgpool_soft_limit) = 128; + option (msgpool_hard_limit) = 512; + + optional fixed64 steamid = 1; + optional uint32 appid = 2; +} + +message CGCSystemMsg_GetAccountDetails_Response { + option (msgpool_soft_limit) = 128; + option (msgpool_hard_limit) = 512; + + optional uint32 eresult_deprecated = 1 [default = 2]; + optional string account_name = 2; + optional string persona_name = 3; + optional bool is_profile_created = 26; + optional bool is_profile_public = 4; + optional bool is_inventory_public = 5; + optional bool is_vac_banned = 7; + optional bool is_cyber_cafe = 8; + optional bool is_school_account = 9; + optional bool is_limited = 10; + optional bool is_subscribed = 11; + optional uint32 package = 12; + optional bool is_free_trial_account = 13; + optional uint32 free_trial_expiration = 14; + optional bool is_low_violence = 15; + optional bool is_account_locked_down = 16; + optional bool is_community_banned = 17; + optional bool is_trade_banned = 18; + optional uint32 trade_ban_expiration = 19; + optional uint32 accountid = 20; + optional uint32 suspension_end_time = 21; + optional string currency = 22; + optional uint32 steam_level = 23; + optional uint32 friend_count = 24; + optional uint32 account_creation_time = 25; + optional bool is_steamguard_enabled = 27; + optional bool is_phone_verified = 28; + optional bool is_two_factor_auth_enabled = 29; + optional uint32 two_factor_enabled_time = 30; + optional uint32 phone_verification_time = 31; + optional uint64 phone_id = 33; + optional bool is_phone_identifying = 34; + optional uint32 rt_identity_linked = 35; + optional uint32 rt_birth_date = 36; + optional string txn_country_code = 37; + optional bool has_accepted_china_ssa = 38; + optional bool is_banned_steam_china = 39; +} + +message CIPLocationInfo { + optional uint32 ip = 1; + optional float latitude = 2; + optional float longitude = 3; + optional string country = 4; + optional string state = 5; + optional string city = 6; +} + +message CGCMsgGetIPLocationResponse { + repeated .CIPLocationInfo infos = 1; +} diff --git a/Protobufs/deadlock/steammessages_base.proto b/Protobufs/deadlock/steammessages_base.proto new file mode 100644 index 0000000..d558826 --- /dev/null +++ b/Protobufs/deadlock/steammessages_base.proto @@ -0,0 +1,301 @@ +import "google/protobuf/descriptor.proto"; + +option optimize_for = SPEED; +option cc_generic_services = true; +option (force_php_generation) = true; + +extend .google.protobuf.MessageOptions { + optional int32 msgpool_soft_limit = 50000 [default = 32]; + optional int32 msgpool_hard_limit = 50001 [default = 384]; +} + +extend .google.protobuf.FileOptions { + optional bool force_php_generation = 50000 [default = false]; +} + +extend .google.protobuf.FieldOptions { + optional bool php_output_always_number = 50020 [default = false]; + optional bool allow_field_named_steam_id = 50024 [default = false]; +} + +enum EBanContentCheckResult { + k_EBanContentCheckResult_NotScanned = 0; + k_EBanContentCheckResult_Reset = 1; + k_EBanContentCheckResult_NeedsChecking = 2; + k_EBanContentCheckResult_VeryUnlikely = 5; + k_EBanContentCheckResult_Unlikely = 30; + k_EBanContentCheckResult_Possible = 50; + k_EBanContentCheckResult_Likely = 75; + k_EBanContentCheckResult_VeryLikely = 100; +} + +enum EProtoClanEventType { + k_EClanOtherEvent = 1; + k_EClanGameEvent = 2; + k_EClanPartyEvent = 3; + k_EClanMeetingEvent = 4; + k_EClanSpecialCauseEvent = 5; + k_EClanMusicAndArtsEvent = 6; + k_EClanSportsEvent = 7; + k_EClanTripEvent = 8; + k_EClanChatEvent = 9; + k_EClanGameReleaseEvent = 10; + k_EClanBroadcastEvent = 11; + k_EClanSmallUpdateEvent = 12; + k_EClanPreAnnounceMajorUpdateEvent = 13; + k_EClanMajorUpdateEvent = 14; + k_EClanDLCReleaseEvent = 15; + k_EClanFutureReleaseEvent = 16; + k_EClanESportTournamentStreamEvent = 17; + k_EClanDevStreamEvent = 18; + k_EClanFamousStreamEvent = 19; + k_EClanGameSalesEvent = 20; + k_EClanGameItemSalesEvent = 21; + k_EClanInGameBonusXPEvent = 22; + k_EClanInGameLootEvent = 23; + k_EClanInGamePerksEvent = 24; + k_EClanInGameChallengeEvent = 25; + k_EClanInGameContestEvent = 26; + k_EClanIRLEvent = 27; + k_EClanNewsEvent = 28; + k_EClanBetaReleaseEvent = 29; + k_EClanInGameContentReleaseEvent = 30; + k_EClanFreeTrial = 31; + k_EClanSeasonRelease = 32; + k_EClanSeasonUpdate = 33; + k_EClanCrosspostEvent = 34; + k_EClanInGameEventGeneral = 35; +} + +enum PartnerEventNotificationType { + k_EEventStart = 0; + k_EEventBroadcastStart = 1; + k_EEventMatchStart = 2; + k_EEventPartnerMaxType = 3; +} + +message CMsgIPAddress { + oneof ip { + fixed32 v4 = 1; + bytes v6 = 2; + } +} + +message CMsgIPAddressBucket { + optional .CMsgIPAddress original_ip_address = 1; + optional fixed64 bucket = 2; +} + +message CMsgProtoBufHeader { + optional fixed64 steamid = 1; + optional int32 client_sessionid = 2; + optional uint32 routing_appid = 3; + optional fixed64 jobid_source = 10 [default = 18446744073709551615]; + optional fixed64 jobid_target = 11 [default = 18446744073709551615]; + optional string target_job_name = 12; + optional int32 seq_num = 24; + optional int32 eresult = 13 [default = 2]; + optional string error_message = 14; + optional uint32 auth_account_flags = 16; + optional uint32 token_source = 22; + optional bool admin_spoofing_user = 23; + optional int32 transport_error = 17 [default = 1]; + optional uint64 messageid = 18 [default = 18446744073709551615]; + optional uint32 publisher_group_id = 19; + optional uint32 sysid = 20; + optional uint64 trace_tag = 21; + optional uint32 webapi_key_id = 25; + optional bool is_from_external_source = 26; + repeated uint32 forward_to_sysid = 27; + optional uint32 cm_sysid = 28; + optional uint32 launcher_type = 31 [default = 0]; + optional uint32 realm = 32 [default = 0]; + optional int32 timeout_ms = 33 [default = -1]; + optional string debug_source = 34; + + oneof ip_addr { + uint32 ip = 15; + bytes ip_v6 = 29; + } +} + +message CMsgMulti { + optional uint32 size_unzipped = 1; + optional bytes message_body = 2; +} + +message CMsgProtobufWrapped { + optional bytes message_body = 1; +} + +message CMsgAuthTicket { + optional uint32 estate = 1; + optional uint32 eresult = 2 [default = 2]; + optional fixed64 steamid = 3; + optional fixed64 gameid = 4; + optional uint32 h_steam_pipe = 5; + optional uint32 ticket_crc = 6; + optional bytes ticket = 7; +} + +message CCDDBAppDetailCommon { + optional uint32 appid = 1; + optional string name = 2; + optional string icon = 3; + optional bool tool = 6; + optional bool demo = 7; + optional bool media = 8; + optional bool community_visible_stats = 9; + optional string friendly_name = 10; + optional string propagation = 11; + optional bool has_adult_content = 12; + optional bool is_visible_in_steam_china = 13; + optional uint32 app_type = 14; +} + +message CMsgAppRights { + optional bool edit_info = 1; + optional bool publish = 2; + optional bool view_error_data = 3; + optional bool download = 4; + optional bool upload_cdkeys = 5; + optional bool generate_cdkeys = 6; + optional bool view_financials = 7; + optional bool manage_ceg = 8; + optional bool manage_signing = 9; + optional bool manage_cdkeys = 10; + optional bool edit_marketing = 11; + optional bool economy_support = 12; + optional bool economy_support_supervisor = 13; + optional bool manage_pricing = 14; + optional bool broadcast_live = 15; + optional bool view_marketing_traffic = 16; + optional bool edit_store_display_content = 17; +} + +message CCuratorPreferences { + optional uint32 supported_languages = 1; + optional bool platform_windows = 2; + optional bool platform_mac = 3; + optional bool platform_linux = 4; + optional bool vr_content = 5; + optional bool adult_content_violence = 6; + optional bool adult_content_sex = 7; + optional uint32 timestamp_updated = 8; + repeated uint32 tagids_curated = 9; + repeated uint32 tagids_filtered = 10; + optional string website_title = 11; + optional string website_url = 12; + optional string discussion_url = 13; + optional bool show_broadcast = 14; +} + +message CLocalizationToken { + optional uint32 language = 1; + optional string localized_string = 2; +} + +message CClanEventUserNewsTuple { + optional uint32 clanid = 1; + optional fixed64 event_gid = 2; + optional fixed64 announcement_gid = 3; + optional uint32 rtime_start = 4; + optional uint32 rtime_end = 5; + optional uint32 priority_score = 6; + optional uint32 type = 7; + optional uint32 clamp_range_slot = 8; + optional uint32 appid = 9; + optional uint32 rtime32_last_modified = 10; +} + +message CClanMatchEventByRange { + optional uint32 rtime_before = 1; + optional uint32 rtime_after = 2; + optional uint32 qualified = 3; + repeated .CClanEventUserNewsTuple events = 4; +} + +message CCommunity_ClanAnnouncementInfo { + optional uint64 gid = 1; + optional uint64 clanid = 2; + optional uint64 posterid = 3; + optional string headline = 4; + optional uint32 posttime = 5; + optional uint32 updatetime = 6; + optional string body = 7; + optional int32 commentcount = 8; + repeated string tags = 9; + optional int32 language = 10; + optional bool hidden = 11; + optional fixed64 forum_topic_id = 12; + optional fixed64 event_gid = 13; + optional int32 voteupcount = 14; + optional int32 votedowncount = 15; + optional .EBanContentCheckResult ban_check_result = 16 [default = k_EBanContentCheckResult_NotScanned]; +} + +message CClanEventData { + optional fixed64 gid = 1; + optional fixed64 clan_steamid = 2; + optional string event_name = 3; + optional .EProtoClanEventType event_type = 4 [default = k_EClanOtherEvent]; + optional uint32 appid = 5; + optional string server_address = 6; + optional string server_password = 7; + optional uint32 rtime32_start_time = 8; + optional uint32 rtime32_end_time = 9; + optional int32 comment_count = 10; + optional fixed64 creator_steamid = 11; + optional fixed64 last_update_steamid = 12; + optional string event_notes = 13; + optional string jsondata = 14; + optional .CCommunity_ClanAnnouncementInfo announcement_body = 15; + optional bool published = 16; + optional bool hidden = 17; + optional uint32 rtime32_visibility_start = 18; + optional uint32 rtime32_visibility_end = 19; + optional uint32 broadcaster_accountid = 20; + optional uint32 follower_count = 21; + optional uint32 ignore_count = 22; + optional fixed64 forum_topic_id = 23; + optional uint32 rtime32_last_modified = 24; + optional fixed64 news_post_gid = 25; + optional uint32 rtime_mod_reviewed = 26; + optional uint32 featured_app_tagid = 27; + repeated uint32 referenced_appids = 28; + optional uint32 build_id = 29; + optional string build_branch = 30; +} + +message CBilling_Address { + optional string first_name = 1; + optional string last_name = 2; + optional string address1 = 3; + optional string address2 = 4; + optional string city = 5; + optional string us_state = 6; + optional string country_code = 7; + optional string postcode = 8; + optional int32 zip_plus4 = 9; + optional string phone = 10; +} + +message CPackageReservationStatus { + optional uint32 packageid = 1; + optional int32 reservation_state = 2; + optional int32 queue_position = 3; + optional int32 total_queue_size = 4; + optional string reservation_country_code = 5; + optional bool expired = 6; + optional uint32 time_expires = 7; + optional uint32 time_reserved = 8; +} + +message CMsgKeyValuePair { + optional string name = 1; + optional string value = 2; +} + +message CMsgKeyValueSet { + repeated .CMsgKeyValuePair pairs = 1; +} diff --git a/Protobufs/deadlock/steammessages_cloud.steamworkssdk.proto b/Protobufs/deadlock/steammessages_cloud.steamworkssdk.proto new file mode 100644 index 0000000..7e4e759 --- /dev/null +++ b/Protobufs/deadlock/steammessages_cloud.steamworkssdk.proto @@ -0,0 +1,68 @@ +import "steammessages_unified_base.steamworkssdk.proto"; + +message CCloud_GetUploadServerInfo_Request { + optional uint32 appid = 1 [(description) = "App ID to which a file will be uploaded to."]; +} + +message CCloud_GetUploadServerInfo_Response { + optional string server_url = 1; +} + +message CCloud_GetFileDetails_Request { + optional uint64 ugcid = 1 [(description) = "ID of the Cloud file to get details for."]; + optional uint32 appid = 2 [(description) = "App ID the file belongs to."]; +} + +message CCloud_UserFile { + optional uint32 appid = 1; + optional uint64 ugcid = 2; + optional string filename = 3; + optional uint64 timestamp = 4; + optional uint32 file_size = 5; + optional string url = 6; + optional fixed64 steamid_creator = 7; +} + +message CCloud_GetFileDetails_Response { + optional .CCloud_UserFile details = 1; +} + +message CCloud_EnumerateUserFiles_Request { + optional uint32 appid = 1 [(description) = "App ID to enumerate the files of."]; + optional bool extended_details = 2 [(description) = "(Optional) Get extended details back on the files found. Defaults to only returned the app Id and UGC Id of the files found."]; + optional uint32 count = 3 [(description) = "(Optional) Maximum number of results to return on this call. Defaults to a maximum of 500 files returned."]; + optional uint32 start_index = 4 [(description) = "(Optional) Starting index to begin enumeration at. Defaults to the beginning of the list."]; +} + +message CCloud_EnumerateUserFiles_Response { + repeated .CCloud_UserFile files = 1; + optional uint32 total_files = 2; +} + +message CCloud_Delete_Request { + optional string filename = 1; + optional uint32 appid = 2 [(description) = "App ID the file belongs to."]; +} + +message CCloud_Delete_Response { +} + +service Cloud { + option (service_description) = "A service for Steam Cloud operations."; + + rpc GetUploadServerInfo (.CCloud_GetUploadServerInfo_Request) returns (.CCloud_GetUploadServerInfo_Response) { + option (method_description) = "Returns the URL of the proper cloud server for a user."; + } + + rpc GetFileDetails (.CCloud_GetFileDetails_Request) returns (.CCloud_GetFileDetails_Response) { + option (method_description) = "Returns details on a Cloud file."; + } + + rpc EnumerateUserFiles (.CCloud_EnumerateUserFiles_Request) returns (.CCloud_EnumerateUserFiles_Response) { + option (method_description) = "Enumerates Cloud files for a user of a given app ID. Returns up to 500 files at a time."; + } + + rpc Delete (.CCloud_Delete_Request) returns (.CCloud_Delete_Response) { + option (method_description) = "Deletes a file from the user's cloud."; + } +} diff --git a/Protobufs/deadlock/steammessages_gamenetworkingui.proto b/Protobufs/deadlock/steammessages_gamenetworkingui.proto new file mode 100644 index 0000000..e6b7029 --- /dev/null +++ b/Protobufs/deadlock/steammessages_gamenetworkingui.proto @@ -0,0 +1,61 @@ +import "steamnetworkingsockets_messages.proto"; +import "steamdatagram_messages_sdr.proto"; + +option optimize_for = SPEED; +option cc_generic_services = true; + +message CGameNetworkingUI_GlobalState { +} + +message CGameNetworkingUI_ConnectionState { + optional string connection_key = 1; + optional uint32 appid = 2; + optional fixed32 connection_id_local = 3; + optional string identity_local = 4; + optional string identity_remote = 5; + optional uint32 connection_state = 10; + optional uint32 start_time = 12; + optional uint32 close_time = 13; + optional uint32 close_reason = 14; + optional string close_message = 15; + optional string status_loc_token = 16; + optional uint32 transport_kind = 20; + optional string sdrpopid_local = 21; + optional string sdrpopid_remote = 22; + optional string address_remote = 23; + optional .CMsgSteamDatagramP2PRoutingSummary p2p_routing = 24; + optional uint32 ping_interior = 25; + optional uint32 ping_remote_front = 26; + optional uint32 ping_default_internet_route = 27; + optional .CMsgSteamDatagramConnectionQuality e2e_quality_local = 30; + optional .CMsgSteamDatagramConnectionQuality e2e_quality_remote = 31; + optional uint64 e2e_quality_remote_instantaneous_time = 32; + optional uint64 e2e_quality_remote_lifetime_time = 33; + optional .CMsgSteamDatagramConnectionQuality front_quality_local = 40; + optional .CMsgSteamDatagramConnectionQuality front_quality_remote = 41; + optional uint64 front_quality_remote_instantaneous_time = 42; + optional uint64 front_quality_remote_lifetime_time = 43; +} + +message CGameNetworkingUI_Message { + repeated .CGameNetworkingUI_ConnectionState connection_state = 1; +} + +message CGameNetworkingUI_ConnectionSummary { + optional uint32 transport_kind = 1; + optional uint32 connection_state = 8; + optional string sdrpop_local = 2; + optional string sdrpop_remote = 3; + optional uint32 ping_ms = 4; + optional float packet_loss = 5; + optional uint32 ping_default_internet_route = 6; + optional bool ip_was_shared = 7; +} + +message CGameNetworkingUI_AppSummary { + optional uint32 appid = 1; + optional bool ip_was_shared_with_friend = 10; + optional bool ip_was_shared_with_nonfriend = 11; + optional uint32 active_connections = 20; + optional .CGameNetworkingUI_ConnectionSummary main_cxn = 30; +} diff --git a/Protobufs/deadlock/steammessages_helprequest.steamworkssdk.proto b/Protobufs/deadlock/steammessages_helprequest.steamworkssdk.proto new file mode 100644 index 0000000..bc9ec35 --- /dev/null +++ b/Protobufs/deadlock/steammessages_helprequest.steamworkssdk.proto @@ -0,0 +1,22 @@ +import "steammessages_unified_base.steamworkssdk.proto"; + +option cc_generic_services = true; + +message CHelpRequestLogs_UploadUserApplicationLog_Request { + optional uint32 appid = 1; + optional string log_type = 2; + optional string version_string = 3; + optional string log_contents = 4; +} + +message CHelpRequestLogs_UploadUserApplicationLog_Response { + optional uint64 id = 1; +} + +service HelpRequestLogs { + option (service_description) = "Service for dealing with user-submitted logs"; + + rpc UploadUserApplicationLog (.CHelpRequestLogs_UploadUserApplicationLog_Request) returns (.CHelpRequestLogs_UploadUserApplicationLog_Response) { + option (method_description) = "User uploading application logs"; + } +} diff --git a/Protobufs/deadlock/steammessages_int.proto b/Protobufs/deadlock/steammessages_int.proto new file mode 100644 index 0000000..35152e7 --- /dev/null +++ b/Protobufs/deadlock/steammessages_int.proto @@ -0,0 +1,484 @@ +import "steammessages.proto"; + +message CMsgWebAPIKey { + optional uint32 status = 1 [default = 255]; + optional uint32 account_id = 2 [default = 0]; + optional uint32 publisher_group_id = 3 [default = 0]; + optional uint32 key_id = 4; + optional string domain = 5; +} + +message CMsgHttpRequest { + message RequestHeader { + optional string name = 1; + optional string value = 2; + } + + message QueryParam { + optional string name = 1; + optional bytes value = 2; + } + + optional uint32 request_method = 1; + optional string hostname = 2; + optional string url = 3; + repeated .CMsgHttpRequest.RequestHeader headers = 4; + repeated .CMsgHttpRequest.QueryParam get_params = 5; + repeated .CMsgHttpRequest.QueryParam post_params = 6; + optional bytes body = 7; + optional uint32 absolute_timeout = 8; + optional bool use_https = 9; +} + +message CMsgWebAPIRequest { + optional string interface_name = 2; + optional string method_name = 3; + optional uint32 version = 4; + optional .CMsgWebAPIKey api_key = 5; + optional .CMsgHttpRequest request = 6; + optional uint32 routing_app_id = 7; +} + +message CMsgHttpResponse { + message ResponseHeader { + optional string name = 1; + optional string value = 2; + } + + optional uint32 status_code = 1; + repeated .CMsgHttpResponse.ResponseHeader headers = 2; + optional bytes body = 3; +} + +message CMsgAMFindAccounts { + optional uint32 search_type = 1; + optional string search_string = 2; +} + +message CMsgAMFindAccountsResponse { + repeated fixed64 steam_id = 1; +} + +message CMsgNotifyWatchdog { + optional uint32 source = 1; + optional uint32 alert_type = 2; + optional bool critical = 4; + optional uint32 time = 5; + optional uint32 appid = 6; + optional string text = 7; + optional string recipient = 12; +} + +message CMsgAMGetLicenses { + optional fixed64 steamid = 1; +} + +message CMsgPackageLicense { + optional uint32 package_id = 1; + optional uint32 time_created = 2; + optional uint32 owner_id = 3; +} + +message CMsgAMGetLicensesResponse { + repeated .CMsgPackageLicense license = 1; + optional uint32 result = 2; +} + +message CMsgGCGetCommandList { + optional uint32 app_id = 1; + optional string command_prefix = 2; +} + +message CMsgGCGetCommandListResponse { + repeated string command_name = 1; +} + +message CGCMsgMemCachedGet { + repeated string keys = 1; +} + +message CGCMsgMemCachedGetResponse { + message ValueTag { + optional bool found = 1; + optional bytes value = 2; + } + + repeated .CGCMsgMemCachedGetResponse.ValueTag values = 1; +} + +message CGCMsgMemCachedSet { + message KeyPair { + optional string name = 1; + optional bytes value = 2; + } + + repeated .CGCMsgMemCachedSet.KeyPair keys = 1; +} + +message CGCMsgMemCachedDelete { + repeated string keys = 1; +} + +message CGCMsgMemCachedStats { +} + +message CGCMsgMemCachedStatsResponse { + optional uint64 curr_connections = 1; + optional uint64 cmd_get = 2; + optional uint64 cmd_set = 3; + optional uint64 cmd_flush = 4; + optional uint64 get_hits = 5; + optional uint64 get_misses = 6; + optional uint64 delete_hits = 7; + optional uint64 delete_misses = 8; + optional uint64 bytes_read = 9; + optional uint64 bytes_written = 10; + optional uint64 limit_maxbytes = 11; + optional uint64 curr_items = 12; + optional uint64 evictions = 13; + optional uint64 bytes = 14; +} + +message CGCMsgSQLStats { + optional uint32 schema_catalog = 1; +} + +message CGCMsgSQLStatsResponse { + optional uint32 threads = 1; + optional uint32 threads_connected = 2; + optional uint32 threads_active = 3; + optional uint32 operations_submitted = 4; + optional uint32 prepared_statements_executed = 5; + optional uint32 non_prepared_statements_executed = 6; + optional uint32 deadlock_retries = 7; + optional uint32 operations_timed_out_in_queue = 8; + optional uint32 errors = 9; +} + +message CMsgAMAddFreeLicense { + optional fixed64 steamid = 1; + optional uint32 ip_public = 2; + optional uint32 packageid = 3; + optional string store_country_code = 4; +} + +message CMsgAMAddFreeLicenseResponse { + optional int32 eresult = 1 [default = 2]; + optional int32 purchase_result_detail = 2; + optional fixed64 transid = 3; +} + +message CGCMsgGetIPLocation { + repeated fixed32 ips = 1; +} + +message CGCMsgGetIPASN { + repeated fixed32 ips = 1; +} + +message CIPASNInfo { + optional fixed32 ip = 1; + optional uint32 asn = 2; +} + +message CGCMsgGetIPASNResponse { + repeated .CIPASNInfo infos = 1; +} + +message CMsgAMSendEmail { + message ReplacementToken { + optional string token_name = 1; + optional string token_value = 2; + } + + message PersonaNameReplacementToken { + optional fixed64 steamid = 1; + optional string token_name = 2; + } + + optional fixed64 steamid = 1; + optional uint32 email_msg_type = 2; + optional uint32 email_format = 3; + repeated .CMsgAMSendEmail.PersonaNameReplacementToken persona_name_tokens = 5; + optional uint32 source_gc = 6; + repeated .CMsgAMSendEmail.ReplacementToken tokens = 7; +} + +message CMsgAMSendEmailResponse { + optional uint32 eresult = 1 [default = 2]; +} + +message CMsgGCGetEmailTemplate { + optional uint32 app_id = 1; + optional uint32 email_msg_type = 2; + optional int32 email_lang = 3; + optional int32 email_format = 4; +} + +message CMsgGCGetEmailTemplateResponse { + optional uint32 eresult = 1 [default = 2]; + optional bool template_exists = 2; + optional string template = 3; +} + +message CMsgAMGrantGuestPasses2 { + optional fixed64 steam_id = 1; + optional uint32 package_id = 2; + optional int32 passes_to_grant = 3; + optional int32 days_to_expiration = 4; + optional int32 action = 5; +} + +message CMsgAMGrantGuestPasses2Response { + optional int32 eresult = 1 [default = 2]; + optional int32 passes_granted = 2 [default = 0]; +} + +message CMsgGCGetPersonaNames { + repeated fixed64 steamids = 1; +} + +message CMsgGCGetPersonaNames_Response { + message PersonaName { + optional fixed64 steamid = 1; + optional string persona_name = 2; + } + + repeated .CMsgGCGetPersonaNames_Response.PersonaName succeeded_lookups = 1; + repeated fixed64 failed_lookup_steamids = 2; +} + +message CMsgGCCheckFriendship { + optional fixed64 steamid_left = 1; + optional fixed64 steamid_right = 2; +} + +message CMsgGCCheckFriendship_Response { + optional bool success = 1; + optional bool found_friendship = 2; +} + +message CMsgGCGetAppFriendsList { + optional fixed64 steamid = 1; + optional bool include_friendship_timestamps = 2; + optional bool include_friends_with_no_play_time = 3; +} + +message CMsgGCGetAppFriendsList_Response { + optional bool success = 1; + repeated fixed64 steamids = 2; + repeated fixed32 friendship_timestamps = 3; + repeated fixed32 last_playtimes = 4; +} + +message CMsgGCMsgMasterSetDirectory { + message SubGC { + optional int32 dir_index = 1 [default = -1]; + optional string name = 2; + optional string box = 3; + optional string command_line = 4; + optional string gc_binary = 5; + } + + optional int32 master_dir_index = 1 [default = -1]; + repeated .CMsgGCMsgMasterSetDirectory.SubGC dir = 2; +} + +message CMsgGCMsgMasterSetDirectory_Response { + optional int32 eresult = 1 [default = 2]; + optional string message = 2; +} + +message CMsgGCMsgWebAPIJobRequestForwardResponse { + optional int32 dir_index = 1 [default = -1]; +} + +message CGCSystemMsg_GetPurchaseTrust_Request { + optional fixed64 steamid = 1; +} + +message CGCSystemMsg_GetPurchaseTrust_Response { + optional bool has_prior_purchase_history = 1; + optional bool has_no_recent_password_resets = 2; + optional bool is_wallet_cash_trusted = 3; + optional uint32 time_all_trusted = 4; +} + +message CMsgGCHAccountVacStatusChange { + optional fixed64 steam_id = 1; + optional uint32 app_id = 2; + optional uint32 rtime_vacban_starts = 3; + optional bool is_banned_now = 4; + optional bool is_banned_future = 5; +} + +message CMsgGCRoutingInfo { + enum RoutingMethod { + RANDOM = 0; + DISCARD = 1; + CLIENT_STEAMID = 2; + PROTOBUF_FIELD_UINT64 = 3; + WEBAPI_PARAM = 4; + WEBAPI_PARAM_STEAMID_ACCOUNTID = 5; + } + + repeated int32 dir_index = 1; + optional .CMsgGCRoutingInfo.RoutingMethod method = 2 [default = RANDOM]; + optional .CMsgGCRoutingInfo.RoutingMethod fallback = 3 [default = DISCARD]; + optional uint32 protobuf_field = 4; + optional string webapi_param = 5; +} + +message CMsgGCMsgMasterSetWebAPIRouting { + message Entry { + optional string interface_name = 1; + optional string method_name = 2; + optional .CMsgGCRoutingInfo routing = 3; + } + + repeated .CMsgGCMsgMasterSetWebAPIRouting.Entry entries = 1; +} + +message CMsgGCMsgMasterSetClientMsgRouting { + message Entry { + optional uint32 msg_type = 1; + optional .CMsgGCRoutingInfo routing = 2; + } + + repeated .CMsgGCMsgMasterSetClientMsgRouting.Entry entries = 1; +} + +message CMsgGCMsgMasterSetWebAPIRouting_Response { + optional int32 eresult = 1 [default = 2]; +} + +message CMsgGCMsgMasterSetClientMsgRouting_Response { + optional int32 eresult = 1 [default = 2]; +} + +message CMsgGCMsgSetOptions { + message MessageRange { + required uint32 low = 1; + required uint32 high = 2; + } + + enum Option { + NOTIFY_USER_SESSIONS = 0; + NOTIFY_SERVER_SESSIONS = 1; + NOTIFY_ACHIEVEMENTS = 2; + NOTIFY_VAC_ACTION = 3; + } + + enum GCSQLVersion { + GCSQL_VERSION_BASELINE = 1; + GCSQL_VERSION_BOOLTYPE = 2; + } + + repeated .CMsgGCMsgSetOptions.Option options = 1; + repeated .CMsgGCMsgSetOptions.MessageRange client_msg_ranges = 2; + optional .CMsgGCMsgSetOptions.GCSQLVersion gcsql_version = 3 [default = GCSQL_VERSION_BASELINE]; +} + +message CMsgGCHUpdateSession { + message ExtraField { + optional string name = 1; + optional string value = 2; + } + + optional fixed64 steam_id = 1; + optional uint32 app_id = 2; + optional bool online = 3; + optional fixed64 server_steam_id = 4; + optional uint32 server_addr = 5; + optional uint32 server_port = 6; + optional uint32 os_type = 7; + optional uint32 client_addr = 8; + repeated .CMsgGCHUpdateSession.ExtraField extra_fields = 9; +} + +message CMsgNotificationOfSuspiciousActivity { + message MultipleGameInstances { + optional uint32 app_instance_count = 1; + repeated fixed64 other_steamids = 2; + } + + optional fixed64 steamid = 1; + optional uint32 appid = 2; + optional .CMsgNotificationOfSuspiciousActivity.MultipleGameInstances multiple_instances = 3; +} + +message CMsgGCHVacVerificationChange { + optional fixed64 steamid = 1; + optional uint32 appid = 2; + optional bool is_verified = 3; +} + +message CMsgGCCheckClanMembership { + optional fixed64 steamid = 1; + optional uint32 clanid = 2; +} + +message CMsgGCCheckClanMembership_Response { + optional bool ismember = 1; +} + +message CMsgGCHAppCheersReceived { + message CheerTypeAmount { + optional uint32 cheer_type = 1; + optional uint32 cheer_amount = 2; + } + + message CheerTarget { + optional uint64 cheer_target = 1; + repeated .CMsgGCHAppCheersReceived.CheerTypeAmount cheer_types = 2; + } + + optional uint32 appid = 1; + repeated .CMsgGCHAppCheersReceived.CheerTarget cheer_targets = 2; +} + +message CMsgGCHAppCheersGetAllowedTypes { + optional uint32 appid = 1; + optional uint64 cheer_target = 2; +} + +message CMsgGCHAppCheersGetAllowedTypesResponse { + message CheerRemaps { + optional uint32 original_cheer_type = 1; + optional uint32 remapped_cheer_type = 2; + repeated uint32 account_ids = 3; + } + + repeated uint32 cheer_types_valid_all_users = 1; + repeated .CMsgGCHAppCheersGetAllowedTypesResponse.CheerRemaps cheer_remaps = 2; + optional uint32 cache_duration = 3; +} + +message CWorkshop_AddSpecialPayment_Request { + optional uint32 appid = 1; + optional uint32 gameitemid = 2; + optional string date = 3; + optional uint64 payment_us_usd = 4; + optional uint64 payment_row_usd = 5; +} + +message CWorkshop_AddSpecialPayment_Response { +} + +message CWorkshop_GetSpecialPayments_Request { + optional uint32 appid = 1; + optional uint32 gameitemid = 2; + optional string date = 3; +} + +message CWorkshop_GetSpecialPayments_Response { + message SpecialPayment { + optional uint32 appid = 1; + optional uint32 gameitemid = 2; + optional string date = 3; + optional uint64 net_payment_us_usd = 4; + optional uint64 net_payment_row_usd = 5; + } + + repeated .CWorkshop_GetSpecialPayments_Response.SpecialPayment special_payments = 1; +} diff --git a/Protobufs/deadlock/steammessages_oauth.steamworkssdk.proto b/Protobufs/deadlock/steammessages_oauth.steamworkssdk.proto new file mode 100644 index 0000000..ee6449d --- /dev/null +++ b/Protobufs/deadlock/steammessages_oauth.steamworkssdk.proto @@ -0,0 +1,18 @@ +import "steammessages_unified_base.steamworkssdk.proto"; + +message COAuthToken_ImplicitGrantNoPrompt_Request { + optional string clientid = 1 [(description) = "Client ID for which to count the number of issued tokens"]; +} + +message COAuthToken_ImplicitGrantNoPrompt_Response { + optional string access_token = 1 [(description) = "OAuth Token, granted on success"]; + optional string redirect_uri = 2 [(description) = "Redirection URI provided during client registration."]; +} + +service OAuthToken { + option (service_description) = "Service containing methods to manage OAuth tokens"; + + rpc ImplicitGrantNoPrompt (.COAuthToken_ImplicitGrantNoPrompt_Request) returns (.COAuthToken_ImplicitGrantNoPrompt_Response) { + option (method_description) = "Grants an implicit OAuth token (grant type 'token') for the specified client ID on behalf of a user without prompting"; + } +} diff --git a/Protobufs/deadlock/steammessages_player.steamworkssdk.proto b/Protobufs/deadlock/steammessages_player.steamworkssdk.proto new file mode 100644 index 0000000..298c5dd --- /dev/null +++ b/Protobufs/deadlock/steammessages_player.steamworkssdk.proto @@ -0,0 +1,254 @@ +import "steammessages_unified_base.steamworkssdk.proto"; + +option cc_generic_services = true; + +enum ENotificationSetting { + k_ENotificationSettingNotifyUseDefault = 0; + k_ENotificationSettingAlways = 1; + k_ENotificationSettingNever = 2; +} + +message CPlayer_GetMutualFriendsForIncomingInvites_Request { +} + +message CPlayer_IncomingInviteMutualFriendList { + optional fixed64 steamid = 1; + repeated uint32 mutual_friend_account_ids = 2; +} + +message CPlayer_GetMutualFriendsForIncomingInvites_Response { + repeated .CPlayer_IncomingInviteMutualFriendList incoming_invite_mutual_friends_lists = 1; +} + +message CPlayer_GetFriendsGameplayInfo_Request { + optional uint32 appid = 1; +} + +message CPlayer_GetFriendsGameplayInfo_Response { + message FriendsGameplayInfo { + optional fixed64 steamid = 1; + optional uint32 minutes_played = 2; + optional uint32 minutes_played_forever = 3; + } + + message OwnGameplayInfo { + optional fixed64 steamid = 1; + optional uint32 minutes_played = 2; + optional uint32 minutes_played_forever = 3; + optional bool in_wishlist = 4; + optional bool owned = 5; + } + + optional .CPlayer_GetFriendsGameplayInfo_Response.OwnGameplayInfo your_info = 1; + repeated .CPlayer_GetFriendsGameplayInfo_Response.FriendsGameplayInfo in_game = 2; + repeated .CPlayer_GetFriendsGameplayInfo_Response.FriendsGameplayInfo played_recently = 3; + repeated .CPlayer_GetFriendsGameplayInfo_Response.FriendsGameplayInfo played_ever = 4; + repeated .CPlayer_GetFriendsGameplayInfo_Response.FriendsGameplayInfo owns = 5; + repeated .CPlayer_GetFriendsGameplayInfo_Response.FriendsGameplayInfo in_wishlist = 6; +} + +message CPlayer_GetGameBadgeLevels_Request { + optional uint32 appid = 1; +} + +message CPlayer_GetGameBadgeLevels_Response { + message Badge { + optional int32 level = 1; + optional int32 series = 2; + optional uint32 border_color = 3; + } + + optional uint32 player_level = 1; + repeated .CPlayer_GetGameBadgeLevels_Response.Badge badges = 2; +} + +message CPlayer_GetLastPlayedTimes_Request { + optional uint32 min_last_played = 1 [(description) = "The most recent last-played time the client already knows about"]; +} + +message CPlayer_GetLastPlayedTimes_Response { + message Game { + optional int32 appid = 1; + optional uint32 last_playtime = 2; + optional int32 playtime_2weeks = 3; + optional int32 playtime_forever = 4; + optional uint32 first_playtime = 5; + } + + repeated .CPlayer_GetLastPlayedTimes_Response.Game games = 1; +} + +message CPlayer_AcceptSSA_Request { +} + +message CPlayer_AcceptSSA_Response { +} + +message CPlayer_GetNicknameList_Request { +} + +message CPlayer_GetNicknameList_Response { + message PlayerNickname { + optional fixed32 accountid = 1; + optional string nickname = 2; + } + + repeated .CPlayer_GetNicknameList_Response.PlayerNickname nicknames = 1; +} + +message CPlayer_GetPerFriendPreferences_Request { +} + +message PerFriendPreferences { + optional fixed32 accountid = 1; + optional string nickname = 2; + optional .ENotificationSetting notifications_showingame = 3 [default = k_ENotificationSettingNotifyUseDefault]; + optional .ENotificationSetting notifications_showonline = 4 [default = k_ENotificationSettingNotifyUseDefault]; + optional .ENotificationSetting notifications_showmessages = 5 [default = k_ENotificationSettingNotifyUseDefault]; + optional .ENotificationSetting sounds_showingame = 6 [default = k_ENotificationSettingNotifyUseDefault]; + optional .ENotificationSetting sounds_showonline = 7 [default = k_ENotificationSettingNotifyUseDefault]; + optional .ENotificationSetting sounds_showmessages = 8 [default = k_ENotificationSettingNotifyUseDefault]; + optional .ENotificationSetting notifications_sendmobile = 9 [default = k_ENotificationSettingNotifyUseDefault]; +} + +message CPlayer_GetPerFriendPreferences_Response { + repeated .PerFriendPreferences preferences = 1; +} + +message CPlayer_SetPerFriendPreferences_Request { + optional .PerFriendPreferences preferences = 1; +} + +message CPlayer_SetPerFriendPreferences_Response { +} + +message CPlayer_AddFriend_Request { + optional fixed64 steamid = 1 [(description) = "Steam ID of user to whom to send a friend invite."]; +} + +message CPlayer_AddFriend_Response { + optional bool invite_sent = 1 [(description) = "True if the operation was successful, false otherwise."]; + optional uint32 friend_relationship = 2 [(description) = "the resulting relationship. Depending on state, may move directly to friends rather than invite sent"]; +} + +message CPlayer_RemoveFriend_Request { + optional fixed64 steamid = 1 [(description) = "Steam ID of friend to remove."]; +} + +message CPlayer_RemoveFriend_Response { + optional uint32 friend_relationship = 1 [(description) = "the resulting relationship"]; +} + +message CPlayer_IgnoreFriend_Request { + optional fixed64 steamid = 1; + optional bool unignore = 2 [(description) = "If set, remove from ignore/block list instead of adding "]; +} + +message CPlayer_IgnoreFriend_Response { + optional uint32 friend_relationship = 1 [(description) = "the resulting relationship"]; +} + +message CPlayer_GetCommunityPreferences_Request { +} + +message CPlayer_CommunityPreferences { + optional bool hide_adult_content_violence = 1 [default = true]; + optional bool hide_adult_content_sex = 2 [default = true]; + optional bool parenthesize_nicknames = 4 [default = false]; + optional uint32 timestamp_updated = 3; +} + +message CPlayer_GetCommunityPreferences_Response { + optional .CPlayer_CommunityPreferences preferences = 1; +} + +message CPlayer_SetCommunityPreferences_Request { + optional .CPlayer_CommunityPreferences preferences = 1; +} + +message CPlayer_SetCommunityPreferences_Response { +} + +message CPlayer_GetNewSteamAnnouncementState_Request { + optional int32 language = 1; +} + +message CPlayer_GetNewSteamAnnouncementState_Response { + optional int32 state = 1; + optional string announcement_headline = 2; + optional string announcement_url = 3; + optional uint32 time_posted = 4; + optional uint64 announcement_gid = 5; +} + +message CPlayer_UpdateSteamAnnouncementLastRead_Request { + optional uint64 announcement_gid = 1; + optional uint32 time_posted = 2; +} + +message CPlayer_UpdateSteamAnnouncementLastRead_Response { +} + +service Player { + option (service_description) = "A service for accessing Steam player data"; + + rpc GetMutualFriendsForIncomingInvites (.CPlayer_GetMutualFriendsForIncomingInvites_Request) returns (.CPlayer_GetMutualFriendsForIncomingInvites_Response) { + option (method_description) = "Get me the mutual friends for each of my pending incoming invites (individuals and clans)."; + } + + rpc GetFriendsGameplayInfo (.CPlayer_GetFriendsGameplayInfo_Request) returns (.CPlayer_GetFriendsGameplayInfo_Response) { + option (method_description) = "Get a list of friends who are playing, have played, own, or want a game"; + } + + rpc GetGameBadgeLevels (.CPlayer_GetGameBadgeLevels_Request) returns (.CPlayer_GetGameBadgeLevels_Response) { + option (method_description) = "Returns the Steam Level of a user, the Badge level for the game, and if it's foil"; + } + + rpc ClientGetLastPlayedTimes (.CPlayer_GetLastPlayedTimes_Request) returns (.CPlayer_GetLastPlayedTimes_Response) { + option (method_description) = "Gets the last-played times for the account"; + } + + rpc AcceptSSA (.CPlayer_AcceptSSA_Request) returns (.CPlayer_AcceptSSA_Response) { + option (method_description) = "User is accepting the SSA"; + } + + rpc GetNicknameList (.CPlayer_GetNicknameList_Request) returns (.CPlayer_GetNicknameList_Response) { + option (method_description) = "Gets the list of nicknames this user has for other users"; + } + + rpc GetPerFriendPreferences (.CPlayer_GetPerFriendPreferences_Request) returns (.CPlayer_GetPerFriendPreferences_Response) { + option (method_description) = "Gets the list of per-friend preferences this user has set for other users"; + } + + rpc SetPerFriendPreferences (.CPlayer_SetPerFriendPreferences_Request) returns (.CPlayer_SetPerFriendPreferences_Response) { + option (method_description) = "Sets the logged in user's per-friend preferences for the given user"; + } + + rpc AddFriend (.CPlayer_AddFriend_Request) returns (.CPlayer_AddFriend_Response) { + option (method_description) = "Invites another Steam user to be a friend"; + } + + rpc RemoveFriend (.CPlayer_RemoveFriend_Request) returns (.CPlayer_RemoveFriend_Response) { + option (method_description) = "Removes a friend or ignores a friend suggestion"; + } + + rpc IgnoreFriend (.CPlayer_IgnoreFriend_Request) returns (.CPlayer_IgnoreFriend_Response) { + option (method_description) = "Blocks or unblocks communication with the user. Despite name, can be a non-friend."; + } + + rpc GetCommunityPreferences (.CPlayer_GetCommunityPreferences_Request) returns (.CPlayer_GetCommunityPreferences_Response) { + option (method_description) = "Returns the player's community preferences"; + } + + rpc SetCommunityPreferences (.CPlayer_SetCommunityPreferences_Request) returns (.CPlayer_SetCommunityPreferences_Response) { + option (method_description) = "Sets the player's community preferences"; + } + + rpc GetNewSteamAnnouncementState (.CPlayer_GetNewSteamAnnouncementState_Request) returns (.CPlayer_GetNewSteamAnnouncementState_Response) { + option (method_description) = "Calculates and returns what to display for UI that renders new steam announcement available"; + } + + rpc UpdateSteamAnnouncementLastRead (.CPlayer_UpdateSteamAnnouncementLastRead_Request) returns (.CPlayer_UpdateSteamAnnouncementLastRead_Response) { + option (method_description) = "Marks latest announcement timestamp read by user"; + } +} diff --git a/Protobufs/deadlock/steammessages_publishedfile.steamworkssdk.proto b/Protobufs/deadlock/steammessages_publishedfile.steamworkssdk.proto new file mode 100644 index 0000000..96d60af --- /dev/null +++ b/Protobufs/deadlock/steammessages_publishedfile.steamworkssdk.proto @@ -0,0 +1,233 @@ +import "steammessages_unified_base.steamworkssdk.proto"; + +message CPublishedFile_Subscribe_Request { + optional uint64 publishedfileid = 1; + optional uint32 list_type = 2; + optional int32 appid = 3; + optional bool notify_client = 4; +} + +message CPublishedFile_Subscribe_Response { +} + +message CPublishedFile_Unsubscribe_Request { + optional uint64 publishedfileid = 1; + optional uint32 list_type = 2; + optional int32 appid = 3; + optional bool notify_client = 4; +} + +message CPublishedFile_Unsubscribe_Response { +} + +message CPublishedFile_Publish_Request { + optional uint32 appid = 1 [(description) = "App Id this file is being published FROM."]; + optional uint32 consumer_appid = 2 [(description) = "App Id this file is being published TO."]; + optional string cloudfilename = 3 [(description) = "Name of the file to publish in the user's cloud."]; + optional string preview_cloudfilename = 4 [(description) = "Name of the file to use as the published file's preview."]; + optional string title = 5 [(description) = "Text title for the published file."]; + optional string file_description = 6 [(description) = "Text description for the published file."]; + optional uint32 file_type = 7 [(description) = "(EWorkshopFileType) Type of Workshop file to publish."]; + optional string consumer_shortcut_name = 8 [(description) = "Shortcut name for the published file."]; + optional string youtube_username = 9 [(description) = "(Optional) User's YouTube account username."]; + optional string youtube_videoid = 10 [(description) = "(Optional) Video Id of a YouTube video for this published file."]; + optional uint32 visibility = 11 [(description) = "(ERemoteStoragePublishedFileVisibility) Visibility of the published file (private, friends, public, etc.)"]; + optional string redirect_uri = 12 [(description) = "(Optional) If supplied, the resulting published file's Id is appended to the URI."]; + repeated string tags = 13 [(description) = "Array of text tags to apply to the published file."]; + optional string collection_type = 14 [(description) = "(Optional) Type of collection the published file represents."]; + optional string game_type = 15 [(description) = "(Optional) Type of game the published file represents."]; + optional string url = 16 [(description) = "(Optional) If this represents a game, this is the URL to that game's page."]; +} + +message CPublishedFile_Publish_Response { + optional uint64 publishedfileid = 1; + optional string redirect_uri = 2; +} + +message CPublishedFile_GetDetails_Request { + repeated fixed64 publishedfileids = 1 [(description) = "Set of published file Ids to retrieve details for."]; + optional bool includetags = 2 [(description) = "If true, return tag information in the returned details."]; + optional bool includeadditionalpreviews = 3 [(description) = "If true, return preview information in the returned details."]; + optional bool includechildren = 4 [(description) = "If true, return children in the returned details."]; + optional bool includekvtags = 5 [(description) = "If true, return key value tags in the returned details."]; + optional bool includevotes = 6 [(description) = "If true, return vote data in the returned details."]; + optional bool short_description = 8 [(description) = "If true, return a short description instead of the full description."]; +} + +message PublishedFileDetails { + message Tag { + optional string tag = 1; + optional bool adminonly = 2; + } + + message Preview { + optional uint64 previewid = 1; + optional uint32 sortorder = 2; + optional string url = 3; + optional uint32 size = 4; + optional string filename = 5; + optional string youtubevideoid = 6; + } + + message Child { + optional uint64 publishedfileid = 1; + optional uint32 sortorder = 2; + optional uint32 file_type = 3; + } + + message KVTag { + optional string key = 1; + optional string value = 2; + } + + message VoteData { + optional float score = 1; + optional uint32 votes_up = 2; + optional uint32 votes_down = 3; + } + + optional uint32 result = 1; + optional uint64 publishedfileid = 2; + optional fixed64 creator = 3; + optional uint32 creator_appid = 4; + optional uint32 consumer_appid = 5; + optional uint32 consumer_shortcutid = 6; + optional string filename = 7; + optional uint64 file_size = 8; + optional uint64 preview_file_size = 9; + optional string file_url = 10; + optional string preview_url = 11; + optional string youtubevideoid = 12; + optional string url = 13; + optional fixed64 hcontent_file = 14; + optional fixed64 hcontent_preview = 15; + optional string title = 16; + optional string file_description = 17; + optional string short_description = 18; + optional uint32 time_created = 19; + optional uint32 time_updated = 20; + optional uint32 visibility = 21; + optional uint32 flags = 22; + optional bool workshop_file = 23; + optional bool workshop_accepted = 24; + optional bool show_subscribe_all = 25; + optional int32 num_comments_developer = 26; + optional int32 num_comments_public = 27; + optional bool banned = 28; + optional string ban_reason = 29; + optional fixed64 banner = 30; + optional bool can_be_deleted = 31; + optional bool incompatible = 32; + optional string app_name = 33; + optional uint32 file_type = 34; + optional bool can_subscribe = 35; + optional uint32 subscriptions = 36; + optional uint32 favorited = 37; + optional uint32 followers = 38; + optional uint32 lifetime_subscriptions = 39; + optional uint32 lifetime_favorited = 40; + optional uint32 lifetime_followers = 41; + optional uint32 views = 42; + optional uint32 image_width = 43; + optional uint32 image_height = 44; + optional string image_url = 45; + optional bool spoiler_tag = 46; + optional uint32 shortcutid = 47; + optional string shortcutname = 48; + optional uint32 num_children = 49; + optional uint32 num_reports = 50; + repeated .PublishedFileDetails.Preview previews = 51; + repeated .PublishedFileDetails.Tag tags = 52; + repeated .PublishedFileDetails.Child children = 53; + repeated .PublishedFileDetails.KVTag kvtags = 54; + optional .PublishedFileDetails.VoteData vote_data = 55; + optional uint32 time_subscribed = 56 [(description) = "Only valid in PublishedFile.GetUserFiles and not normal PublishedFile.GetDetail calls"]; +} + +message CPublishedFile_GetDetails_Response { + repeated .PublishedFileDetails publishedfiledetails = 1; +} + +message CPublishedFile_GetUserFiles_Request { + optional uint32 appid = 1 [(description) = "App Id to retrieve published files from."]; + optional uint32 page = 3 [default = 1, (description) = "(Optional) Starting page for results."]; + optional uint32 numperpage = 4 [default = 1, (description) = "(Optional) The number of results, per page to return."]; + optional string sortmethod = 6 [default = "lastupdated", (description) = "(Optional) Sorting method to use on returned values."]; + optional bool totalonly = 7 [(description) = "(Optional) If true, only return the total number of files that satisfy this query."]; + optional uint32 privacy = 9 [(description) = "(optional) Filter by privacy settings."]; + optional bool ids_only = 10 [(description) = "(Optional) If true, only return the published file ids of files that satisfy this query."]; + repeated string requiredtags = 11 [(description) = "(Optional) Tags that must be present on a published file to satisfy the query."]; + repeated string excludedtags = 12 [(description) = "(Optional) Tags that must NOT be present on a published file to satisfy the query."]; +} + +message CPublishedFile_GetUserFiles_Response { + message App { + optional uint32 appid = 1; + optional string name = 2; + optional uint32 shortcutid = 3; + optional bool private = 4; + } + + optional uint32 total = 1; + optional uint32 startindex = 2; + repeated .PublishedFileDetails publishedfiledetails = 3; + repeated .CPublishedFile_GetUserFiles_Response.App apps = 4; +} + +message CPublishedFile_Update_Request { + optional uint32 appid = 1 [(description) = "App Id this published file belongs to."]; + optional fixed64 publishedfileid = 2 [(description) = "Published file id of the file we'd like update."]; + optional string title = 3 [(description) = "(Optional) Title of the published file."]; + optional string file_description = 4 [(description) = "(Optional) Description of the published file."]; + optional uint32 visibility = 5 [(description) = "(Optional) Visibility of the published file."]; + repeated string tags = 6 [(description) = "(Optional) Set of tags for the published file."]; + optional string filename = 7 [(description) = "(Optional) Filename for the published file."]; + optional string preview_filename = 8 [(description) = "(Optional) Preview filename for the published file."]; +} + +message CPublishedFile_Update_Response { +} + +message CPublishedFile_RefreshVotingQueue_Request { + optional uint32 appid = 1; + optional uint32 matching_file_type = 2 [(description) = "EPublishedFileInfoMatchingFileType"]; + repeated string tags = 3 [(description) = "Include files that have all the tags or any of the tags if match_all_tags is set to false."]; + optional bool match_all_tags = 4 [default = true, (description) = "If true, then files must have all the tags specified. If false, then must have at least one of the tags specified."]; + repeated string excluded_tags = 5 [(description) = "Exclude any files that have any of these tags."]; + optional uint32 desired_queue_size = 6 [(description) = "Desired number of items in the voting queue. May be clamped by the server"]; +} + +message CPublishedFile_RefreshVotingQueue_Response { +} + +service PublishedFile { + option (service_description) = "A service to access published file data"; + + rpc Subscribe (.CPublishedFile_Subscribe_Request) returns (.CPublishedFile_Subscribe_Response) { + option (method_description) = "Subscribes the user to the published file"; + } + + rpc Unsubscribe (.CPublishedFile_Unsubscribe_Request) returns (.CPublishedFile_Unsubscribe_Response) { + option (method_description) = "Unsubscribes the user from the published file"; + } + + rpc Publish (.CPublishedFile_Publish_Request) returns (.CPublishedFile_Publish_Response) { + option (method_description) = "Publishes a clouded user file to the Workshop."; + } + + rpc GetDetails (.CPublishedFile_GetDetails_Request) returns (.CPublishedFile_GetDetails_Response) { + option (method_description) = "Retrieves information about a set of published files."; + } + + rpc GetUserFiles (.CPublishedFile_GetUserFiles_Request) returns (.CPublishedFile_GetUserFiles_Response) { + option (method_description) = "Retrieves files published by a user."; + } + + rpc Update (.CPublishedFile_Update_Request) returns (.CPublishedFile_Update_Response) { + option (method_description) = "Updates information about a published file."; + } + + rpc RefreshVotingQueue (.CPublishedFile_RefreshVotingQueue_Request) returns (.CPublishedFile_RefreshVotingQueue_Response) { + option (method_description) = "Refresh the voting queue for the user"; + } +} diff --git a/Protobufs/deadlock/steammessages_steamlearn.steamworkssdk.proto b/Protobufs/deadlock/steammessages_steamlearn.steamworkssdk.proto new file mode 100644 index 0000000..228f7cf --- /dev/null +++ b/Protobufs/deadlock/steammessages_steamlearn.steamworkssdk.proto @@ -0,0 +1,405 @@ +import "steammessages_unified_base.steamworkssdk.proto"; + +enum ESteamLearnDataType { + STEAMLEARN_DATATYPE_INVALID = 0; + STEAMLEARN_DATATYPE_INT32 = 1; + STEAMLEARN_DATATYPE_FLOAT32 = 2; + STEAMLEARN_DATATYPE_BOOL = 3; + STEAMLEARN_DATATYPE_STRING = 4; + STEAMLEARN_DATATYPE_OBJECT = 5; +} + +enum ESteammLearnRegisterDataSourceResult { + STEAMLEARN_REGISTER_DATA_SOURCE_RESULT_ERROR = 0; + STEAMLEARN_REGISTER_DATA_SOURCE_RESULT_SUCCESS_CREATED = 1; + STEAMLEARN_REGISTER_DATA_SOURCE_RESULT_SUCCESS_FOUND = 2; + STEAMLEARN_REGISTER_DATA_SOURCE_RESULT_ERROR_GENERIC = 3; + STEAMLEARN_REGISTER_DATA_SOURCE_RESULT_ERROR_INVALID_NAME = 4; + STEAMLEARN_REGISTER_DATA_SOURCE_RESULT_ERROR_INVALID_VERSION = 5; + STEAMLEARN_REGISTER_DATA_SOURCE_RESULT_ERROR_DATA_CHANGED = 6; + STEAMLEARN_REGISTER_DATA_SOURCE_RESULT_ERROR_DATA_INVALID = 7; + STEAMLEARN_REGISTER_DATA_SOURCE_RESULT_ERROR_FORBIDDEN = 8; + STEAMLEARN_REGISTER_DATA_SOURCE_RESULT_ERROR_INVALID_TIMESTAMP = 9; + STEAMLEARN_REGISTER_DATA_SOURCE_RESULT_DISABLED = 10; +} + +enum ESteamLearnCacheDataResult { + STEAMLEARN_CACHE_DATA_ERROR = 0; + STEAMLEARN_CACHE_DATA_SUCCESS = 1; + STEAMLEARN_CACHE_DATA_ERROR_UNKNOWN_DATA_SOURCE = 2; + STEAMLEARN_CACHE_DATA_ERROR_UNCACHED_DATA_SOURCE = 3; + STEAMLEARN_CACHE_DATA_ERROR_INVALID_KEYS = 4; + STEAMLEARN_CACHE_DATA_ERROR_FORBIDDEN = 5; + STEAMLEARN_CACHE_DATA_ERROR_INVALID_TIMESTAMP = 6; + STEAMLEARN_CACHE_DATA_DISABLED = 7; +} + +enum ESteamLearnSnapshotProjectResult { + STEAMLEARN_SNAPSHOT_PROJECT_ERROR = 0; + STEAMLEARN_SNAPSHOT_PROJECT_SUCCESS_STORED = 1; + STEAMLEARN_SNAPSHOT_PROJECT_SUCCESS_QUEUED = 2; + STEAMLEARN_SNAPSHOT_PROJECT_ERROR_INVALID_PROJECT_ID = 3; + STEAMLEARN_SNAPSHOT_PROJECT_ERROR_UNKNOWN_DATA_SOURCE = 4; + STEAMLEARN_SNAPSHOT_PROJECT_ERROR_INVALID_DATA_SOURCE_KEY = 5; + STEAMLEARN_SNAPSHOT_PROJECT_ERROR_MISSING_CACHE_DURATION = 6; + STEAMLEARN_SNAPSHOT_PROJECT_ERROR_NO_PUBLISHED_CONFIG = 7; + STEAMLEARN_SNAPSHOT_PROJECT_ERROR_FORBIDDEN = 8; + STEAMLEARN_SNAPSHOT_PROJECT_ERROR_INVALID_TIMESTAMP = 9; + STEAMLEARN_SNAPSHOT_PROJECT_ERROR_INTERNAL_DATA_SOURCE_ERROR = 10; + STEAMLEARN_SNAPSHOT_PROJECT_DISABLED = 11; + STEAMLEARN_SNAPSHOT_PROJECT_ERROR_INVALID_PUBLISHED_VERSION = 12; +} + +enum ESteamLearnGetAccessTokensResult { + STEAMLEARN_GET_ACCESS_TOKENS_ERROR = 0; + STEAMLEARN_GET_ACCESS_TOKENS_SUCCESS = 1; +} + +enum ESteamLearnInferenceResult { + STEAMLEARN_INFERENCE_ERROR = 0; + STEAMLEARN_INFERENCE_SUCCESS = 1; + STEAMLEARN_INFERENCE_ERROR_INVALID_PROJECT_ID = 2; + STEAMLEARN_INFERENCE_ERROR_MISSING_CACHED_SCHEMA_DATA = 3; + STEAMLEARN_INFERENCE_ERROR_NO_PUBLISHED_CONFIG = 4; + STEAMLEARN_INFERENCE_ERROR_FORBIDDEN = 5; + STEAMLEARN_INFERENCE_ERROR_INVALID_TIMESTAMP = 6; + STEAMLEARN_INFERENCE_ERROR_INVALID_PUBLISHED_VERSION = 7; + STEAMLEARN_INFERENCE_ERROR_NO_FETCH_ID_FOUND = 8; + STEAMLEARN_INFERENCE_ERROR_TOO_BUSY = 9; +} + +enum ESteamLearnInferenceMetadataResult { + STEAMLEARN_INFERENCE_METADATA_ERROR = 0; + STEAMLEARN_INFERENCE_METADATA_SUCCESS = 1; + STEAMLEARN_INFERENCE_METADATA_ERROR_INVALID_PROJECT_ID = 2; + STEAMLEARN_INFERENCE_METADATA_ERROR_NO_PUBLISHED_CONFIG = 3; + STEAMLEARN_INFERENCE_METADATA_ERROR_FORBIDDEN = 4; + STEAMLEARN_INFERENCE_METADATA_ERROR_INVALID_TIMESTAMP = 5; + STEAMLEARN_INFERENCE_METADATA_ERROR_INVALID_PUBLISHED_VERSION = 6; + STEAMLEARN_INFERENCE_METADATA_ERROR_NO_FETCH_ID_FOUND = 7; +} + +message CMsgSteamLearnDataSourceDescObject { + repeated .CMsgSteamLearnDataSourceDescElement elements = 1; +} + +message CMsgSteamLearnDataSourceDescElement { + optional string name = 1; + optional .ESteamLearnDataType data_type = 2 [default = STEAMLEARN_DATATYPE_INVALID]; + optional .CMsgSteamLearnDataSourceDescObject object = 3; + optional uint32 count = 4; +} + +message CMsgSteamLearnDataSource { + optional uint32 id = 1; + optional string name = 2; + optional uint32 version = 3; + optional string source_description = 4; + optional .CMsgSteamLearnDataSourceDescObject structure = 5; + optional uint32 structure_crc = 6; + optional uint32 cache_duration_seconds = 7; +} + +message CMsgSteamLearnDataObject { + repeated .CMsgSteamLearnDataElement elements = 1; +} + +message CMsgSteamLearnDataElement { + optional string name = 1; + repeated int32 data_int32s = 20; + repeated float data_floats = 21; + repeated bool data_bools = 22; + repeated string data_strings = 23; + repeated .CMsgSteamLearnDataObject data_objects = 24; +} + +message CMsgSteamLearnData { + optional uint32 data_source_id = 1; + repeated uint64 keys = 2; + optional .CMsgSteamLearnDataObject data_object = 3; +} + +message CMsgSteamLearnDataList { + repeated .CMsgSteamLearnData data = 1; +} + +message CMsgSteamLearn_RegisterDataSource_Request { + optional string access_token = 1; + optional .CMsgSteamLearnDataSource data_source = 3; +} + +message CMsgSteamLearn_RegisterDataSource_Response { + optional .ESteammLearnRegisterDataSourceResult result = 1 [default = STEAMLEARN_REGISTER_DATA_SOURCE_RESULT_ERROR]; + optional .CMsgSteamLearnDataSource data_source = 2; +} + +message CMsgSteamLearn_CacheData_Request { + optional string access_token = 1; + optional .CMsgSteamLearnData data = 3; +} + +message CMsgSteamLearn_CacheData_Response { + optional .ESteamLearnCacheDataResult cache_data_result = 1 [default = STEAMLEARN_CACHE_DATA_ERROR]; +} + +message CMsgSteamLearn_SnapshotProject_Request { + optional string access_token = 1; + optional uint32 project_id = 3; + optional uint32 published_version = 7; + repeated uint64 keys = 4; + repeated .CMsgSteamLearnData data = 5; + optional uint32 pending_data_limit_seconds = 6; +} + +message CMsgSteamLearn_SnapshotProject_Response { + optional .ESteamLearnSnapshotProjectResult snapshot_result = 1 [default = STEAMLEARN_SNAPSHOT_PROJECT_ERROR]; +} + +message CMsgSteamLearn_BatchOperation_Request { + repeated .CMsgSteamLearn_CacheData_Request cache_data_requests = 1; + repeated .CMsgSteamLearn_SnapshotProject_Request snapshot_requests = 2; + repeated .CMsgSteamLearn_Inference_Request inference_requests = 3; +} + +message CMsgSteamLearn_BatchOperation_Response { + repeated .CMsgSteamLearn_CacheData_Response cache_data_responses = 1; + repeated .CMsgSteamLearn_SnapshotProject_Response snapshot_responses = 2; + repeated .CMsgSteamLearn_Inference_Response inference_responses = 3; +} + +message CMsgSteamLearnAccessTokens { + message CacheDataAccessToken { + optional uint32 data_source_id = 1; + optional string access_token = 2; + } + + message SnapshotProjectAccessToken { + optional uint32 project_id = 1; + optional string access_token = 2; + } + + message InferenceAccessToken { + optional uint32 project_id = 1; + optional string access_token = 2; + } + + optional string register_data_source_access_token = 1; + repeated .CMsgSteamLearnAccessTokens.CacheDataAccessToken cache_data_access_tokens = 2; + repeated .CMsgSteamLearnAccessTokens.SnapshotProjectAccessToken snapshot_project_access_tokens = 3; + repeated .CMsgSteamLearnAccessTokens.InferenceAccessToken inference_access_tokens = 4; +} + +message CMsgSteamLearn_GetAccessTokens_Request { + optional uint32 appid = 1; +} + +message CMsgSteamLearn_GetAccessTokens_Response { + optional .ESteamLearnGetAccessTokensResult result = 1 [default = STEAMLEARN_GET_ACCESS_TOKENS_ERROR]; + optional .CMsgSteamLearnAccessTokens access_tokens = 2; +} + +message CMsgSteamLearn_Inference_Request { + optional string access_token = 1; + optional uint32 project_id = 3; + optional uint32 published_version = 4; + optional uint32 override_train_id = 5; + optional .CMsgSteamLearnDataList data = 6; + repeated float additional_data = 7; +} + +message CMsgSteamLearn_InferenceMetadata_Request { + optional string access_token = 1; + optional uint32 project_id = 3; + optional uint32 published_version = 4; + optional uint32 override_train_id = 5; +} + +message CMsgSteamLearn_InferenceMetadataBackend_Request { + optional uint32 project_id = 1; + optional uint32 fetch_id = 2; +} + +message CMsgSteamLearn_InferenceMetadata_Response { + message RowRange { + optional uint64 min_row = 1; + optional uint64 max_row = 2; + } + + message Range { + optional string data_element_path = 1; + optional float min_value = 2; + optional float max_value = 3; + } + + message StdDev { + optional string data_element_path = 1; + optional float mean = 2; + optional float std_dev = 3; + } + + message CompactTable { + message Entry { + optional uint32 value = 1; + optional uint32 mapping = 2; + optional uint64 count = 3; + } + + message MapValuesEntry { + optional uint32 key = 1; + optional .CMsgSteamLearn_InferenceMetadata_Response.CompactTable.Entry value = 2; + } + + message MapMappingsEntry { + optional uint32 key = 1; + optional .CMsgSteamLearn_InferenceMetadata_Response.CompactTable.Entry value = 2; + } + + optional string name = 1; + repeated .CMsgSteamLearn_InferenceMetadata_Response.CompactTable.MapValuesEntry map_values = 2; + repeated .CMsgSteamLearn_InferenceMetadata_Response.CompactTable.MapMappingsEntry map_mappings = 3; + } + + message SequenceTable { + message Entry { + repeated uint32 values = 1; + optional uint32 crc = 2; + optional uint32 count = 3; + } + + message MapValuesEntry { + optional uint32 key = 1; + optional .CMsgSteamLearn_InferenceMetadata_Response.SequenceTable.Entry value = 2; + } + + message MapMappingsEntry { + optional string key = 1; + optional .CMsgSteamLearn_InferenceMetadata_Response.SequenceTable.Entry value = 2; + } + + optional string name = 1; + repeated .CMsgSteamLearn_InferenceMetadata_Response.SequenceTable.MapValuesEntry map_values = 2; + repeated .CMsgSteamLearn_InferenceMetadata_Response.SequenceTable.MapMappingsEntry map_mappings = 3; + optional uint64 total_count = 4; + } + + message KMeans { + message Cluster { + optional float x = 1; + optional float y = 2; + optional float radius = 3; + optional float radius_75pct = 4; + optional float radius_50pct = 5; + optional float radius_25pct = 6; + } + + optional string name = 1; + repeated .CMsgSteamLearn_InferenceMetadata_Response.KMeans.Cluster clusters = 2; + } + + message SnapshotHistogram { + optional float min_value = 1; + optional float max_value = 2; + optional uint32 num_buckets = 3; + repeated uint32 bucket_counts = 4; + } + + message AppInfo { + optional string country_allow = 1; + optional string country_deny = 2; + optional bool platform_win = 3; + optional bool platform_mac = 4; + optional bool platform_linux = 5; + optional bool adult_violence = 6; + optional bool adult_sex = 7; + } + + message AppInfoEntry { + optional uint32 key = 1; + optional .CMsgSteamLearn_InferenceMetadata_Response.AppInfo value = 2; + } + + optional .ESteamLearnInferenceMetadataResult inference_metadata_result = 1 [default = STEAMLEARN_INFERENCE_METADATA_ERROR]; + optional .CMsgSteamLearn_InferenceMetadata_Response.RowRange row_range = 2; + repeated .CMsgSteamLearn_InferenceMetadata_Response.Range ranges = 3; + repeated .CMsgSteamLearn_InferenceMetadata_Response.StdDev std_devs = 4; + repeated .CMsgSteamLearn_InferenceMetadata_Response.CompactTable compact_tables = 5; + repeated .CMsgSteamLearn_InferenceMetadata_Response.SequenceTable sequence_tables = 9; + repeated .CMsgSteamLearn_InferenceMetadata_Response.KMeans kmeans = 6; + repeated .CMsgSteamLearn_InferenceMetadata_Response.AppInfoEntry app_info = 8; + optional .CMsgSteamLearn_InferenceMetadata_Response.SnapshotHistogram snapshot_histogram = 7; +} + +message CMsgSteamLearn_InferenceBackend_Response { + message Sequence { + repeated float value = 1; + } + + message RegressionOutput { + optional float value = 1; + } + + message BinaryCrossEntropyOutput { + optional float value = 1; + } + + message MutliBinaryCrossEntropyOutput { + repeated float weight = 1; + repeated float value = 2; + repeated .CMsgSteamLearn_InferenceBackend_Response.Sequence value_sequence = 3; + } + + message CategoricalCrossEntropyOutput { + repeated float weight = 1; + repeated float value = 2; + repeated .CMsgSteamLearn_InferenceBackend_Response.Sequence value_sequence = 3; + } + + message Output { + oneof ResponseType { + .CMsgSteamLearn_InferenceBackend_Response.BinaryCrossEntropyOutput binary_crossentropy = 1; + .CMsgSteamLearn_InferenceBackend_Response.CategoricalCrossEntropyOutput categorical_crossentropy = 2; + .CMsgSteamLearn_InferenceBackend_Response.MutliBinaryCrossEntropyOutput multi_binary_crossentropy = 3; + .CMsgSteamLearn_InferenceBackend_Response.RegressionOutput regression = 4; + } + } + + repeated .CMsgSteamLearn_InferenceBackend_Response.Output outputs = 1; +} + +message CMsgSteamLearn_Inference_Response { + optional .ESteamLearnInferenceResult inference_result = 1 [default = STEAMLEARN_INFERENCE_ERROR]; + optional .CMsgSteamLearn_InferenceBackend_Response backend_response = 2; + repeated uint64 keys = 3; +} + +service SteamLearn { + option (service_description) = "Service for submitting data, training, and inferencing with SteamLearn."; + + rpc RegisterDataSource (.CMsgSteamLearn_RegisterDataSource_Request) returns (.CMsgSteamLearn_RegisterDataSource_Response) { + option (method_description) = "Registers a data desc (or finds a data desc if it's already registered)."; + } + + rpc CacheData (.CMsgSteamLearn_CacheData_Request) returns (.CMsgSteamLearn_CacheData_Response) { + option (method_description) = "Updates a cached data entry."; + } + + rpc SnapshotProject (.CMsgSteamLearn_SnapshotProject_Request) returns (.CMsgSteamLearn_SnapshotProject_Response) { + option (method_description) = "Snapshots the current data for a project."; + } + + rpc BatchOperation (.CMsgSteamLearn_BatchOperation_Request) returns (.CMsgSteamLearn_BatchOperation_Response) { + option (method_description) = "Batches multiple data updates, snapshots, and inference requests into a single call"; + } + + rpc GetAccessTokens (.CMsgSteamLearn_GetAccessTokens_Request) returns (.CMsgSteamLearn_GetAccessTokens_Response) { + option (method_description) = "Gets the access tokens needed for registering data sources, submitting data to them, and snapshotting projects"; + } + + rpc Inference (.CMsgSteamLearn_Inference_Request) returns (.CMsgSteamLearn_Inference_Response) { + option (method_description) = "Inferences using supplied data, or data associated with the specified key."; + } + + rpc InferenceMetadata (.CMsgSteamLearn_InferenceMetadata_Request) returns (.CMsgSteamLearn_InferenceMetadata_Response) { + option (method_description) = "Requests the metadata that was generated from a specified fetch."; + } +} diff --git a/Protobufs/deadlock/steammessages_unified_base.steamworkssdk.proto b/Protobufs/deadlock/steammessages_unified_base.steamworkssdk.proto new file mode 100644 index 0000000..84ab32a --- /dev/null +++ b/Protobufs/deadlock/steammessages_unified_base.steamworkssdk.proto @@ -0,0 +1,30 @@ +import "google/protobuf/descriptor.proto"; + +option optimize_for = SPEED; +option cc_generic_services = false; + +extend .google.protobuf.FieldOptions { + optional string description = 50000; +} + +extend .google.protobuf.ServiceOptions { + optional string service_description = 50000; + optional .EProtoExecutionSite service_execution_site = 50008 [default = k_EProtoExecutionSiteUnknown]; +} + +extend .google.protobuf.MethodOptions { + optional string method_description = 50000; +} + +extend .google.protobuf.EnumOptions { + optional string enum_description = 50000; +} + +extend .google.protobuf.EnumValueOptions { + optional string enum_value_description = 50000; +} + +enum EProtoExecutionSite { + k_EProtoExecutionSiteUnknown = 0; + k_EProtoExecutionSiteSteamClient = 3; +} diff --git a/Protobufs/deadlock/steamnetworkingsockets_messages.proto b/Protobufs/deadlock/steamnetworkingsockets_messages.proto new file mode 100644 index 0000000..0550740 --- /dev/null +++ b/Protobufs/deadlock/steamnetworkingsockets_messages.proto @@ -0,0 +1,177 @@ +import "steamnetworkingsockets_messages_certs.proto"; + +option optimize_for = SPEED; +option cc_generic_services = false; + +enum ESteamNetworkingSocketsCipher { + k_ESteamNetworkingSocketsCipher_INVALID = 0; + k_ESteamNetworkingSocketsCipher_NULL = 1; + k_ESteamNetworkingSocketsCipher_AES_256_GCM = 2; +} + +message CMsgSteamDatagramSessionCryptInfo { + enum EKeyType { + INVALID = 0; + CURVE25519 = 1; + } + + optional .CMsgSteamDatagramSessionCryptInfo.EKeyType key_type = 1 [default = INVALID]; + optional bytes key_data = 2; + optional fixed64 nonce = 3; + optional uint32 protocol_version = 4; + repeated .ESteamNetworkingSocketsCipher ciphers = 5; +} + +message CMsgSteamDatagramSessionCryptInfoSigned { + optional bytes info = 1; + optional bytes signature = 2; +} + +message CMsgSteamDatagramDiagnostic { + optional uint32 severity = 1; + optional string text = 2; +} + +message CMsgSteamDatagramLinkInstantaneousStats { + optional uint32 out_packets_per_sec_x10 = 1; + optional uint32 out_bytes_per_sec = 2; + optional uint32 in_packets_per_sec_x10 = 3; + optional uint32 in_bytes_per_sec = 4; + optional uint32 ping_ms = 5; + optional uint32 packets_dropped_pct = 6; + optional uint32 packets_weird_sequence_pct = 7; + optional uint32 peak_jitter_usec = 8; +} + +message CMsgSteamDatagramLinkLifetimeStats { + optional uint32 connected_seconds = 2; + optional uint64 packets_sent = 3; + optional uint64 kb_sent = 4; + optional uint64 packets_recv = 5; + optional uint64 kb_recv = 6; + optional uint64 packets_recv_sequenced = 7; + optional uint64 packets_recv_dropped = 8; + optional uint64 packets_recv_out_of_order = 9; + optional uint64 packets_recv_out_of_order_corrected = 15; + optional uint64 packets_recv_duplicate = 10; + optional uint64 packets_recv_lurch = 11; + repeated uint64 multipath_packets_recv_sequenced = 12; + repeated uint64 multipath_packets_recv_later = 13; + optional uint32 multipath_send_enabled = 14; + optional uint32 quality_histogram_100 = 21; + optional uint32 quality_histogram_99 = 22; + optional uint32 quality_histogram_97 = 23; + optional uint32 quality_histogram_95 = 24; + optional uint32 quality_histogram_90 = 25; + optional uint32 quality_histogram_75 = 26; + optional uint32 quality_histogram_50 = 27; + optional uint32 quality_histogram_1 = 28; + optional uint32 quality_histogram_dead = 29; + optional uint32 quality_ntile_2nd = 30; + optional uint32 quality_ntile_5th = 31; + optional uint32 quality_ntile_25th = 32; + optional uint32 quality_ntile_50th = 33; + optional uint32 ping_histogram_25 = 41; + optional uint32 ping_histogram_50 = 42; + optional uint32 ping_histogram_75 = 43; + optional uint32 ping_histogram_100 = 44; + optional uint32 ping_histogram_125 = 45; + optional uint32 ping_histogram_150 = 46; + optional uint32 ping_histogram_200 = 47; + optional uint32 ping_histogram_300 = 48; + optional uint32 ping_histogram_max = 49; + optional uint32 ping_ntile_5th = 50; + optional uint32 ping_ntile_50th = 51; + optional uint32 ping_ntile_75th = 52; + optional uint32 ping_ntile_95th = 53; + optional uint32 ping_ntile_98th = 54; + optional uint32 jitter_histogram_negligible = 61; + optional uint32 jitter_histogram_1 = 62; + optional uint32 jitter_histogram_2 = 63; + optional uint32 jitter_histogram_5 = 64; + optional uint32 jitter_histogram_10 = 65; + optional uint32 jitter_histogram_20 = 66; +} + +message CMsgSteamDatagramConnectionQuality { + optional .CMsgSteamDatagramLinkInstantaneousStats instantaneous = 1; + optional .CMsgSteamDatagramLinkLifetimeStats lifetime = 2; +} + +message CMsgICECandidate { + optional string candidate = 3; +} + +message CMsgICERendezvous { + message Auth { + optional string pwd_frag = 1; + } + + optional .CMsgICERendezvous.Auth auth = 2; + optional .CMsgICECandidate add_candidate = 1; +} + +message CMsgSteamNetworkingP2PRendezvous { + message ConnectRequest { + optional .CMsgSteamDatagramSessionCryptInfoSigned crypt = 6; + optional .CMsgSteamDatagramCertificateSigned cert = 7; + optional uint32 to_virtual_port = 9; + optional uint32 from_virtual_port = 10; + optional string from_fakeip = 11; + } + + message ConnectOK { + optional .CMsgSteamDatagramSessionCryptInfoSigned crypt = 5; + optional .CMsgSteamDatagramCertificateSigned cert = 6; + } + + message ConnectionClosed { + optional string debug = 5; + optional uint32 reason_code = 6; + } + + message ReliableMessage { + optional .CMsgICERendezvous ice = 1; + } + + message ApplicationMessage { + optional bytes data = 1; + optional uint64 msg_num = 2; + optional uint32 flags = 3; + optional uint32 lane_idx = 4; + } + + optional string from_identity = 8; + optional fixed32 from_connection_id = 9; + optional string to_identity = 10; + optional fixed32 to_connection_id = 1; + optional bytes sdr_routes = 2; + optional uint32 ack_peer_routes_revision = 3; + optional bool ice_enabled = 7; + optional bytes hosted_server_ticket = 14; + optional .CMsgSteamNetworkingP2PRendezvous.ConnectRequest connect_request = 4; + optional .CMsgSteamNetworkingP2PRendezvous.ConnectOK connect_ok = 5; + optional .CMsgSteamNetworkingP2PRendezvous.ConnectionClosed connection_closed = 6; + optional uint32 ack_reliable_msg = 11; + optional uint32 first_reliable_msg = 12; + repeated .CMsgSteamNetworkingP2PRendezvous.ReliableMessage reliable_messages = 13; + repeated .CMsgSteamNetworkingP2PRendezvous.ApplicationMessage application_messages = 15; +} + +message CMsgSteamNetworkingICESessionSummary { + optional uint32 failure_reason_code = 7; + optional uint32 local_candidate_types = 1; + optional uint32 remote_candidate_types = 2; + optional uint32 initial_route_kind = 3; + optional uint32 initial_ping = 4; + optional uint32 initial_score = 6; + optional uint32 negotiation_ms = 5; + optional uint32 best_route_kind = 16; + optional uint32 best_ping = 17; + optional uint32 best_score = 18; + optional uint32 best_time = 19; + optional uint32 selected_seconds = 12; + optional uint32 user_settings = 13; + optional uint32 ice_enable_var = 14; + optional uint32 local_candidate_types_allowed = 15; +} diff --git a/Protobufs/deadlock/steamnetworkingsockets_messages_certs.proto b/Protobufs/deadlock/steamnetworkingsockets_messages_certs.proto new file mode 100644 index 0000000..6ad2c3f --- /dev/null +++ b/Protobufs/deadlock/steamnetworkingsockets_messages_certs.proto @@ -0,0 +1,38 @@ +option optimize_for = SPEED; +option cc_generic_services = false; + +message CMsgSteamNetworkingIdentityLegacyBinary { + optional fixed64 steam_id = 16; + optional bytes generic_bytes = 2; + optional string generic_string = 3; + optional bytes ipv6_and_port = 4; +} + +message CMsgSteamDatagramCertificate { + enum EKeyType { + INVALID = 0; + ED25519 = 1; + } + + optional .CMsgSteamDatagramCertificate.EKeyType key_type = 1 [default = INVALID]; + optional bytes key_data = 2; + optional fixed64 legacy_steam_id = 4; + optional .CMsgSteamNetworkingIdentityLegacyBinary legacy_identity_binary = 11; + optional string identity_string = 12; + repeated fixed32 gameserver_datacenter_ids = 5; + optional fixed32 time_created = 8; + optional fixed32 time_expiry = 9; + repeated uint32 app_ids = 10; + repeated string ip_addresses = 13; +} + +message CMsgSteamDatagramCertificateSigned { + optional bytes cert = 4; + optional fixed64 ca_key_id = 5; + optional bytes ca_signature = 6; + optional bytes private_key_data = 1; +} + +message CMsgSteamDatagramCertificateRequest { + optional .CMsgSteamDatagramCertificate cert = 1; +} diff --git a/Protobufs/deadlock/steamnetworkingsockets_messages_udp.proto b/Protobufs/deadlock/steamnetworkingsockets_messages_udp.proto new file mode 100644 index 0000000..cc50836 --- /dev/null +++ b/Protobufs/deadlock/steamnetworkingsockets_messages_udp.proto @@ -0,0 +1,75 @@ +import "steamnetworkingsockets_messages_certs.proto"; +import "steamnetworkingsockets_messages.proto"; + +option optimize_for = SPEED; +option cc_generic_services = false; + +enum ESteamNetworkingUDPMsgID { + k_ESteamNetworkingUDPMsg_ChallengeRequest = 32; + k_ESteamNetworkingUDPMsg_ChallengeReply = 33; + k_ESteamNetworkingUDPMsg_ConnectRequest = 34; + k_ESteamNetworkingUDPMsg_ConnectOK = 35; + k_ESteamNetworkingUDPMsg_ConnectionClosed = 36; + k_ESteamNetworkingUDPMsg_NoConnection = 37; +} + +message CMsgSteamSockets_UDP_ChallengeRequest { + optional fixed32 connection_id = 1; + optional fixed64 my_timestamp = 3; + optional uint32 protocol_version = 4; +} + +message CMsgSteamSockets_UDP_ChallengeReply { + optional fixed32 connection_id = 1; + optional fixed64 challenge = 2; + optional fixed64 your_timestamp = 3; + optional uint32 protocol_version = 4; +} + +message CMsgSteamSockets_UDP_ConnectRequest { + optional fixed32 client_connection_id = 1; + optional fixed64 challenge = 2; + optional fixed64 my_timestamp = 5; + optional uint32 ping_est_ms = 6; + optional .CMsgSteamDatagramSessionCryptInfoSigned crypt = 7; + optional .CMsgSteamDatagramCertificateSigned cert = 4; + optional uint32 legacy_protocol_version = 8; + optional string identity_string = 10; + optional fixed64 legacy_client_steam_id = 3; + optional .CMsgSteamNetworkingIdentityLegacyBinary legacy_identity_binary = 9; +} + +message CMsgSteamSockets_UDP_ConnectOK { + optional fixed32 client_connection_id = 1; + optional fixed32 server_connection_id = 5; + optional fixed64 your_timestamp = 3; + optional uint32 delay_time_usec = 4; + optional .CMsgSteamDatagramSessionCryptInfoSigned crypt = 7; + optional .CMsgSteamDatagramCertificateSigned cert = 8; + optional string identity_string = 11; + optional fixed64 legacy_server_steam_id = 2; + optional .CMsgSteamNetworkingIdentityLegacyBinary legacy_identity_binary = 10; +} + +message CMsgSteamSockets_UDP_ConnectionClosed { + optional fixed32 to_connection_id = 4; + optional fixed32 from_connection_id = 5; + optional string debug = 2; + optional uint32 reason_code = 3; +} + +message CMsgSteamSockets_UDP_NoConnection { + optional fixed32 from_connection_id = 2; + optional fixed32 to_connection_id = 3; +} + +message CMsgSteamSockets_UDP_Stats { + enum Flags { + ACK_REQUEST_E2E = 2; + ACK_REQUEST_IMMEDIATE = 4; + NOT_PRIMARY_TRANSPORT_E2E = 16; + } + + optional .CMsgSteamDatagramConnectionQuality stats = 1; + optional uint32 flags = 3; +} diff --git a/Protobufs/deadlock/te.proto b/Protobufs/deadlock/te.proto new file mode 100644 index 0000000..da76e30 --- /dev/null +++ b/Protobufs/deadlock/te.proto @@ -0,0 +1,262 @@ +import "networkbasetypes.proto"; + +enum ETEProtobufIds { + TE_EffectDispatchId = 400; + TE_ArmorRicochetId = 401; + TE_BeamEntPointId = 402; + TE_BeamEntsId = 403; + TE_BeamPointsId = 404; + TE_BeamRingId = 405; + TE_BSPDecalId = 407; + TE_BubblesId = 408; + TE_BubbleTrailId = 409; + TE_DecalId = 410; + TE_WorldDecalId = 411; + TE_EnergySplashId = 412; + TE_FizzId = 413; + TE_ShatterSurfaceId = 414; + TE_GlowSpriteId = 415; + TE_ImpactId = 416; + TE_MuzzleFlashId = 417; + TE_BloodStreamId = 418; + TE_ExplosionId = 419; + TE_DustId = 420; + TE_LargeFunnelId = 421; + TE_SparksId = 422; + TE_PhysicsPropId = 423; + TE_PlayerDecalId = 424; + TE_ProjectedDecalId = 425; + TE_SmokeId = 426; +} + +message CMsgTEArmorRicochet { + optional .CMsgVector pos = 1; + optional .CMsgVector dir = 2; +} + +message CMsgTEBaseBeam { + optional fixed64 modelindex = 1; + optional fixed64 haloindex = 2; + optional uint32 startframe = 3; + optional uint32 framerate = 4; + optional float life = 5; + optional float width = 6; + optional float endwidth = 7; + optional uint32 fadelength = 8; + optional float amplitude = 9; + optional fixed32 color = 10; + optional uint32 speed = 11; + optional uint32 flags = 12; +} + +message CMsgTEBeamEntPoint { + optional .CMsgTEBaseBeam base = 1; + optional uint32 startentity = 2; + optional uint32 endentity = 3; + optional .CMsgVector start = 4; + optional .CMsgVector end = 5; +} + +message CMsgTEBeamEnts { + optional .CMsgTEBaseBeam base = 1; + optional uint32 startentity = 2; + optional uint32 endentity = 3; +} + +message CMsgTEBeamPoints { + optional .CMsgTEBaseBeam base = 1; + optional .CMsgVector start = 2; + optional .CMsgVector end = 3; +} + +message CMsgTEBeamRing { + optional .CMsgTEBaseBeam base = 1; + optional uint32 startentity = 2; + optional uint32 endentity = 3; +} + +message CMsgTEBSPDecal { + optional .CMsgVector origin = 1; + optional .CMsgVector normal = 2; + optional .CMsgVector saxis = 3; + optional int32 entity = 4 [default = -1]; + optional uint32 index = 5; +} + +message CMsgTEBubbles { + optional .CMsgVector mins = 1; + optional .CMsgVector maxs = 2; + optional float height = 3; + optional uint32 count = 4; + optional float speed = 5; +} + +message CMsgTEBubbleTrail { + optional .CMsgVector mins = 1; + optional .CMsgVector maxs = 2; + optional float waterz = 3; + optional uint32 count = 4; + optional float speed = 5; +} + +message CMsgTEDecal { + optional .CMsgVector origin = 1; + optional .CMsgVector start = 2; + optional int32 entity = 3 [default = -1]; + optional uint32 hitbox = 4; + optional uint32 index = 5; +} + +message CMsgEffectData { + optional .CMsgVector origin = 1; + optional .CMsgVector start = 2; + optional .CMsgVector normal = 3; + optional .CMsgQAngle angles = 4; + optional fixed32 entity = 5 [default = 16777215]; + optional fixed32 otherentity = 6 [default = 16777215]; + optional float scale = 7; + optional float magnitude = 8; + optional float radius = 9; + optional fixed32 surfaceprop = 10; + optional fixed64 effectindex = 11; + optional uint32 damagetype = 12; + optional uint32 material = 13; + optional uint32 hitbox = 14; + optional uint32 color = 15; + optional uint32 flags = 16; + optional int32 attachmentindex = 17; + optional uint32 effectname = 18; + optional uint32 attachmentname = 19; +} + +message CMsgTEEffectDispatch { + optional .CMsgEffectData effectdata = 1; +} + +message CMsgTEEnergySplash { + optional .CMsgVector pos = 1; + optional .CMsgVector dir = 2; + optional bool explosive = 3; +} + +message CMsgTEFizz { + optional int32 entity = 1 [default = -1]; + optional uint32 density = 2; + optional int32 current = 3; +} + +message CMsgTEShatterSurface { + optional .CMsgVector origin = 1; + optional .CMsgQAngle angles = 2; + optional .CMsgVector force = 3; + optional .CMsgVector forcepos = 4; + optional float width = 5; + optional float height = 6; + optional float shardsize = 7; + optional uint32 surfacetype = 8; + optional fixed32 frontcolor = 9; + optional fixed32 backcolor = 10; +} + +message CMsgTEGlowSprite { + optional .CMsgVector origin = 1; + optional float scale = 2; + optional float life = 3; + optional uint32 brightness = 4; +} + +message CMsgTEImpact { + optional .CMsgVector origin = 1; + optional .CMsgVector normal = 2; + optional uint32 type = 3; +} + +message CMsgTEMuzzleFlash { + optional .CMsgVector origin = 1; + optional .CMsgQAngle angles = 2; + optional float scale = 3; + optional uint32 type = 4; +} + +message CMsgTEBloodStream { + optional .CMsgVector origin = 1; + optional .CMsgVector direction = 2; + optional fixed32 color = 3; + optional uint32 amount = 4; +} + +message CMsgTEExplosion { + optional .CMsgVector origin = 1; + optional uint32 framerate = 2; + optional uint32 flags = 3; + optional .CMsgVector normal = 4; + optional uint32 materialtype = 5; + optional uint32 radius = 6; + optional uint32 magnitude = 7; + optional float scale = 8; + optional bool affect_ragdolls = 9; + optional string effect_name = 10; + optional uint32 explosion_type = 11; + optional bool create_debris = 12; + optional .CMsgVector debris_origin = 13; + optional fixed32 debris_surfaceprop = 14; +} + +message CMsgTEDust { + optional .CMsgVector origin = 1; + optional float size = 2; + optional float speed = 3; + optional .CMsgVector direction = 4; +} + +message CMsgTELargeFunnel { + optional .CMsgVector origin = 1; + optional uint32 reversed = 2; +} + +message CMsgTESparks { + optional .CMsgVector origin = 1; + optional uint32 magnitude = 2; + optional uint32 length = 3; + optional .CMsgVector direction = 4; +} + +message CMsgTEPhysicsProp { + optional .CMsgVector origin = 1; + optional .CMsgVector velocity = 2; + optional .CMsgQAngle angles = 3; + optional fixed32 skin = 4; + optional uint32 flags = 5; + optional uint32 effects = 6; + optional fixed32 color = 7; + optional fixed64 modelindex = 8; + optional uint32 unused_breakmodelsnottomake = 9; + optional float scale = 10; + optional .CMsgVector dmgpos = 11; + optional .CMsgVector dmgdir = 12; + optional int32 dmgtype = 13; +} + +message CMsgTEPlayerDecal { + optional .CMsgVector origin = 1; + optional int32 player = 2 [default = -1]; + optional int32 entity = 3 [default = -1]; +} + +message CMsgTEProjectedDecal { + optional .CMsgVector origin = 1; + optional .CMsgQAngle angles = 2; + optional uint32 index = 3; + optional float distance = 4; +} + +message CMsgTESmoke { + optional .CMsgVector origin = 1; + optional float scale = 2; +} + +message CMsgTEWorldDecal { + optional .CMsgVector origin = 1; + optional .CMsgVector normal = 2; + optional uint32 index = 3; +} diff --git a/Protobufs/deadlock/uifontfile_format.proto b/Protobufs/deadlock/uifontfile_format.proto new file mode 100644 index 0000000..5602e48 --- /dev/null +++ b/Protobufs/deadlock/uifontfile_format.proto @@ -0,0 +1,13 @@ +message CUIFontFilePB { + optional string font_file_name = 1; + optional bytes opentype_font_data = 2; +} + +message CUIFontFilePackagePB { + message CUIEncryptedFontFilePB { + optional bytes encrypted_contents = 1; + } + + required uint32 package_version = 1; + repeated .CUIFontFilePackagePB.CUIEncryptedFontFilePB encrypted_font_files = 2; +} diff --git a/Protobufs/deadlock/usercmd.proto b/Protobufs/deadlock/usercmd.proto new file mode 100644 index 0000000..e0ffba8 --- /dev/null +++ b/Protobufs/deadlock/usercmd.proto @@ -0,0 +1,39 @@ +import "networkbasetypes.proto"; + +message CInButtonStatePB { + optional uint64 buttonstate1 = 1; + optional uint64 buttonstate2 = 2; + optional uint64 buttonstate3 = 3; +} + +message CSubtickMoveStep { + optional uint64 button = 1; + optional bool pressed = 2; + optional float when = 3; + optional float analog_forward_delta = 4; + optional float analog_left_delta = 5; +} + +message CBaseUserCmdPB { + optional int32 legacy_command_number = 1; + optional int32 client_tick = 2; + optional .CInButtonStatePB buttons_pb = 3; + optional .CMsgQAngle viewangles = 4; + optional float forwardmove = 5; + optional float leftmove = 6; + optional float upmove = 7; + optional int32 impulse = 8; + optional int32 weaponselect = 9; + optional int32 random_seed = 10; + optional int32 mousedx = 11; + optional int32 mousedy = 12; + optional uint32 pawn_entity_handle = 14 [default = 16777215]; + repeated .CSubtickMoveStep subtick_moves = 18; + optional bytes move_crc = 19; + optional uint32 consumed_server_angle_changes = 20; + optional int32 cmd_flags = 21; +} + +message CUserCmdBasePB { + optional .CBaseUserCmdPB base = 1; +} diff --git a/Protobufs/deadlock/usermessages.proto b/Protobufs/deadlock/usermessages.proto new file mode 100644 index 0000000..7c6dd3d --- /dev/null +++ b/Protobufs/deadlock/usermessages.proto @@ -0,0 +1,812 @@ +import "networkbasetypes.proto"; + +enum EBaseUserMessages { + UM_AchievementEvent = 101; + UM_CloseCaption = 102; + UM_CloseCaptionDirect = 103; + UM_CurrentTimescale = 104; + UM_DesiredTimescale = 105; + UM_Fade = 106; + UM_GameTitle = 107; + UM_HudMsg = 110; + UM_HudText = 111; + UM_ColoredText = 113; + UM_RequestState = 114; + UM_ResetHUD = 115; + UM_Rumble = 116; + UM_SayText = 117; + UM_SayText2 = 118; + UM_SayTextChannel = 119; + UM_Shake = 120; + UM_ShakeDir = 121; + UM_WaterShake = 122; + UM_TextMsg = 124; + UM_ScreenTilt = 125; + UM_VoiceMask = 128; + UM_SendAudio = 130; + UM_ItemPickup = 131; + UM_AmmoDenied = 132; + UM_ShowMenu = 134; + UM_CreditsMsg = 135; + UM_CloseCaptionPlaceholder = 142; + UM_CameraTransition = 143; + UM_AudioParameter = 144; + UM_ParticleManager = 145; + UM_HudError = 146; + UM_CustomGameEvent = 148; + UM_AnimGraphUpdate = 149; + UM_HapticsManagerPulse = 150; + UM_HapticsManagerEffect = 151; + UM_CommandQueueState = 152; + UM_UpdateCssClasses = 153; + UM_ServerFrameTime = 154; + UM_LagCompensationError = 155; + UM_RequestDllStatus = 156; + UM_RequestUtilAction = 157; + UM_UtilActionResponse = 158; + UM_DllStatusResponse = 159; + UM_RequestInventory = 160; + UM_InventoryResponse = 161; + UM_RequestDiagnostic = 162; + UM_DiagnosticResponse = 163; + UM_ExtraUserData = 164; + UM_NotifyResponseFound = 165; + UM_PlayResponseConditional = 166; + UM_MAX_BASE = 200; +} + +enum EBaseEntityMessages { + EM_PlayJingle = 136; + EM_ScreenOverlay = 137; + EM_RemoveAllDecals = 138; + EM_PropagateForce = 139; + EM_DoSpark = 140; + EM_FixAngle = 141; +} + +enum eRollType { + ROLL_NONE = -1; + ROLL_STATS = 0; + ROLL_CREDITS = 1; + ROLL_LATE_JOIN_LOGO = 2; + ROLL_OUTTRO = 3; +} + +enum PARTICLE_MESSAGE { + GAME_PARTICLE_MANAGER_EVENT_CREATE = 0; + GAME_PARTICLE_MANAGER_EVENT_UPDATE = 1; + GAME_PARTICLE_MANAGER_EVENT_UPDATE_FORWARD = 2; + GAME_PARTICLE_MANAGER_EVENT_UPDATE_ORIENTATION = 3; + GAME_PARTICLE_MANAGER_EVENT_UPDATE_FALLBACK = 4; + GAME_PARTICLE_MANAGER_EVENT_UPDATE_ENT = 5; + GAME_PARTICLE_MANAGER_EVENT_UPDATE_OFFSET = 6; + GAME_PARTICLE_MANAGER_EVENT_DESTROY = 7; + GAME_PARTICLE_MANAGER_EVENT_DESTROY_INVOLVING = 8; + GAME_PARTICLE_MANAGER_EVENT_RELEASE = 9; + GAME_PARTICLE_MANAGER_EVENT_LATENCY = 10; + GAME_PARTICLE_MANAGER_EVENT_SHOULD_DRAW = 11; + GAME_PARTICLE_MANAGER_EVENT_FROZEN = 12; + GAME_PARTICLE_MANAGER_EVENT_CHANGE_CONTROL_POINT_ATTACHMENT = 13; + GAME_PARTICLE_MANAGER_EVENT_UPDATE_ENTITY_POSITION = 14; + GAME_PARTICLE_MANAGER_EVENT_SET_FOW_PROPERTIES = 15; + GAME_PARTICLE_MANAGER_EVENT_SET_TEXT = 16; + GAME_PARTICLE_MANAGER_EVENT_SET_SHOULD_CHECK_FOW = 17; + GAME_PARTICLE_MANAGER_EVENT_SET_CONTROL_POINT_MODEL = 18; + GAME_PARTICLE_MANAGER_EVENT_SET_CONTROL_POINT_SNAPSHOT = 19; + GAME_PARTICLE_MANAGER_EVENT_SET_TEXTURE_ATTRIBUTE = 20; + GAME_PARTICLE_MANAGER_EVENT_SET_SCENE_OBJECT_GENERIC_FLAG = 21; + GAME_PARTICLE_MANAGER_EVENT_SET_SCENE_OBJECT_TINT_AND_DESAT = 22; + GAME_PARTICLE_MANAGER_EVENT_DESTROY_NAMED = 23; + GAME_PARTICLE_MANAGER_EVENT_SKIP_TO_TIME = 24; + GAME_PARTICLE_MANAGER_EVENT_CAN_FREEZE = 25; + GAME_PARTICLE_MANAGER_EVENT_SET_NAMED_VALUE_CONTEXT = 26; + GAME_PARTICLE_MANAGER_EVENT_UPDATE_TRANSFORM = 27; + GAME_PARTICLE_MANAGER_EVENT_FREEZE_TRANSITION_OVERRIDE = 28; + GAME_PARTICLE_MANAGER_EVENT_FREEZE_INVOLVING = 29; + GAME_PARTICLE_MANAGER_EVENT_ADD_MODELLIST_OVERRIDE_ELEMENT = 30; + GAME_PARTICLE_MANAGER_EVENT_CLEAR_MODELLIST_OVERRIDE = 31; + GAME_PARTICLE_MANAGER_EVENT_CREATE_PHYSICS_SIM = 32; + GAME_PARTICLE_MANAGER_EVENT_DESTROY_PHYSICS_SIM = 33; + GAME_PARTICLE_MANAGER_EVENT_SET_VDATA = 34; + GAME_PARTICLE_MANAGER_EVENT_SET_MATERIAL_OVERRIDE = 35; +} + +enum EHapticPulseType { + VR_HAND_HAPTIC_PULSE_LIGHT = 0; + VR_HAND_HAPTIC_PULSE_MEDIUM = 1; + VR_HAND_HAPTIC_PULSE_STRONG = 2; +} + +message CUserMessageAchievementEvent { + optional uint32 achievement = 1; +} + +message CUserMessageCloseCaption { + optional fixed32 hash = 1; + optional float duration = 2; + optional bool from_player = 3; + optional int32 ent_index = 4 [default = -1]; +} + +message CUserMessageCloseCaptionDirect { + optional fixed32 hash = 1; + optional float duration = 2; + optional bool from_player = 3; + optional int32 ent_index = 4 [default = -1]; +} + +message CUserMessageCloseCaptionPlaceholder { + optional string string = 1; + optional float duration = 2; + optional bool from_player = 3; + optional int32 ent_index = 4 [default = -1]; +} + +message CUserMessageCurrentTimescale { + optional float current = 1; +} + +message CUserMessageDesiredTimescale { + optional float desired = 1; + optional float acceleration = 2; + optional float minblendrate = 3; + optional float blenddeltamultiplier = 4; +} + +message CUserMessageFade { + optional uint32 duration = 1; + optional uint32 hold_time = 2; + optional uint32 flags = 3; + optional fixed32 color = 4; +} + +message CUserMessageShake { + optional uint32 command = 1; + optional float amplitude = 2; + optional float frequency = 3; + optional float duration = 4; +} + +message CUserMessageShakeDir { + optional .CUserMessageShake shake = 1; + optional .CMsgVector direction = 2; +} + +message CUserMessageWaterShake { + optional uint32 command = 1; + optional float amplitude = 2; + optional float frequency = 3; + optional float duration = 4; +} + +message CUserMessageScreenTilt { + optional uint32 command = 1; + optional bool ease_in_out = 2; + optional .CMsgVector angle = 3; + optional float duration = 4; + optional float time = 5; +} + +message CUserMessageSayText { + optional int32 playerindex = 1 [default = -1]; + optional string text = 2; + optional bool chat = 3; +} + +message CUserMessageSayText2 { + optional int32 entityindex = 1 [default = -1]; + optional bool chat = 2; + optional string messagename = 3; + optional string param1 = 4; + optional string param2 = 5; + optional string param3 = 6; + optional string param4 = 7; +} + +message CUserMessageHudMsg { + optional uint32 channel = 1; + optional float x = 2; + optional float y = 3; + optional fixed32 color1 = 4; + optional fixed32 color2 = 5; + optional uint32 effect = 6; + optional string message = 11; +} + +message CUserMessageHudText { + optional string message = 1; +} + +message CUserMessageTextMsg { + optional uint32 dest = 1; + repeated string param = 2; +} + +message CUserMessageGameTitle { +} + +message CUserMessageResetHUD { +} + +message CUserMessageSendAudio { + optional string soundname = 1; + optional bool stop = 2; +} + +message CUserMessageAudioParameter { + optional uint32 parameter_type = 1; + optional uint32 name_hash_code = 2; + optional float value = 3; + optional uint32 int_value = 4; +} + +message CUserMessageVoiceMask { + repeated uint32 gamerules_masks = 1; + repeated uint32 ban_masks = 2; + optional bool mod_enable = 3; +} + +message CUserMessageRequestState { +} + +message CUserMessageRumble { + optional int32 index = 1; + optional int32 data = 2; + optional int32 flags = 3; +} + +message CUserMessageSayTextChannel { + optional int32 player = 1; + optional int32 channel = 2; + optional string text = 3; +} + +message CUserMessageColoredText { + optional uint32 color = 1; + optional string text = 2; + optional bool reset = 3; + optional int32 context_player_slot = 4 [default = -1]; + optional int32 context_value = 5; + optional int32 context_team_id = 6; +} + +message CUserMessageItemPickup { + optional string itemname = 1; +} + +message CUserMessageAmmoDenied { + optional uint32 ammo_id = 1; +} + +message CUserMessageShowMenu { + optional uint32 validslots = 1; + optional uint32 displaytime = 2; + optional bool needmore = 3; + optional string menustring = 4; +} + +message CUserMessageCreditsMsg { + optional .eRollType rolltype = 1 [default = ROLL_NONE]; + optional float logo_length = 2; +} + +message CEntityMessagePlayJingle { + optional .CEntityMsg entity_msg = 1; +} + +message CEntityMessageScreenOverlay { + optional bool start_effect = 1; + optional .CEntityMsg entity_msg = 2; +} + +message CEntityMessageRemoveAllDecals { + optional bool remove_decals = 1; + optional .CEntityMsg entity_msg = 2; +} + +message CEntityMessagePropagateForce { + optional .CMsgVector impulse = 1; + optional .CEntityMsg entity_msg = 2; +} + +message CEntityMessageDoSpark { + optional .CMsgVector origin = 1; + optional int32 entityindex = 2 [default = -1]; + optional float radius = 3; + optional fixed32 color = 4; + optional uint32 beams = 5; + optional float thick = 6; + optional float duration = 7; + optional .CEntityMsg entity_msg = 8; +} + +message CEntityMessageFixAngle { + optional bool relative = 1; + optional .CMsgQAngle angle = 2; + optional .CEntityMsg entity_msg = 3; +} + +message CUserMessageCameraTransition { + message Transition_DataDriven { + optional string filename = 1; + optional int32 attach_ent_index = 2 [default = -1]; + optional float duration = 3; + } + + optional uint32 camera_type = 1; + optional float duration = 2; + optional .CUserMessageCameraTransition.Transition_DataDriven params_data_driven = 3; +} + +message CUserMsg_ParticleManager { + message ReleaseParticleIndex { + } + + message CreateParticle { + optional fixed64 particle_name_index = 1; + optional int32 attach_type = 2; + optional uint32 entity_handle = 3 [default = 16777215]; + optional uint32 entity_handle_for_modifiers = 4 [default = 16777215]; + optional bool apply_voice_ban_rules = 5; + optional int32 team_behavior = 6; + optional string control_point_configuration = 7; + optional bool cluster = 8; + optional float endcap_time = 9; + optional .CMsgVector aggregation_position = 10; + } + + message DestroyParticle { + optional bool destroy_immediately = 1; + } + + message DestroyParticleInvolving { + optional bool destroy_immediately = 1; + optional uint32 entity_handle = 3 [default = 16777215]; + } + + message DestroyParticleNamed { + optional fixed64 particle_name_index = 1; + optional uint32 entity_handle = 2 [default = 16777215]; + optional bool destroy_immediately = 3; + optional bool play_endcap = 4; + } + + message UpdateParticle_OBSOLETE { + optional int32 control_point = 1; + optional .CMsgVector position = 2; + } + + message UpdateParticleFwd_OBSOLETE { + optional int32 control_point = 1; + optional .CMsgVector forward = 2; + } + + message UpdateParticleOrient_OBSOLETE { + optional int32 control_point = 1; + optional .CMsgVector forward = 2; + optional .CMsgVector deprecated_right = 3; + optional .CMsgVector up = 4; + optional .CMsgVector left = 5; + } + + message UpdateParticleTransform { + optional int32 control_point = 1; + optional .CMsgVector position = 2; + optional .CMsgQuaternion orientation = 3; + optional float interpolation_interval = 4; + } + + message UpdateParticleFallback { + optional int32 control_point = 1; + optional .CMsgVector position = 2; + } + + message UpdateParticleOffset { + optional int32 control_point = 1; + optional .CMsgVector origin_offset = 2; + optional .CMsgQAngle angle_offset = 3; + } + + message UpdateParticleEnt { + optional int32 control_point = 1; + optional uint32 entity_handle = 2 [default = 16777215]; + optional int32 attach_type = 3; + optional int32 attachment = 4; + optional .CMsgVector fallback_position = 5; + optional bool include_wearables = 6; + optional .CMsgVector offset_position = 7; + optional .CMsgQAngle offset_angles = 8; + } + + message UpdateParticleSetFrozen { + optional bool set_frozen = 1; + optional float transition_duration = 2; + } + + message UpdateParticleShouldDraw { + optional bool should_draw = 1; + } + + message ChangeControlPointAttachment { + optional int32 attachment_old = 1; + optional int32 attachment_new = 2; + optional uint32 entity_handle = 3 [default = 16777215]; + } + + message UpdateEntityPosition { + optional uint32 entity_handle = 1 [default = 16777215]; + optional .CMsgVector position = 2; + } + + message SetParticleFoWProperties { + optional int32 fow_control_point = 1; + optional int32 fow_control_point2 = 2; + optional float fow_radius = 3; + } + + message SetParticleShouldCheckFoW { + optional bool check_fow = 1; + } + + message SetControlPointModel { + optional int32 control_point = 1; + optional string model_name = 2; + } + + message SetControlPointSnapshot { + optional int32 control_point = 1; + optional string snapshot_name = 2; + } + + message SetParticleText { + optional string text = 1; + } + + message SetTextureAttribute { + optional string attribute_name = 1; + optional string texture_name = 2; + } + + message SetSceneObjectGenericFlag { + optional bool flag_value = 1; + } + + message SetSceneObjectTintAndDesat { + optional fixed32 tint = 1; + optional float desat = 2; + } + + message ParticleSkipToTime { + optional float skip_to_time = 1; + } + + message ParticleCanFreeze { + optional bool can_freeze = 1; + } + + message ParticleFreezeTransitionOverride { + optional float freeze_transition_override = 1; + } + + message FreezeParticleInvolving { + optional bool set_frozen = 1; + optional float transition_duration = 2; + optional uint32 entity_handle = 3 [default = 16777215]; + } + + message AddModellistOverrideElement { + optional string model_name = 1; + optional float spawn_probability = 2; + optional uint32 groupid = 3; + } + + message ClearModellistOverride { + optional uint32 groupid = 1; + } + + message SetParticleNamedValueContext { + message FloatContextValue { + optional uint32 value_name_hash = 1; + optional float value = 2; + } + + message VectorContextValue { + optional uint32 value_name_hash = 1; + optional .CMsgVector value = 2; + } + + message TransformContextValue { + optional uint32 value_name_hash = 1; + optional .CMsgQAngle angles = 2; + optional .CMsgVector translation = 3; + } + + message EHandleContext { + optional uint32 value_name_hash = 1; + optional uint32 ent_index = 2 [default = 16777215]; + } + + repeated .CUserMsg_ParticleManager.SetParticleNamedValueContext.FloatContextValue float_values = 1; + repeated .CUserMsg_ParticleManager.SetParticleNamedValueContext.VectorContextValue vector_values = 2; + repeated .CUserMsg_ParticleManager.SetParticleNamedValueContext.TransformContextValue transform_values = 3; + repeated .CUserMsg_ParticleManager.SetParticleNamedValueContext.EHandleContext ehandle_values = 4; + } + + message CreatePhysicsSim { + optional string prop_group_name = 1; + optional bool use_high_quality_simulation = 2; + optional uint32 max_particle_count = 3; + } + + message DestroyPhysicsSim { + } + + message SetVData { + optional string vdata_name = 1; + } + + message SetMaterialOverride { + optional string material_name = 1; + optional bool include_children = 2; + } + + required .PARTICLE_MESSAGE type = 1 [default = GAME_PARTICLE_MANAGER_EVENT_CREATE]; + required uint32 index = 2; + optional .CUserMsg_ParticleManager.ReleaseParticleIndex release_particle_index = 3; + optional .CUserMsg_ParticleManager.CreateParticle create_particle = 4; + optional .CUserMsg_ParticleManager.DestroyParticle destroy_particle = 5; + optional .CUserMsg_ParticleManager.DestroyParticleInvolving destroy_particle_involving = 6; + optional .CUserMsg_ParticleManager.UpdateParticle_OBSOLETE update_particle = 7; + optional .CUserMsg_ParticleManager.UpdateParticleFwd_OBSOLETE update_particle_fwd = 8; + optional .CUserMsg_ParticleManager.UpdateParticleOrient_OBSOLETE update_particle_orient = 9; + optional .CUserMsg_ParticleManager.UpdateParticleFallback update_particle_fallback = 10; + optional .CUserMsg_ParticleManager.UpdateParticleOffset update_particle_offset = 11; + optional .CUserMsg_ParticleManager.UpdateParticleEnt update_particle_ent = 12; + optional .CUserMsg_ParticleManager.UpdateParticleShouldDraw update_particle_should_draw = 14; + optional .CUserMsg_ParticleManager.UpdateParticleSetFrozen update_particle_set_frozen = 15; + optional .CUserMsg_ParticleManager.ChangeControlPointAttachment change_control_point_attachment = 16; + optional .CUserMsg_ParticleManager.UpdateEntityPosition update_entity_position = 17; + optional .CUserMsg_ParticleManager.SetParticleFoWProperties set_particle_fow_properties = 18; + optional .CUserMsg_ParticleManager.SetParticleText set_particle_text = 19; + optional .CUserMsg_ParticleManager.SetParticleShouldCheckFoW set_particle_should_check_fow = 20; + optional .CUserMsg_ParticleManager.SetControlPointModel set_control_point_model = 21; + optional .CUserMsg_ParticleManager.SetControlPointSnapshot set_control_point_snapshot = 22; + optional .CUserMsg_ParticleManager.SetTextureAttribute set_texture_attribute = 23; + optional .CUserMsg_ParticleManager.SetSceneObjectGenericFlag set_scene_object_generic_flag = 24; + optional .CUserMsg_ParticleManager.SetSceneObjectTintAndDesat set_scene_object_tint_and_desat = 25; + optional .CUserMsg_ParticleManager.DestroyParticleNamed destroy_particle_named = 26; + optional .CUserMsg_ParticleManager.ParticleSkipToTime particle_skip_to_time = 27; + optional .CUserMsg_ParticleManager.ParticleCanFreeze particle_can_freeze = 28; + optional .CUserMsg_ParticleManager.SetParticleNamedValueContext set_named_value_context = 29; + optional .CUserMsg_ParticleManager.UpdateParticleTransform update_particle_transform = 30; + optional .CUserMsg_ParticleManager.ParticleFreezeTransitionOverride particle_freeze_transition_override = 31; + optional .CUserMsg_ParticleManager.FreezeParticleInvolving freeze_particle_involving = 32; + optional .CUserMsg_ParticleManager.AddModellistOverrideElement add_modellist_override_element = 33; + optional .CUserMsg_ParticleManager.ClearModellistOverride clear_modellist_override = 34; + optional .CUserMsg_ParticleManager.CreatePhysicsSim create_physics_sim = 35; + optional .CUserMsg_ParticleManager.DestroyPhysicsSim destroy_physics_sim = 36; + optional .CUserMsg_ParticleManager.SetVData set_vdata = 37; + optional .CUserMsg_ParticleManager.SetMaterialOverride set_material_override = 38; + + extensions 100 to 201; +} + +message CUserMsg_HudError { + optional int32 order_id = 1; +} + +message CUserMsg_CustomGameEvent { + optional string event_name = 1; + optional bytes data = 2; +} + +message CUserMessageHapticsManagerPulse { + optional int32 hand_id = 1; + optional float effect_amplitude = 2; + optional float effect_frequency = 3; + optional float effect_duration = 4; +} + +message CUserMessageHapticsManagerEffect { + optional int32 hand_id = 1; + optional uint32 effect_name_hash_code = 2; + optional float effect_scale = 3; +} + +message CUserMessageAnimStateGraphState { + optional int32 entity_index = 1; + optional bytes data = 2; +} + +message CUserMessageUpdateCssClasses { + optional int32 target_world_panel = 1; + optional string css_classes = 2; + optional bool is_add = 3; +} + +message CUserMessageServerFrameTime { + optional float frame_time = 1; +} + +message CUserMessageLagCompensationError { + optional float distance = 1; +} + +message CUserMessageRequestDllStatus { + optional string dll_action = 1; + optional bool full_report = 2; +} + +message CUserMessageRequestUtilAction { + optional int32 util1 = 2; + optional int32 util2 = 3; + optional int32 util3 = 4; + optional int32 util4 = 5; + optional int32 util5 = 6; +} + +message CUserMessage_UtilMsg_Response { + message ItemDetail { + optional int32 index = 1; + optional int32 hash = 2; + optional int32 crc = 3; + optional string name = 4; + } + + optional fixed32 crc = 1; + optional int32 item_count = 2; + optional fixed32 crc2 = 3; + optional int32 item_count2 = 4; + repeated int32 crc_part = 5; + repeated int32 crc_part2 = 6; + optional int32 client_timestamp = 7; + optional int32 platform = 8; + repeated .CUserMessage_UtilMsg_Response.ItemDetail itemdetails = 9; + optional int32 itemgroup = 10; + optional int32 total_count = 11; + optional int32 total_count2 = 12; +} + +message CUserMessage_DllStatus { + message CVDiagnostic { + optional uint32 id = 1; + optional uint32 extended = 2; + optional uint64 value = 3; + optional string string_value = 4; + } + + message CModule { + optional uint64 base_addr = 1; + optional string name = 2; + optional uint32 size = 3; + optional uint32 timestamp = 4; + } + + optional string file_report = 1; + optional string command_line = 2; + optional uint32 total_files = 3; + optional uint32 process_id = 4; + optional int32 osversion = 5; + optional uint64 client_time = 6; + repeated .CUserMessage_DllStatus.CVDiagnostic diagnostics = 7; + repeated .CUserMessage_DllStatus.CModule modules = 8; +} + +message CUserMessageRequestInventory { + optional int32 inventory = 1; + optional int32 offset = 2; + optional int32 options = 3; +} + +message CUserMessage_Inventory_Response { + message InventoryDetail { + optional int32 index = 1; + optional int64 primary = 2; + optional int64 offset = 3; + optional int64 first = 4; + optional int64 base = 5; + optional string name = 6; + optional string base_name = 7; + optional int32 base_detail = 8; + optional int32 base_time = 9; + optional int32 base_hash = 10; + } + + optional fixed32 crc = 1; + optional int32 item_count = 2; + optional int32 osversion = 5; + optional int32 perf_time = 6; + optional int32 client_timestamp = 7; + optional int32 platform = 8; + repeated .CUserMessage_Inventory_Response.InventoryDetail inventories = 9; + repeated .CUserMessage_Inventory_Response.InventoryDetail inventories2 = 10; + repeated .CUserMessage_Inventory_Response.InventoryDetail inventories3 = 14; + optional int32 inv_type = 11; + optional int32 build_version = 12; + optional int32 instance = 13; + optional int64 start_time = 15; +} + +message CUserMessageRequestDiagnostic { + message Diagnostic { + optional int32 index = 1; + optional int64 offset = 2; + optional int32 param = 3; + optional int32 length = 4; + optional int32 type = 5; + optional int64 base = 6; + optional int64 range = 7; + optional int64 extent = 8; + optional int64 detail = 9; + optional string name = 10; + optional string alias = 11; + optional bytes vardetail = 12; + optional int32 context = 13; + } + + repeated .CUserMessageRequestDiagnostic.Diagnostic diagnostics = 1; +} + +message CUserMessage_Diagnostic_Response { + message Diagnostic { + optional int32 index = 1; + optional int64 offset = 2; + optional int32 param = 3; + optional int32 length = 4; + optional bytes detail = 5; + optional int64 base = 6; + optional int64 range = 7; + optional int32 type = 8; + optional string name = 10; + optional string alias = 11; + optional bytes backup = 12; + optional int32 context = 13; + optional int64 control = 14; + optional int64 augment = 15; + optional int64 placebo = 16; + } + + repeated .CUserMessage_Diagnostic_Response.Diagnostic diagnostics = 1; + optional int32 build_version = 2; + optional int32 instance = 3; + optional int64 start_time = 4; + optional int32 osversion = 5; + optional int32 platform = 6; +} + +message CUserMessage_ExtraUserData { + optional int32 item = 1; + optional int64 value1 = 2; + optional int64 value2 = 3; + repeated bytes detail1 = 4; + repeated bytes detail2 = 5; +} + +message CUserMessage_NotifyResponseFound { + message Criteria { + optional uint32 name_symbol = 1; + optional string value = 2; + } + + optional int32 ent_index = 1 [default = -1]; + optional string rule_name = 2; + optional string response_value = 3; + optional string response_concept = 4; + repeated .CUserMessage_NotifyResponseFound.Criteria criteria = 5; + repeated uint32 int_criteria_names = 6 [packed = true]; + repeated int32 int_criteria_values = 7 [packed = true]; + repeated uint32 float_criteria_names = 8 [packed = true]; + repeated float float_criteria_values = 9; + repeated uint32 symbol_criteria_names = 10 [packed = true]; + repeated uint32 symbol_criteria_values = 11 [packed = true]; + optional int32 speak_result = 12; +} + +message CUserMessage_PlayResponseConditional { + optional int32 ent_index = 1 [default = -1]; + repeated int32 player_slots = 2; + optional string response = 3; + optional .CMsgVector ent_origin = 4; + optional float pre_delay = 5; + optional int32 mix_priority = 6; +} diff --git a/Protobufs/deadlock/valveextensions.proto b/Protobufs/deadlock/valveextensions.proto new file mode 100644 index 0000000..d391cfa --- /dev/null +++ b/Protobufs/deadlock/valveextensions.proto @@ -0,0 +1,17 @@ +import "google/protobuf/descriptor.proto"; + +extend .google.protobuf.FieldOptions { + optional bool valve_map_field = 61000 [default = false]; + optional bool valve_map_key = 61001 [default = false]; + optional int32 diff_encode_field = 61002 [default = 0]; + optional bool delta_ignore = 61003 [default = false]; + optional uint32 steamml_max_entries = 61004 [default = 0]; + optional bool steamml_is_timestamp = 61005 [default = false]; + optional uint32 steamlearn_count = 61006 [default = 0]; +} + +extend .google.protobuf.EnumValueOptions { + optional string schema_friendly_name = 1000; + optional string schema_description = 1001; + optional bool schema_suppress_enumerator = 1002; +} diff --git a/Protobufs/dota2/base_gcmessages.proto b/Protobufs/dota2/base_gcmessages.proto new file mode 100644 index 0000000..1569604 --- /dev/null +++ b/Protobufs/dota2/base_gcmessages.proto @@ -0,0 +1,401 @@ +import "steammessages.proto"; +import "gcsdk_gcmessages.proto"; + +enum EGCBaseMsg { + k_EMsgGCInviteToParty = 4501; + k_EMsgGCInvitationCreated = 4502; + k_EMsgGCPartyInviteResponse = 4503; + k_EMsgGCKickFromParty = 4504; + k_EMsgGCLeaveParty = 4505; + k_EMsgGCServerAvailable = 4506; + k_EMsgGCClientConnectToServer = 4507; + k_EMsgGCGameServerInfo = 4508; + k_EMsgGCLANServerAvailable = 4511; + k_EMsgGCInviteToLobby = 4512; + k_EMsgGCLobbyInviteResponse = 4513; + k_EMsgGCToClientPollFileRequest = 4514; + k_EMsgGCToClientPollFileResponse = 4515; + k_EMsgGCToGCPerformManualOp = 4516; + k_EMsgGCToGCPerformManualOpCompleted = 4517; + k_EMsgGCToGCReloadServerRegionSettings = 4518; + k_EMsgGCAdditionalWelcomeMsgList = 4519; + k_EMsgGCToClientApplyRemoteConVars = 4520; + k_EMsgGCToServerApplyRemoteConVars = 4521; + k_EMsgClientToGCIntegrityStatus = 4522; + k_EMsgClientToGCAggregateMetrics = 4523; + k_EMsgGCToClientAggregateMetricsBackoff = 4524; +} + +enum ECustomGameInstallStatus { + k_ECustomGameInstallStatus_Unknown = 0; + k_ECustomGameInstallStatus_Ready = 1; + k_ECustomGameInstallStatus_Busy = 2; + k_ECustomGameInstallStatus_FailedGeneric = 101; + k_ECustomGameInstallStatus_FailedInternalError = 102; + k_ECustomGameInstallStatus_RequestedTimestampTooOld = 103; + k_ECustomGameInstallStatus_RequestedTimestampTooNew = 104; + k_ECustomGameInstallStatus_CRCMismatch = 105; + k_ECustomGameInstallStatus_FailedSteam = 106; + k_ECustomGameInstallStatus_FailedCanceled = 107; +} + +message CGCStorePurchaseInit_LineItem { + optional uint32 item_def_id = 1; + optional uint32 quantity = 2; + optional uint32 cost_in_local_currency = 3; + optional uint32 purchase_type = 4; + optional uint64 source_reference_id = 5; + optional int32 price_index = 6; +} + +message CMsgGCStorePurchaseInit { + optional string country = 1; + optional int32 language = 2; + optional int32 currency = 3; + repeated .CGCStorePurchaseInit_LineItem line_items = 4; +} + +message CMsgGCStorePurchaseInitResponse { + optional int32 result = 1; + optional uint64 txn_id = 2; +} + +message CMsgClientPingData { + repeated fixed32 relay_codes = 4 [packed = true]; + repeated uint32 relay_pings = 5 [packed = true]; + repeated uint32 region_codes = 8 [packed = true]; + repeated uint32 region_pings = 9 [packed = true]; + optional uint32 region_ping_failed_bitmask = 10; +} + +message CMsgInviteToParty { + optional fixed64 steam_id = 1; + optional uint32 client_version = 2; + optional uint32 team_id = 3; + optional bool as_coach = 4; + optional .CMsgClientPingData ping_data = 5; +} + +message CMsgInviteToLobby { + optional fixed64 steam_id = 1; + optional uint32 client_version = 2; +} + +message CMsgInvitationCreated { + optional uint64 group_id = 1; + optional fixed64 steam_id = 2; + optional bool user_offline = 3; +} + +message CMsgPartyInviteResponse { + optional uint64 party_id = 1; + optional bool accept = 2; + optional uint32 client_version = 3; + optional .CMsgClientPingData ping_data = 8; +} + +message CMsgLobbyInviteResponse { + optional fixed64 lobby_id = 1; + optional bool accept = 2; + optional uint32 client_version = 3; + optional fixed64 custom_game_crc = 6; + optional fixed32 custom_game_timestamp = 7; +} + +message CMsgKickFromParty { + optional fixed64 steam_id = 1; +} + +message CMsgLeaveParty { +} + +message CMsgCustomGameInstallStatus { + optional .ECustomGameInstallStatus status = 1 [default = k_ECustomGameInstallStatus_Unknown]; + optional string message = 2; + optional fixed32 latest_timestamp_from_steam = 3; +} + +message CMsgServerAvailable { + optional .CMsgCustomGameInstallStatus custom_game_install_status = 1; +} + +message CMsgLANServerAvailable { + optional fixed64 lobby_id = 1; +} + +message CSOEconGameAccountClient { + optional uint32 additional_backpack_slots = 1 [default = 0]; + optional bool trial_account = 2 [default = false]; + optional bool eligible_for_online_play = 3 [default = true]; + optional bool need_to_choose_most_helpful_friend = 4; + optional bool in_coaches_list = 5; + optional fixed32 trade_ban_expiration = 6; + optional fixed32 duel_ban_expiration = 7; + optional bool made_first_purchase = 9 [default = false]; +} + +message CMsgApplyStrangePart { + optional uint64 strange_part_item_id = 1; + optional uint64 item_item_id = 2; +} + +message CMsgApplyPennantUpgrade { + optional uint64 upgrade_item_id = 1; + optional uint64 pennant_item_id = 2; +} + +message CMsgApplyEggEssence { + optional uint64 essence_item_id = 1; + optional uint64 egg_item_id = 2; +} + +message CSOEconItemAttribute { + optional uint32 def_index = 1 [default = 65535]; + optional uint32 value = 2; + optional bytes value_bytes = 3; +} + +message CSOEconItemEquipped { + optional uint32 new_class = 1; + optional uint32 new_slot = 2; +} + +message CSOEconItem { + optional uint64 id = 1; + optional uint32 account_id = 2; + optional uint32 inventory = 3; + optional uint32 def_index = 4; + optional uint32 quantity = 5 [default = 1]; + optional uint32 level = 6 [default = 1]; + optional uint32 quality = 7 [default = 4]; + optional uint32 flags = 8 [default = 0]; + optional uint32 origin = 9 [default = 0]; + repeated .CSOEconItemAttribute attribute = 12; + optional .CSOEconItem interior_item = 13; + optional uint32 style = 15 [default = 0]; + optional uint64 original_id = 16; + repeated .CSOEconItemEquipped equipped_state = 18; +} + +message CMsgSortItems { + optional uint32 sort_type = 1; +} + +message CMsgItemAcknowledged { + optional uint32 account_id = 1; + optional uint32 inventory = 2; + optional uint32 def_index = 3; + optional uint32 quality = 4; + optional uint32 rarity = 5; + optional uint32 origin = 6; +} + +message CMsgSetItemPositions { + message ItemPosition { + optional uint64 item_id = 1; + optional uint32 position = 2; + } + + repeated .CMsgSetItemPositions.ItemPosition item_positions = 1; +} + +message CMsgGCStorePurchaseCancel { + optional uint64 txn_id = 1; +} + +message CMsgGCStorePurchaseCancelResponse { + optional uint32 result = 1; +} + +message CMsgGCStorePurchaseFinalize { + optional uint64 txn_id = 1; +} + +message CMsgGCStorePurchaseFinalizeResponse { + optional uint32 result = 1; + repeated uint64 item_ids = 2; +} + +message CMsgGCToGCBannedWordListUpdated { + optional uint32 group_id = 1; +} + +message CMsgGCToGCDirtySDOCache { + optional uint32 sdo_type = 1; + optional uint64 key_uint64 = 2; +} + +message CMsgSDONoMemcached { +} + +message CMsgGCToGCUpdateSQLKeyValue { + optional string key_name = 1; +} + +message CMsgGCServerVersionUpdated { + optional uint32 server_version = 1; +} + +message CMsgGCClientVersionUpdated { + optional uint32 client_version = 1; +} + +message CMsgGCToGCWebAPIAccountChanged { +} + +message CMsgExtractGems { + optional uint64 tool_item_id = 1; + optional uint64 item_item_id = 2; + optional uint32 item_socket_id = 3 [default = 65535]; +} + +message CMsgExtractGemsResponse { + enum EExtractGems { + k_ExtractGems_Succeeded = 0; + k_ExtractGems_Failed_ToolIsInvalid = 1; + k_ExtractGems_Failed_ItemIsInvalid = 2; + k_ExtractGems_Failed_ToolCannotRemoveGem = 3; + k_ExtractGems_Failed_FailedToRemoveGem = 4; + } + + optional uint64 item_id = 1; + optional .CMsgExtractGemsResponse.EExtractGems response = 2 [default = k_ExtractGems_Succeeded]; +} + +message CMsgAddSocket { + optional uint64 tool_item_id = 1; + optional uint64 item_item_id = 2; + optional bool unusual = 3; +} + +message CMsgAddSocketResponse { + enum EAddSocket { + k_AddSocket_Succeeded = 0; + k_AddSocket_Failed_ToolIsInvalid = 1; + k_AddSocket_Failed_ItemCannotBeSocketed = 2; + k_AddSocket_Failed_FailedToAddSocket = 3; + } + + optional uint64 item_id = 1; + repeated uint32 updated_socket_index = 2; + optional .CMsgAddSocketResponse.EAddSocket response = 3 [default = k_AddSocket_Succeeded]; +} + +message CMsgAddItemToSocketData { + optional uint64 gem_item_id = 1; + optional uint32 socket_index = 2 [default = 65535]; +} + +message CMsgAddItemToSocket { + optional uint64 item_item_id = 1; + repeated .CMsgAddItemToSocketData gems_to_socket = 2; +} + +message CMsgAddItemToSocketResponse { + enum EAddGem { + k_AddGem_Succeeded = 0; + k_AddGem_Failed_GemIsInvalid = 1; + k_AddGem_Failed_ItemIsInvalid = 2; + k_AddGem_Failed_FailedToAddGem = 3; + k_AddGem_Failed_InvalidGemTypeForSocket = 4; + k_AddGem_Failed_InvalidGemTypeForHero = 5; + k_AddGem_Failed_InvalidGemTypeForSlot = 6; + k_AddGem_Failed_SocketContainsUnremovableGem = 7; + } + + optional uint64 item_item_id = 1; + repeated uint32 updated_socket_index = 2; + optional .CMsgAddItemToSocketResponse.EAddGem response = 3 [default = k_AddGem_Succeeded]; +} + +message CMsgResetStrangeGemCount { + optional uint64 item_item_id = 1; + optional uint32 socket_index = 2 [default = 65535]; +} + +message CMsgResetStrangeGemCountResponse { + enum EResetGem { + k_ResetGem_Succeeded = 0; + k_ResetGem_Failed_FailedToResetGem = 1; + k_ResetGem_Failed_ItemIsInvalid = 2; + k_ResetGem_Failed_InvalidSocketId = 3; + k_ResetGem_Failed_SocketCannotBeReset = 4; + } + + optional .CMsgResetStrangeGemCountResponse.EResetGem response = 1 [default = k_ResetGem_Succeeded]; +} + +message CMsgGCToClientPollFileRequest { + optional string file_name = 1; + optional uint32 client_version = 2; + optional uint32 poll_id = 3; +} + +message CMsgGCToClientPollFileResponse { + optional uint32 poll_id = 1; + optional uint32 file_size = 2; + optional uint32 file_crc = 3; +} + +message CMsgGCToGCPerformManualOp { + optional uint64 op_id = 1; + optional uint32 group_code = 2; +} + +message CMsgGCToGCPerformManualOpCompleted { + optional bool success = 1; + optional int32 source_gc = 2 [default = -1]; +} + +message CMsgGCToGCReloadServerRegionSettings { +} + +message CMsgGCAdditionalWelcomeMsgList { + repeated .CExtraMsgBlock welcome_messages = 1; +} + +message CMsgApplyRemoteConVars { + message ConVar { + optional string name = 1; + optional string value = 2; + optional uint32 version_min = 3; + optional uint32 version_max = 4; + optional .EGCPlatform platform = 5 [default = k_eGCPlatform_None]; + } + + repeated .CMsgApplyRemoteConVars.ConVar con_vars = 1; +} + +message CMsgGCToClientApplyRemoteConVars { + optional .CMsgApplyRemoteConVars msg = 1; +} + +message CMsgGCToServerApplyRemoteConVars { + optional .CMsgApplyRemoteConVars msg = 1; +} + +message CMsgClientToGCIntegrityStatus { + message keyvalue { + optional uint32 id = 1; + optional uint32 extended = 2; + optional uint64 value = 3; + optional string string_value = 4; + } + + optional string report = 1; + optional bool secure_allowed = 2; + repeated .CMsgClientToGCIntegrityStatus.keyvalue diagnostics = 3; +} + +message CMsgClientToGCAggregateMetrics { + message SingleMetric { + optional string metric_name = 1; + optional uint32 metric_count = 2; + } + + repeated .CMsgClientToGCAggregateMetrics.SingleMetric metrics = 1; +} + +message CMsgGCToClientAggregateMetricsBackoff { + optional float upload_rate_modifier = 1; +} diff --git a/Protobufs/dota2/c_peer2peer_netmessages.proto b/Protobufs/dota2/c_peer2peer_netmessages.proto new file mode 100644 index 0000000..c4d34cd --- /dev/null +++ b/Protobufs/dota2/c_peer2peer_netmessages.proto @@ -0,0 +1,57 @@ +import "netmessages.proto"; +import "networkbasetypes.proto"; + +enum P2P_Messages { + p2p_TextMessage = 256; + p2p_Voice = 257; + p2p_Ping = 258; + p2p_VRAvatarPosition = 259; + p2p_WatchSynchronization = 260; + p2p_FightingGame_GameData = 261; + p2p_FightingGame_Connection = 262; +} + +message CP2P_TextMessage { + optional bytes text = 1; +} + +message CSteam_Voice_Encoding { + optional bytes voice_data = 1; +} + +message CP2P_Voice { + enum Handler_Flags { + Played_Audio = 1; + } + + optional .CMsgVoiceAudio audio = 1; + optional uint32 broadcast_group = 2; +} + +message CP2P_Ping { + required uint64 send_time = 1; + required bool is_reply = 2; +} + +message CP2P_VRAvatarPosition { + message COrientation { + optional .CMsgVector pos = 1; + optional .CMsgQAngle ang = 2; + } + + repeated .CP2P_VRAvatarPosition.COrientation body_parts = 1; + optional int32 hat_id = 2; + optional int32 scene_id = 3; + optional int32 world_scale = 4; +} + +message CP2P_WatchSynchronization { + optional int32 demo_tick = 1; + optional bool paused = 2; + optional uint64 tv_listen_voice_indices = 3; + optional int32 dota_spectator_mode = 4; + optional bool dota_spectator_watching_broadcaster = 5; + optional int32 dota_spectator_hero_index = 6; + optional int32 dota_spectator_autospeed = 7; + optional int32 dota_replay_speed = 8; +} diff --git a/Protobufs/dota2/clientmessages.proto b/Protobufs/dota2/clientmessages.proto new file mode 100644 index 0000000..484ae57 --- /dev/null +++ b/Protobufs/dota2/clientmessages.proto @@ -0,0 +1,53 @@ +enum EBaseClientMessages { + CM_CustomGameEvent = 280; + CM_CustomGameEventBounce = 281; + CM_ClientUIEvent = 282; + CM_DevPaletteVisibilityChanged = 283; + CM_WorldUIControllerHasPanelChanged = 284; + CM_RotateAnchor = 285; + CM_ListenForResponseFound = 286; + CM_MAX_BASE = 300; +} + +enum EClientUIEvent { + EClientUIEvent_Invalid = 0; + EClientUIEvent_DialogFinished = 1; + EClientUIEvent_FireOutput = 2; +} + +message CClientMsg_CustomGameEvent { + optional string event_name = 1; + optional bytes data = 2; +} + +message CClientMsg_CustomGameEventBounce { + optional string event_name = 1; + optional bytes data = 2; + optional int32 player_slot = 3 [default = -1]; +} + +message CClientMsg_ClientUIEvent { + optional .EClientUIEvent event = 1 [default = EClientUIEvent_Invalid]; + optional uint32 ent_ehandle = 2; + optional uint32 client_ehandle = 3; + optional string data1 = 4; + optional string data2 = 5; +} + +message CClientMsg_DevPaletteVisibilityChangedEvent { + optional bool visible = 1; +} + +message CClientMsg_WorldUIControllerHasPanelChangedEvent { + optional bool has_panel = 1; + optional uint32 client_ehandle = 2; + optional uint32 literal_hand_type = 3; +} + +message CClientMsg_RotateAnchor { + optional float angle = 1; +} + +message CClientMsg_ListenForResponseFound { + optional int32 player_slot = 1 [default = -1]; +} diff --git a/Protobufs/dota2/connectionless_netmessages.proto b/Protobufs/dota2/connectionless_netmessages.proto new file mode 100644 index 0000000..10f7a9e --- /dev/null +++ b/Protobufs/dota2/connectionless_netmessages.proto @@ -0,0 +1,17 @@ +import "netmessages.proto"; + +message C2S_CONNECT_Message { + optional uint32 host_version = 1; + optional uint32 auth_protocol = 2; + optional uint32 challenge_number = 3; + optional fixed64 reservation_cookie = 4; + optional bool low_violence = 5; + optional bytes encrypted_password = 6; + repeated .CCLCMsg_SplitPlayerConnect splitplayers = 7; + optional bytes auth_steam = 8; + optional string challenge_context = 9; +} + +message C2S_CONNECTION_Message { + optional string addon_name = 1; +} diff --git a/Protobufs/dota2/demo.proto b/Protobufs/dota2/demo.proto new file mode 100644 index 0000000..1741b71 --- /dev/null +++ b/Protobufs/dota2/demo.proto @@ -0,0 +1,173 @@ +enum EDemoCommands { + DEM_Error = -1; + DEM_Stop = 0; + DEM_FileHeader = 1; + DEM_FileInfo = 2; + DEM_SyncTick = 3; + DEM_SendTables = 4; + DEM_ClassInfo = 5; + DEM_StringTables = 6; + DEM_Packet = 7; + DEM_SignonPacket = 8; + DEM_ConsoleCmd = 9; + DEM_CustomData = 10; + DEM_CustomDataCallbacks = 11; + DEM_UserCmd = 12; + DEM_FullPacket = 13; + DEM_SaveGame = 14; + DEM_SpawnGroups = 15; + DEM_AnimationData = 16; + DEM_AnimationHeader = 17; + DEM_Max = 18; + DEM_IsCompressed = 64; +} + +message CDemoFileHeader { + required string demo_file_stamp = 1; + optional int32 network_protocol = 2; + optional string server_name = 3; + optional string client_name = 4; + optional string map_name = 5; + optional string game_directory = 6; + optional int32 fullpackets_version = 7; + optional bool allow_clientside_entities = 8; + optional bool allow_clientside_particles = 9; + optional string addons = 10; + optional string demo_version_name = 11; + optional string demo_version_guid = 12; + optional int32 build_num = 13; + optional string game = 14; + optional int32 server_start_tick = 15; +} + +message CGameInfo { + message CDotaGameInfo { + message CPlayerInfo { + optional string hero_name = 1; + optional string player_name = 2; + optional bool is_fake_client = 3; + optional uint64 steamid = 4; + optional int32 game_team = 5; + } + + message CHeroSelectEvent { + optional bool is_pick = 1; + optional uint32 team = 2; + optional int32 hero_id = 3; + } + + optional uint64 match_id = 1; + optional int32 game_mode = 2; + optional int32 game_winner = 3; + repeated .CGameInfo.CDotaGameInfo.CPlayerInfo player_info = 4; + optional uint32 leagueid = 5; + repeated .CGameInfo.CDotaGameInfo.CHeroSelectEvent picks_bans = 6; + optional uint32 radiant_team_id = 7; + optional uint32 dire_team_id = 8; + optional string radiant_team_tag = 9; + optional string dire_team_tag = 10; + optional uint32 end_time = 11; + } + + message CCSGameInfo { + repeated int32 round_start_ticks = 1; + } + + optional .CGameInfo.CDotaGameInfo dota = 4; + optional .CGameInfo.CCSGameInfo cs = 5; +} + +message CDemoFileInfo { + optional float playback_time = 1; + optional int32 playback_ticks = 2; + optional int32 playback_frames = 3; + optional .CGameInfo game_info = 4; +} + +message CDemoPacket { + optional bytes data = 3; +} + +message CDemoFullPacket { + optional .CDemoStringTables string_table = 1; + optional .CDemoPacket packet = 2; +} + +message CDemoSaveGame { + optional bytes data = 1; + optional fixed64 steam_id = 2; + optional fixed64 signature = 3; + optional int32 version = 4; +} + +message CDemoSyncTick { +} + +message CDemoConsoleCmd { + optional string cmdstring = 1; +} + +message CDemoSendTables { + optional bytes data = 1; +} + +message CDemoClassInfo { + message class_t { + optional int32 class_id = 1; + optional string network_name = 2; + optional string table_name = 3; + } + + repeated .CDemoClassInfo.class_t classes = 1; +} + +message CDemoCustomData { + optional int32 callback_index = 1; + optional bytes data = 2; +} + +message CDemoCustomDataCallbacks { + repeated string save_id = 1; +} + +message CDemoAnimationHeader { + optional sint32 entity_id = 1; + optional int32 tick = 2; + optional bytes data = 3; +} + +message CDemoAnimationData { + optional sint32 entity_id = 1; + optional int32 start_tick = 2; + optional int32 end_tick = 3; + optional bytes data = 4; + optional int64 data_checksum = 5; +} + +message CDemoStringTables { + message items_t { + optional string str = 1; + optional bytes data = 2; + } + + message table_t { + optional string table_name = 1; + repeated .CDemoStringTables.items_t items = 2; + repeated .CDemoStringTables.items_t items_clientside = 3; + optional int32 table_flags = 4; + } + + repeated .CDemoStringTables.table_t tables = 1; +} + +message CDemoStop { +} + +message CDemoUserCmd { + optional int32 cmd_number = 1; + optional bytes data = 2; +} + +message CDemoSpawnGroups { + repeated bytes msgs = 3; +} diff --git a/Protobufs/dota2/dota_broadcastmessages.proto b/Protobufs/dota2/dota_broadcastmessages.proto new file mode 100644 index 0000000..0f1f605 --- /dev/null +++ b/Protobufs/dota2/dota_broadcastmessages.proto @@ -0,0 +1,29 @@ +enum EDotaBroadcastMessages { + DOTA_BM_LANLobbyRequest = 1; + DOTA_BM_LANLobbyReply = 2; +} + +message CDOTABroadcastMsg { + required .EDotaBroadcastMessages type = 1 [default = DOTA_BM_LANLobbyRequest]; + optional bytes msg = 2; +} + +message CDOTABroadcastMsg_LANLobbyRequest { +} + +message CDOTABroadcastMsg_LANLobbyReply { + message CLobbyMember { + optional uint32 account_id = 1; + optional string player_name = 2; + } + + optional uint64 id = 1; + optional uint32 tournament_id = 2; + optional uint32 tournament_game_id = 3; + repeated .CDOTABroadcastMsg_LANLobbyReply.CLobbyMember members = 4; + optional bool requires_pass_key = 5; + optional uint32 leader_account_id = 6; + optional uint32 game_mode = 7; + optional string name = 8; + optional uint32 players = 9; +} diff --git a/Protobufs/dota2/dota_client_enums.proto b/Protobufs/dota2/dota_client_enums.proto new file mode 100644 index 0000000..368fcb7 --- /dev/null +++ b/Protobufs/dota2/dota_client_enums.proto @@ -0,0 +1,93 @@ +import "dota_shared_enums.proto"; + +enum ETournamentTemplate { + k_ETournamentTemplate_None = 0; + k_ETournamentTemplate_AutomatedWin3 = 1; +} + +enum ETournamentGameState { + k_ETournamentGameState_Unknown = 0; + k_ETournamentGameState_Canceled = 1; + k_ETournamentGameState_Scheduled = 2; + k_ETournamentGameState_Active = 3; + k_ETournamentGameState_RadVictory = 20; + k_ETournamentGameState_DireVictory = 21; + k_ETournamentGameState_RadVictoryByForfeit = 22; + k_ETournamentGameState_DireVictoryByForfeit = 23; + k_ETournamentGameState_ServerFailure = 40; + k_ETournamentGameState_NotNeeded = 41; +} + +enum ETournamentTeamState { + k_ETournamentTeamState_Unknown = 0; + k_ETournamentTeamState_Node1 = 1; + k_ETournamentTeamState_NodeMax = 1024; + k_ETournamentTeamState_Eliminated = 14003; + k_ETournamentTeamState_Forfeited = 14004; + k_ETournamentTeamState_Finished1st = 15001; + k_ETournamentTeamState_Finished2nd = 15002; + k_ETournamentTeamState_Finished3rd = 15003; + k_ETournamentTeamState_Finished4th = 15004; + k_ETournamentTeamState_Finished5th = 15005; + k_ETournamentTeamState_Finished6th = 15006; + k_ETournamentTeamState_Finished7th = 15007; + k_ETournamentTeamState_Finished8th = 15008; + k_ETournamentTeamState_Finished9th = 15009; + k_ETournamentTeamState_Finished10th = 15010; + k_ETournamentTeamState_Finished11th = 15011; + k_ETournamentTeamState_Finished12th = 15012; + k_ETournamentTeamState_Finished13th = 15013; + k_ETournamentTeamState_Finished14th = 15014; + k_ETournamentTeamState_Finished15th = 15015; + k_ETournamentTeamState_Finished16th = 15016; +} + +enum ETournamentState { + k_ETournamentState_Unknown = 0; + k_ETournamentState_CanceledByAdmin = 1; + k_ETournamentState_Completed = 2; + k_ETournamentState_Merged = 3; + k_ETournamentState_ServerFailure = 4; + k_ETournamentState_TeamAbandoned = 5; + k_ETournamentState_TeamTimeoutForfeit = 6; + k_ETournamentState_TeamTimeoutRefund = 7; + k_ETournamentState_ServerFailureGrantedVictory = 8; + k_ETournamentState_TeamTimeoutGrantedVictory = 9; + k_ETournamentState_InProgress = 100; + k_ETournamentState_WaitingToMerge = 101; +} + +enum ETournamentNodeState { + k_ETournamentNodeState_Unknown = 0; + k_ETournamentNodeState_Canceled = 1; + k_ETournamentNodeState_TeamsNotYetAssigned = 2; + k_ETournamentNodeState_InBetweenGames = 3; + k_ETournamentNodeState_GameInProgress = 4; + k_ETournamentNodeState_A_Won = 5; + k_ETournamentNodeState_B_Won = 6; + k_ETournamentNodeState_A_WonByForfeit = 7; + k_ETournamentNodeState_B_WonByForfeit = 8; + k_ETournamentNodeState_A_Bye = 9; + k_ETournamentNodeState_A_Abandoned = 10; + k_ETournamentNodeState_ServerFailure = 11; + k_ETournamentNodeState_A_TimeoutForfeit = 12; + k_ETournamentNodeState_A_TimeoutRefund = 13; +} + +enum EDOTAGroupMergeResult { + k_EDOTAGroupMergeResult_OK = 0; + k_EDOTAGroupMergeResult_FAILED_GENERIC = 1; + k_EDOTAGroupMergeResult_NOT_LEADER = 2; + k_EDOTAGroupMergeResult_TOO_MANY_PLAYERS = 3; + k_EDOTAGroupMergeResult_TOO_MANY_COACHES = 4; + k_EDOTAGroupMergeResult_ENGINE_MISMATCH = 5; + k_EDOTAGroupMergeResult_NO_SUCH_GROUP = 6; + k_EDOTAGroupMergeResult_OTHER_GROUP_NOT_OPEN = 7; + k_EDOTAGroupMergeResult_ALREADY_INVITED = 8; + k_EDOTAGroupMergeResult_NOT_INVITED = 9; +} + +enum EPartyBeaconType { + k_EPartyBeaconType_Available = 0; + k_EPartyBeaconType_Joinable = 1; +} diff --git a/Protobufs/dota2/dota_clientmessages.proto b/Protobufs/dota2/dota_clientmessages.proto new file mode 100644 index 0000000..90f2cd2 --- /dev/null +++ b/Protobufs/dota2/dota_clientmessages.proto @@ -0,0 +1,628 @@ +import "dota_commonmessages.proto"; +import "dota_shared_enums.proto"; +import "base_gcmessages.proto"; + +enum EDotaClientMessages { + DOTA_CM_MapLine = 301; + DOTA_CM_AspectRatio = 302; + DOTA_CM_MapPing = 303; + DOTA_CM_UnitsAutoAttack = 304; + DOTA_CM_SearchString = 307; + DOTA_CM_Pause = 308; + DOTA_CM_ShopViewMode = 309; + DOTA_CM_SetUnitShareFlag = 310; + DOTA_CM_SwapRequest = 311; + DOTA_CM_SwapAccept = 312; + DOTA_CM_WorldLine = 313; + DOTA_CM_RequestGraphUpdate = 314; + DOTA_CM_ItemAlert = 315; + DOTA_CM_ChatWheel = 316; + DOTA_CM_SendStatPopup = 317; + DOTA_CM_BeginLastHitChallenge = 318; + DOTA_CM_UpdateQuickBuy = 319; + DOTA_CM_UpdateCoachListen = 320; + DOTA_CM_CoachHUDPing = 321; + DOTA_CM_RecordVote = 322; + DOTA_CM_UnitsAutoAttackAfterSpell = 323; + DOTA_CM_WillPurchaseAlert = 324; + DOTA_CM_PlayerShowCase = 325; + DOTA_CM_TeleportRequiresHalt = 326; + DOTA_CM_CameraZoomAmount = 327; + DOTA_CM_BroadcasterUsingCamerman = 328; + DOTA_CM_BroadcasterUsingAssistedCameraOperator = 329; + DOTA_CM_EnemyItemAlert = 330; + DOTA_CM_FreeInventory = 331; + DOTA_CM_BuyBackStateAlert = 332; + DOTA_CM_QuickBuyAlert = 333; + DOTA_CM_HeroStatueLike = 334; + DOTA_CM_ModifierAlert = 335; + DOTA_CM_TeamShowcaseEditor = 336; + DOTA_CM_HPManaAlert = 337; + DOTA_CM_GlyphAlert = 338; + DOTA_CM_TeamShowcaseClientData = 339; + DOTA_CM_PlayTeamShowcase = 340; + DOTA_CM_EventCNY2015Cmd = 341; + DOTA_CM_FillEmptySlotsWithBots = 342; + DOTA_CM_DemoHero = 343; + DOTA_CM_AbilityLearnModeToggled = 344; + DOTA_CM_AbilityStartUse = 345; + DOTA_CM_ChallengeSelect = 346; + DOTA_CM_ChallengeReroll = 347; + DOTA_CM_ClickedBuff = 348; + DOTA_CM_CoinWager = 349; + DOTA_CM_ExecuteOrders = 350; + DOTA_CM_XPAlert = 351; + DOTA_CM_EventPointsTip = 353; + DOTA_CM_KillMyHero = 355; + DOTA_CM_QuestStatus = 356; + DOTA_CM_ToggleAutoattack = 357; + DOTA_CM_SpecialAbility = 358; + DOTA_CM_KillcamDamageTaken = 359; + DOTA_CM_SetEnemyStartingPosition = 360; + DOTA_CM_SetDesiredWardPlacement = 361; + DOTA_CM_RollDice = 362; + DOTA_CM_FlipCoin = 363; + DOTA_CM_RequestItemSuggestions = 364; + DOTA_CM_MakeTeamCaptain = 365; + DOTA_CM_CoinWagerToken = 366; + DOTA_CM_RankWager = 367; + DOTA_CM_DismissAllStatPopups = 368; + DOTA_CM_HelpTipSystemStateChanged = 369; + DOTA_CM_ChannelRequiresHalt = 370; + DOTA_CM_RequestBulkCombatLog = 371; + DOTA_CM_AbilityDraftRequestAbility = 372; + DOTA_CM_GuideSelectOption = 373; + DOTA_CM_GuideSelected = 374; + DOTA_CM_DamageReport = 375; + DOTA_CM_SalutePlayer = 376; + DOTA_CM_SprayWheel = 377; + DOTA_CM_TipAlert = 378; + DOTA_CM_EmptyTeleportAlert = 379; + DOTA_CM_RadarAlert = 380; + DOTA_CM_TalentTreeAlert = 381; + DOTA_CM_SetCavernMapVariant = 382; + DOTA_CM_PauseGameOrder = 383; + DOTA_CM_VersusScene_PlayerBehavior = 384; + DOTA_CM_PlayerBounty = 385; + DOTA_CM_PlayerBountyCancel = 386; + DOTA_CM_EmptyItemSlotAlert = 388; + DOTA_CM_AddOverwatchReportMarker = 389; + DOTA_CM_AghsStatusAlert = 390; + DOTA_CM_PerfReport = 391; + DOTA_CM_ContextualTips_Subscribe = 393; + DOTA_CM_ChatMessage = 394; + DOTA_CM_AddCommunicationsReportMarker = 395; + DOTA_CM_AddCommunicationsBlockMarker = 396; + DOTA_CM_NeutralCampAlert = 397; + DOTA_CM_DuelAccepted = 398; + DOTA_CM_ChooseNeutralItem = 399; + DOTA_CM_PlayerDraftPick = 800; + DOTA_CM_PlayerDraftSuggest = 801; + DOTA_CM_PlayerDraftPreferRole = 802; + DOTA_CM_PlayerDraftPreferTeam = 803; + DOTA_CM_ChatWheelAlert = 804; + DOTA_CM_AbilityAlert = 805; + DOTA_CM_AllyAbilityAlert = 806; + DOTA_CM_GiftPlayer = 807; + DOTA_CM_GiftEveryone = 808; + DOTA_CM_SelectOverworldTokenRewards = 809; + DOTA_CM_FacetAlert = 810; + DOTA_CM_InnateAlert = 811; + DOTA_CM_SelectOverworldID = 812; + DOTA_CM_RerollNeutralItem = 813; + DOTA_CM_RoshanTimer = 814; +} + +message CDOTAClientMsg_MapPing { + optional .CDOTAMsg_LocationPing location_ping = 1; +} + +message CDOTAClientMsg_ItemAlert { + optional .CDOTAMsg_ItemAlert item_alert = 1; +} + +message CDOTAClientMsg_EnemyItemAlert { + optional int32 item_entindex = 1 [default = -1]; + optional int32 rune_type = 2 [default = -1]; + optional int32 item_level = 3 [default = -1]; + optional int32 primary_charges = 4 [default = -1]; + optional int32 secondary_charges = 5 [default = -1]; + optional int32 ability_id = 6 [default = -1]; + optional int32 owner_entindex = 7 [default = -1]; +} + +message CDOTAClientMsg_ModifierAlert { + optional int32 buff_internal_index = 1; + optional int32 target_entindex = 2 [default = -1]; +} + +message CDOTAClientMsg_ClickedBuff { + optional int32 buff_internal_index = 1; + optional int32 target_entindex = 2 [default = -1]; +} + +message CDOTAClientMsg_HPManaAlert { + optional int32 target_entindex = 1 [default = -1]; + optional bool show_raw_values = 2; +} + +message CDOTAClientMsg_NeutralCampAlert { + optional int32 spawner_entindex = 1 [default = -1]; + optional int32 unit_entindex = 2 [default = -1]; + optional bool stack_request = 3; +} + +message CDOTAClientMsg_GlyphAlert { + optional bool negative = 1; +} + +message CDOTAClientMsg_RadarAlert { + optional bool negative = 1; +} + +message CDOTAClientMsg_MapLine { + optional .CDOTAMsg_MapLine mapline = 1; +} + +message CDOTAClientMsg_AspectRatio { + optional float ratio = 1; +} + +message CDOTAClientMsg_UnitsAutoAttackMode { + enum EMode { + INVALID = -1; + NEVER = 0; + AFTER_SPELLCAST = 1; + ALWAYS = 2; + } + + enum EUnitType { + NORMAL = 0; + SUMMONED = 1; + } + + optional .CDOTAClientMsg_UnitsAutoAttackMode.EMode mode = 1 [default = INVALID]; + optional .CDOTAClientMsg_UnitsAutoAttackMode.EUnitType unit_type = 2 [default = NORMAL]; +} + +message CDOTAClientMsg_UnitsAutoAttackAfterSpell { + optional bool enabled = 1; +} + +message CDOTAClientMsg_TeleportRequiresHalt { + optional bool enabled = 1; +} + +message CDOTAClientMsg_ChannelRequiresHalt { + optional bool enabled = 1; +} + +message CDOTAClientMsg_SearchString { + optional string search = 1; +} + +message CDOTAClientMsg_Pause { +} + +message CDOTAClientMsg_ShopViewMode { + optional uint32 mode = 1; +} + +message CDOTAClientMsg_SetUnitShareFlag { + optional int32 player_id = 1 [default = -1]; + optional uint32 flag = 2; + optional bool state = 3; +} + +message CDOTAClientMsg_SwapRequest { + optional int32 player_id = 1 [default = -1]; +} + +message CDOTAClientMsg_SwapAccept { + optional int32 player_id = 1 [default = -1]; +} + +message CDOTAClientMsg_WorldLine { + optional .CDOTAMsg_WorldLine worldline = 1; +} + +message CDOTAClientMsg_RequestGraphUpdate { +} + +message CDOTAClientMsg_ChatWheel { + optional uint32 chat_message_id = 1 [default = 4294967295]; + optional int32 param_hero_id = 2; + optional uint32 emoticon_id = 3; +} + +message CDOTAClientMsg_SendStatPopup { + optional .CDOTAMsg_SendStatPopup statpopup = 1; +} + +message CDOTAClientMsg_DismissAllStatPopups { + optional .CDOTAMsg_DismissAllStatPopups dismissallmsg = 1; +} + +message CDOTAClientMsg_BeginLastHitChallenge { + optional uint32 chosen_lane = 1; + optional bool helper_enabled = 2; +} + +message CDOTAClientMsg_UpdateQuickBuyItem { + optional int32 item_ability_id = 1 [default = -1]; + optional bool purchasable = 2 [default = false]; +} + +message CDOTAClientMsg_UpdateQuickBuy { + repeated .CDOTAClientMsg_UpdateQuickBuyItem items = 1; +} + +message CDOTAClientMsg_RecordVote { + optional int32 choice_index = 1; +} + +message CDOTAClientMsg_WillPurchaseAlert { + optional int32 item_ability_id = 1 [default = -1]; + optional uint32 gold_remaining = 2; + optional int32 suggestion_player_id = 3 [default = -1]; +} + +message CDOTAClientMsg_BuyBackStateAlert { +} + +message CDOTAClientMsg_QuickBuyAlert { + optional int32 item_ability_id = 1 [default = -1]; + optional int32 gold_cost = 2; + optional int32 item_cooldown_seconds = 3; + optional bool show_buyback = 4; +} + +message CDOTAClientMsg_PlayerShowCase { + optional bool showcase = 1; +} + +message CDOTAClientMsg_CameraZoomAmount { + optional float zoom_amount = 1; +} + +message CDOTAClientMsg_BroadcasterUsingCameraman { + optional bool cameraman = 1; +} + +message CDOTAClientMsg_BroadcasterUsingAssistedCameraOperator { + optional bool enabled = 1; +} + +message CDOTAClientMsg_FillEmptySlotsWithBots { + optional bool fillwithbots = 1; +} + +message CDOTAClientMsg_HeroStatueLike { + optional int32 owner_player_id = 1 [default = -1]; +} + +message CDOTAClientMsg_EventCNY2015Cmd { + optional bytes data = 1; +} + +message CDOTAClientMsg_DemoHero { + optional int32 hero_id = 1; + optional int32 hero_id_to_spawn = 2; + repeated uint32 item_defs = 3; + repeated uint64 item_ids = 4; + optional uint32 style_index = 5 [default = 255]; + optional bool keep_existing_demohero = 6; + repeated .CSOEconItem item_data = 7; + optional int32 hero_variant = 8; +} + +message CDOTAClientMsg_ChallengeSelect { + optional uint32 event_id = 1; + optional uint32 slot_id = 2; + optional uint32 sequence_id = 3; +} + +message CDOTAClientMsg_ChallengeReroll { + optional .EEvent event_id = 1 [default = EVENT_ID_NONE]; + optional uint32 slot_id = 2; + optional uint32 sequence_id = 3; + optional int32 hero_id = 4; +} + +message CDOTAClientMsg_CoinWager { + optional uint32 wager_amount = 1; +} + +message CDOTAClientMsg_CoinWagerToken { + optional uint64 wager_token_item_id = 1; +} + +message CDOTAClientMsg_RankWager { + optional bool announce_wager = 1; +} + +message CDOTAClientMsg_PlayerBounty { + optional int32 player_id = 1 [default = -1]; +} + +message CDOTAClientMsg_EventPointsTip { + optional int32 recipient_player_id = 1 [default = -1]; +} + +message CDOTAClientMsg_ExecuteOrders { + repeated .CDOTAMsg_UnitOrder orders = 1; +} + +message CDOTAClientMsg_XPAlert { + optional int32 target_entindex = 1 [default = -1]; + optional uint32 damage_taken = 2; +} + +message CDOTAClientMsg_TalentTreeAlert { + optional int32 target_entindex = 1 [default = -1]; + optional int32 ability_id = 2 [default = -1]; + optional int32 slot = 3; + optional bool learned = 4; +} + +message CDOTAClientMsg_KillcamDamageTaken { + optional int32 target_entindex = 1 [default = -1]; + optional uint32 damage_taken = 2; + optional uint32 item_type = 3; + optional int32 item_ability_id = 4 [default = -1]; + optional string hero_name = 5; + optional string damage_color = 6; +} + +message CDOTAClientMsg_KillMyHero { +} + +message CDOTAClientMsg_QuestStatus { + optional uint32 quest_id = 1; + optional uint32 challenge_id = 2; + optional uint32 progress = 3; + optional uint32 goal = 4; + optional uint32 query = 5; + optional float fail_gametime = 6; + optional int32 item_ability_id = 7 [default = -1]; +} + +message CDOTAClientMsg_ToggleAutoattack { + optional int32 mode = 1; + optional bool show_message = 2; +} + +message CDOTAClientMsg_SpecialAbility { + optional uint32 ability_index = 1; + optional int32 target_entindex = 2 [default = -1]; +} + +message CDOTAClientMsg_SetEnemyStartingPosition { + optional int32 enemy_player_id = 1 [default = -1]; + optional uint32 enemy_starting_position = 2; +} + +message CDOTAClientMsg_SetDesiredWardPlacement { + optional uint32 ward_index = 1; + optional float ward_x = 2; + optional float ward_y = 3; +} + +message CDOTAClientMsg_RollDice { + optional uint32 channel_type = 1; + optional uint32 roll_min = 2; + optional uint32 roll_max = 3; +} + +message CDOTAClientMsg_FlipCoin { + optional uint32 channel_type = 1; +} + +message CDOTAClientMsg_RequestItemSuggestions { +} + +message CDOTAClientMsg_MakeTeamCaptain { + optional int32 player_id = 1 [default = -1]; +} + +message CDOTAClientMsg_HelpTipSystemStateChanged { + optional bool tip_displayed = 1; +} + +message CDOTAClientMsg_RequestBulkCombatLog { + optional float game_time = 1; + optional float duration = 2; + optional bool recent_player_death = 3; + optional int32 player_id = 4 [default = -1]; +} + +message CDOTAClientMsg_AbilityDraftRequestAbility { + optional int32 requested_ability_id = 1 [default = -1]; + optional bool ctrl_is_down = 2; +} + +message CDOTAClientMsg_GuideSelectOption { + optional uint32 option = 1; + optional bool force_recalculate = 2; +} + +message CDOTAClientMsg_GuideSelected { + optional uint64 guide_workshop_id = 1; + optional bool is_plus_guide = 2; +} + +message CDOTAClientMsg_DamageReport { + optional int32 target_hero_id = 1; + optional int32 source_hero_id = 2; + optional int32 damage_amount = 3; + optional bool broadcast = 4; +} + +message CDOTAClientMsg_SalutePlayer { + optional int32 target_player_id = 1 [default = -1]; + optional int32 event_id = 2; +} + +message CDOTAClientMsg_GiftPlayer { + optional int32 target_player_id = 1 [default = -1]; + optional uint32 item_def_index = 2; +} + +message CDOTAClientMsg_GiftEveryone { + optional uint32 item_def_index = 1; +} + +message CDOTAClientMsg_TipAlert { + optional string tip_text = 1; +} + +message CDOTAClientMsg_EmptyTeleportAlert { + optional int32 target_entindex = 1 [default = -1]; +} + +message CDOTAClientMsg_SetCavernMapVariant { + optional uint32 map_variant = 1 [default = 255]; +} + +message CDOTAClientMsg_PauseGameOrder { + optional int32 order_id = 1; + optional int32 data = 2; +} + +message CDOTAClientMsg_VersusScene_PlayerBehavior { + optional .EDOTAVersusScenePlayerBehavior behavior = 1 [default = VS_PLAYER_BEHAVIOR_PLAY_ACTIVITY]; + optional .VersusScene_PlayActivity play_activity = 2; + optional .VersusScene_ChatWheel chat_wheel = 3; + optional .VersusScene_PlaybackRate playback_rate = 4; +} + +message CDOTAClientMsg_EmptyItemSlotAlert { + optional int32 target_entindex = 1 [default = -1]; + optional int32 slot_index = 2; +} + +message CDOTAClientMsg_AddOverwatchReportMarker { + optional int32 target_player_id = 1 [default = -1]; + optional .EOverwatchReportReason reason = 2 [default = k_EOverwatchReportReason_Unknown]; + optional uint32 seconds_ago = 4; +} + +message CDOTAClientMsg_AddCommunicationsReportMarker { + optional int32 target_player_id = 1 [default = -1]; +} + +message CDOTAClientMsg_AddCommunicationsBlockMarker { + optional int32 target_player_id = 1 [default = -1]; +} + +message CDOTAClientMsg_AghsStatusAlert { + optional int32 source_player_id = 1 [default = -1]; + optional int32 target_player_id = 2 [default = -1]; + optional int32 target_entindex = 3 [default = -1]; + optional uint32 alert_type = 4; +} + +message CDOTAClientMsg_PerfReport { + optional float average_frame_time = 1; + optional float max_frame_time = 2; + optional float average_compute_time = 3; + optional float max_compute_time = 4; + optional float average_client_tick_time = 5; + optional float max_client_tick_time = 6; + optional float average_client_simulate_time = 7; + optional float max_client_simulate_time = 8; + optional float average_output_time = 9; + optional float max_output_time = 10; + optional float average_wait_for_rendering_to_complete_time = 11; + optional float max_wait_for_rendering_to_complete_time = 12; + optional float average_swap_time = 13; + optional float max_swap_time = 14; + optional float average_frame_update_time = 15; + optional float max_frame_update_time = 16; + optional float average_idle_time = 17; + optional float max_idle_time = 18; + optional float average_input_processing_time = 19; + optional float max_input_processing_time = 20; +} + +message CDOTAClientMsg_ContextualTips_Subscribe_Entry { + optional bool unsubscribe = 1; + optional int32 tip_id = 2; + optional int32 prior_display_count = 3; + repeated int32 variants_seen = 4; +} + +message CDOTAClientMsg_ContextualTips_Subscribe { + repeated .CDOTAClientMsg_ContextualTips_Subscribe_Entry tips = 1; +} + +message CDOTAClientMsg_ChatMessage { + optional uint32 channel_type = 1; + optional string message_text = 2; +} + +message CDOTAClientMsg_DuelAccepted { + optional int32 challenger_player_id = 1 [default = -1]; + optional int32 accepter_player_id = 2 [default = -1]; +} + +message CDOTAClientMsg_ChooseNeutralItem { + optional int32 neutral_item_index = 1; + optional int32 target_entindex = 2 [default = -1]; + optional int32 slot_index = 3; +} + +message CDOTAClientMsg_RerollNeutralItem { + optional int32 target_entindex = 1 [default = -1]; + optional int32 slot_index = 2; +} + +message CDOTAClientMsg_PlayerDraftPick { + optional int32 player_id = 1 [default = -1]; +} + +message CDOTAClientMsg_PlayerDraftSuggest { + optional int32 player_id = 1 [default = -1]; +} + +message CDOTAClientMsg_PlayerDraftPreferRole { + optional int32 role_idx = 1; + optional bool desired = 2; +} + +message CDOTAClientMsg_PlayerDraftPreferTeam { + optional int32 team = 1; +} + +message CDOTAClientMsg_AbilityAlert { + optional uint32 ability_entindex = 1 [default = 16777215]; + optional bool ctrl_held = 2; + optional int32 owner_entindex = 3 [default = -1]; + optional int32 ability_id = 4 [default = -1]; + optional uint32 primary_charges = 5; + optional uint32 secondary_charges = 6; + optional float reclaim_time = 7; +} + +message CDOTAClientMsg_SelectOverworldTokenRewards { + repeated uint32 token_ids = 1; +} + +message CDOTAClientMsg_FacetAlert { + optional uint32 facet_strhash = 1; + optional uint32 hero_entindex = 2 [default = 16777215]; + optional bool ctrl_held = 3; +} + +message CDOTAClientMsg_InnateAlert { + optional uint32 ability_entindex = 1 [default = 16777215]; + optional bool ctrl_held = 2; +} + +message CDOTAClientMsg_SelectOverworldID { + optional uint32 overworld_id = 1; +} + +message CDOTAClientMsg_RoshanTimer { + optional bool negative = 1; +} diff --git a/Protobufs/dota2/dota_commonmessages.proto b/Protobufs/dota2/dota_commonmessages.proto new file mode 100644 index 0000000..6b9c872 --- /dev/null +++ b/Protobufs/dota2/dota_commonmessages.proto @@ -0,0 +1,147 @@ +import "networkbasetypes.proto"; + +enum EPingSource { + k_ePingSource_Default = 0; + k_ePingSource_Warning = 1; + k_ePingSource_Wheel = 2; + k_ePingSource_System = 3; +} + +enum EDOTAStatPopupTypes { + k_EDOTA_SPT_Textline = 0; + k_EDOTA_SPT_Basic = 1; + k_EDOTA_SPT_Poll = 2; + k_EDOTA_SPT_Grid = 3; + k_EDOTA_SPT_DualImage = 4; + k_EDOTA_SPT_Movie = 5; +} + +enum dotaunitorder_t { + DOTA_UNIT_ORDER_NONE = 0; + DOTA_UNIT_ORDER_MOVE_TO_POSITION = 1; + DOTA_UNIT_ORDER_MOVE_TO_TARGET = 2; + DOTA_UNIT_ORDER_ATTACK_MOVE = 3; + DOTA_UNIT_ORDER_ATTACK_TARGET = 4; + DOTA_UNIT_ORDER_CAST_POSITION = 5; + DOTA_UNIT_ORDER_CAST_TARGET = 6; + DOTA_UNIT_ORDER_CAST_TARGET_TREE = 7; + DOTA_UNIT_ORDER_CAST_NO_TARGET = 8; + DOTA_UNIT_ORDER_CAST_TOGGLE = 9; + DOTA_UNIT_ORDER_HOLD_POSITION = 10; + DOTA_UNIT_ORDER_TRAIN_ABILITY = 11; + DOTA_UNIT_ORDER_DROP_ITEM = 12; + DOTA_UNIT_ORDER_GIVE_ITEM = 13; + DOTA_UNIT_ORDER_PICKUP_ITEM = 14; + DOTA_UNIT_ORDER_PICKUP_RUNE = 15; + DOTA_UNIT_ORDER_PURCHASE_ITEM = 16; + DOTA_UNIT_ORDER_SELL_ITEM = 17; + DOTA_UNIT_ORDER_DISASSEMBLE_ITEM = 18; + DOTA_UNIT_ORDER_MOVE_ITEM = 19; + DOTA_UNIT_ORDER_CAST_TOGGLE_AUTO = 20; + DOTA_UNIT_ORDER_STOP = 21; + DOTA_UNIT_ORDER_TAUNT = 22; + DOTA_UNIT_ORDER_BUYBACK = 23; + DOTA_UNIT_ORDER_GLYPH = 24; + DOTA_UNIT_ORDER_EJECT_ITEM_FROM_STASH = 25; + DOTA_UNIT_ORDER_CAST_RUNE = 26; + DOTA_UNIT_ORDER_PING_ABILITY = 27; + DOTA_UNIT_ORDER_MOVE_TO_DIRECTION = 28; + DOTA_UNIT_ORDER_PATROL = 29; + DOTA_UNIT_ORDER_VECTOR_TARGET_POSITION = 30; + DOTA_UNIT_ORDER_RADAR = 31; + DOTA_UNIT_ORDER_SET_ITEM_COMBINE_LOCK = 32; + DOTA_UNIT_ORDER_CONTINUE = 33; + DOTA_UNIT_ORDER_VECTOR_TARGET_CANCELED = 34; + DOTA_UNIT_ORDER_CAST_RIVER_PAINT = 35; + DOTA_UNIT_ORDER_PREGAME_ADJUST_ITEM_ASSIGNMENT = 36; + DOTA_UNIT_ORDER_DROP_ITEM_AT_FOUNTAIN = 37; + DOTA_UNIT_ORDER_TAKE_ITEM_FROM_NEUTRAL_ITEM_STASH = 38; + DOTA_UNIT_ORDER_MOVE_RELATIVE = 39; + DOTA_UNIT_ORDER_CAST_TOGGLE_ALT = 40; + DOTA_UNIT_ORDER_CONSUME_ITEM = 41; +} + +enum EDOTAVersusScenePlayerBehavior { + VS_PLAYER_BEHAVIOR_PLAY_ACTIVITY = 1; + VS_PLAYER_BEHAVIOR_CHAT_WHEEL = 2; + VS_PLAYER_BEHAVIOR_PLAYBACK_RATE = 3; +} + +message CDOTAMsg_LocationPing { + optional int32 x = 1; + optional int32 y = 2; + optional int32 target = 3 [default = -1]; + optional bool direct_ping = 4; + optional uint32 type = 5 [default = 4294967295]; + optional .EPingSource ping_source = 6 [default = k_ePingSource_Default]; +} + +message CDOTAMsg_ItemAlert { + optional int32 x = 1; + optional int32 y = 2; + optional int32 item_ability_id = 3 [default = -1]; +} + +message CDOTAMsg_MapLine { + optional int32 x = 1; + optional int32 y = 2; + optional bool initial = 3; +} + +message CDOTAMsg_WorldLine { + optional int32 x = 1; + optional int32 y = 2; + optional int32 z = 3; + optional bool initial = 4; + optional bool end = 5; +} + +message CDOTAMsg_SendStatPopup { + optional .EDOTAStatPopupTypes style = 1 [default = k_EDOTA_SPT_Textline]; + repeated string stat_strings = 2; + repeated int32 stat_images = 3; + repeated int32 stat_image_types = 4; + optional float duration = 5; + optional bool use_html = 6; + optional string movie_name = 7; +} + +message CDOTAMsg_DismissAllStatPopups { + optional float time_delay = 1; +} + +message CDOTAMsg_CoachHUDPing { + optional uint32 x = 1; + optional uint32 y = 2; + optional string tgtpath = 3; +} + +message CDOTAMsg_UnitOrder { + optional .dotaunitorder_t order_type = 2 [default = DOTA_UNIT_ORDER_NONE]; + repeated int32 units = 3; + optional int32 target_index = 4 [default = 0]; + optional int32 ability_index = 5 [default = -1]; + optional .CMsgVector position = 6; + optional int32 sequence_number = 8; + optional uint32 flags = 9; +} + +message VersusScene_PlayActivity { + message ActivityInfo { + optional string activity = 1; + optional bool disable_auto_kill = 2; + optional bool force_looping = 3; + } + + repeated .VersusScene_PlayActivity.ActivityInfo activities = 1; + optional float playback_rate = 2; +} + +message VersusScene_ChatWheel { + optional uint32 chat_message_id = 1 [default = 4294967295]; + optional uint32 emoticon_id = 2; +} + +message VersusScene_PlaybackRate { + optional float rate = 1; +} diff --git a/Protobufs/dota2/dota_fighting_game_p2p_messages.proto b/Protobufs/dota2/dota_fighting_game_p2p_messages.proto new file mode 100644 index 0000000..c257d65 --- /dev/null +++ b/Protobufs/dota2/dota_fighting_game_p2p_messages.proto @@ -0,0 +1,54 @@ +import "netmessages.proto"; +import "networkbasetypes.proto"; + +message CMsgFightingGame_GameData_Fighting { + message InputSample { + optional uint32 button_mask = 1; + } + + optional int32 last_acked_frame = 1; + optional uint32 player_id = 2; + optional int32 last_crc_frame = 3; + optional uint32 last_crc_value = 4; + optional float now = 5; + optional float peer_ack_time = 6; + optional int32 input_start_frame = 7; + repeated .CMsgFightingGame_GameData_Fighting.InputSample input_sample = 8; +} + +message CMsgFightingGame_GameData_CharacterSelect { + message Item { + optional uint32 item_def = 1; + optional uint32 style_index = 2 [default = 255]; + } + + optional uint32 cursor_index = 1; + optional int32 selected_hero_id = 2; + optional uint32 selected_style = 3; + repeated .CMsgFightingGame_GameData_CharacterSelect.Item econ_item_refs = 4; + optional int64 message_ack = 5; + optional bool confirmed_style = 6; +} + +message CMsgFightingGame_GameData_Loaded { + optional float now = 1; + optional float peer_ack_time = 2; + optional float proposed_start_time = 3; + optional float accepted_start_time = 4; +} + +message CP2P_FightingGame_GameData { + enum EState { + k_ChoosingCharacter = 1; + k_Loaded = 2; + k_Fighting = 3; + } + + optional .CP2P_FightingGame_GameData.EState state = 1 [default = k_ChoosingCharacter]; + + oneof state_data { + .CMsgFightingGame_GameData_Fighting fight = 2; + .CMsgFightingGame_GameData_CharacterSelect character_select = 3; + .CMsgFightingGame_GameData_Loaded loaded = 4; + } +} diff --git a/Protobufs/dota2/dota_gcmessages_client.proto b/Protobufs/dota2/dota_gcmessages_client.proto new file mode 100644 index 0000000..231cc7f --- /dev/null +++ b/Protobufs/dota2/dota_gcmessages_client.proto @@ -0,0 +1,3334 @@ +import "steammessages.proto"; +import "dota_shared_enums.proto"; +import "dota_gcmessages_common.proto"; +import "dota_gcmessages_webapi.proto"; +import "gcsdk_gcmessages.proto"; +import "dota_gcmessages_common_lobby.proto"; +import "dota_gcmessages_common_match_management.proto"; +import "base_gcmessages.proto"; +import "econ_gcmessages.proto"; +import "valveextensions.proto"; + +enum CMsgDOTARequestMatches_SkillLevel { + CMsgDOTARequestMatches_SkillLevel_Any = 0; + CMsgDOTARequestMatches_SkillLevel_Normal = 1; + CMsgDOTARequestMatches_SkillLevel_High = 2; + CMsgDOTARequestMatches_SkillLevel_VeryHigh = 3; +} + +enum DOTA_WatchReplayType { + DOTA_WATCH_REPLAY_NORMAL = 0; + DOTA_WATCH_REPLAY_HIGHLIGHTS = 1; +} + +enum EItemEditorReservationResult { + k_EItemEditorReservationResult_OK = 1; + k_EItemEditorReservationResult_AlreadyExists = 2; + k_EItemEditorReservationResult_Reserved = 3; + k_EItemEditorReservationResult_TimedOut = 4; +} + +enum EWeekendTourneyRichPresenceEvent { + k_EWeekendTourneyRichPresenceEvent_None = 0; + k_EWeekendTourneyRichPresenceEvent_StartedMatch = 1; + k_EWeekendTourneyRichPresenceEvent_WonMatch = 2; + k_EWeekendTourneyRichPresenceEvent_Eliminated = 3; +} + +enum EDOTATriviaAnswerResult { + k_EDOTATriviaAnswerResult_Success = 0; + k_EDOTATriviaAnswerResult_InvalidQuestion = 1; + k_EDOTATriviaAnswerResult_InvalidAnswer = 2; + k_EDOTATriviaAnswerResult_QuestionLocked = 3; + k_EDOTATriviaAnswerResult_AlreadyAnswered = 4; + k_EDOTATriviaAnswerResult_TriviaDisabled = 5; +} + +enum EPurchaseHeroRelicResult { + k_EPurchaseHeroRelicResult_Success = 0; + k_EPurchaseHeroRelicResult_FailedToSend = 1; + k_EPurchaseHeroRelicResult_NotEnoughPoints = 2; + k_EPurchaseHeroRelicResult_InternalServerError = 3; + k_EPurchaseHeroRelicResult_PurchaseNotAllowed = 4; + k_EPurchaseHeroRelicResult_InvalidRelic = 5; + k_EPurchaseHeroRelicResult_AlreadyOwned = 6; + k_EPurchaseHeroRelicResult_InvalidRarity = 7; +} + +enum EDevEventRequestResult { + k_EDevEventRequestResult_Success = 0; + k_EDevEventRequestResult_NotAllowed = 1; + k_EDevEventRequestResult_InvalidEvent = 2; + k_EDevEventRequestResult_SqlFailure = 3; + k_EDevEventRequestResult_Timeout = 4; + k_EDevEventRequestResult_LockFailure = 5; + k_EDevEventRequestResult_SDOLoadFailure = 6; +} + +enum ESupportEventRequestResult { + k_ESupportEventRequestResult_Success = 0; + k_ESupportEventRequestResult_Timeout = 1; + k_ESupportEventRequestResult_CantLockSOCache = 2; + k_ESupportEventRequestResult_ItemNotInInventory = 3; + k_ESupportEventRequestResult_InvalidItemDef = 4; + k_ESupportEventRequestResult_InvalidEvent = 5; + k_ESupportEventRequestResult_EventExpired = 6; + k_ESupportEventRequestResult_InvalidSupportAccount = 7; + k_ESupportEventRequestResult_InvalidSupportMessage = 8; + k_ESupportEventRequestResult_InvalidEventPoints = 9; + k_ESupportEventRequestResult_InvalidPremiumPoints = 10; + k_ESupportEventRequestResult_InvalidActionID = 11; + k_ESupportEventRequestResult_InvalidActionScore = 12; + k_ESupportEventRequestResult_TransactionFailed = 13; +} + +enum EUnderDraftResponse { + k_eInternalError = 0; + k_eSuccess = 1; + k_eNoGold = 2; + k_eInvalidSlot = 3; + k_eNoBenchSpace = 4; + k_eNoTickets = 5; + k_eEventNotOwned = 6; + k_eInvalidReward = 7; + k_eHasBigReward = 8; + k_eNoGCConnection = 9; + k_eTooBusy = 10; + k_eCantRollBack = 11; +} + +enum EDOTADraftTriviaAnswerResult { + k_EDOTADraftTriviaAnswerResult_Success = 0; + k_EDOTADraftTriviaAnswerResult_InvalidMatchID = 1; + k_EDOTADraftTriviaAnswerResult_AlreadyAnswered = 2; + k_EDOTADraftTriviaAnswerResult_InternalError = 3; + k_EDOTADraftTriviaAnswerResult_TriviaDisabled = 4; + k_EDOTADraftTriviaAnswerResult_GCDown = 5; +} + +enum CMsgClientToGCUpdateComicBookStat_Type { + CMsgClientToGCUpdateComicBookStat_Type_HighestPageRead = 1; + CMsgClientToGCUpdateComicBookStat_Type_SecondsSpentReading = 2; + CMsgClientToGCUpdateComicBookStat_Type_HighestPercentRead = 3; +} + +message CMsgClientSuspended { + optional uint32 time_end = 1; +} + +message CMsgBalancedShuffleLobby { +} + +message CMsgInitialQuestionnaireResponse { + optional uint32 initial_skill = 1; +} + +message CMsgDOTARequestMatchesResponse { + message Series { + repeated .CMsgDOTAMatch matches = 1; + optional uint32 series_id = 2; + optional uint32 series_type = 3; + } + + repeated .CMsgDOTAMatch matches = 1; + repeated .CMsgDOTARequestMatchesResponse.Series series = 2; + optional uint32 request_id = 3; + optional uint32 total_results = 4; + optional uint32 results_remaining = 5; +} + +message CMsgDOTAPopup { + enum PopupID { + NONE = -1; + KICKED_FROM_LOBBY = 0; + KICKED_FROM_PARTY = 1; + KICKED_FROM_TEAM = 2; + TEAM_WAS_DISBANDED = 3; + TEAM_MATCHMAKE_ALREADY_MATCH = 4; + TEAM_MATCHMAKE_ALREADY_FINDING = 5; + TEAM_MATCHMAKE_FULL = 6; + TEAM_MATCHMAKE_FAIL_ADD = 7; + TEAM_MATCHMAKE_FAIL_ADD_CURRENT = 8; + TEAM_MATCHMAKE_FAILED_TEAM_MEMBER = 9; + TEAM_MATCHMAKE_ALREADY_GAME = 10; + TEAM_MATCHMAKE_FAIL_GET_PARTY = 11; + MATCHMAKING_DISABLED = 12; + INVITE_DENIED = 13; + PARTY_FULL = 14; + MADE_ADMIN = 15; + NEED_TO_PURCHASE = 16; + SIGNON_MESSAGE = 17; + MATCHMAKING_REGION_OFFLINE = 19; + TOURNAMENT_GAME_NOT_FOUND = 21; + TOURNAMENT_GAME_HAS_LOBBY_ID = 22; + TOURNAMENT_GAME_HAS_MATCH_ID = 23; + TOURNAMENT_GAME_HAS_NO_RADIANT_TEAM = 24; + TOURNAMENT_GAME_HAS_NO_DIRE_TEAM = 25; + TOURNAMENT_GAME_SQL_UPDATE_FAILED = 26; + NOT_LEAGUE_ADMIN = 27; + IN_ANOTHER_GAME = 29; + PARTY_MEMBER_IN_ANOTHER_GAME = 30; + PARTY_MEMBER_IN_LOW_PRIORITY = 31; + CLIENT_OUT_OF_DATE = 32; + SAVE_GAME_CORRUPT = 38; + INSUFFICIENT_INGOTS = 39; + COMPETITIVE_MM_NOT_ENOUGH_PLAY_TIME_PLAY_MORE_CASUAL = 42; + PARTY_LEADER_JOINED_LOBBY = 44; + WEEKEND_TOURNEY_UNMATCHED = 48; + POST_MATCH_SURVEY = 49; + TROPHY_AWARDED = 50; + TROPHY_LEVEL_UP = 51; + ALL_HERO_CHALLENGE_PROGRESS = 52; + NEED_INITIAL_SKILL = 53; + NEED_INITIAL_SKILL_IN_PARTY = 54; + TARGET_ENGINE_MISMATCH = 55; + VAC_NOT_VERIFIED = 56; + KICKED_FROM_QUEUE_EVENT_STARTING = 57; + KICKED_FROM_QUEUE_EVENT_ENDING = 58; + LOBBY_FULL = 62; + EVENT_POINTS_EARNED = 63; + CUSTOM_GAME_INCORRECT_VERSION = 64; + LIMITED_USER_CHAT = 66; + EVENT_PREMIUM_POINTS_EARNED = 67; + LOBBY_MVP_AWARDED = 68; + LOW_BADGE_LEVEL_CHAT = 71; + LOW_WINS_CHAT = 72; + UNVERIFIED_USER_CHAT = 73; + PARTY_STARTED_FINDING_EVENT_MATCH = 74; + GENERIC_INFO = 69; + GENERIC_ERROR = 70; + RANK_TIER_UPDATED = 75; + CUSTOM_GAME_COOLDOWN_RESTRICTED = 76; + CREATE_LOBBY_FAILED_TOO_MUCH_PLAYTIME = 77; + CUSTOM_GAME_TOO_FEW_GAMES = 78; + COMM_SCORE_TOO_LOW = 79; + } + + optional .CMsgDOTAPopup.PopupID id = 1 [default = NONE]; + optional string custom_text = 2; + optional sint32 int_data = 3; + optional bytes popup_data = 4; + optional string loc_token_header = 5; + optional string loc_token_msg = 6; + repeated string var_names = 7; + repeated string var_values = 8; + optional string debug_text = 9; +} + +message CMsgDOTAReportsRemainingRequest { +} + +message CMsgDOTAReportsRemainingResponse { + optional uint32 num_positive_reports_remaining = 1; + optional uint32 num_negative_reports_remaining = 2; + optional uint32 num_positive_reports_total = 3; + optional uint32 num_negative_reports_total = 4; + optional uint32 num_comms_reports_remaining = 5; + optional uint32 num_comms_reports_total = 6; +} + +message CMsgDOTASubmitPlayerReport { + optional uint32 target_account_id = 1; + optional uint32 report_flags = 2; + optional uint64 lobby_id = 4; + optional string comment = 5; +} + +message CMsgDOTASubmitPlayerReportResponse { + enum EResult { + k_eInternalError = 0; + k_eSuccess = 1; + k_eDuplicateReport = 2; + k_eMixedReportFlags = 3; + k_eTooLate = 4; + k_eInvalidPregameReport = 5; + k_eHasntChatted = 6; + k_eInvalid = 7; + k_eOwnership = 8; + k_eMissingRequirements = 9; + k_eInvalidRoleReport = 10; + k_eInvalidCoachReport = 11; + k_eNoRemainingReports = 12; + k_eInvalidMember = 13; + } + + optional uint32 target_account_id = 1; + optional uint32 report_flags = 2; + optional string debug_message = 4; + optional .CMsgDOTASubmitPlayerReportResponse.EResult enum_result = 5 [default = k_eInternalError]; +} + +message CMsgDOTASubmitPlayerAvoidRequest { + optional uint32 target_account_id = 1; + optional uint64 lobby_id = 4; + optional string user_note = 5; +} + +message CMsgDOTASubmitPlayerAvoidRequestResponse { + optional uint32 target_account_id = 1; + optional uint32 result = 2; + optional string debug_message = 3; +} + +message CMsgDOTASubmitPlayerReportV2 { + optional uint32 target_account_id = 1; + repeated uint32 report_reason = 2; + optional uint64 lobby_id = 3; + optional float game_time = 4; + optional uint32 debug_slot = 5; + optional fixed64 debug_match_id = 6; +} + +message CMsgDOTASubmitPlayerReportResponseV2 { + enum EResult { + k_eInternalError = 0; + k_eSuccess = 1; + k_eDuplicateReport = 2; + k_eMixedReportFlags = 3; + k_eTooLate = 4; + k_eInvalidPregameReport = 5; + k_eHasntChatted = 6; + k_eInvalid = 7; + k_eOwnership = 8; + k_eMissingRequirements = 9; + k_eInvalidRoleReport = 10; + k_eInvalidCoachReport = 11; + k_eNoRemainingReports = 12; + k_eInvalidMember = 13; + k_eCannotReportPartyMember = 14; + } + + optional uint32 target_account_id = 1; + repeated uint32 report_reason = 2; + optional string debug_message = 4; + optional .CMsgDOTASubmitPlayerReportResponseV2.EResult enum_result = 5 [default = k_eInternalError]; +} + +message CMsgDOTASubmitLobbyMVPVote { + optional uint32 target_account_id = 1; +} + +message CMsgDOTASubmitLobbyMVPVoteResponse { + optional uint32 target_account_id = 1; + optional uint32 eresult = 2; +} + +message CMsgDOTALobbyMVPAwarded { + optional uint64 match_id = 1; + repeated uint32 mvp_account_id = 2; +} + +message CMsgDOTAKickedFromMatchmakingQueue { + optional .MatchType match_type = 1 [default = MATCH_TYPE_CASUAL]; +} + +message CMsgGCMatchDetailsRequest { + optional uint64 match_id = 1; +} + +message CMsgGCMatchDetailsResponse { + optional uint32 result = 1; + optional .CMsgDOTAMatch match = 2; + optional .DOTAMatchVote vote = 3 [default = DOTAMatchVote_INVALID]; +} + +message CMsgDOTAProfileTickets { + message LeaguePass { + optional uint32 league_id = 1; + optional uint32 item_def = 2; + } + + optional uint32 result = 1; + optional uint32 account_id = 2; + repeated .CMsgDOTAProfileTickets.LeaguePass league_passes = 3; +} + +message CMsgClientToGCGetProfileTickets { + optional uint32 account_id = 1; +} + +message CMsgGCToClientPartySearchInvites { + repeated .CMsgGCToClientPartySearchInvite invites = 1; +} + +message CMsgDOTAWelcome { + message CExtraMsg { + optional uint32 id = 1; + optional bytes contents = 2; + } + + optional uint32 store_item_hash = 5; + optional uint32 timeplayedconsecutively = 6; + optional bool allow_3rd_party_match_history = 7; + optional uint32 last_ip_address = 13; + optional bool profile_private = 17; + optional uint32 currency = 18; + optional bool should_request_player_origin = 20; + optional uint32 gc_socache_file_version = 22; + optional bool is_perfect_world_test_account = 24; + repeated .CMsgDOTAWelcome.CExtraMsg extra_messages = 26; + optional uint64 minimum_recent_item_id = 27; + optional .EEvent active_event = 28 [default = EVENT_ID_NONE]; + optional uint32 additional_user_message = 29; + optional uint32 custom_game_whitelist_version = 30; + optional .CMsgGCToClientPartySearchInvites party_search_friend_invites = 31; + optional int32 remaining_playtime = 32 [default = -1]; + optional bool disable_guild_persona_info = 33; + repeated .CExtraMsgBlock extra_message_blocks = 34; +} + +message CSODOTAGameHeroFavorites { + optional uint32 account_id = 1 [(key_field) = true]; + optional int32 hero_id = 2 [(key_field) = true]; +} + +message CMsgDOTAMatchVotes { + message PlayerVote { + optional uint32 account_id = 1; + optional uint32 vote = 2; + } + + optional uint64 match_id = 1; + repeated .CMsgDOTAMatchVotes.PlayerVote votes = 2; +} + +message CMsgMatchmakingMatchGroupInfo { + optional uint32 players_searching = 1; + optional sint32 auto_region_select_ping_penalty = 2; + optional sint32 auto_region_select_ping_penalty_custom = 4; + optional .EMatchGroupServerStatus status = 3 [default = k_EMatchGroupServerStatus_OK]; +} + +message CMsgDOTAMatchmakingStatsRequest { +} + +message CMsgDOTAMatchmakingStatsResponse { + optional uint32 matchgroups_version = 1; + repeated uint32 legacy_searching_players_by_group_source2 = 7; + repeated .CMsgMatchmakingMatchGroupInfo match_groups = 8; +} + +message CMsgDOTAUpdateMatchmakingStats { + optional .CMsgDOTAMatchmakingStatsResponse stats = 1; +} + +message CMsgDOTAUpdateMatchManagementStats { + optional .CMsgDOTAMatchmakingStatsResponse stats = 1; +} + +message CMsgDOTASetMatchHistoryAccess { + optional bool allow_3rd_party_match_history = 1; +} + +message CMsgDOTASetMatchHistoryAccessResponse { + optional uint32 eresult = 1 [default = 2]; +} + +message CMsgDOTANotifyAccountFlagsChange { + optional uint32 accountid = 1; + optional uint32 account_flags = 2; +} + +message CMsgDOTASetProfilePrivacy { + optional bool profile_private = 1; +} + +message CMsgDOTASetProfilePrivacyResponse { + optional uint32 eresult = 1; +} + +message CMsgUpgradeLeagueItem { + optional uint64 match_id = 1; + optional uint32 league_id = 2; +} + +message CMsgUpgradeLeagueItemResponse { +} + +message CMsgGCWatchDownloadedReplay { + optional uint64 match_id = 1; + optional .DOTA_WatchReplayType watch_type = 2 [default = DOTA_WATCH_REPLAY_NORMAL]; +} + +message CMsgClientsRejoinChatChannels { +} + +message CMsgGCGetHeroStandings { +} + +message CMsgGCGetHeroStandingsResponse { + message Hero { + optional int32 hero_id = 1; + optional uint32 wins = 2; + optional uint32 losses = 3; + optional uint32 win_streak = 4; + optional uint32 best_win_streak = 5; + optional float avg_kills = 6; + optional float avg_deaths = 7; + optional float avg_assists = 8; + optional float avg_gpm = 9; + optional float avg_xpm = 10; + optional uint32 best_kills = 11; + optional uint32 best_assists = 12; + optional uint32 best_gpm = 13; + optional uint32 best_xpm = 14; + optional float performance = 15; + optional uint32 wins_with_ally = 16; + optional uint32 losses_with_ally = 17; + optional uint32 wins_against_enemy = 18; + optional uint32 losses_against_enemy = 19; + optional uint32 networth_peak = 20; + optional uint32 lasthit_peak = 21; + optional uint32 deny_peak = 22; + optional uint32 damage_peak = 23; + optional uint32 longest_game_peak = 24; + optional uint32 healing_peak = 25; + optional float avg_lasthits = 26; + optional float avg_denies = 27; + } + + repeated .CMsgGCGetHeroStandingsResponse.Hero standings = 1; +} + +message CMatchPlayerTimedStatAverages { + optional float kills = 2; + optional float deaths = 3; + optional float assists = 4; + optional float net_worth = 5; + optional float last_hits = 6; + optional float denies = 7; + optional float item_value = 8; + optional float support_gold_spent = 9; + optional float camps_stacked = 10; + optional float wards_placed = 11; + optional float dewards = 12; + optional float triple_kills = 13; + optional float rampages = 14; +} + +message CMatchPlayerTimedStatStdDeviations { + optional float kills = 2 [default = 1]; + optional float deaths = 3 [default = 1]; + optional float assists = 4 [default = 1]; + optional float net_worth = 5 [default = 1]; + optional float last_hits = 6 [default = 1]; + optional float denies = 7 [default = 1]; + optional float item_value = 8 [default = 1]; + optional float support_gold_spent = 9 [default = 1]; + optional float camps_stacked = 10 [default = 1]; + optional float wards_placed = 11 [default = 1]; + optional float dewards = 12 [default = 1]; + optional float triple_kills = 13 [default = 1]; + optional float rampages = 14 [default = 1]; +} + +message CMsgGCGetHeroTimedStatsResponse { + message TimedStatsContainer { + optional uint32 time = 1; + optional .CMatchPlayerTimedStatAverages all_stats = 2; + optional .CMatchPlayerTimedStatAverages winning_stats = 3; + optional .CMatchPlayerTimedStatAverages losing_stats = 4; + optional .CMatchPlayerTimedStatStdDeviations winning_stddevs = 5; + optional .CMatchPlayerTimedStatStdDeviations losing_stddevs = 6; + } + + message RankChunkedStats { + optional uint32 rank_chunk = 1; + repeated .CMsgGCGetHeroTimedStatsResponse.TimedStatsContainer timed_stats = 2; + } + + optional int32 hero_id = 1; + repeated .CMsgGCGetHeroTimedStatsResponse.RankChunkedStats rank_chunked_stats = 2; +} + +message CMsgGCItemEditorReservationsRequest { +} + +message CMsgGCItemEditorReservation { + optional uint32 def_index = 1; + optional string name = 2; +} + +message CMsgGCItemEditorReservationsResponse { + repeated .CMsgGCItemEditorReservation reservations = 1; +} + +message CMsgGCItemEditorReserveItemDef { + optional uint32 def_index = 1; + optional string username = 2; +} + +message CMsgGCItemEditorReserveItemDefResponse { + optional uint32 def_index = 1; + optional string username = 2; + optional uint32 result = 3; +} + +message CMsgGCItemEditorReleaseReservation { + optional uint32 def_index = 1; + optional string username = 2; +} + +message CMsgGCItemEditorReleaseReservationResponse { + optional uint32 def_index = 1; + optional bool released = 2; +} + +message CMsgFlipLobbyTeams { +} + +message CMsgGCLobbyUpdateBroadcastChannelInfo { + optional uint32 channel_id = 1; + optional string country_code = 2; + optional string description = 3; + optional string language_code = 4; +} + +message CMsgDOTAClaimEventActionData { + message GrantItemGiftData { + optional uint32 give_to_account_id = 1; + optional string gift_message = 2; + } + + optional .CMsgDOTAClaimEventActionData.GrantItemGiftData grant_item_gift_data = 4; +} + +message CMsgDOTAClaimEventAction { + optional uint32 event_id = 1; + optional uint32 action_id = 2; + optional uint32 quantity = 3; + optional .CMsgDOTAClaimEventActionData data = 4; +} + +message CMsgClientToGCClaimEventActionUsingItem { + optional uint32 event_id = 1; + optional uint32 action_id = 2; + optional uint64 item_id = 3; + optional uint32 quantity = 4; +} + +message CMsgClientToGCClaimEventActionUsingItemResponse { + optional .CMsgDOTAClaimEventActionResponse action_results = 1; +} + +message CMsgGCToClientClaimEventActionUsingItemCompleted { + optional uint64 item_id = 1; + optional .CMsgDOTAClaimEventActionResponse action_results = 2; +} + +message CMsgDOTAGetEventPoints { + optional uint32 event_id = 1; + optional uint32 account_id = 2; +} + +message CMsgDOTAGetEventPointsResponse { + message Action { + optional uint32 action_id = 1; + optional uint32 times_completed = 2 [default = 1]; + } + + optional uint32 total_points = 1; + optional uint32 total_premium_points = 2; + optional uint32 event_id = 3; + optional uint32 points = 4; + optional uint32 premium_points = 5; + repeated .CMsgDOTAGetEventPointsResponse.Action completed_actions = 6; + optional uint32 account_id = 7; + optional bool owned = 8; + optional uint32 audit_action = 9; + optional uint32 active_season_id = 10; +} + +message CMsgDOTAGetPeriodicResource { + optional uint32 account_id = 1; + optional uint32 periodic_resource_id = 2; + optional uint32 timestamp = 3; +} + +message CMsgDOTAGetPeriodicResourceResponse { + optional uint32 periodic_resource_max = 1; + optional uint32 periodic_resource_used = 2; +} + +message CMsgDOTAPeriodicResourceUpdated { + optional .CMsgDOTAGetPeriodicResource periodic_resource_key = 1; + optional .CMsgDOTAGetPeriodicResourceResponse periodic_resource_value = 2; +} + +message CMsgDOTACompendiumSelection { + optional uint32 selection_index = 1; + optional uint32 selection = 2; + optional uint32 leagueid = 3; +} + +message CMsgDOTACompendiumSelectionResponse { + optional uint32 eresult = 1 [default = 2]; +} + +message CMsgDOTACompendiumRemoveAllSelections { + optional uint32 leagueid = 1; +} + +message CMsgDOTACompendiumRemoveAllSelectionsResponse { + optional uint32 eresult = 1 [default = 2]; +} + +message CMsgDOTACompendiumData { + repeated .CMsgDOTACompendiumSelection selections = 1; +} + +message CMsgDOTACompendiumDataRequest { + optional uint32 account_id = 1; + optional uint32 leagueid = 2; +} + +message CMsgDOTACompendiumDataResponse { + optional uint32 account_id = 1; + optional uint32 leagueid = 2; + optional uint32 result = 3 [default = 2]; + optional .CMsgDOTACompendiumData compendium_data = 4; +} + +message CMsgDOTAGetPlayerMatchHistory { + optional uint32 account_id = 1; + optional uint64 start_at_match_id = 2; + optional uint32 matches_requested = 3; + optional int32 hero_id = 4; + optional uint32 request_id = 5; + optional bool include_practice_matches = 7; + optional bool include_custom_games = 8; + optional bool include_event_games = 9; +} + +message CMsgDOTAGetPlayerMatchHistoryResponse { + message Match { + optional uint64 match_id = 1; + optional uint32 start_time = 2; + optional int32 hero_id = 3; + optional bool winner = 4; + optional uint32 game_mode = 5; + optional int32 rank_change = 6; + optional uint32 previous_rank = 7; + optional uint32 lobby_type = 8; + optional bool solo_rank = 9; + optional bool abandon = 10; + optional uint32 duration = 11; + optional uint32 engine = 12; + optional bool active_plus_subscription = 13; + optional bool seasonal_rank = 14; + optional uint32 tourney_id = 15; + optional uint32 tourney_round = 16; + optional uint32 tourney_tier = 17; + optional uint32 tourney_division = 18; + optional uint32 team_id = 19; + optional string team_name = 20; + optional uint64 ugc_team_ui_logo = 21; + optional uint32 selected_facet = 22; + } + + repeated .CMsgDOTAGetPlayerMatchHistoryResponse.Match matches = 1; + optional uint32 request_id = 2; +} + +message CMsgGCNotificationsRequest { +} + +message CMsgGCNotifications_Notification { + optional uint64 id = 1; + optional uint32 type = 2; + optional uint32 timestamp = 3; + optional uint32 reference_a = 4; + optional uint32 reference_b = 5; + optional uint32 reference_c = 6; + optional string message = 7; + optional bool unread = 8; +} + +message CMsgGCNotificationsUpdate { + enum EResult { + SUCCESS = 0; + ERROR_UNSPECIFIED = 1; + } + + optional .CMsgGCNotificationsUpdate.EResult result = 1 [default = SUCCESS]; + repeated .CMsgGCNotifications_Notification notifications = 2; +} + +message CMsgGCNotificationsResponse { + optional .CMsgGCNotificationsUpdate update = 1; +} + +message CMsgGCNotificationsMarkReadRequest { +} + +message CMsgGCPlayerInfoSubmit { + optional string name = 1; + optional string country_code = 2; + optional uint32 fantasy_role = 3; + optional uint32 team_id = 4; + optional string sponsor = 5; +} + +message CMsgGCPlayerInfoSubmitResponse { + enum EResult { + SUCCESS = 0; + ERROR_UNSPECIFIED = 1; + ERROR_INFO_LOCKED = 2; + ERROR_NOT_MEMBER_OF_TEAM = 3; + } + + optional .CMsgGCPlayerInfoSubmitResponse.EResult result = 1 [default = SUCCESS]; +} + +message CMsgDOTAEmoticonAccessSDO { + optional uint32 account_id = 1; + optional bytes unlocked_emoticons = 2; +} + +message CMsgClientToGCEmoticonDataRequest { +} + +message CMsgGCToClientEmoticonData { + optional .CMsgDOTAEmoticonAccessSDO emoticon_access = 1; +} + +message CMsgGCToClientTournamentItemDrop { + optional uint32 item_def = 1; + optional uint32 event_type = 2; +} + +message CMsgClientToGCGetAllHeroOrder { +} + +message CMsgClientToGCGetAllHeroOrderResponse { + repeated int32 hero_ids = 1; +} + +message CMsgClientToGCGetAllHeroProgress { + optional uint32 account_id = 1; +} + +message CMsgClientToGCGetAllHeroProgressResponse { + optional uint32 account_id = 1; + optional int32 curr_hero_id = 2; + optional uint32 laps_completed = 3; + optional uint32 curr_hero_games = 4; + optional uint32 curr_lap_time_started = 5; + optional uint32 curr_lap_games = 6; + optional uint32 best_lap_games = 7; + optional uint32 best_lap_time = 8; + optional uint32 lap_heroes_completed = 9; + optional uint32 lap_heroes_remaining = 10; + optional int32 next_hero_id = 11; + optional int32 prev_hero_id = 12; + optional uint32 prev_hero_games = 13; + optional float prev_avg_tries = 14; + optional float curr_avg_tries = 15; + optional float next_avg_tries = 16; + optional float full_lap_avg_tries = 17; + optional float curr_lap_avg_tries = 18; + optional string profile_name = 19; + optional int32 start_hero_id = 20; +} + +message CMsgClientToGCGetTrophyList { + optional uint32 account_id = 1; +} + +message CMsgClientToGCGetTrophyListResponse { + message Trophy { + optional uint32 trophy_id = 1; + optional uint32 trophy_score = 2; + optional uint32 last_updated = 3; + } + + repeated .CMsgClientToGCGetTrophyListResponse.Trophy trophies = 2; +} + +message CMsgGCToClientTrophyAwarded { + optional uint32 trophy_id = 1; + optional uint32 trophy_score = 2; + optional uint32 trophy_old_score = 3; + optional uint32 last_updated = 4; +} + +message CMsgClientToGCRankRequest { + optional .ERankType rank_type = 1 [default = k_ERankType_Invalid]; +} + +message CMsgGCToClientRankResponse { + enum EResultCode { + k_Succeeded = 0; + k_Failed = 1; + k_InvalidRankType = 2; + } + + optional .CMsgGCToClientRankResponse.EResultCode result = 1 [default = k_Succeeded]; + optional uint32 rank_value = 2; + optional uint32 rank_data1 = 3; + optional uint32 rank_data2 = 4; + optional uint32 rank_data3 = 5; +} + +message CMsgGCToClientRankUpdate { + optional .ERankType rank_type = 1 [default = k_ERankType_Invalid]; + optional .CMsgGCToClientRankResponse rank_info = 2; +} + +message CMsgClientToGCGetProfileCard { + optional uint32 account_id = 1; +} + +message CMsgClientToGCSetProfileCardSlots { + message CardSlot { + optional uint32 slot_id = 1; + optional .EProfileCardSlotType slot_type = 2 [default = k_EProfileCardSlotType_Empty]; + optional uint64 slot_value = 3; + } + + repeated .CMsgClientToGCSetProfileCardSlots.CardSlot slots = 1; +} + +message CMsgClientToGCGetProfileCardStats { +} + +message CMsgClientToGCCreateHeroStatue { + optional uint64 source_item_id = 1; + optional int32 hero_id = 3; + optional string sequence_name = 4; + optional float cycle = 5; + repeated uint32 wearables = 6; + optional string inscription = 7; + repeated uint32 styles = 8; + optional uint64 reforger_item_id = 9; + optional bool tournament_drop = 10; +} + +message CMsgGCToClientHeroStatueCreateResult { + optional uint64 resulting_item_id = 1; +} + +message CMsgClientToGCPlayerStatsRequest { + optional uint32 account_id = 1; +} + +message CMsgGCToClientPlayerStatsResponse { + optional uint32 account_id = 1; + repeated float player_stats = 2; + optional uint32 match_count = 3; + optional float mean_gpm = 4; + optional float mean_xppm = 5; + optional float mean_lasthits = 6; + optional uint32 rampages = 7; + optional uint32 triple_kills = 8; + optional uint32 first_blood_claimed = 9; + optional uint32 first_blood_given = 10; + optional uint32 couriers_killed = 11; + optional uint32 aegises_snatched = 12; + optional uint32 cheeses_eaten = 13; + optional uint32 creeps_stacked = 14; + optional float fight_score = 15; + optional float farm_score = 16; + optional float support_score = 17; + optional float push_score = 18; + optional float versatility_score = 19; + optional float mean_networth = 20; + optional float mean_damage = 21; + optional float mean_heals = 22; + optional uint32 rapiers_purchased = 23; +} + +message CMsgClientToGCCustomGamesFriendsPlayedRequest { +} + +message CMsgGCToClientCustomGamesFriendsPlayedResponse { + message CustomGame { + optional uint64 custom_game_id = 1; + repeated uint32 account_ids = 2; + } + + optional uint32 account_id = 1; + repeated .CMsgGCToClientCustomGamesFriendsPlayedResponse.CustomGame games = 2; +} + +message CMsgClientToGCSocialFeedPostCommentRequest { + optional uint64 event_id = 1; + optional string comment = 2; +} + +message CMsgGCToClientSocialFeedPostCommentResponse { + optional bool success = 1; +} + +message CMsgClientToGCSocialFeedPostMessageRequest { + optional string message = 1; + optional uint64 match_id = 2; + optional uint32 match_timestamp = 3; +} + +message CMsgGCToClientSocialFeedPostMessageResponse { + optional bool success = 1; +} + +message CMsgClientToGCFriendsPlayedCustomGameRequest { + optional uint64 custom_game_id = 1; +} + +message CMsgGCToClientFriendsPlayedCustomGameResponse { + optional uint64 custom_game_id = 1; + repeated uint32 account_ids = 2; +} + +message CMsgDOTAPartyRichPresence { + message Member { + optional fixed64 steam_id = 1; + optional bool coach = 2; + } + + message WeekendTourney { + optional uint32 division = 1; + optional uint32 skill_level = 2; + optional uint32 round = 3; + optional uint32 tournament_id = 4; + optional uint32 state_seq_num = 5; + optional .EWeekendTourneyRichPresenceEvent event = 6 [default = k_EWeekendTourneyRichPresenceEvent_None]; + optional uint32 event_round = 7; + } + + optional fixed64 party_id = 1; + optional .CSODOTAParty.State party_state = 2 [default = UI]; + optional bool open = 3; + optional bool low_priority = 5; + optional uint32 team_id = 7; + optional string team_name = 8; + optional uint64 ugc_team_ui_logo = 9; + repeated .CMsgDOTAPartyRichPresence.Member members = 4; + optional .CMsgDOTAPartyRichPresence.WeekendTourney weekend_tourney = 6; +} + +message CMsgDOTALobbyRichPresence { + optional fixed64 lobby_id = 1; + optional .CSODOTALobby.State lobby_state = 2 [default = UI]; + optional bool password = 3; + optional .DOTA_GameMode game_mode = 4 [default = DOTA_GAMEMODE_NONE]; + optional uint32 member_count = 5; + optional uint32 max_member_count = 6; + optional fixed64 custom_game_id = 7; + optional string name = 8; + optional uint32 lobby_type = 9; +} + +message CMsgDOTACustomGameListenServerStartedLoading { + optional fixed64 lobby_id = 1; + optional uint64 custom_game_id = 2; + repeated uint32 lobby_members = 3; + optional uint32 start_time = 4; +} + +message CMsgDOTACustomGameClientFinishedLoading { + optional fixed64 lobby_id = 1; + optional uint32 loading_duration = 2; + optional sint32 result_code = 3; + optional string result_string = 4; + optional uint32 signon_states = 5; + optional string comment = 6; +} + +message CMsgClientToGCApplyGemCombiner { + optional uint64 item_id_1 = 1; + optional uint64 item_id_2 = 2; +} + +message CMsgClientToGCH264Unsupported { +} + +message CMsgClientToGCGetQuestProgress { + repeated uint32 quest_ids = 1; +} + +message CMsgClientToGCGetQuestProgressResponse { + message Challenge { + optional uint32 challenge_id = 1; + optional uint32 time_completed = 2; + optional uint32 attempts = 3; + optional int32 hero_id = 4; + optional uint32 template_id = 5; + optional uint32 quest_rank = 6; + } + + message Quest { + optional uint32 quest_id = 1; + repeated .CMsgClientToGCGetQuestProgressResponse.Challenge completed_challenges = 2; + } + + optional bool success = 1; + repeated .CMsgClientToGCGetQuestProgressResponse.Quest quests = 2; +} + +message CMsgGCToClientMatchSignedOut { + optional uint64 match_id = 1; +} + +message CMsgGCGetHeroStatsHistory { + optional int32 hero_id = 1; +} + +message CMsgGCGetHeroStatsHistoryResponse { + optional int32 hero_id = 1; + repeated .CMsgDOTASDOHeroStatsHistory records = 2; +} + +message CMsgPlayerConductScorecardRequest { +} + +message CMsgPlayerConductScorecard { + enum EBehaviorRating { + k_eBehaviorGood = 0; + k_eBehaviorWarning = 1; + k_eBehaviorBad = 2; + } + + optional uint32 account_id = 1; + optional uint64 match_id = 2; + optional uint32 seq_num = 3; + optional uint32 reasons = 4; + optional uint32 matches_in_report = 5; + optional uint32 matches_clean = 6; + optional uint32 matches_reported = 7; + optional uint32 matches_abandoned = 8; + optional uint32 reports_count = 9; + optional uint32 reports_parties = 10; + optional uint32 commend_count = 11; + optional uint32 date = 14; + optional uint32 raw_behavior_score = 17; + optional uint32 old_raw_behavior_score = 18; + optional uint32 comms_reports = 19; + optional uint32 comms_parties = 20; + optional .CMsgPlayerConductScorecard.EBehaviorRating behavior_rating = 21 [default = k_eBehaviorGood]; +} + +message CMsgClientToGCWageringRequest { + optional uint32 event_id = 1; +} + +message CMsgGCToClientWageringResponse { + optional uint32 coins_remaining = 1; + optional uint32 total_points_won = 2; + optional uint32 total_points_wagered = 3; + optional uint32 total_points_tipped = 4; + optional uint32 success_rate = 5; + optional uint32 total_games_wagered = 6; + optional uint32 coins_max = 7; + optional uint32 rank_wagers_remaining = 8; + optional uint32 rank_wagers_max = 9; + optional uint32 prediction_tokens_remaining = 10; + optional uint32 prediction_tokens_max = 11; + optional uint32 bounties_remaining = 12; + optional uint32 bounties_max = 13; +} + +message CMsgGCToClientWageringUpdate { + optional uint32 event_id = 1; + optional .CMsgGCToClientWageringResponse wagering_info = 2; +} + +message CMsgGCToClientArcanaVotesUpdate { + optional uint32 event_id = 1; + optional .CMsgClientToGCRequestArcanaVotesRemainingResponse arcana_votes = 2; +} + +message CMsgClientToGCGetEventGoals { + repeated .EEvent event_ids = 1; +} + +message CMsgEventGoals { + message EventGoal { + optional .EEvent event_id = 1 [default = EVENT_ID_NONE]; + optional uint32 goal_id = 2; + optional uint64 value = 3; + } + + repeated .CMsgEventGoals.EventGoal event_goals = 1; +} + +message CMsgGCToGCLeaguePredictions { + optional uint32 league_id = 1; +} + +message CMsgPredictionRankings { + message PredictionLine { + optional uint32 answer_id = 1; + optional string answer_name = 2; + optional uint64 answer_logo = 3; + optional float answer_value = 4; + } + + message Prediction { + optional uint32 selection_id = 1; + repeated .CMsgPredictionRankings.PredictionLine prediction_lines = 2; + } + + repeated .CMsgPredictionRankings.Prediction predictions = 1; +} + +message CMsgPredictionResults { + message ResultBreakdown { + optional uint32 answer_selection = 2; + optional float answer_value = 3; + } + + message Result { + optional uint32 selection_id = 1; + repeated .CMsgPredictionResults.ResultBreakdown result_breakdown = 2; + } + + repeated .CMsgPredictionResults.Result results = 1; +} + +message CMsgClientToGCHasPlayerVotedForMVP { + optional uint64 match_id = 1; +} + +message CMsgClientToGCHasPlayerVotedForMVPResponse { + optional bool result = 1; +} + +message CMsgClientToGCVoteForMVP { + optional uint64 match_id = 1; + optional uint32 account_id = 3; +} + +message CMsgClientToGCVoteForMVPResponse { + optional bool result = 1; +} + +message CMsgClientToGCMVPVoteTimeout { + optional uint64 match_id = 1; +} + +message CMsgClientToGCMVPVoteTimeoutResponse { + optional bool result = 1; +} + +message CMsgClientToGCTeammateStatsRequest { +} + +message CMsgClientToGCTeammateStatsResponse { + message TeammateStat { + optional uint32 account_id = 1; + optional uint32 games = 2; + optional uint32 wins = 3; + optional uint32 most_recent_game_timestamp = 4; + optional uint64 most_recent_game_match_id = 5; + optional float performance = 100; + } + + optional bool success = 1; + repeated .CMsgClientToGCTeammateStatsResponse.TeammateStat teammate_stats = 2; +} + +message CMsgClientToGCVoteForArcana { + repeated .CMsgArcanaVoteMatchVotes matches = 1; +} + +message CMsgClientToGCVoteForArcanaResponse { + enum Result { + SUCCEEDED = 0; + VOTING_NOT_ENABLED_FOR_ROUND = 1; + UNKNOWN_FAILURE = 2; + } + + optional .CMsgClientToGCVoteForArcanaResponse.Result result = 1 [default = SUCCEEDED]; +} + +message CMsgClientToGCRequestArcanaVotesRemaining { +} + +message CMsgClientToGCRequestArcanaVotesRemainingResponse { + optional bool result = 1; + optional uint32 votes_remaining = 2; + optional uint32 votes_total = 3; + repeated .CMsgArcanaVoteMatchVotes matches_previously_voted_for = 4; +} + +message CMsgClientToGCRequestEventPointLogV2 { + optional uint32 event_id = 1; +} + +message CMsgClientToGCRequestEventPointLogResponseV2 { + message LogEntry { + optional uint32 timestamp = 1; + optional uint32 audit_action = 2; + optional int32 event_points = 3; + optional uint64 audit_data = 4; + } + + optional bool result = 1; + optional .EEvent event_id = 2 [default = EVENT_ID_NONE]; + repeated .CMsgClientToGCRequestEventPointLogResponseV2.LogEntry log_entries = 3; +} + +message CMsgClientToGCPublishUserStat { + optional uint32 user_stats_event = 1; + optional uint64 reference_data = 2; +} + +message CMsgClientToGCRequestSlarkGameResult { + optional .EEvent event_id = 1 [default = EVENT_ID_NONE]; + optional uint32 slot_chosen = 2; + optional uint32 week = 3; +} + +message CMsgClientToGCRequestSlarkGameResultResponse { + optional uint32 points_won = 1; + optional bool aura_won = 2; +} + +message CMsgGCToClientQuestProgressUpdated { + message Challenge { + optional uint32 challenge_id = 1; + optional uint32 time_completed = 2; + optional uint32 attempts = 3; + optional int32 hero_id = 4; + optional uint32 template_id = 5; + optional uint32 quest_rank = 6; + optional uint32 max_quest_rank = 7; + } + + optional uint32 quest_id = 1; + repeated .CMsgGCToClientQuestProgressUpdated.Challenge completed_challenges = 2; +} + +message CMsgDOTARedeemItem { + optional uint64 currency_id = 1; + optional uint32 purchase_def = 2; +} + +message CMsgDOTARedeemItemResponse { + enum EResultCode { + k_Succeeded = 0; + k_Failed = 1; + } + + optional .CMsgDOTARedeemItemResponse.EResultCode response = 1 [default = k_Succeeded]; +} + +message CMsgClientToGCSelectCompendiumInGamePrediction { + message Prediction { + optional uint32 prediction_id = 1; + optional uint32 prediction_value = 2; + } + + optional uint64 match_id = 1; + repeated .CMsgClientToGCSelectCompendiumInGamePrediction.Prediction predictions = 2; + optional uint32 league_id = 3; +} + +message CMsgClientToGCSelectCompendiumInGamePredictionResponse { + enum EResult { + SUCCESS = 0; + INVALID_MATCH = 1; + PREDICTIONS_ARE_CLOSED = 2; + OTHER_ERROR = 3; + } + + optional .CMsgClientToGCSelectCompendiumInGamePredictionResponse.EResult result = 1 [default = SUCCESS]; +} + +message CMsgClientToGCOpenPlayerCardPack { + optional uint64 player_card_pack_item_id = 1; + optional uint32 team_id = 2; + optional uint32 deprecated_league_id = 3; + optional .ELeagueRegion region = 4 [default = LEAGUE_REGION_UNSET]; +} + +message CMsgClientToGCOpenPlayerCardPackResponse { + enum Result { + SUCCESS = 1; + ERROR_INTERNAL = 2; + ERROR_FAILED_TO_FIND_PACK = 3; + ERROR_ITEM_NOT_CARD_PACK = 4; + ERROR_FAILED_CARD_CREATE = 5; + ERROR_INVALID_TEAM_ID_ATTRIBUTE = 6; + ERROR_INVALID_TEAM_ID = 7; + } + + optional .CMsgClientToGCOpenPlayerCardPackResponse.Result result = 1 [default = SUCCESS]; + repeated uint64 player_card_item_ids = 2; +} + +message CMsgClientToGCRecyclePlayerCard { + repeated uint64 player_card_item_ids = 3; + optional uint32 event_id = 2; +} + +message CMsgClientToGCRecyclePlayerCardResponse { + enum Result { + SUCCESS = 1; + ERROR_INTERNAL = 2; + ERROR_FAILED_TO_FIND_PLAYER_CARD = 3; + ERROR_ITEM_NOT_PLAYER_CARD = 4; + ERROR_FAILED_DUST_CARD_CREATE = 5; + ERROR_CARD_LOCKED = 6; + ERROR_NO_CARDS_SPECIFIED = 7; + } + + optional .CMsgClientToGCRecyclePlayerCardResponse.Result result = 1 [default = SUCCESS]; + optional uint32 dust_amount = 2; +} + +message CMsgClientToGCCreatePlayerCardPack { + optional uint64 card_dust_item_id = 1; + optional uint32 event_id = 2; + optional bool premium_pack = 3; +} + +message CMsgClientToGCCreatePlayerCardPackResponse { + enum Result { + SUCCESS = 1; + ERROR_INTERNAL = 2; + ERROR_INSUFFICIENT_DUST = 3; + ERROR_ITEM_NOT_DUST_ITEM = 4; + ERROR_FAILED_CARD_PACK_CREATE = 5; + ERROR_NO_CARD_PACK = 6; + ERROR_NOT_AVAILABLE = 7; + } + + optional .CMsgClientToGCCreatePlayerCardPackResponse.Result result = 1 [default = SUCCESS]; +} + +message CMsgClientToGCCreateTeamPlayerCardPack { + optional uint64 card_dust_item_id = 1; + optional uint32 event_id = 2; + optional bool premium_pack = 3; + optional uint32 team_id = 4; +} + +message CMsgClientToGCCreateTeamPlayerCardPackResponse { + enum Result { + SUCCESS = 1; + ERROR_INTERNAL = 2; + ERROR_INSUFFICIENT_DUST = 3; + ERROR_ITEM_NOT_DUST_ITEM = 4; + ERROR_FAILED_CARD_PACK_CREATE = 5; + ERROR_NO_CARD_PACK = 6; + ERROR_NOT_AVAILABLE = 7; + } + + optional .CMsgClientToGCCreateTeamPlayerCardPackResponse.Result result = 1 [default = SUCCESS]; +} + +message CMsgGCToClientBattlePassRollup_International2016 { + message Questlines { + optional string name = 1; + optional uint32 onestar = 2; + optional uint32 twostar = 3; + optional uint32 threestar = 4; + optional uint32 total = 5; + } + + message Wagering { + optional uint32 total_wagered = 1; + optional uint32 total_won = 2; + optional uint32 average_won = 3; + optional uint32 success_rate = 4; + optional uint32 total_tips = 5; + } + + message Achievements { + optional uint32 completed = 1; + optional uint32 total = 2; + optional uint32 points = 3; + } + + message BattleCup { + optional uint32 wins = 1; + optional uint32 score = 2; + } + + message Predictions { + optional uint32 correct = 1; + optional uint32 total = 2; + optional uint32 points = 3; + } + + message Bracket { + optional uint32 correct = 1; + optional uint32 points = 2; + } + + message PlayerCard { + optional uint32 account_id = 1; + optional uint32 quality = 2; + } + + message FantasyChallenge { + optional float total_score = 1; + optional float percentile = 2; + } + + optional uint32 battle_pass_level = 1; + repeated .CMsgGCToClientBattlePassRollup_International2016.Questlines questlines = 2; + optional .CMsgGCToClientBattlePassRollup_International2016.Wagering wagering = 3; + optional .CMsgGCToClientBattlePassRollup_International2016.Achievements achievements = 4; + optional .CMsgGCToClientBattlePassRollup_International2016.BattleCup battle_cup = 5; + optional .CMsgGCToClientBattlePassRollup_International2016.Predictions predictions = 6; + optional .CMsgGCToClientBattlePassRollup_International2016.Bracket bracket = 7; + repeated .CMsgGCToClientBattlePassRollup_International2016.PlayerCard player_cards = 8; + optional .CMsgGCToClientBattlePassRollup_International2016.FantasyChallenge fantasy_challenge = 9; +} + +message CMsgGCToClientBattlePassRollup_Fall2016 { + message Questlines { + optional string name = 1; + optional uint32 onestar = 2; + optional uint32 twostar = 3; + optional uint32 threestar = 4; + optional uint32 total = 5; + } + + message Wagering { + optional uint32 total_wagered = 1; + optional uint32 total_won = 2; + optional uint32 average_won = 3; + optional uint32 success_rate = 4; + optional uint32 total_tips = 5; + } + + message Achievements { + optional uint32 completed = 1; + optional uint32 total = 2; + optional uint32 points = 3; + } + + message BattleCup { + optional uint32 wins = 1; + optional uint32 score = 2; + } + + message Predictions { + optional uint32 correct = 1; + optional uint32 total = 2; + optional uint32 points = 3; + } + + message Bracket { + optional uint32 correct = 1; + optional uint32 points = 2; + } + + message PlayerCard { + optional uint32 account_id = 1; + optional uint32 quality = 2; + } + + message FantasyChallenge { + optional float total_score = 1; + optional float percentile = 2; + } + + optional uint32 battle_pass_level = 1; + repeated .CMsgGCToClientBattlePassRollup_Fall2016.Questlines questlines = 2; + optional .CMsgGCToClientBattlePassRollup_Fall2016.Wagering wagering = 3; + optional .CMsgGCToClientBattlePassRollup_Fall2016.Achievements achievements = 4; + optional .CMsgGCToClientBattlePassRollup_Fall2016.BattleCup battle_cup = 5; + optional .CMsgGCToClientBattlePassRollup_Fall2016.Predictions predictions = 6; + optional .CMsgGCToClientBattlePassRollup_Fall2016.Bracket bracket = 7; + repeated .CMsgGCToClientBattlePassRollup_Fall2016.PlayerCard player_cards = 8; + optional .CMsgGCToClientBattlePassRollup_Fall2016.FantasyChallenge fantasy_challenge = 9; +} + +message CMsgGCToClientBattlePassRollup_Winter2017 { + message Questlines { + optional string name = 1; + optional uint32 onestar = 2; + optional uint32 twostar = 3; + optional uint32 threestar = 4; + optional uint32 total = 5; + } + + message Wagering { + optional uint32 total_wagered = 1; + optional uint32 total_won = 2; + optional uint32 average_won = 3; + optional uint32 success_rate = 4; + optional uint32 total_tips = 5; + } + + message Achievements { + optional uint32 completed = 1; + optional uint32 total = 2; + optional uint32 points = 3; + } + + message BattleCup { + optional uint32 wins = 1; + optional uint32 score = 2; + } + + message Predictions { + optional uint32 correct = 1; + optional uint32 total = 2; + optional uint32 points = 3; + } + + message Bracket { + optional uint32 correct = 1; + optional uint32 points = 2; + } + + message PlayerCard { + optional uint32 account_id = 1; + optional uint32 quality = 2; + } + + message FantasyChallenge { + optional float total_score = 1; + optional float percentile = 2; + } + + optional uint32 battle_pass_level = 1; + repeated .CMsgGCToClientBattlePassRollup_Winter2017.Questlines questlines = 2; + optional .CMsgGCToClientBattlePassRollup_Winter2017.Wagering wagering = 3; + optional .CMsgGCToClientBattlePassRollup_Winter2017.Achievements achievements = 4; + optional .CMsgGCToClientBattlePassRollup_Winter2017.BattleCup battle_cup = 5; + optional .CMsgGCToClientBattlePassRollup_Winter2017.Predictions predictions = 6; + optional .CMsgGCToClientBattlePassRollup_Winter2017.Bracket bracket = 7; + repeated .CMsgGCToClientBattlePassRollup_Winter2017.PlayerCard player_cards = 8; + optional .CMsgGCToClientBattlePassRollup_Winter2017.FantasyChallenge fantasy_challenge = 9; +} + +message CMsgGCToClientBattlePassRollup_TI7 { + message Questlines { + optional string name = 1; + optional uint32 onestar = 2; + optional uint32 twostar = 3; + optional uint32 threestar = 4; + optional uint32 total = 5; + } + + message Wagering { + optional uint32 total_wagered = 1; + optional uint32 total_won = 2; + optional uint32 average_won = 3; + optional uint32 success_rate = 4; + optional uint32 total_tips = 5; + } + + message Achievements { + optional uint32 completed = 1; + optional uint32 total = 2; + optional uint32 points = 3; + } + + message BattleCup { + optional uint32 wins = 1; + optional uint32 score = 2; + } + + message Predictions { + optional uint32 correct = 1; + optional uint32 total = 2; + optional uint32 points = 3; + } + + message Bracket { + optional uint32 correct = 1; + optional uint32 points = 2; + } + + message PlayerCard { + optional uint32 account_id = 1; + optional uint32 quality = 2; + } + + message FantasyChallenge { + optional float total_score = 1; + optional float percentile = 2; + } + + optional uint32 battle_pass_level = 1; + repeated .CMsgGCToClientBattlePassRollup_TI7.Questlines questlines = 2; + optional .CMsgGCToClientBattlePassRollup_TI7.Wagering wagering = 3; + optional .CMsgGCToClientBattlePassRollup_TI7.Achievements achievements = 4; + optional .CMsgGCToClientBattlePassRollup_TI7.BattleCup battle_cup = 5; + optional .CMsgGCToClientBattlePassRollup_TI7.Predictions predictions = 6; + optional .CMsgGCToClientBattlePassRollup_TI7.Bracket bracket = 7; + repeated .CMsgGCToClientBattlePassRollup_TI7.PlayerCard player_cards = 8; + optional .CMsgGCToClientBattlePassRollup_TI7.FantasyChallenge fantasy_challenge = 9; +} + +message CMsgGCToClientBattlePassRollup_TI8 { + message CavernCrawl { + optional uint32 rooms_cleared = 1; + optional bool carry_completed = 2; + optional bool support_completed = 3; + optional bool utility_completed = 4; + } + + message Wagering { + optional uint32 total_wagered = 1; + optional uint32 total_won = 2; + optional uint32 average_won = 3; + optional uint32 success_rate = 4; + optional uint32 total_tips = 5; + } + + message Achievements { + optional uint32 completed = 1; + optional uint32 total = 2; + optional uint32 points = 3; + } + + message Predictions { + optional uint32 correct = 1; + optional uint32 total = 2; + optional uint32 points = 3; + } + + message Bracket { + optional uint32 correct = 1; + optional uint32 points = 2; + } + + message PlayerCard { + optional uint32 account_id = 1; + optional uint32 quality = 2; + } + + message FantasyChallenge { + optional float total_score = 1; + optional float percentile = 2; + } + + optional uint32 battle_pass_level = 1; + optional .CMsgGCToClientBattlePassRollup_TI8.CavernCrawl cavern_crawl = 2; + optional .CMsgGCToClientBattlePassRollup_TI8.Wagering wagering = 3; + optional .CMsgGCToClientBattlePassRollup_TI8.Achievements achievements = 4; + optional .CMsgGCToClientBattlePassRollup_TI8.Predictions predictions = 6; + optional .CMsgGCToClientBattlePassRollup_TI8.Bracket bracket = 7; + repeated .CMsgGCToClientBattlePassRollup_TI8.PlayerCard player_cards = 8; + optional .CMsgGCToClientBattlePassRollup_TI8.FantasyChallenge fantasy_challenge = 9; +} + +message CMsgGCToClientBattlePassRollup_TI9 { + optional uint32 battle_pass_level = 1; +} + +message CMsgGCToClientBattlePassRollup_TI10 { + optional uint32 battle_pass_level = 1; +} + +message CMsgGCToClientBattlePassRollupRequest { + optional uint32 event_id = 1; + optional uint32 account_id = 2; +} + +message CMsgGCToClientBattlePassRollupResponse { + optional .CMsgGCToClientBattlePassRollup_International2016 event_ti6 = 1; + optional .CMsgGCToClientBattlePassRollup_Fall2016 event_fall2016 = 2; + optional .CMsgGCToClientBattlePassRollup_Winter2017 event_winter2017 = 3; + optional .CMsgGCToClientBattlePassRollup_TI7 event_ti7 = 4; + optional .CMsgGCToClientBattlePassRollup_TI8 event_ti8 = 5; + optional .CMsgGCToClientBattlePassRollup_TI9 event_ti9 = 6; + optional .CMsgGCToClientBattlePassRollup_TI10 event_ti10 = 7; +} + +message CMsgGCToClientBattlePassRollupListRequest { + optional uint32 account_id = 1; +} + +message CMsgGCToClientBattlePassRollupListResponse { + message EventInfo { + optional uint32 event_id = 1; + optional uint32 level = 2; + } + + repeated .CMsgGCToClientBattlePassRollupListResponse.EventInfo event_info = 1; +} + +message CMsgClientToGCTransferSeasonalMMRRequest { + optional bool is_party = 1; +} + +message CMsgClientToGCTransferSeasonalMMRResponse { + optional bool success = 1; +} + +message CMsgGCToClientPlaytestStatus { + optional bool active = 1; +} + +message CMsgClientToGCJoinPlaytest { + optional uint32 client_version = 1; +} + +message CMsgClientToGCJoinPlaytestResponse { + optional string error = 1; +} + +message CMsgDOTASetFavoriteTeam { + optional uint32 team_id = 1; + optional uint32 event_id = 2; +} + +message CMsgDOTATriviaCurrentQuestions { + repeated .CMsgDOTATriviaQuestion questions = 1; + optional bool trivia_enabled = 2; +} + +message CMsgDOTASubmitTriviaQuestionAnswer { + optional uint32 question_id = 1; + optional uint32 answer_index = 2; +} + +message CMsgDOTASubmitTriviaQuestionAnswerResponse { + optional .EDOTATriviaAnswerResult result = 1 [default = k_EDOTATriviaAnswerResult_Success]; +} + +message CMsgDOTAStartTriviaSession { +} + +message CMsgDOTAStartTriviaSessionResponse { + optional bool trivia_enabled = 1; + optional uint32 current_timestamp = 2; +} + +message CMsgDOTAAnchorPhoneNumberRequest { +} + +message CMsgDOTAAnchorPhoneNumberResponse { + enum Result { + SUCCESS = 0; + ERROR_UNKNOWN = 1; + ERROR_NO_STEAM_PHONE = 2; + ERROR_ALREADY_IN_USE = 3; + ERROR_COOLDOWN_ACTIVE = 4; + ERROR_GAC_ISSUE = 5; + } + + optional .CMsgDOTAAnchorPhoneNumberResponse.Result result = 1 [default = SUCCESS]; +} + +message CMsgDOTAUnanchorPhoneNumberRequest { +} + +message CMsgDOTAUnanchorPhoneNumberResponse { + enum Result { + SUCCESS = 0; + ERROR_UNKNOWN = 1; + } + + optional .CMsgDOTAUnanchorPhoneNumberResponse.Result result = 1 [default = SUCCESS]; +} + +message CMsgGCToClientCommendNotification { + optional uint32 commender_account_id = 1; + optional string commender_name = 2; + optional uint32 flags = 3; + optional int32 commender_hero_id = 4; +} + +message CMsgDOTAClientToGCQuickStatsRequest { + optional uint32 player_account_id = 1; + optional int32 hero_id = 2; + optional int32 item_id = 3 [default = -1]; + optional uint32 league_id = 4; +} + +message CMsgDOTAClientToGCQuickStatsResponse { + message SimpleStats { + optional float win_percent = 1; + optional float pick_percent = 2; + optional uint32 win_count = 3; + optional uint32 pick_count = 4; + } + + optional .CMsgDOTAClientToGCQuickStatsRequest original_request = 1; + optional .CMsgDOTAClientToGCQuickStatsResponse.SimpleStats hero_stats = 2; + optional .CMsgDOTAClientToGCQuickStatsResponse.SimpleStats item_stats = 3; + optional .CMsgDOTAClientToGCQuickStatsResponse.SimpleStats item_hero_stats = 4; + optional .CMsgDOTAClientToGCQuickStatsResponse.SimpleStats item_player_stats = 5; + optional .CMsgDOTAClientToGCQuickStatsResponse.SimpleStats hero_player_stats = 6; + optional .CMsgDOTAClientToGCQuickStatsResponse.SimpleStats full_set_stats = 7; +} + +message CMsgDOTASelectionPriorityChoiceRequest { + optional .DOTASelectionPriorityChoice choice = 1 [default = k_DOTASelectionPriorityChoice_Invalid]; +} + +message CMsgDOTASelectionPriorityChoiceResponse { + enum Result { + SUCCESS = 0; + ERROR_UNKNOWN = 1; + } + + optional .CMsgDOTASelectionPriorityChoiceResponse.Result result = 1 [default = SUCCESS]; +} + +message CMsgDOTAGameAutographReward { + optional string badge_id = 1; +} + +message CMsgDOTAGameAutographRewardResponse { + enum Result { + SUCCESS = 0; + ERROR_UNKNOWN = 1; + } + + optional .CMsgDOTAGameAutographRewardResponse.Result result = 1 [default = SUCCESS]; +} + +message CMsgDOTADestroyLobbyRequest { +} + +message CMsgDOTADestroyLobbyResponse { + enum Result { + SUCCESS = 0; + ERROR_UNKNOWN = 1; + } + + optional .CMsgDOTADestroyLobbyResponse.Result result = 1 [default = SUCCESS]; +} + +message CMsgDOTAGetRecentPlayTimeFriendsRequest { +} + +message CMsgDOTAGetRecentPlayTimeFriendsResponse { + repeated fixed32 account_ids = 1; +} + +message CMsgPurchaseItemWithEventPoints { + optional uint32 item_def = 1; + optional uint32 quantity = 2; + optional .EEvent event_id = 3 [default = EVENT_ID_NONE]; + optional bool use_premium_points = 4; +} + +message CMsgPurchaseItemWithEventPointsResponse { + enum Result { + SUCCESS = 0; + UNKNOWN_EVENT = 1; + UNKNOWN_ITEM = 2; + BAD_QUANTITY = 3; + NOT_PURCHASEABLE = 4; + SDO_LOAD_FAILED = 5; + NOT_ENOUGH_POINTS = 6; + SQL_ERROR = 7; + FAILED_TO_SEND = 8; + SERVER_ERROR = 9; + NOT_ALLOWED = 10; + CANCELLED = 11; + CLIENT_ERROR = 12; + SUBSCRIPTION_REQUIRED = 13; + } + + optional .CMsgPurchaseItemWithEventPointsResponse.Result result = 1 [default = SUCCESS]; +} + +message CMsgPurchaseHeroRandomRelic { + optional int32 hero_id = 1; + optional .EHeroRelicRarity relic_rarity = 2 [default = HERO_RELIC_RARITY_INVALID]; +} + +message CMsgPurchaseHeroRandomRelicResponse { + optional .EPurchaseHeroRelicResult result = 1 [default = k_EPurchaseHeroRelicResult_Success]; + optional uint32 kill_eater_type = 2; +} + +message CMsgClientToGCRequestPlusWeeklyChallengeResult { + optional .EEvent event_id = 1 [default = EVENT_ID_NONE]; + optional uint32 week = 2; +} + +message CMsgClientToGCRequestPlusWeeklyChallengeResultResponse { +} + +message CMsgProfileRequest { + optional uint32 account_id = 1; +} + +message CMsgProfileResponse { + message FeaturedHero { + optional int32 hero_id = 1; + repeated .CSOEconItem equipped_econ_items = 2; + optional bool manually_set = 3; + optional uint32 plus_hero_xp = 4; + optional .CSOEconItem plus_hero_relics_item = 5; + } + + message MatchInfo { + optional uint64 match_id = 1; + optional uint32 match_timestamp = 2; + optional sint32 performance_rating = 3; + optional int32 hero_id = 4; + optional bool won_match = 5; + } + + enum EResponse { + k_eInternalError = 0; + k_eSuccess = 1; + k_eTooBusy = 2; + k_eDisabled = 3; + } + + optional .CSOEconItem background_item = 1; + repeated .CMsgProfileResponse.FeaturedHero featured_heroes = 2; + repeated .CMsgProfileResponse.MatchInfo recent_matches = 3; + repeated .CMsgSuccessfulHero successful_heroes = 4; + optional .CMsgRecentMatchInfo recent_match_details = 5; + optional .CMsgProfileResponse.EResponse result = 6 [default = k_eInternalError]; + optional .CMsgStickerbookPage stickerbook_page = 7; +} + +message CMsgProfileUpdate { + optional uint64 background_item_id = 1; + repeated int32 featured_hero_ids = 2; +} + +message CMsgProfileUpdateResponse { + enum Result { + SUCCESS = 0; + FAILURE = 1; + FAILURE_BAD_HERO1 = 2; + FAILURE_BAD_HERO2 = 3; + FAILURE_BAD_HERO3 = 4; + } + + optional .CMsgProfileUpdateResponse.Result result = 1 [default = SUCCESS]; +} + +message CMsgTalentWinRates { + optional uint32 last_run = 1; + optional int32 ability_id = 2 [default = -1]; + optional uint32 game_count = 3; + optional uint32 win_count = 4; +} + +message CMsgGlobalHeroAverages { + optional uint32 last_run = 1; + optional uint32 avg_gold_per_min = 3; + optional uint32 avg_xp_per_min = 4; + optional uint32 avg_kills = 5; + optional uint32 avg_deaths = 6; + optional uint32 avg_assists = 7; + optional uint32 avg_last_hits = 8; + optional uint32 avg_denies = 9; + optional uint32 avg_net_worth = 10; +} + +message CMsgHeroGlobalDataRequest { + optional int32 hero_id = 1; +} + +message CMsgHeroGlobalDataResponse { + message GraphData { + optional uint32 day = 1; + optional float win_percent = 2; + optional float pick_percent = 3; + optional float ban_percent = 4; + } + + message WeekData { + optional uint32 week = 1; + optional float win_percent = 2; + optional float pick_percent = 3; + optional float ban_percent = 4; + } + + message HeroDataPerRankChunk { + optional uint32 rank_chunk = 1; + repeated .CMsgTalentWinRates talent_win_rates = 2; + optional .CMsgGlobalHeroAverages hero_averages = 3; + repeated .CMsgHeroGlobalDataResponse.GraphData graph_data = 4; + repeated .CMsgHeroGlobalDataResponse.WeekData week_data = 5; + } + + optional int32 hero_id = 1; + repeated .CMsgHeroGlobalDataResponse.HeroDataPerRankChunk hero_data_per_chunk = 2; +} + +message CMsgHeroGlobalDataAllHeroes { + repeated .CMsgHeroGlobalDataResponse heroes = 1; +} + +message CMsgHeroGlobalDataHeroesAlliesAndEnemies { + message HeroData { + optional int32 hero_id = 1; + optional uint32 win_rate = 2; + optional int32 first_other_hero_id = 3; + repeated uint32 ally_win_rate = 5; + repeated uint32 enemy_win_rate = 6; + } + + message RankedHeroData { + optional uint32 rank = 1; + repeated .CMsgHeroGlobalDataHeroesAlliesAndEnemies.HeroData hero_data = 2; + } + + repeated .CMsgHeroGlobalDataHeroesAlliesAndEnemies.RankedHeroData ranked_hero_data = 1; +} + +message CMsgPrivateMetadataKeyRequest { + optional uint64 match_id = 1; +} + +message CMsgPrivateMetadataKeyResponse { + optional uint32 private_key = 1; +} + +message CMsgActivatePlusFreeTrialResponse { + enum Result { + SUCCESS = 0; + ERROR_GENERIC = 1; + ERROR_ALREADY_IN_FREE_TRIAL = 2; + ERROR_ALREADY_USED_FREE_TRIAL = 3; + ERROR_OFFER_NOT_VALID = 4; + } + + optional .CMsgActivatePlusFreeTrialResponse.Result result = 1 [default = SUCCESS]; +} + +message CMsgGCToClientCavernCrawlMapPathCompleted { + message CompletedPathInfo { + optional uint32 path_id_completed = 1 [default = 255]; + optional bool received_ultra_rare_reward = 2; + optional bool half_completed = 3; + } + + optional uint32 event_id = 1; + optional int32 hero_id_completed = 2; + repeated .CMsgGCToClientCavernCrawlMapPathCompleted.CompletedPathInfo completed_paths = 3; + optional uint32 map_variant = 4 [default = 255]; +} + +message CMsgGCToClientCavernCrawlMapUpdated { + optional uint32 event_id = 1; +} + +message CMsgClientToGCCavernCrawlClaimRoom { + optional uint32 event_id = 1; + optional uint32 room_id = 2 [default = 255]; + optional uint32 map_variant = 3 [default = 255]; +} + +message CMsgClientToGCCavernCrawlClaimRoomResponse { + enum Result { + SUCCESS = 0; + ERROR_UNKNOWN = 1; + RECEIVED_ULTRA_RARE_REWARD = 2; + } + + optional .CMsgClientToGCCavernCrawlClaimRoomResponse.Result result = 1 [default = SUCCESS]; +} + +message CMsgClientToGCCavernCrawlUseItemOnRoom { + optional uint32 event_id = 1; + optional uint32 room_id = 2 [default = 255]; + optional uint32 item_type = 3; + optional uint32 map_variant = 4 [default = 255]; +} + +message CMsgClientToGCCavernCrawlUseItemOnRoomResponse { + enum Result { + SUCCESS = 0; + ERROR_UNKNOWN = 1; + RECEIVED_ULTRA_RARE_REWARD = 2; + } + + optional .CMsgClientToGCCavernCrawlUseItemOnRoomResponse.Result result = 1 [default = SUCCESS]; +} + +message CMsgClientToGCCavernCrawlUseItemOnPath { + optional uint32 event_id = 1; + optional uint32 path_id = 2 [default = 255]; + optional uint32 item_type = 3; + optional uint32 map_variant = 4 [default = 255]; +} + +message CMsgClientToGCCavernCrawlUseItemOnPathResponse { + enum Result { + SUCCESS = 0; + ERROR_UNKNOWN = 1; + RECEIVED_ULTRA_RARE_REWARD = 2; + } + + optional .CMsgClientToGCCavernCrawlUseItemOnPathResponse.Result result = 1 [default = SUCCESS]; +} + +message CMsgClientToGCCavernCrawlRequestMapState { + optional uint32 event_id = 1; +} + +message CMsgClientToGCCavernCrawlRequestMapStateResponse { + message SwappedChallenge { + optional uint32 path_id_1 = 1 [default = 255]; + optional uint32 path_id_2 = 2 [default = 255]; + } + + message InventoryItem { + optional uint32 item_type = 1; + optional uint32 count = 2; + } + + message TreasureMap { + optional uint32 map_room_id = 1 [default = 255]; + optional uint32 revealed_room_id = 2 [default = 255]; + } + + message MapVariant { + optional uint32 map_variant = 1 [default = 255]; + optional fixed64 claimed_rooms_1 = 2; + optional fixed64 claimed_rooms_2 = 3; + optional fixed64 revealed_rooms_1 = 4; + optional fixed64 revealed_rooms_2 = 5; + optional fixed64 completed_paths_1 = 6; + optional fixed64 completed_paths_2 = 7; + optional fixed64 completed_paths_3 = 8; + optional fixed64 completed_paths_4 = 9; + optional fixed64 half_completed_paths_1 = 10; + optional fixed64 half_completed_paths_2 = 11; + optional fixed64 half_completed_paths_3 = 12; + optional fixed64 half_completed_paths_4 = 13; + repeated .CMsgClientToGCCavernCrawlRequestMapStateResponse.SwappedChallenge swapped_challenge = 14; + optional uint32 ultra_rare_reward_room_number = 15 [default = 255]; + repeated .CMsgClientToGCCavernCrawlRequestMapStateResponse.TreasureMap treasure_map = 16; + } + + enum Result { + SUCCESS = 0; + ERROR_UNKNOWN = 1; + EVENT_NOT_OWNED = 2; + } + + optional .CMsgClientToGCCavernCrawlRequestMapStateResponse.Result result = 1 [default = SUCCESS]; + optional uint32 available_map_variants_mask = 2; + repeated .CMsgClientToGCCavernCrawlRequestMapStateResponse.InventoryItem inventory_item = 3; + repeated .CMsgClientToGCCavernCrawlRequestMapStateResponse.MapVariant map_variants = 4; +} + +message CMsgClientToGCCavernCrawlGetClaimedRoomCount { + optional uint32 event_id = 1; +} + +message CMsgClientToGCCavernCrawlGetClaimedRoomCountResponse { + message MapVariant { + optional uint32 map_variant = 1 [default = 255]; + optional uint32 count = 2; + } + + enum Result { + SUCCESS = 0; + ERROR_UNKNOWN = 1; + EVENT_NOT_OWNED = 2; + } + + optional .CMsgClientToGCCavernCrawlGetClaimedRoomCountResponse.Result result = 1 [default = SUCCESS]; + repeated .CMsgClientToGCCavernCrawlGetClaimedRoomCountResponse.MapVariant map_variants = 2; + optional uint32 available_map_variants_mask = 3; +} + +message CMsgDOTAMutationList { + message Mutation { + optional uint32 id = 1; + optional string name = 2; + optional string description = 3; + } + + repeated .CMsgDOTAMutationList.Mutation mutations = 1; +} + +message CMsgEventTipsSummaryRequest { + optional .EEvent event_id = 1 [default = EVENT_ID_NONE]; + optional uint32 account_id = 2; +} + +message CMsgEventTipsSummaryResponse { + message Tipper { + optional uint32 tipper_account_id = 1; + optional uint32 tip_count = 2 [default = 1]; + } + + optional bool result = 1; + repeated .CMsgEventTipsSummaryResponse.Tipper tips_received = 2; +} + +message CMsgSocialFeedRequest { + optional uint32 account_id = 1; + optional bool self_only = 2; +} + +message CMsgSocialFeedResponse { + message FeedEvent { + optional uint64 feed_event_id = 1; + optional uint32 account_id = 2; + optional uint32 timestamp = 3; + optional uint32 comment_count = 4; + optional uint32 event_type = 5; + optional uint32 event_sub_type = 6; + optional uint64 param_big_int_1 = 7; + optional uint32 param_int_1 = 8; + optional uint32 param_int_2 = 9; + optional uint32 param_int_3 = 10; + optional string param_string = 11; + } + + enum Result { + SUCCESS = 0; + FAILED_TO_LOAD_FRIENDS = 1; + FAILED_TO_LOAD_FEED_DATA = 2; + FAILED_TO_LOAD_FEED_ENTRY = 3; + FAILED_TO_LOAD_COMMENTS = 4; + FAILED_TOO_MANY_REQUESTS = 5; + } + + optional .CMsgSocialFeedResponse.Result result = 1 [default = SUCCESS]; + repeated .CMsgSocialFeedResponse.FeedEvent feed_events = 2; +} + +message CMsgSocialFeedCommentsRequest { + optional uint64 feed_event_id = 1; +} + +message CMsgSocialFeedCommentsResponse { + message FeedComment { + optional uint32 commenter_account_id = 1; + optional uint32 timestamp = 2; + optional string comment_text = 3; + } + + enum Result { + SUCCESS = 0; + FAILED_TOO_MANY_REQUESTS = 1; + FAILED_TO_LOAD_COMMENTS = 2; + } + + optional .CMsgSocialFeedCommentsResponse.Result result = 1 [default = SUCCESS]; + repeated .CMsgSocialFeedCommentsResponse.FeedComment feed_comments = 3; +} + +message CMsgClientToGCPlayerCardSpecificPurchaseRequest { + optional uint32 player_account_id = 1; + optional uint32 event_id = 2; + optional uint64 card_dust_item_id = 3; +} + +message CMsgClientToGCPlayerCardSpecificPurchaseResponse { + enum Result { + SUCCESS = 1; + ERROR_INTERNAL = 2; + ERROR_INSUFFICIENT_DUST = 3; + ERROR_ITEM_NOT_DUST_ITEM = 4; + ERROR_FAILED_CARD_PACK_CREATE = 5; + ERROR_NOT_AVAILABLE = 6; + } + + optional .CMsgClientToGCPlayerCardSpecificPurchaseResponse.Result result = 1 [default = SUCCESS]; + optional uint64 item_id = 2; +} + +message CMsgClientToGCRequestContestVotes { + optional uint32 contest_id = 1; +} + +message CMsgClientToGCRequestContestVotesResponse { + message ItemVote { + optional uint64 contest_item_id = 1; + optional int32 vote = 2; + } + + enum EResponse { + k_eInternalError = 0; + k_eSuccess = 1; + k_eTooBusy = 2; + k_eDisabled = 3; + } + + optional .CMsgClientToGCRequestContestVotesResponse.EResponse result = 1 [default = k_eInternalError]; + repeated .CMsgClientToGCRequestContestVotesResponse.ItemVote votes = 2; +} + +message CMsgClientToGCRecordContestVote { + optional uint32 contest_id = 1; + optional uint64 contest_item_id = 2; + optional int32 vote = 3; +} + +message CMsgGCToClientRecordContestVoteResponse { + enum EResult { + SUCCESS = 0; + FAILED_EVENT_NOT_OWNED = 1; + FAILED_SQL_INSERT_FAILED = 2; + FAILED_INVALID_CONTEST = 3; + FAILED_CONTEST_NOT_ACTIVE = 4; + FAILED_TIMEOUT = 5; + } + + optional .CMsgGCToClientRecordContestVoteResponse.EResult eresult = 1 [default = SUCCESS]; +} + +message CMsgDevGrantEventPoints { + optional .EEvent event_id = 1 [default = EVENT_ID_NONE]; + optional uint32 event_points = 2; + optional uint32 premium_points = 3; +} + +message CMsgDevGrantEventPointsResponse { + optional .EDevEventRequestResult result = 1 [default = k_EDevEventRequestResult_Success]; +} + +message CMsgDevGrantEventAction { + optional .EEvent event_id = 1 [default = EVENT_ID_NONE]; + optional uint32 action_id = 2; + optional uint32 action_score = 3; +} + +message CMsgDevGrantEventActionResponse { + optional .EDevEventRequestResult result = 1 [default = k_EDevEventRequestResult_Success]; +} + +message CMsgDevDeleteEventActions { + optional .EEvent event_id = 1 [default = EVENT_ID_NONE]; + optional uint32 start_action_id = 2; + optional uint32 end_action_id = 3; + optional bool remove_audit = 4; +} + +message CMsgDevDeleteEventActionsResponse { + optional .EDevEventRequestResult result = 1 [default = k_EDevEventRequestResult_Success]; +} + +message CMsgDevResetEventState { + optional .EEvent event_id = 1 [default = EVENT_ID_NONE]; + optional bool remove_audit = 2; +} + +message CMsgDevResetEventStateResponse { + optional .EDevEventRequestResult result = 1 [default = k_EDevEventRequestResult_Success]; +} + +message CMsgConsumeEventSupportGrantItem { + optional uint64 item_id = 1; +} + +message CMsgConsumeEventSupportGrantItemResponse { + optional .ESupportEventRequestResult result = 1 [default = k_ESupportEventRequestResult_Success]; +} + +message CMsgClientToGCGetFilteredPlayers { +} + +message CMsgGCToClientGetFilteredPlayersResponse { + message CFilterEntry { + optional fixed32 account_id = 1; + optional fixed32 time_added = 2; + optional fixed32 time_expires = 3; + optional string note = 4; + } + + enum Result { + SUCCESS = 0; + FAILURE = 1; + } + + optional .CMsgGCToClientGetFilteredPlayersResponse.Result result = 1 [default = SUCCESS]; + repeated .CMsgGCToClientGetFilteredPlayersResponse.CFilterEntry filtered_players = 2; + optional int32 base_slots = 3; + optional int32 additional_slots = 4; + optional int32 next_slot_cost = 5; +} + +message CMsgClientToGCRemoveFilteredPlayer { + optional fixed32 account_id_to_remove = 1; +} + +message CMsgGCToClientRemoveFilteredPlayerResponse { + enum Result { + SUCCESS = 0; + FAILURE = 1; + } + + optional .CMsgGCToClientRemoveFilteredPlayerResponse.Result result = 1 [default = SUCCESS]; +} + +message CMsgClientToGCPurchaseFilteredPlayerSlot { + optional int32 additional_slots_current = 1; +} + +message CMsgGCToClientPurchaseFilteredPlayerSlotResponse { + enum Result { + SUCCESS = 0; + FAILURE = 1; + CURRENT_SLOTCOUNT_DOESNT_MATCH = 2; + CANT_AFFORD = 3; + } + + optional .CMsgGCToClientPurchaseFilteredPlayerSlotResponse.Result result = 1 [default = SUCCESS]; + optional int32 additional_slots = 2; + optional int32 next_slot_cost = 3; +} + +message CMsgClientToGCUpdateFilteredPlayerNote { + optional fixed32 target_account_id = 1; + optional string new_note = 2; +} + +message CMsgGCToClientUpdateFilteredPlayerNoteResponse { + enum Result { + SUCCESS = 0; + FAILURE = 1; + NOT_FOUND = 2; + } + + optional .CMsgGCToClientUpdateFilteredPlayerNoteResponse.Result result = 1 [default = SUCCESS]; +} + +message CMsgPartySearchPlayer { + optional fixed32 account_id = 1; + optional fixed64 match_id = 2; + optional fixed32 creation_time = 3; +} + +message CMsgGCToClientPlayerBeaconState { + repeated int32 num_active_beacons = 1; +} + +message CMsgGCToClientPartyBeaconUpdate { + optional bool beacon_added = 1; + optional int32 beacon_type = 2; + optional fixed32 account_id = 3; +} + +message CMsgClientToGCUpdatePartyBeacon { + enum Action { + ON = 0; + OFF = 1; + } + + optional .CMsgClientToGCUpdatePartyBeacon.Action action = 1 [default = ON]; +} + +message CMsgClientToGCRequestActiveBeaconParties { +} + +message CMsgGCToClientRequestActiveBeaconPartiesResponse { + enum EResponse { + SUCCESS = 0; + FAILURE = 1; + BUSY = 2; + } + + optional .CMsgGCToClientRequestActiveBeaconPartiesResponse.EResponse response = 1 [default = SUCCESS]; + repeated .CPartySearchClientParty active_parties = 2; +} + +message CMsgClientToGCJoinPartyFromBeacon { + optional fixed64 party_id = 1; + optional fixed32 account_id = 2; + optional int32 beacon_type = 3; +} + +message CMsgGCToClientJoinPartyFromBeaconResponse { + enum EResponse { + SUCCESS = 0; + FAILURE = 1; + BUSY = 2; + NOT_LEADER = 3; + } + + optional .CMsgGCToClientJoinPartyFromBeaconResponse.EResponse response = 1 [default = SUCCESS]; +} + +message CMsgClientToGCManageFavorites { + enum Action { + ADD = 0; + REMOVE = 1; + } + + optional .CMsgClientToGCManageFavorites.Action action = 1 [default = ADD]; + optional fixed32 account_id = 2; + optional string favorite_name = 3; + optional bool invite_response = 4; + optional bool from_friendlist = 5; + optional fixed64 lobby_id = 6; +} + +message CMsgGCToClientManageFavoritesResponse { + enum EResponse { + SUCCESS = 0; + FAILURE = 1; + NO_INVITE_PRESENT = 2; + INVITE_SENT = 3; + EXPIRED = 4; + BUSY = 5; + } + + optional .CMsgGCToClientManageFavoritesResponse.EResponse response = 1 [default = SUCCESS]; + optional string debug_message = 2; + optional .CMsgPartySearchPlayer player = 3; +} + +message CMsgClientToGCGetFavoritePlayers { + optional uint64 pagination_key = 1; + optional int32 pagination_count = 2; +} + +message CMsgGCToClientGetFavoritePlayersResponse { + enum EResponse { + SUCCESS = 0; + FAILURE = 1; + } + + optional .CMsgGCToClientGetFavoritePlayersResponse.EResponse response = 1 [default = SUCCESS]; + repeated .CMsgPartySearchPlayer players = 2; + optional uint64 next_pagination_key = 3; +} + +message CMsgGCToClientPartySearchInvite { + optional fixed32 account_id = 1; +} + +message CMsgClientToGCVerifyFavoritePlayers { + repeated fixed32 account_ids = 1; +} + +message CMsgGCToClientVerifyFavoritePlayersResponse { + message Result { + optional .CMsgPartySearchPlayer player = 1; + optional bool is_favorite = 2; + } + + repeated .CMsgGCToClientVerifyFavoritePlayersResponse.Result results = 1; +} + +message CMsgClientToGCRequestPlayerRecentAccomplishments { + optional uint32 account_id = 1; +} + +message CMsgClientToGCRequestPlayerRecentAccomplishmentsResponse { + enum EResponse { + k_eInternalError = 0; + k_eSuccess = 1; + k_eTooBusy = 2; + k_eDisabled = 3; + } + + optional .CMsgClientToGCRequestPlayerRecentAccomplishmentsResponse.EResponse result = 1 [default = k_eInternalError]; + optional .CMsgPlayerRecentAccomplishments player_accomplishments = 2; +} + +message CMsgClientToGCRequestPlayerHeroRecentAccomplishments { + optional uint32 account_id = 1; + optional int32 hero_id = 2; +} + +message CMsgClientToGCRequestPlayerHeroRecentAccomplishmentsResponse { + enum EResponse { + k_eInternalError = 0; + k_eSuccess = 1; + k_eTooBusy = 2; + k_eDisabled = 3; + } + + optional .CMsgClientToGCRequestPlayerHeroRecentAccomplishmentsResponse.EResponse result = 1 [default = k_eInternalError]; + optional .CMsgPlayerHeroRecentAccomplishments hero_accomplishments = 2; +} + +message CMsgClientToGCSubmitPlayerMatchSurvey { + optional uint64 match_id = 1; + optional sint32 rating = 3; + optional uint32 flags = 4; +} + +message CMsgClientToGCSubmitPlayerMatchSurveyResponse { + enum EResponse { + k_eInternalError = 0; + k_eSuccess = 1; + k_eTooBusy = 2; + k_eDisabled = 3; + k_eAlreadySubmitted = 4; + k_ePlayerNotValid = 5; + } + + optional .CMsgClientToGCSubmitPlayerMatchSurveyResponse.EResponse eresult = 1 [default = k_eInternalError]; + optional uint32 account_id = 2; +} + +message CMsgGCToClientVACReminder { +} + +message CMsgClientToGCUnderDraftRequest { + optional uint32 account_id = 1; + optional uint32 event_id = 2; +} + +message CMsgClientToGCUnderDraftResponse { + optional .EUnderDraftResponse result = 1 [default = k_eInternalError]; + optional uint32 account_id = 2; + optional uint32 event_id = 3; + optional .CMsgUnderDraftData draft_data = 4; +} + +message CMsgClientToGCUnderDraftReroll { + optional uint32 event_id = 1; +} + +message CMsgClientToGCUnderDraftRerollResponse { + optional .EUnderDraftResponse result = 1 [default = k_eInternalError]; + optional uint32 event_id = 2; + optional .CMsgUnderDraftData draft_data = 3; +} + +message CMsgClientToGCUnderDraftBuy { + optional uint32 event_id = 1; + optional uint32 slot_id = 2; +} + +message CMsgGCToClientGuildUnderDraftGoldUpdated { + optional uint32 event_id = 1; +} + +message CMsgClientToGCUnderDraftBuyResponse { + optional .EUnderDraftResponse result = 1 [default = k_eInternalError]; + optional uint32 event_id = 2; + optional uint32 slot_id = 3; + optional .CMsgUnderDraftData draft_data = 4; +} + +message CMsgClientToGCUnderDraftRollBackBench { + optional uint32 event_id = 1; +} + +message CMsgClientToGCUnderDraftRollBackBenchResponse { + optional .EUnderDraftResponse result = 1 [default = k_eInternalError]; + optional uint32 event_id = 2; + optional .CMsgUnderDraftData draft_data = 3; +} + +message CMsgClientToGCUnderDraftSell { + optional uint32 event_id = 1; + optional uint32 slot_id = 2; +} + +message CMsgClientToGCUnderDraftSellResponse { + optional .EUnderDraftResponse result = 1 [default = k_eInternalError]; + optional uint32 event_id = 2; + optional uint32 slot_id = 3; + optional .CMsgUnderDraftData draft_data = 4; +} + +message CMsgClientToGCUnderDraftRedeemReward { + optional uint32 event_id = 1; + optional uint32 action_id = 2; +} + +message CMsgClientToGCUnderDraftRedeemRewardResponse { + optional .EUnderDraftResponse result = 1 [default = k_eInternalError]; +} + +message CMsgClientToGCSubmitDraftTriviaMatchAnswer { + optional bool chose_radiant_as_winner = 1; + optional uint32 event_id = 2; + optional uint32 end_time = 3; +} + +message CMsgClientToGCSubmitDraftTriviaMatchAnswerResponse { + optional .EDOTADraftTriviaAnswerResult result = 1 [default = k_EDOTADraftTriviaAnswerResult_Success]; +} + +message CMsgDraftTriviaVoteCount { + optional uint32 total_votes = 1; + optional uint32 radiant_votes = 2; + optional uint32 dire_votes = 3; +} + +message CMsgClientToGCRequestReporterUpdates { +} + +message CMsgClientToGCRequestReporterUpdatesResponse { + message ReporterUpdate { + optional uint64 match_id = 1; + optional int32 hero_id = 2; + optional uint32 report_reason = 3; + optional uint32 timestamp = 4; + } + + enum EResponse { + k_eInternalError = 0; + k_eSuccess = 1; + k_eTimeout = 2; + k_eTooBusy = 3; + k_eNotPermitted = 4; + k_eNotToSoon = 5; + k_eNotValid = 6; + } + + optional .CMsgClientToGCRequestReporterUpdatesResponse.EResponse enum_result = 1 [default = k_eInternalError]; + repeated .CMsgClientToGCRequestReporterUpdatesResponse.ReporterUpdate updates = 2; + optional int32 num_reported = 3; + optional int32 num_no_action_taken = 4; +} + +message CMsgClientToGCAcknowledgeReporterUpdates { + repeated uint64 match_ids = 1; +} + +message CMsgClientToGCRecalibrateMMR { +} + +message CMsgClientToGCRecalibrateMMRResponse { + enum EResponse { + k_eInternalError = 0; + k_eSuccess = 1; + k_eTimeout = 2; + k_eTooBusy = 3; + k_eNotPermitted = 4; + k_eNotToSoon = 5; + k_eNotValid = 6; + } + + optional .CMsgClientToGCRecalibrateMMRResponse.EResponse result = 1 [default = k_eInternalError]; +} + +message CMsgDOTAPostGameItemAwardNotification { + optional uint32 receiver_account_id = 1; + repeated uint32 item_def_index = 2; + optional uint32 action_id = 3; +} + +message CMsgClientToGCGetOWMatchDetails { +} + +message CMsgClientToGCGetOWMatchDetailsResponse { + message Marker { + optional uint32 start_game_time_s = 1; + optional uint32 end_game_time_s = 2; + } + + enum EResponse { + k_eInternalError = 0; + k_eSuccess = 1; + k_eTimeout = 2; + k_eTooBusy = 3; + k_eNotPermitted = 4; + k_eNoCaseAvailable = 5; + } + + optional .CMsgClientToGCGetOWMatchDetailsResponse.EResponse result = 1 [default = k_eInternalError]; + optional uint64 overwatch_replay_id = 2; + optional uint64 decryption_key = 3; + optional uint32 cluster = 4; + optional uint32 overwatch_salt = 5; + optional uint32 target_player_slot = 6; + repeated .CMsgClientToGCGetOWMatchDetailsResponse.Marker markers = 7; + optional .EOverwatchReportReason report_reason = 8 [default = k_EOverwatchReportReason_Unknown]; + optional int32 target_hero_id = 9; + optional uint32 rank_tier = 10; + optional uint32 lane_selection_flags = 11; +} + +message CMsgClientToGCSubmitOWConviction { + optional uint64 overwatch_replay_id = 1; + optional uint32 target_player_slot = 2; + optional .EOverwatchConviction cheating_conviction = 3 [default = k_EOverwatchConviction_None]; + optional .EOverwatchConviction griefing_conviction = 4 [default = k_EOverwatchConviction_None]; +} + +message CMsgClientToGCSubmitOWConvictionResponse { + enum EResponse { + k_eInternalError = 0; + k_eSuccess = 1; + k_eTimeout = 2; + k_eTooBusy = 3; + k_eNotPermitted = 4; + k_eInvalidReplayID = 5; + k_eInvalidConviction = 6; + k_eInvalidPlayerSlot = 7; + } + + optional .CMsgClientToGCSubmitOWConvictionResponse.EResponse result = 1 [default = k_eInternalError]; + optional uint64 overwatch_replay_id = 2; +} + +message CMsgClientToGCChinaSSAURLRequest { +} + +message CMsgClientToGCChinaSSAURLResponse { + optional string agreement_url = 1; +} + +message CMsgClientToGCChinaSSAAcceptedRequest { +} + +message CMsgClientToGCChinaSSAAcceptedResponse { + optional bool agreement_accepted = 1; +} + +message CMsgGCToClientOverwatchCasesAvailable { + optional fixed32 expire_time = 1; +} + +message CMsgClientToGCStartWatchingOverwatch { + optional uint64 overwatch_replay_id = 1; + optional uint32 target_player_slot = 2; +} + +message CMsgClientToGCStopWatchingOverwatch { + optional uint64 overwatch_replay_id = 1; + optional uint32 target_player_slot = 2; +} + +message CMsgClientToGCOverwatchReplayError { + optional uint64 overwatch_replay_id = 1; +} + +message CMsgClientToGCGetDPCFavorites { +} + +message CMsgClientToGCGetDPCFavoritesResponse { + message Favorite { + optional .EDPCFavoriteType favorite_type = 1 [default = FAVORITE_TYPE_ALL]; + optional uint32 favorite_id = 2; + } + + enum EResponse { + k_eInternalError = 0; + k_eSuccess = 1; + k_eTooBusy = 2; + k_eDisabled = 3; + k_eTimeout = 4; + k_eInvalidRequest = 5; + } + + optional .CMsgClientToGCGetDPCFavoritesResponse.EResponse result = 1 [default = k_eInternalError]; + repeated .CMsgClientToGCGetDPCFavoritesResponse.Favorite favorites = 2; +} + +message CMsgClientToGCSetDPCFavoriteState { + optional .EDPCFavoriteType favorite_type = 1 [default = FAVORITE_TYPE_ALL]; + optional uint32 favorite_id = 2; + optional bool enabled = 3; +} + +message CMsgClientToGCSetDPCFavoriteStateResponse { + enum EResponse { + k_eInternalError = 0; + k_eSuccess = 1; + k_eFavoriteTypeOutOfRange = 2; + k_eLockFailed = 3; + k_eAlreadyFavorited = 4; + k_eAlreadyUnfavorited = 5; + k_eInsertRecordFailed = 6; + k_eRemoveRecordFailed = 7; + k_eTimeout = 8; + } + + optional .CMsgClientToGCSetDPCFavoriteStateResponse.EResponse result = 1 [default = k_eInternalError]; +} + +message CMsgClientToGCSetEventActiveSeasonID { + optional uint32 event_id = 1; + optional uint32 active_season_id = 2; +} + +message CMsgClientToGCSetEventActiveSeasonIDResponse { + enum EResponse { + k_eInternalError = 0; + k_eSuccess = 1; + k_eDisabled = 2; + k_eTooBusy = 3; + k_eNotAllowed = 4; + k_eTimeout = 5; + k_eInternalSuccessNoChange = 6; + } + + optional .CMsgClientToGCSetEventActiveSeasonIDResponse.EResponse result = 1 [default = k_eInternalError]; +} + +message CMsgClientToGCPurchaseLabyrinthBlessings { + optional .EEvent event_id = 1 [default = EVENT_ID_NONE]; + repeated int32 blessing_ids = 2; + optional bool debug = 3; + optional bool debug_remove = 4; +} + +message CMsgClientToGCPurchaseLabyrinthBlessingsResponse { + enum EResponse { + k_eInternalError = 0; + k_eSuccess = 1; + k_eNoSuchBlessing = 2; + k_eNotEnoughShards = 3; + k_eNoPath = 4; + k_eTimeout = 5; + } + + optional .CMsgClientToGCPurchaseLabyrinthBlessingsResponse.EResponse result = 1 [default = k_eInternalError]; +} + +message CMsgClientToGCGetStickerbookRequest { + optional uint32 account_id = 1; +} + +message CMsgClientToGCGetStickerbookResponse { + enum EResponse { + k_eInternalError = 0; + k_eSuccess = 1; + k_eTimeout = 2; + k_eNotAllowed = 3; + k_eTooBusy = 4; + } + + optional .CMsgClientToGCGetStickerbookResponse.EResponse response = 1 [default = k_eInternalError]; + optional .CMsgStickerbook stickerbook = 2; +} + +message CMsgClientToGCCreateStickerbookPageRequest { + optional uint32 team_id = 1; + optional .EEvent event_id = 2 [default = EVENT_ID_NONE]; + optional .EStickerbookPageType page_type = 3 [default = STICKER_PAGE_GENERIC]; +} + +message CMsgClientToGCCreateStickerbookPageResponse { + enum EResponse { + k_eInternalError = 0; + k_eSuccess = 1; + k_eTimeout = 2; + k_eTooManyPages = 3; + k_eTooBusy = 4; + } + + optional .CMsgClientToGCCreateStickerbookPageResponse.EResponse response = 1 [default = k_eInternalError]; + optional uint32 page_number = 2; +} + +message CMsgClientToGCDeleteStickerbookPageRequest { + optional uint32 page_num = 1; + optional uint32 sticker_count = 2; + optional uint32 sticker_max = 3; +} + +message CMsgClientToGCDeleteStickerbookPageResponse { + enum EResponse { + k_eInternalError = 0; + k_eSuccess = 1; + k_eTimeout = 2; + k_eInvalidStickerCount = 3; + k_eTooBusy = 4; + k_eInvalidStickerMax = 5; + k_eInvalidPage = 6; + } + + optional .CMsgClientToGCDeleteStickerbookPageResponse.EResponse response = 1 [default = k_eInternalError]; +} + +message CMsgClientToGCPlaceStickersRequest { + message StickerItem { + optional uint32 page_num = 2; + optional .CMsgStickerbookSticker sticker = 3; + } + + repeated .CMsgClientToGCPlaceStickersRequest.StickerItem sticker_items = 1; +} + +message CMsgClientToGCPlaceStickersResponse { + enum EResponse { + k_eInternalError = 0; + k_eSuccess = 1; + k_eTimeout = 2; + k_eMissingItem = 3; + k_eTooBusy = 4; + k_eDuplicateItem = 5; + k_eInvalidPage = 6; + k_ePageTypeMismatch = 7; + k_eTooManyStickers = 8; + } + + optional .CMsgClientToGCPlaceStickersResponse.EResponse response = 1 [default = k_eInternalError]; +} + +message CMsgClientToGCPlaceCollectionStickersRequest { + message Slot { + optional uint32 page_num = 1; + optional uint32 slot = 2; + optional uint64 new_item_id = 3; + optional uint32 old_item_def_id = 4; + optional uint32 old_quality = 5; + } + + repeated .CMsgClientToGCPlaceCollectionStickersRequest.Slot slots = 1; +} + +message CMsgClientToGCPlaceCollectionStickersResponse { + enum EResponse { + k_eInternalError = 0; + k_eSuccess = 1; + k_eTimeout = 2; + k_eMissingItem = 3; + k_eTooBusy = 4; + k_eDuplicateItem = 5; + k_eInvalidPage = 6; + k_ePageTypeMismatch = 7; + k_eOldItemMismatch = 8; + k_eInvalidSlot = 9; + k_eSlotTypeMismatch = 10; + } + + optional .CMsgClientToGCPlaceCollectionStickersResponse.EResponse response = 1 [default = k_eInternalError]; +} + +message CMsgClientToGCOrderStickerbookTeamPageRequest { + optional .CMsgStickerbookTeamPageOrderSequence page_order_sequence = 1; +} + +message CMsgClientToGCOrderStickerbookTeamPageResponse { + enum EResponse { + k_eInternalError = 0; + k_eSuccess = 1; + k_eTimeout = 2; + k_eTooManyPages = 3; + k_eTooBusy = 4; + k_eInvalidPage = 5; + } + + optional .CMsgClientToGCOrderStickerbookTeamPageResponse.EResponse response = 1 [default = k_eInternalError]; +} + +message CMsgClientToGCSetHeroSticker { + optional int32 hero_id = 1; + optional uint64 new_item_id = 2; + optional uint64 old_item_id = 3; +} + +message CMsgClientToGCSetHeroStickerResponse { + enum EResponse { + k_eInternalError = 0; + k_eSuccess = 1; + k_eTimeout = 2; + k_eMissingItem = 3; + k_eTooBusy = 4; + k_eOldItemMismatch = 5; + k_eInvalidHero = 6; + } + + optional .CMsgClientToGCSetHeroStickerResponse.EResponse response = 1 [default = k_eInternalError]; +} + +message CMsgClientToGCGetHeroStickers { +} + +message CMsgClientToGCGetHeroStickersResponse { + enum EResponse { + k_eInternalError = 0; + k_eSuccess = 1; + k_eTimeout = 2; + k_eTooBusy = 4; + } + + optional .CMsgClientToGCGetHeroStickersResponse.EResponse response = 1 [default = k_eInternalError]; + optional .CMsgStickerHeroes sticker_heroes = 2; +} + +message CMsgClientToGCSetFavoritePage { + optional uint32 page_num = 1; + optional bool clear = 2; +} + +message CMsgClientToGCSetFavoritePageResponse { + enum EResponse { + k_eInternalError = 0; + k_eSuccess = 1; + k_eTimeout = 2; + k_eTooBusy = 4; + k_eInvalidPage = 5; + } + + optional .CMsgClientToGCSetFavoritePageResponse.EResponse response = 1 [default = k_eInternalError]; +} + +message CMsgClientToGCClaimSwag { + optional .EEvent event_id = 1 [default = EVENT_ID_NONE]; + optional uint32 action_id = 2; + optional uint32 data = 3; +} + +message CMsgClientToGCClaimSwagResponse { + enum EResponse { + k_eInternalError = 0; + k_eSuccess = 1; + k_eTimeout = 2; + k_eTooBusy = 4; + k_eAlreadyClaimed = 5; + k_eDisabled = 6; + k_eInvalidRequest = 7; + k_eUserNotEligible = 8; + k_eStorageError = 9; + k_eRewardDisabled = 10; + } + + optional .CMsgClientToGCClaimSwagResponse.EResponse response = 1 [default = k_eInternalError]; +} + +message CMsgClientToGCCollectorsCacheAvailableDataRequest { + optional uint32 contest_id = 1; +} + +message CMsgGCToClientCollectorsCacheAvailableDataResponse { + message Vote { + enum EVoteType { + k_eUp = 0; + k_eDown = 1; + } + + optional uint32 item_def = 1; + optional .CMsgGCToClientCollectorsCacheAvailableDataResponse.Vote.EVoteType vote_type = 2 [default = k_eUp]; + } + + repeated .CMsgGCToClientCollectorsCacheAvailableDataResponse.Vote votes = 1; +} + +message CMsgClientToGCUploadMatchClip { + optional .CMatchClip match_clip = 1; +} + +message CMsgGCToClientUploadMatchClipResponse { + enum EResponse { + k_eInternalError = 0; + k_eSuccess = 1; + k_eTimeout = 2; + k_eTooBusy = 4; + } + + optional .CMsgGCToClientUploadMatchClipResponse.EResponse response = 1 [default = k_eInternalError]; +} + +message CMsgClientToGCMapStatsRequest { +} + +message CMsgGCToClientMapStatsResponse { + enum EResponse { + k_eInternalError = 0; + k_eSuccess = 1; + } + + optional .CMsgGCToClientMapStatsResponse.EResponse response = 1 [default = k_eInternalError]; + optional .CMsgMapStatsSnapshot personal_stats = 2; + optional .CMsgGlobalMapStats global_stats = 3; +} + +message CMsgRoadToTIAssignedQuest { + optional uint32 quest_id = 1; + optional uint32 difficulty = 2; + optional uint32 progress_flags = 3; + optional uint32 half_credit_flags = 4; + optional bool completed = 5; +} + +message CMsgRoadToTIUserData { + repeated .CMsgRoadToTIAssignedQuest quests = 1; +} + +message CMsgClientToGCRoadToTIGetQuests { + optional uint32 event_id = 1; +} + +message CMsgClientToGCRoadToTIGetQuestsResponse { + enum EResponse { + k_eInternalError = 0; + k_eSuccess = 1; + k_eTooBusy = 2; + k_eDisabled = 3; + k_eTimeout = 4; + k_eInvalidID = 5; + } + + optional .CMsgClientToGCRoadToTIGetQuestsResponse.EResponse response = 1 [default = k_eInternalError]; + optional .CMsgRoadToTIUserData quest_data = 2; +} + +message CMsgClientToGCRoadToTIGetActiveQuest { + optional uint32 event_id = 1; +} + +message CMsgClientToGCRoadToTIGetActiveQuestResponse { + enum EResponse { + k_eInternalError = 0; + k_eSuccess = 1; + k_eNone = 2; + k_eTooBusy = 3; + k_eDisabled = 4; + k_eTimeout = 5; + k_eInvalidID = 6; + } + + optional .CMsgClientToGCRoadToTIGetActiveQuestResponse.EResponse response = 1 [default = k_eInternalError]; + optional .CMsgRoadToTIAssignedQuest quest_data = 2; +} + +message CMsgGCToClientRoadToTIQuestDataUpdated { + optional uint32 event_id = 1; + optional .CMsgRoadToTIUserData quest_data = 2; +} + +message CMsgClientToGCRoadToTIUseItem { + optional uint32 event_id = 1; + optional uint32 item_type = 2; + optional uint32 hero_index = 3; +} + +message CMsgClientToGCRoadToTIUseItemResponse { + enum EResponse { + k_eInternalError = 0; + k_eSuccess = 1; + k_eBadInput = 2; + k_eNoItem = 3; + k_eDisabled = 4; + k_eTimeout = 5; + k_eInvalidID = 6; + } + + optional .CMsgClientToGCRoadToTIUseItemResponse.EResponse response = 1 [default = k_eInternalError]; +} + +message CMsgClientToGCRoadToTIDevForceQuest { + optional uint32 event_id = 1; + optional bool force_match_type = 2; + optional uint32 force_id = 3; +} + +message CMsgLobbyRoadToTIMatchQuestData { + optional .CMsgRoadToTIAssignedQuest quest_data = 1; + optional uint32 quest_period = 2; + optional uint32 quest_number = 3; +} + +message CMsgClientToGCNewBloomGift { + optional uint32 defindex = 1; + optional uint64 lobby_id = 2; + repeated uint32 target_account_ids = 3; +} + +message CMsgClientToGCNewBloomGiftResponse { + optional .ENewBloomGiftingResponse result = 1 [default = kENewBloomGifting_UnknownFailure]; + repeated uint32 received_account_ids = 2; +} + +message CMsgClientToGCSetBannedHeroes { + repeated int32 banned_hero_ids = 1; +} + +message CMsgClientToGCUpdateComicBookStats { + message SingleStat { + optional .CMsgClientToGCUpdateComicBookStat_Type stat_type = 1 [default = CMsgClientToGCUpdateComicBookStat_Type_HighestPageRead]; + optional uint32 stat_value = 2; + } + + message LanguageStats { + optional uint32 comic_id = 1; + optional uint32 client_language = 2; + optional uint32 client_comic_language = 3; + } + + optional uint32 comic_id = 1; + repeated .CMsgClientToGCUpdateComicBookStats.SingleStat stats = 2; + optional .CMsgClientToGCUpdateComicBookStats.LanguageStats language_stats = 3; +} diff --git a/Protobufs/dota2/dota_gcmessages_client_battle_report.proto b/Protobufs/dota2/dota_gcmessages_client_battle_report.proto new file mode 100644 index 0000000..d4c9a7b --- /dev/null +++ b/Protobufs/dota2/dota_gcmessages_client_battle_report.proto @@ -0,0 +1,394 @@ +import "steammessages.proto"; +import "dota_shared_enums.proto"; +import "dota_gcmessages_common.proto"; +import "dota_gcmessages_webapi.proto"; +import "gcsdk_gcmessages.proto"; +import "base_gcmessages.proto"; +import "econ_gcmessages.proto"; +import "dota_gcmessages_client.proto"; +import "valveextensions.proto"; + +enum CMsgBattleReport_HighlightType { + k_eHighlightTypeInvalid = -1 [(schema_suppress_enumerator) = true]; + k_eGameWinrate = 0 [(schema_friendly_name) = "Game Winrate"]; + k_eLaneWinrate = 1 [(schema_friendly_name) = "Lane Winrate"]; + k_eMMRDelta = 2 [(schema_friendly_name) = "Ranked MMR Delta"]; + k_eNumHeroesPlayed = 3 [(schema_friendly_name) = "Number of Heroes Played"]; + k_eNumGamesPlayed = 4 [(schema_friendly_name) = "Number of Games Played"]; + k_eAveragePowerRunesTaken = 5 [(schema_friendly_name) = "Average Power Runes Taken"]; + k_eAverageBountyRunesTaken = 6 [(schema_friendly_name) = "Average Bounty Runes Taken"]; + k_eTotalKillEnemyT1First = 7 [(schema_friendly_name) = "Total Enemy T1 Destroyed First"]; + k_eTotalRoshanKills = 8 [(schema_friendly_name) = "Total Roshan Kills"]; + k_eTotalDewards = 9 [(schema_friendly_name) = "Total Dewards"]; + k_eTotalCampsStacked = 10 [(schema_friendly_name) = "Total Camps Stacked"]; + k_eMaxWinstreak = 11 [(schema_friendly_name) = "Max Win Streak"]; + k_eAverageDewards = 12 [(schema_friendly_name) = "Average Dewards"]; + k_eAverageKills = 13 [(schema_friendly_name) = "Average Kills"]; + k_eMaxKills = 14 [(schema_friendly_name) = "Max Kills"]; + k_eAverageAssists = 15 [(schema_friendly_name) = "Average Assists"]; + k_eMaxAssists = 16 [(schema_friendly_name) = "Max Assists"]; + k_eAverageDeaths = 17 [(schema_friendly_name) = "Average Deaths"]; + k_eMinDeaths = 18 [(schema_friendly_name) = "Min Deaths"]; + k_eAverageCampsStacked = 19 [(schema_friendly_name) = "Average Camps Stacked"]; + k_eTotalLastHits = 20 [(schema_friendly_name) = "Total Last Hits"]; + k_eAverageLastHits = 21 [(schema_friendly_name) = "Average Last Hits"]; + k_eTotalDenies = 22 [(schema_friendly_name) = "Total Denies"]; + k_eAverageDenies = 23 [(schema_friendly_name) = "Average Denies"]; + k_eTotalGamesWithRoshanAdvantage = 24 [(schema_friendly_name) = "Total Games With Roshan Advantage (Player team killed Roshan more times)"]; + k_ePercentGamesWithRoshanAdvantage = 25 [(schema_friendly_name) = "Pct Games With Roshan Advantage (Player team killed Roshan more times)"]; + k_eAverageStunDuration = 26 [(schema_friendly_name) = "Average Stun Duration"]; + k_eTotalStunDuration = 27 [(schema_friendly_name) = "Total Stun Duration"]; + k_eAverageTeleportsUsed = 28 [(schema_friendly_name) = "Average Teleports Used"]; + k_eTotalTeleportsUsed = 29 [(schema_friendly_name) = "Total Teleports Used"]; + k_eAverageHeroDamage = 30 [(schema_friendly_name) = "Average Hero Damage"]; + k_eTotalHeroDamage = 31 [(schema_friendly_name) = "Total Hero Damage"]; + k_eAverageHeroHealing = 32 [(schema_friendly_name) = "Average Hero Healing"]; + k_eTotalHeroHealing = 33 [(schema_friendly_name) = "Total Hero Healing"]; + k_eAverageTowerDamage = 34 [(schema_friendly_name) = "Average Tower Damage"]; + k_eTotalTowerDamage = 35 [(schema_friendly_name) = "Total Tower Damage"]; + k_eMaxLossStreak = 36 [(schema_friendly_name) = "Max Loss Streak"]; + k_eAverageGameDuration = 37 [(schema_friendly_name) = "Average Game Duration"]; + k_eMaxGameDuration = 38 [(schema_friendly_name) = "Max Game Duration"]; + k_eMinGameDuration = 39 [(schema_friendly_name) = "Min Game Duration"]; + k_eAverageWinDuration = 40 [(schema_friendly_name) = "Average Win Duration"]; + k_eMaxWinDuration = 41 [(schema_friendly_name) = "Max Win Duration"]; + k_eMinWinDuration = 42 [(schema_friendly_name) = "Min Win Duration"]; + k_eAverageLossDuration = 43 [(schema_friendly_name) = "Average Loss Duration"]; + k_eMaxLossDuration = 44 [(schema_friendly_name) = "Max Loss Duration"]; + k_eMinLossDuration = 45 [(schema_friendly_name) = "Min Loss Duration"]; + k_ePctGamesEnemyT1TakenFirst = 46 [(schema_friendly_name) = "Pct Games With Enemy Lane T1 Taken First"]; + k_eMaxCampsStacked = 47 [(schema_friendly_name) = "Max Camps Stacked"]; + k_eMaxDewards = 48 [(schema_friendly_name) = "Max Dewards"]; + k_eMaxRoshanKills = 49 [(schema_friendly_name) = "Max Roshan Kills"]; + k_eMaxBountyRunesTaken = 50 [(schema_friendly_name) = "Max Bounty Runes Taken"]; + k_eMaxPowerRunesTaken = 51 [(schema_friendly_name) = "Max Power Runes Taken"]; + k_eMaxDeaths = 52 [(schema_friendly_name) = "Max Deaths"]; + k_eMaxLastHits = 53 [(schema_friendly_name) = "Max Last Hits"]; + k_eMaxDenies = 54 [(schema_friendly_name) = "Max Denies"]; + k_eRadiantWinRate = 55 [(schema_friendly_name) = "Radiant Winrate"]; + k_eDireWinRate = 56 [(schema_friendly_name) = "Dire Winrate"]; + k_eRadiantGameCount = 57 [(schema_friendly_name) = "Radiant Game Count"]; + k_eDireGameCount = 58 [(schema_friendly_name) = "Dire Game Count"]; + k_eMaxDamage = 59 [(schema_friendly_name) = "Max Hero Damage"]; + k_eMaxHealing = 60 [(schema_friendly_name) = "Max Healing"]; + k_eMaxTowerDamage = 61 [(schema_friendly_name) = "Max Tower Damage"]; + k_eAverageGPM = 62 [(schema_friendly_name) = "Average GPM"]; + k_eMaxGPM = 63 [(schema_friendly_name) = "Max GPM"]; + k_eAverageXPM = 64 [(schema_friendly_name) = "Average XPM"]; + k_eMaxXPM = 65 [(schema_friendly_name) = "Max XPM"]; +} + +enum CMsgBattleReport_HighlightCategory { + k_eHighlightGeneral = 0 [(schema_friendly_name) = "General"]; + k_eHighlightHero = 1 [(schema_friendly_name) = "Hero"]; + k_eHighlightRole = 2 [(schema_friendly_name) = "Role"]; +} + +enum CMsgBattleReport_Role { + k_eUnknownRole = -1 [(schema_suppress_enumerator) = true]; + k_eSafelane = 0 [(schema_friendly_name) = "Safe Lane"]; + k_eMidlane = 1 [(schema_friendly_name) = "Mid Lane"]; + k_eOfflane = 2 [(schema_friendly_name) = "Off Lane"]; + k_eSupport = 3 [(schema_friendly_name) = "Support"]; + k_eHardSupport = 4 [(schema_friendly_name) = "Hard Support"]; +} + +enum CMsgBattleReport_CompareContext { + k_eCompareContextInvalid = -1 [(schema_suppress_enumerator) = true]; + k_eAbsoluteValue = 0 [(schema_friendly_name) = "Overall Value"]; + k_ePlayersOfSimilarRank = 1 [(schema_friendly_name) = "Vs Rank Population"]; + k_eAllPlayers = 2 [(schema_friendly_name) = "Vs All Players"]; + k_ePlayersPersonalHistory = 3 [(schema_friendly_name) = "Vs Personal History"]; +} + +enum CMsgBattleReport_HighlightTier { + k_eHighlightTierLow = -1 [(schema_friendly_name) = "Tier Low"]; + k_eHighlightTierNone = 0 [(schema_suppress_enumerator) = true]; + k_eHighlightTier1 = 1 [(schema_friendly_name) = "Tier 1"]; + k_eHighlightTier2 = 2 [(schema_friendly_name) = "Tier 2"]; + k_eHighlightTier3 = 3 [(schema_friendly_name) = "Tier 3"]; + k_eHighlightTierCustom = 4 [(schema_friendly_name) = "Custom"]; +} + +enum CMsgBattleReport_HighlightRarity { + k_eHighlightCommon = 0 [(schema_friendly_name) = "Common"]; + k_eHighlightUncommon = 1 [(schema_friendly_name) = "Uncommon"]; + k_eHighlightRare = 2 [(schema_friendly_name) = "Rare"]; +} + +enum CMsgBattleReport_EOutcome { + k_eWin = 0; + k_eLoss = 1; +} + +enum CMsgBattleReport_ELaneOutcome { + k_eUnknownLaneOutcome = -1; + k_eWonLane = 0; + k_eLostLane = 1; + k_eEvenLane = 2; +} + +message CMsgClientToGCGetBattleReport { + optional uint32 account_id = 1; + optional uint32 timestamp = 2; + optional uint32 duration = 3; +} + +message CMsgBattleReport_Game { + optional int32 hero_id = 1; + optional uint32 kills = 2; + optional uint32 deaths = 3; + optional uint32 assists = 4; + optional int32 rank_change = 5; + optional uint32 last_hits = 6; + optional uint32 denies = 21; + optional uint32 gpm = 7; + optional uint32 xpm = 8; + optional .CMsgBattleReport_Role role = 9 [default = k_eUnknownRole]; + optional .CMsgBattleReport_EOutcome outcome = 10 [default = k_eWin]; + optional .CMsgBattleReport_ELaneOutcome lane_outcome = 11 [default = k_eUnknownLaneOutcome]; + optional bool ranked = 12; + optional uint64 match_id = 13; + optional uint32 lane_selection_flags = 14; + optional uint32 predicted_position = 15; + optional uint32 seconds_dead = 16; + optional uint32 winning_team = 17; + optional uint32 player_slot = 28; + optional bool party_game = 19; + optional uint32 start_time = 20; + optional uint32 bounty_runes = 22; + optional uint32 water_runes = 23; + optional uint32 power_runes = 24; + optional uint32 time_enemy_t1_tower_destroyed = 25; + optional uint32 time_friendly_t1_tower_destroyed = 26; + optional uint32 enemy_roshan_kills = 27; + optional uint32 teleports_used = 29; + optional uint32 dewards = 30; + optional uint32 camps_stacked = 31; + optional uint32 support_gold = 32; + optional uint32 hero_damage = 33; + optional uint32 hero_healing = 34; + optional uint32 tower_damage = 35; + optional uint32 successful_smokes = 36; + optional uint32 stun_duration = 37; + optional uint32 duration = 38; + optional uint32 friendly_roshan_kills = 39; + optional int32 previous_rank = 40; + optional uint32 game_mode = 41; + optional uint32 lobby_type = 42; + optional float time_purchased_shard = 43; + optional float time_purchased_scepter = 44; + optional int32 item0 = 45 [default = -1]; + optional int32 item1 = 46 [default = -1]; + optional int32 item2 = 47 [default = -1]; + optional int32 item3 = 48 [default = -1]; + optional int32 item4 = 49 [default = -1]; + optional int32 item5 = 50 [default = -1]; + optional uint32 selected_facet = 51; +} + +message CMsgBattleReport_GameList { + repeated .CMsgBattleReport_Game games = 1; +} + +message CMsgBattleReport { + message HighlightGeneral { + optional int32 win_loss_window = 1; + optional float win_percent = 2; + optional int32 mmr_delta = 3; + optional float highlight_score = 4; + } + + message Highlight { + required uint32 highlight_id = 1; + required .CMsgBattleReport_HighlightCategory category = 2 [default = k_eHighlightGeneral]; + optional .CMsgBattleReport_HighlightTier tier = 3 [default = k_eHighlightTierLow]; + optional .CMsgBattleReport_HighlightRarity rarity = 4 [default = k_eHighlightCommon]; + optional float score = 5; + optional float confidence = 6; + optional int32 hero_id = 7; + optional .CMsgBattleReport_Role role = 8 [default = k_eUnknownRole]; + optional float comparison_delta_value = 9; + optional .CMsgBattleReport_CompareContext context = 10 [default = k_eCompareContextInvalid]; + } + + repeated .CMsgBattleReport_Game games = 1; + optional .CMsgBattleReportHighlights highlights = 3; +} + +message CMsgBattleReportInfo { + optional uint32 timestamp = 1; + optional uint32 duration = 2; + optional bool acknowledged = 3; + optional int32 featured_hero_id = 4; + optional uint32 featured_position = 5; + optional uint32 games_played = 6; + repeated uint32 medal_counts = 7; +} + +message CMsgBattleReportInfoList { + repeated .CMsgBattleReportInfo battle_report_info = 1; +} + +message CMsgBattleReportHighlights { + repeated .CMsgBattleReport.Highlight highlights = 1; +} + +message CMsgBattleReportAggregateStats { + message CMsgBattleReportStat { + optional float mean = 1; + optional float stdev = 2; + } + + message CMsgBattleReportAggregate { + optional int32 hero_id = 1; + optional uint32 predicted_position = 2; + optional uint32 game_count = 3; + optional uint32 win_count = 4; + optional uint32 lane_win_count = 5; + optional .CMsgBattleReportAggregateStats.CMsgBattleReportStat kills = 6; + optional .CMsgBattleReportAggregateStats.CMsgBattleReportStat deaths = 7; + optional .CMsgBattleReportAggregateStats.CMsgBattleReportStat assists = 8; + optional .CMsgBattleReportAggregateStats.CMsgBattleReportStat rank_change = 9; + optional .CMsgBattleReportAggregateStats.CMsgBattleReportStat last_hits = 10; + optional .CMsgBattleReportAggregateStats.CMsgBattleReportStat denies = 11; + optional .CMsgBattleReportAggregateStats.CMsgBattleReportStat gpm = 12; + optional .CMsgBattleReportAggregateStats.CMsgBattleReportStat xpm = 13; + optional .CMsgBattleReportAggregateStats.CMsgBattleReportStat seconds_dead = 14; + optional .CMsgBattleReportAggregateStats.CMsgBattleReportStat bounty_runes = 15; + optional .CMsgBattleReportAggregateStats.CMsgBattleReportStat water_runes = 16; + optional .CMsgBattleReportAggregateStats.CMsgBattleReportStat power_runes = 17; + optional .CMsgBattleReportAggregateStats.CMsgBattleReportStat time_enemy_t1_tower_destroyed = 18; + optional .CMsgBattleReportAggregateStats.CMsgBattleReportStat time_friendly_t1_tower_destroyed = 19; + optional .CMsgBattleReportAggregateStats.CMsgBattleReportStat enemy_roshan_kills = 20; + optional .CMsgBattleReportAggregateStats.CMsgBattleReportStat teleports_used = 21; + optional .CMsgBattleReportAggregateStats.CMsgBattleReportStat dewards = 22; + optional .CMsgBattleReportAggregateStats.CMsgBattleReportStat camps_stacked = 23; + optional .CMsgBattleReportAggregateStats.CMsgBattleReportStat support_gold = 24; + optional .CMsgBattleReportAggregateStats.CMsgBattleReportStat hero_damage = 25; + optional .CMsgBattleReportAggregateStats.CMsgBattleReportStat hero_healing = 26; + optional .CMsgBattleReportAggregateStats.CMsgBattleReportStat tower_damage = 27; + optional .CMsgBattleReportAggregateStats.CMsgBattleReportStat successful_smokes = 28; + optional .CMsgBattleReportAggregateStats.CMsgBattleReportStat stun_duration = 29; + optional .CMsgBattleReportAggregateStats.CMsgBattleReportStat duration = 30; + optional .CMsgBattleReportAggregateStats.CMsgBattleReportStat friendly_roshan_kills = 31; + } + + repeated .CMsgBattleReportAggregateStats.CMsgBattleReportAggregate result = 1; +} + +message CMsgBattleReportAggregatedGeneralStats { +} + +message CMsgClientToGCGetBattleReportResponse { + enum EResponse { + k_eInternalError = 0; + k_eSuccess = 1; + k_eTooBusy = 2; + k_eDisabled = 3; + k_ePermissionDenied = 4; + k_eNotSubscribedToDotaPlus = 5; + k_eInvalidParameters = 6; + k_eUnableToGetPlusSubInfo = 7; + k_eUnableToLoadBattleReport = 8; + k_eUnableToSaveBattleReport = 9; + k_eUnableToGetAggregates = 10; + k_eNotEnoughGamesPlayed = 11; + } + + optional .CMsgBattleReport report = 1; + optional .CMsgClientToGCGetBattleReportResponse.EResponse response = 2 [default = k_eInternalError]; + optional .CMsgBattleReportAggregateStats aggregate_stats = 3; + optional .CMsgBattleReportInfo info = 4; +} + +message CMsgClientToGCGetBattleReportAggregateStats { + message CMsgBattleReportAggregateKey { + optional int32 hero_id = 1; + optional uint32 predicted_position = 2; + } + + repeated .CMsgClientToGCGetBattleReportAggregateStats.CMsgBattleReportAggregateKey aggregate_keys = 1; + optional uint32 timestamp = 2; + optional uint32 duration = 3; + optional uint32 rank = 4; +} + +message CMsgClientToGCGetBattleReportAggregateStatsResponse { + enum EResponse { + k_eInternalError = 0; + k_eSuccess = 1; + k_eTooBusy = 2; + k_eDisabled = 3; + k_ePermissionDenied = 4; + k_eInvalidParams = 5; + k_eNotSubscribedToDotaPlus = 6; + } + + optional .CMsgBattleReportAggregateStats aggregate_stats = 1; + optional .CMsgClientToGCGetBattleReportAggregateStatsResponse.EResponse response = 2 [default = k_eInternalError]; +} + +message CMsgClientToGCGetBattleReportInfo { + optional uint32 account_id = 1; +} + +message CMsgClientToGCGetBattleReportInfoResponse { + enum EResponse { + k_eInternalError = 0; + k_eSuccess = 1; + k_eTooBusy = 2; + k_eDisabled = 3; + k_ePermissionDenied = 4; + k_eNotSubscribedToDotaPlus = 5; + } + + optional .CMsgBattleReportInfoList battle_report_info_list = 1; + optional .CMsgClientToGCGetBattleReportInfoResponse.EResponse response = 2 [default = k_eInternalError]; +} + +message CMsgClientToGCAcknowledgeBattleReport { + optional uint32 account_id = 1; + optional uint32 timestamp = 2; + optional uint32 duration = 3; +} + +message CMsgClientToGCAcknowledgeBattleReportResponse { + enum EResponse { + k_eInternalError = 0; + k_eSuccess = 1; + k_eTooBusy = 2; + k_eDisabled = 3; + k_eTimeout = 4; + k_ePermissionDenied = 5; + k_eUnableToLoadBattleReport = 6; + k_eAlreadyAcknowledged = 7; + k_eUnknownReport = 8; + k_eNotSubscribedToDotaPlus = 9; + k_eNotEnoughGamesPlayed = 10; + } + + optional .CMsgClientToGCAcknowledgeBattleReportResponse.EResponse response = 1 [default = k_eInternalError]; + optional uint32 shards_awarded = 2; +} + +message CMsgClientToGCGetBattleReportMatchHistory { + optional uint32 account_id = 1; + optional uint32 timestamp = 2; + optional uint32 duration = 3; +} + +message CMsgClientToGCGetBattleReportMatchHistoryResponse { + enum EResponse { + k_eInternalError = 0; + k_eSuccess = 1; + k_eTooBusy = 2; + k_eDisabled = 3; + k_eTimeout = 4; + k_ePermissionDenied = 5; + k_eNotSubscribedToDotaPlus = 6; + } + + optional .CMsgClientToGCGetBattleReportMatchHistoryResponse.EResponse response = 1 [default = k_eInternalError]; + optional .CMsgBattleReport_GameList games = 2; +} diff --git a/Protobufs/dota2/dota_gcmessages_client_bingo.proto b/Protobufs/dota2/dota_gcmessages_client_bingo.proto new file mode 100644 index 0000000..748dc08 --- /dev/null +++ b/Protobufs/dota2/dota_gcmessages_client_bingo.proto @@ -0,0 +1,228 @@ +import "steammessages.proto"; +import "dota_shared_enums.proto"; +import "dota_gcmessages_common.proto"; +import "dota_gcmessages_webapi.proto"; +import "gcsdk_gcmessages.proto"; +import "base_gcmessages.proto"; +import "econ_gcmessages.proto"; +import "dota_gcmessages_client.proto"; +import "valveextensions.proto"; + +enum EBingoAuditAction { + k_eBingoAuditAction_Invalid = 0; + k_eBingoAuditAction_DevModifyTokens = 1; + k_eBingoAuditAction_DevClearInventory = 2; + k_eBingoAuditAction_DevRerollCard = 3; + k_eBingoAuditAction_ShuffleCard = 4; + k_eBingoAuditAction_RerollSquare = 5; + k_eBingoAuditAction_UpgradeSquare = 6; + k_eBingoAuditAction_ClaimRow = 7; + k_eBingoAuditAction_EventActionTokenGrant = 8; + k_eBingoAuditAction_SupportGrantTokens = 9; + k_eBingoAuditAction_SupportStatThresholdFixup = 10; +} + +message CMsgBingoSquare { + optional uint32 stat_id = 1; + optional int32 stat_threshold = 2; + optional uint32 upgrade_level = 3; +} + +message CMsgBingoTokens { + optional uint32 token_count = 1; +} + +message CMsgBingoCard { + repeated .CMsgBingoSquare squares = 1; +} + +message CMsgBingoUserData { + message BingoCardsEntry { + optional uint32 key = 1; + optional .CMsgBingoCard value = 2; + } + + message BingoTokensEntry { + optional uint32 key = 1; + optional .CMsgBingoTokens value = 2; + } + + repeated .CMsgBingoUserData.BingoCardsEntry bingo_cards = 1; + repeated .CMsgBingoUserData.BingoTokensEntry bingo_tokens = 2; +} + +message CMsgClientToGCBingoGetUserData { + optional uint32 league_id = 1; +} + +message CMsgClientToGCBingoGetUserDataResponse { + enum EResponse { + k_eInternalError = 0; + k_eSuccess = 1; + k_eTooBusy = 2; + k_eDisabled = 3; + k_eTimeout = 4; + } + + optional .CMsgClientToGCBingoGetUserDataResponse.EResponse response = 1 [default = k_eInternalError]; + optional .CMsgBingoUserData user_data = 2; +} + +message CMsgBingoIndividualStatData { + optional uint32 stat_id = 1; + optional int32 stat_value = 2; +} + +message CMsgBingoStatsData { + repeated .CMsgBingoIndividualStatData stats_data = 1; +} + +message CMsgClientToGCBingoGetStatsData { + optional uint32 league_id = 1; + optional uint32 league_phase = 2; +} + +message CMsgClientToGCBingoGetStatsDataResponse { + enum EResponse { + k_eInternalError = 0; + k_eSuccess = 1; + k_eTooBusy = 2; + k_eDisabled = 3; + k_eTimeout = 4; + } + + optional .CMsgClientToGCBingoGetStatsDataResponse.EResponse response = 1 [default = k_eInternalError]; + optional .CMsgBingoStatsData stats_data = 2; +} + +message CMsgGCToClientBingoUserDataUpdated { + optional uint32 league_id = 1; + optional .CMsgBingoUserData user_data = 2; +} + +message CMsgClientToGCBingoClaimRow { + optional uint32 league_id = 1; + optional uint32 league_phase = 2; + optional uint32 row_index = 3; +} + +message CMsgClientToGCBingoClaimRowResponse { + enum EResponse { + k_eInternalError = 0; + k_eSuccess = 1; + k_eTooBusy = 2; + k_eDisabled = 3; + k_eTimeout = 4; + k_eInvalidRow = 5; + k_eExpiredCard = 6; + } + + optional .CMsgClientToGCBingoClaimRowResponse.EResponse response = 1 [default = k_eInternalError]; +} + +message CMsgClientToGCBingoShuffleCard { + optional uint32 league_id = 1; + optional uint32 league_phase = 2; +} + +message CMsgClientToGCBingoShuffleCardResponse { + enum EResponse { + k_eInternalError = 0; + k_eSuccess = 1; + k_eTooBusy = 2; + k_eDisabled = 3; + k_eTimeout = 4; + k_eExpiredCard = 6; + k_eNotAllowed = 7; + k_eInsufficientTokens = 8; + } + + optional .CMsgClientToGCBingoShuffleCardResponse.EResponse response = 1 [default = k_eInternalError]; +} + +message CMsgClientToGCBingoModifySquare { + enum EModifyAction { + k_eRerollStat = 0; + k_eUpgrade = 1; + } + + optional uint32 league_id = 1; + optional uint32 league_phase = 2; + optional uint32 square_index = 3; + optional .CMsgClientToGCBingoModifySquare.EModifyAction action = 4 [default = k_eRerollStat]; +} + +message CMsgClientToGCBingoModifySquareResponse { + enum EResponse { + k_eInternalError = 0; + k_eSuccess = 1; + k_eTooBusy = 2; + k_eDisabled = 3; + k_eTimeout = 4; + k_eExpiredCard = 6; + k_eNotAllowed = 7; + k_eInsufficientTokens = 8; + k_eCantUpgrade = 9; + k_eCantReroll = 10; + k_eInvalidSquare = 11; + } + + optional .CMsgClientToGCBingoModifySquareResponse.EResponse response = 1 [default = k_eInternalError]; +} + +message CMsgClientToGCBingoDevRerollCard { + optional uint32 league_id = 1; + optional uint32 league_phase = 2; +} + +message CMsgClientToGCBingoDevRerollCardResponse { + enum EResponse { + k_eInternalError = 0; + k_eSuccess = 1; + k_eTooBusy = 2; + k_eDisabled = 3; + k_eTimeout = 4; + k_eExpiredCard = 6; + k_eNotAllowed = 7; + } + + optional .CMsgClientToGCBingoDevRerollCardResponse.EResponse response = 1 [default = k_eInternalError]; +} + +message CMsgClientToGCBingoDevAddTokens { + optional uint32 league_id = 1; + optional uint32 league_phase = 2; + optional int32 token_count = 3; +} + +message CMsgClientToGCBingoDevAddTokensResponse { + enum EResponse { + k_eInternalError = 0; + k_eSuccess = 1; + k_eTooBusy = 2; + k_eDisabled = 3; + k_eTimeout = 4; + k_eExpiredCard = 6; + k_eNotAllowed = 7; + } + + optional .CMsgClientToGCBingoDevAddTokensResponse.EResponse response = 1 [default = k_eInternalError]; +} + +message CMsgClientToGCBingoDevClearInventory { + optional uint32 league_id = 1; +} + +message CMsgClientToGCBingoDevClearInventoryResponse { + enum EResponse { + k_eInternalError = 0; + k_eSuccess = 1; + k_eTooBusy = 2; + k_eDisabled = 3; + k_eTimeout = 4; + k_eExpiredCard = 6; + k_eNotAllowed = 7; + } + + optional .CMsgClientToGCBingoDevClearInventoryResponse.EResponse response = 1 [default = k_eInternalError]; +} diff --git a/Protobufs/dota2/dota_gcmessages_client_candy_shop.proto b/Protobufs/dota2/dota_gcmessages_client_candy_shop.proto new file mode 100644 index 0000000..0cdd7ad --- /dev/null +++ b/Protobufs/dota2/dota_gcmessages_client_candy_shop.proto @@ -0,0 +1,278 @@ +import "steammessages.proto"; +import "dota_shared_enums.proto"; +import "dota_gcmessages_common.proto"; +import "dota_gcmessages_webapi.proto"; +import "gcsdk_gcmessages.proto"; +import "base_gcmessages.proto"; +import "econ_gcmessages.proto"; +import "dota_gcmessages_client.proto"; +import "valveextensions.proto"; + +enum ECandyShopAuditAction { + k_ECandyShopAuditAction_Invalid = 0; + k_ECandyShopAuditAction_SupportModify = 1; + k_ECandyShopAuditAction_PurchaseReward = 2; + k_ECandyShopAuditAction_OpenBags = 3; + k_ECandyShopAuditAction_RerollRewards = 4; + k_ECandyShopAuditAction_DoVariableExchange = 5; + k_ECandyShopAuditAction_DoExchange = 6; + k_ECandyShopAuditAction_DEPRECATED_EventActionGrantInventorySizeIncrease = 7; + k_ECandyShopAuditAction_EventActionGrantRerollChargesIncrease = 8; + k_ECandyShopAuditAction_EventActionGrantUpgrade_InventorySize = 100; + k_ECandyShopAuditAction_EventActionGrantUpgrade_RewardShelf = 101; + k_ECandyShopAuditAction_EventActionGrantUpgrade_ExtraExchangeRecipe = 102; +} + +enum ECandyShopRewardType { + k_eCandyShopRewardType_None = 0; + k_eCandyShopRewardType_Item = 1; + k_eCandyShopRewardType_EventAction = 2; + k_eCandyShopRewardType_EventPoints = 3; +} + +message CMsgCandyShopCandyCount { + optional uint32 candy_type = 1; + optional uint32 candy_count = 2; +} + +message CMsgCandyShopCandyQuantity { + repeated .CMsgCandyShopCandyCount candy_counts = 1; +} + +message CMsgCandyShopExchangeRecipe { + optional uint32 recipe_id = 1; + optional .CMsgCandyShopCandyQuantity input = 2; + optional .CMsgCandyShopCandyQuantity output = 3; +} + +message CMsgCandyShopRewardData_Item { + optional uint32 item_def = 1; +} + +message CMsgCandyShopRewardData_EventAction { + optional .EEvent event_id = 1 [default = EVENT_ID_NONE]; + optional uint32 action_id = 2; +} + +message CMsgCandyShopRewardData_EventPoints { + optional .EEvent event_id = 1 [default = EVENT_ID_NONE]; + optional uint32 points = 2; +} + +message CMsgCandyShopReward { + optional uint32 reward_id = 1; + optional uint32 reward_option_id = 2; + optional .CMsgCandyShopCandyQuantity price = 3; + optional .ECandyShopRewardType reward_type = 4 [default = k_eCandyShopRewardType_None]; + optional .CMsgCandyShopRewardData_Item item_data = 5; + optional .CMsgCandyShopRewardData_EventAction event_action_data = 6; + optional .CMsgCandyShopRewardData_EventPoints event_points_data = 7; +} + +message CMsgCandyShopUserData { + optional uint32 inventory_max = 1; + optional .CMsgCandyShopCandyQuantity inventory = 2; + optional uint32 exchange_recipe_max = 3; + optional fixed32 exchange_reset_timestamp = 4; + repeated .CMsgCandyShopExchangeRecipe exchange_recipes = 5; + optional uint32 active_reward_max = 6; + repeated .CMsgCandyShopReward active_rewards = 7; + optional uint32 reroll_charges_max = 8; + optional uint32 reroll_charges = 9; +} + +message CMsgClientToGCCandyShopGetUserData { + optional uint32 candy_shop_id = 1; +} + +message CMsgClientToGCCandyShopGetUserDataResponse { + enum EResponse { + k_eInternalError = 0; + k_eSuccess = 1; + k_eTooBusy = 2; + k_eDisabled = 3; + k_eTimeout = 4; + k_eInvalidShop = 5; + k_eExpiredShop = 6; + } + + optional .CMsgClientToGCCandyShopGetUserDataResponse.EResponse response = 1 [default = k_eInternalError]; + optional .CMsgCandyShopUserData user_data = 2; +} + +message CMsgGCToClientCandyShopUserDataUpdated { + optional uint32 candy_shop_id = 1; + optional .CMsgCandyShopUserData user_data = 2; +} + +message CMsgClientToGCCandyShopPurchaseReward { + optional uint32 candy_shop_id = 1; + optional uint64 reward_id = 2; +} + +message CMsgClientToGCCandyShopPurchaseRewardResponse { + enum EResponse { + k_eInternalError = 0; + k_eSuccess = 1; + k_eTooBusy = 2; + k_eDisabled = 3; + k_eTimeout = 4; + k_eInvalidShop = 5; + k_eInvalidReward = 6; + k_eNotEnoughCandy = 7; + k_eExpiredShop = 8; + } + + optional .CMsgClientToGCCandyShopPurchaseRewardResponse.EResponse response = 1 [default = k_eInternalError]; +} + +message CMsgClientToGCCandyShopOpenBags { + optional uint32 candy_shop_id = 1; + optional uint32 bag_count = 2; +} + +message CMsgClientToGCCandyShopOpenBagsResponse { + enum EResponse { + k_eInternalError = 0; + k_eSuccess = 1; + k_eTooBusy = 2; + k_eDisabled = 3; + k_eTimeout = 4; + k_eInvalidShop = 5; + k_eInvalidItem = 6; + k_eNotEnoughBags = 7; + k_eNotEnoughSpace = 8; + k_eExpiredShop = 9; + } + + optional .CMsgClientToGCCandyShopOpenBagsResponse.EResponse response = 1 [default = k_eInternalError]; +} + +message CMsgClientToGCCandyShopDoExchange { + optional uint32 candy_shop_id = 1; + optional uint32 recipe_id = 2; +} + +message CMsgClientToGCCandyShopDoExchangeResponse { + enum EResponse { + k_eInternalError = 0; + k_eSuccess = 1; + k_eTooBusy = 2; + k_eDisabled = 3; + k_eTimeout = 4; + k_eInvalidShop = 5; + k_eNotEnoughCandy = 6; + k_eInvalidRecipe = 7; + k_eNotEnoughSpace = 8; + k_eExpiredShop = 9; + } + + optional .CMsgClientToGCCandyShopDoExchangeResponse.EResponse response = 1 [default = k_eInternalError]; +} + +message CMsgClientToGCCandyShopDoVariableExchange { + optional uint32 candy_shop_id = 1; + optional .CMsgCandyShopCandyQuantity input = 2; + optional .CMsgCandyShopCandyQuantity output = 3; +} + +message CMsgClientToGCCandyShopDoVariableExchangeResponse { + enum EResponse { + k_eInternalError = 0; + k_eSuccess = 1; + k_eTooBusy = 2; + k_eDisabled = 3; + k_eTimeout = 4; + k_eInvalidShop = 5; + k_eNotEnoughCandy = 6; + k_eInvalidRecipe = 7; + k_eNotEnoughSpace = 8; + k_eExpiredShop = 9; + } + + optional .CMsgClientToGCCandyShopDoVariableExchangeResponse.EResponse response = 1 [default = k_eInternalError]; +} + +message CMsgClientToGCCandyShopRerollRewards { + optional uint32 candy_shop_id = 1; +} + +message CMsgClientToGCCandyShopRerollRewardsResponse { + enum EResponse { + k_eInternalError = 0; + k_eSuccess = 1; + k_eTooBusy = 2; + k_eDisabled = 3; + k_eTimeout = 4; + k_eInvalidShop = 5; + k_eNoRerollCharges = 6; + k_eExpiredShop = 7; + k_eShopNotOpen = 8; + } + + optional .CMsgClientToGCCandyShopRerollRewardsResponse.EResponse response = 1 [default = k_eInternalError]; +} + +message CCandyShopDev { + enum EResponse { + k_eInternalError = 0; + k_eSuccess = 1; + k_eTooBusy = 2; + k_eDisabled = 3; + k_eTimeout = 4; + k_eNotAllowed = 5; + k_eInvalidShop = 6; + k_eNotEnoughSpace = 7; + } +} + +message CMsgClientToGCCandyShopDevGrantCandy { + optional uint32 candy_shop_id = 1; + optional .CMsgCandyShopCandyQuantity candy_quantity = 2; +} + +message CMsgClientToGCCandyShopDevGrantCandyResponse { + optional .CCandyShopDev.EResponse response = 1 [default = k_eInternalError]; +} + +message CMsgClientToGCCandyShopDevClearInventory { + optional uint32 candy_shop_id = 1; +} + +message CMsgClientToGCCandyShopDevClearInventoryResponse { + optional .CCandyShopDev.EResponse response = 1 [default = k_eInternalError]; +} + +message CMsgClientToGCCandyShopDevGrantCandyBags { + optional uint32 candy_shop_id = 1; + optional uint32 quantity = 2; +} + +message CMsgClientToGCCandyShopDevGrantCandyBagsResponse { + optional .CCandyShopDev.EResponse response = 1 [default = k_eInternalError]; +} + +message CMsgClientToGCCandyShopDevShuffleExchange { + optional uint32 candy_shop_id = 1; +} + +message CMsgClientToGCCandyShopDevShuffleExchangeResponse { + optional .CCandyShopDev.EResponse response = 1 [default = k_eInternalError]; +} + +message CMsgClientToGCCandyShopDevGrantRerollCharges { + optional uint32 candy_shop_id = 1; + optional uint32 reroll_charges = 2; +} + +message CMsgClientToGCCandyShopDevGrantRerollChargesResponse { + optional .CCandyShopDev.EResponse response = 1 [default = k_eInternalError]; +} + +message CMsgClientToGCCandyShopDevResetShop { + optional uint32 candy_shop_id = 1; +} + +message CMsgClientToGCCandyShopDevResetShopResponse { + optional .CCandyShopDev.EResponse response = 1 [default = k_eInternalError]; +} diff --git a/Protobufs/dota2/dota_gcmessages_client_chat.proto b/Protobufs/dota2/dota_gcmessages_client_chat.proto new file mode 100644 index 0000000..e7d34cc --- /dev/null +++ b/Protobufs/dota2/dota_gcmessages_client_chat.proto @@ -0,0 +1,240 @@ +import "dota_shared_enums.proto"; + +message CMsgClientToGCPrivateChatInvite { + optional string private_chat_channel_name = 1; + optional uint32 invited_account_id = 2; +} + +message CMsgClientToGCPrivateChatKick { + optional string private_chat_channel_name = 1; + optional uint32 kick_account_id = 2; +} + +message CMsgClientToGCPrivateChatPromote { + optional string private_chat_channel_name = 1; + optional uint32 promote_account_id = 2; +} + +message CMsgClientToGCPrivateChatDemote { + optional string private_chat_channel_name = 1; + optional uint32 demote_account_id = 2; +} + +message CMsgGCToClientPrivateChatResponse { + enum Result { + SUCCESS = 0; + FAILURE_CREATION_LOCK = 1; + FAILURE_SQL_TRANSACTION = 2; + FAILURE_SDO_LOAD = 3; + FAILURE_NO_PERMISSION = 4; + FAILURE_ALREADY_MEMBER = 5; + FAILURE_NOT_A_MEMBER = 7; + FAILURE_NO_REMAINING_ADMINS = 8; + FAILURE_NO_ROOM = 9; + FAILURE_CREATION_RATE_LIMITED = 10; + FAILURE_UNKNOWN_CHANNEL_NAME = 11; + FAILURE_UNKNOWN_USER = 12; + FAILURE_UNKNOWN_ERROR = 13; + FAILURE_CANNOT_KICK_ADMIN = 14; + FAILURE_ALREADY_ADMIN = 15; + } + + optional string private_chat_channel_name = 1; + optional .CMsgGCToClientPrivateChatResponse.Result result = 2 [default = SUCCESS]; + optional string username = 3; +} + +message CMsgDOTAJoinChatChannel { + optional string channel_name = 2; + optional .DOTAChatChannelType_t channel_type = 4 [default = DOTAChannelType_Regional]; + optional bool silent_rejection = 5; +} + +message CMsgDOTALeaveChatChannel { + optional uint64 channel_id = 1; +} + +message CMsgGCChatReportPublicSpam { + optional uint64 channel_id = 1; + optional uint32 channel_user_id = 2; +} + +message CMsgDOTAChatModeratorBan { + optional uint64 channel_id = 1; + optional uint32 account_id = 2; + optional uint32 duration = 3; +} + +message CMsgDOTAChatMessage { + message DiceRoll { + optional int32 roll_min = 1; + optional int32 roll_max = 2; + optional int32 result = 3; + } + + message TriviaAnswered { + optional uint32 question_id = 1; + optional uint32 answer_index = 2; + optional uint32 party_questions_correct = 3; + optional uint32 party_questions_viewed = 4; + optional uint32 party_trivia_points = 5; + } + + message PlayerDraftPick { + optional int32 player_id = 1 [default = -1]; + optional int32 team = 2; + } + + message ChatWheelMessage { + optional uint32 message_id = 1 [default = 4294967295]; + optional uint32 emoticon_id = 2; + optional string message_text = 3; + optional uint32 hero_badge_tier = 4; + } + + optional uint32 account_id = 1; + optional uint64 channel_id = 2; + optional string persona_name = 3; + optional string text = 4; + optional uint32 timestamp = 5; + optional uint32 suggest_invite_account_id = 6; + optional string suggest_invite_name = 7; + optional uint32 fantasy_draft_owner_account_id = 8; + optional uint32 fantasy_draft_player_account_id = 9; + optional uint32 event_id = 10; + optional bool suggest_invite_to_lobby = 11; + optional bool coin_flip = 13; + optional int32 player_id = 14 [default = -1]; + optional uint32 share_profile_account_id = 15; + optional uint32 channel_user_id = 16; + optional .CMsgDOTAChatMessage.DiceRoll dice_roll = 17; + optional uint64 share_party_id = 18; + optional uint64 share_lobby_id = 19; + optional uint64 share_lobby_custom_game_id = 20; + optional string share_lobby_passkey = 21; + optional uint32 private_chat_channel_id = 22; + optional uint32 status = 23; + optional bool legacy_battle_cup_victory = 24; + optional uint32 battle_cup_streak = 29; + optional uint32 badge_level = 25; + optional int32 suggest_pick_hero_id = 26; + optional string suggest_pick_hero_role = 27; + optional int32 suggest_ban_hero_id = 30; + optional .CMsgDOTAChatMessage.TriviaAnswered trivia_answer = 32; + optional int32 requested_ability_id = 33 [default = -1]; + optional uint32 chat_flags = 34; + optional bool started_finding_match = 35; + optional bool ctrl_is_down = 36; + optional uint32 favorite_team_id = 37; + optional uint32 favorite_team_quality = 38; + optional int32 suggest_player_draft_pick = 39 [default = -1]; + optional .CMsgDOTAChatMessage.PlayerDraftPick player_draft_pick = 40; + optional .CMsgDOTAChatMessage.ChatWheelMessage chat_wheel_message = 41; + optional uint32 event_level = 42; + optional uint32 suggest_pick_hero_facet = 43; +} + +message CMsgDOTAChatMember { + optional fixed64 steam_id = 1; + optional string persona_name = 2; + optional uint32 channel_user_id = 3; + optional uint32 status = 4; +} + +message CMsgDOTAJoinChatChannelResponse { + enum Result { + JOIN_SUCCESS = 0; + INVALID_CHANNEL_TYPE = 1; + ACCOUNT_NOT_FOUND = 2; + ACH_FAILED = 3; + USER_IN_TOO_MANY_CHANNELS = 4; + RATE_LIMIT_EXCEEDED = 5; + CHANNEL_FULL = 6; + CHANNEL_FULL_OVERFLOWED = 7; + FAILED_TO_ADD_USER = 8; + CHANNEL_TYPE_DISABLED = 9; + PRIVATE_CHAT_CREATE_FAILED = 10; + PRIVATE_CHAT_NO_PERMISSION = 11; + PRIVATE_CHAT_CREATE_LOCK_FAILED = 12; + PRIVATE_CHAT_KICKED = 13; + USER_NOT_ALLOWED = 14; + ENSURE_SPECIAL_PRIVILEGES_FAILED = 15; + NEW_PLAYER_USER_NOT_ELIGIBLE = 16; + SILENT_ERROR = 17; + NEW_PLAYER_USER_BANNED = 18; + } + + optional uint32 response = 1; + optional string channel_name = 2; + optional fixed64 channel_id = 3; + optional uint32 max_members = 4; + repeated .CMsgDOTAChatMember members = 5; + optional .DOTAChatChannelType_t channel_type = 6 [default = DOTAChannelType_Regional]; + optional .CMsgDOTAJoinChatChannelResponse.Result result = 7 [default = JOIN_SUCCESS]; + optional bool gc_initiated_join = 8; + optional uint32 channel_user_id = 9; + optional string welcome_message = 10; + optional .EChatSpecialPrivileges special_privileges = 11 [default = k_EChatSpecialPrivileges_None]; +} + +message CMsgDOTAOtherJoinedChatChannel { + optional fixed64 channel_id = 1; + optional string persona_name = 2; + optional fixed64 steam_id = 3; + optional uint32 channel_user_id = 4; + optional uint32 status = 5; +} + +message CMsgDOTAOtherLeftChatChannel { + optional fixed64 channel_id = 1; + optional fixed64 steam_id = 2; + optional uint32 channel_user_id = 3; +} + +message CMsgDOTARequestChatChannelList { +} + +message CMsgDOTARequestChatChannelListResponse { + message ChatChannel { + optional string channel_name = 1; + optional uint32 num_members = 2; + optional .DOTAChatChannelType_t channel_type = 3 [default = DOTAChannelType_Regional]; + } + + repeated .CMsgDOTARequestChatChannelListResponse.ChatChannel channels = 1; +} + +message CMsgDOTAChatGetUserListResponse { + message Member { + optional fixed64 steam_id = 1; + optional string persona_name = 2; + optional uint32 channel_user_id = 3; + optional uint32 status = 4; + } + + optional fixed64 channel_id = 1; + repeated .CMsgDOTAChatGetUserListResponse.Member members = 2; +} + +message CMsgDOTAChatGetMemberCount { + optional string channel_name = 1; + optional .DOTAChatChannelType_t channel_type = 2 [default = DOTAChannelType_Regional]; +} + +message CMsgDOTAChatGetMemberCountResponse { + optional string channel_name = 1; + optional .DOTAChatChannelType_t channel_type = 2 [default = DOTAChannelType_Regional]; + optional uint32 member_count = 3; +} + +message CMsgDOTAChatRegionsEnabled { + message Region { + optional float min_latitude = 1; + optional float max_latitude = 2; + optional float min_longitude = 3; + optional float max_longitude = 4; + } + + optional bool enable_all_regions = 1; + repeated .CMsgDOTAChatRegionsEnabled.Region enabled_regions = 2; +} diff --git a/Protobufs/dota2/dota_gcmessages_client_coaching.proto b/Protobufs/dota2/dota_gcmessages_client_coaching.proto new file mode 100644 index 0000000..f7516c7 --- /dev/null +++ b/Protobufs/dota2/dota_gcmessages_client_coaching.proto @@ -0,0 +1,376 @@ +import "dota_shared_enums.proto"; +import "dota_gcmessages_common_lobby.proto"; + +enum ECoachTeammateRating { + k_ECoachTeammateRating_None = 0; + k_ECoachTeammateRating_Positive = 1; + k_ECoachTeammateRating_Negative = 2; + k_ECoachTeammateRating_Abusive = 3; +} + +enum EPrivateCoachingSessionState { + k_ePrivateCoachingSessionState_Invalid = 0; + k_ePrivateCoachingSessionState_SearchingForCoach = 1; + k_ePrivateCoachingSessionState_CoachAssigned = 2; + k_ePrivateCoachingSessionState_Finished = 3; + k_ePrivateCoachingSessionState_Expired = 4; + k_ePrivateCoachingSessionState_Abandoned = 5; +} + +enum EPrivateCoachingSessionMemberFlag { + k_EPrivateCoachingSessionMemberFlag_Requester = 1; + k_EPrivateCoachingSessionMemberFlag_Coach = 2; + k_EPrivateCoachingSessionMemberFlag_LeftSession = 4; +} + +enum EPlayerCoachMatchFlag { + k_EPlayerCoachMatchFlag_EligibleForRewards = 1; + k_EPlayerCoachMatchFlag_PrivateCoach = 2; +} + +message CMsgPlayerCoachMatch { + optional uint64 match_id = 1; + optional .EMatchOutcome match_outcome = 2 [default = k_EMatchOutcome_Unknown]; + optional uint32 coached_team = 3; + optional fixed32 start_time = 4; + optional uint32 duration = 5; + repeated .ECoachTeammateRating teammate_ratings = 6; + optional uint32 coach_flags = 7; +} + +message CMsgPrivateCoachingSessionMember { + optional uint32 account_id = 1; + optional uint32 member_flags = 2; + optional .ECoachTeammateRating member_session_rating = 3 [default = k_ECoachTeammateRating_None]; +} + +message CMsgPrivateCoachingSession { + optional uint64 private_coaching_session_id = 1; + optional fixed32 requested_timestamp = 2; + optional uint32 requested_language = 3; + optional .EPrivateCoachingSessionState coaching_session_state = 4 [default = k_ePrivateCoachingSessionState_Invalid]; + repeated .CMsgPrivateCoachingSessionMember session_members = 5; + optional uint64 current_lobby_id = 6; + optional uint64 current_server_steam_id = 7; + optional fixed32 accepted_timestamp = 8; + optional fixed32 completed_timestamp = 9; +} + +message CMsgPrivateCoachingSessionStatus { + optional uint32 requester_competitive_rank_tier = 1; + optional uint32 requester_games_played = 2; +} + +message CMsgAvailablePrivateCoachingSession { + optional .CMsgPrivateCoachingSession coaching_session = 1; + optional .CMsgPrivateCoachingSessionStatus coaching_session_status = 2; +} + +message CMsgAvailablePrivateCoachingSessionList { + repeated .CMsgAvailablePrivateCoachingSession available_coaching_sessions = 1; +} + +message CMsgAvailablePrivateCoachingSessionSummary { + optional uint32 coaching_session_count = 1; +} + +message CMsgClientToGCRequestPlayerCoachMatches { +} + +message CMsgClientToGCRequestPlayerCoachMatchesResponse { + enum EResponse { + k_eInternalError = 0; + k_eSuccess = 1; + k_eTooBusy = 2; + k_eDisabled = 3; + } + + optional .CMsgClientToGCRequestPlayerCoachMatchesResponse.EResponse result = 1 [default = k_eInternalError]; + repeated .CMsgPlayerCoachMatch coach_matches = 2; +} + +message CMsgClientToGCRequestPlayerCoachMatch { + optional uint64 match_id = 1; +} + +message CMsgClientToGCRequestPlayerCoachMatchResponse { + enum EResponse { + k_eInternalError = 0; + k_eSuccess = 1; + k_eTooBusy = 2; + k_eDisabled = 3; + } + + optional .CMsgClientToGCRequestPlayerCoachMatchResponse.EResponse result = 1 [default = k_eInternalError]; + optional .CMsgPlayerCoachMatch coach_match = 2; +} + +message CMsgClientToGCSubmitCoachTeammateRating { + optional uint64 match_id = 1; + optional uint32 coach_account_id = 2; + optional .ECoachTeammateRating rating = 3 [default = k_ECoachTeammateRating_None]; + optional string reason = 4; +} + +message CMsgClientToGCSubmitCoachTeammateRatingResponse { + enum EResponse { + k_eInternalError = 0; + k_eSuccess = 1; + k_eTooBusy = 2; + k_eDisabled = 3; + k_eInvalidInput = 4; + k_eAlreadySubmitted = 5; + k_eVotingFinished = 6; + k_ePlayerNotInMatch = 7; + k_eCoachNotInMatch = 8; + k_ePlayerNotOnCoachTeam = 9; + k_ePlayerInSamePartyAsCoach = 10; + k_eMatchNotEligible = 11; + } + + optional .CMsgClientToGCSubmitCoachTeammateRatingResponse.EResponse result = 1 [default = k_eInternalError]; +} + +message CMsgGCToClientCoachTeammateRatingsChanged { + optional .CMsgPlayerCoachMatch coach_match = 1; +} + +message CMsgClientToGCRequestPrivateCoachingSession { + optional uint32 language = 1; +} + +message CMsgClientToGCRequestPrivateCoachingSessionResponse { + enum EResponse { + k_eInternalError = 0; + k_eSuccess = 1; + k_eTooBusy = 2; + k_eDisabled = 3; + k_eTimeout = 4; + k_eAlreadyInSession = 5; + k_eBehaviorScoreTooLow = 6; + k_eInvalidLobbyType = 7; + k_eLowPriorityPlayer = 8; + k_eLowPriorityLobby = 9; + k_eLowPriorityParty = 10; + k_eTextChatBan = 11; + k_eVoiceChatBan = 12; + k_eMatchBan = 13; + } + + optional .CMsgClientToGCRequestPrivateCoachingSessionResponse.EResponse result = 1 [default = k_eInternalError]; + optional .CMsgPrivateCoachingSession coaching_session = 2; +} + +message CMsgClientToGCAcceptPrivateCoachingSession { + optional uint64 coaching_session_id = 1; +} + +message CMsgClientToGCAcceptPrivateCoachingSessionResponse { + enum EResponse { + k_eInternalError = 0; + k_eSuccess = 1; + k_eTooBusy = 2; + k_eDisabled = 3; + k_eTimeout = 4; + k_eUnknownSession = 5; + k_eAlreadyHasCoach = 6; + k_eAlreadyHasSession = 7; + k_eInvalidUser = 8; + k_eAlreadyFinished = 9; + k_eInvalidLobbyType = 10; + k_eAlreadyInLobby = 11; + k_eLobbyIsLan = 12; + k_eLobbyIsLeague = 13; + k_eInvalidLobbyState = 14; + k_eRequesterIsNotPlayer = 15; + k_eTooManyCoaches = 16; + k_eCoachWasPlayer = 17; + k_eCoachBehaviorScoreTooLow = 18; + k_eCoachRankNotCalibrated = 19; + k_eCoachRankNotEligible = 20; + k_eCoachRankTooLow = 21; + } + + optional .CMsgClientToGCAcceptPrivateCoachingSessionResponse.EResponse result = 1 [default = k_eInternalError]; + optional .CMsgPrivateCoachingSession coaching_session = 2; +} + +message CMsgClientToGCLeavePrivateCoachingSession { +} + +message CMsgClientToGCLeavePrivateCoachingSessionResponse { + enum EResponse { + k_eInternalError = 0; + k_eSuccess = 1; + k_eTooBusy = 2; + k_eDisabled = 3; + k_eTimeout = 4; + k_eNoSession = 5; + k_eAlreadyLeft = 6; + } + + optional .CMsgClientToGCLeavePrivateCoachingSessionResponse.EResponse result = 1 [default = k_eInternalError]; +} + +message CMsgClientToGCGetCurrentPrivateCoachingSession { +} + +message CMsgClientToGCGetCurrentPrivateCoachingSessionResponse { + enum EResponse { + k_eInternalError = 0; + k_eSuccess = 1; + k_eTooBusy = 2; + k_eDisabled = 3; + k_eTimeout = 4; + } + + optional .CMsgClientToGCGetCurrentPrivateCoachingSessionResponse.EResponse result = 1 [default = k_eInternalError]; + optional .CMsgPrivateCoachingSession current_session = 2; +} + +message CMsgGCToClientPrivateCoachingSessionUpdated { + optional .CMsgPrivateCoachingSession coaching_session = 1; +} + +message CMsgClientToGCSubmitPrivateCoachingSessionRating { + optional uint64 coaching_session_id = 1; + optional .ECoachTeammateRating session_rating = 2 [default = k_ECoachTeammateRating_None]; +} + +message CMsgClientToGCSubmitPrivateCoachingSessionRatingResponse { + enum EResponse { + k_eInternalError = 0; + k_eSuccess = 1; + k_eTooBusy = 2; + k_eDisabled = 3; + k_eTimeout = 4; + k_eUnknownSession = 5; + k_eNotMember = 6; + k_eAlreadySubmitted = 7; + k_eSessionActive = 8; + k_eSessionTooShort = 9; + k_eNoCoach = 10; + k_eInvalidRating = 11; + } + + optional .CMsgClientToGCSubmitPrivateCoachingSessionRatingResponse.EResponse result = 1 [default = k_eInternalError]; +} + +message CMsgClientToGCGetAvailablePrivateCoachingSessions { + optional uint32 language = 1; +} + +message CMsgClientToGCGetAvailablePrivateCoachingSessionsResponse { + enum EResponse { + k_eInternalError = 0; + k_eSuccess = 1; + k_eTooBusy = 2; + k_eDisabled = 3; + k_eTimeout = 4; + } + + optional .CMsgClientToGCGetAvailablePrivateCoachingSessionsResponse.EResponse result = 1 [default = k_eInternalError]; + optional .CMsgAvailablePrivateCoachingSessionList available_sessions_list = 2; +} + +message CMsgClientToGCGetAvailablePrivateCoachingSessionsSummary { +} + +message CMsgClientToGCGetAvailablePrivateCoachingSessionsSummaryResponse { + enum EResponse { + k_eInternalError = 0; + k_eSuccess = 1; + k_eTooBusy = 2; + k_eDisabled = 3; + k_eTimeout = 4; + } + + optional .CMsgClientToGCGetAvailablePrivateCoachingSessionsSummaryResponse.EResponse result = 1 [default = k_eInternalError]; + optional .CMsgAvailablePrivateCoachingSessionSummary coaching_session_summary = 2; +} + +message CMsgClientToGCJoinPrivateCoachingSessionLobby { +} + +message CMsgClientToGCJoinPrivateCoachingSessionLobbyResponse { + enum EResponse { + k_eInternalError = 0; + k_eSuccess = 1; + k_eTooBusy = 2; + k_eDisabled = 3; + k_eTimeout = 4; + k_eNoSession = 5; + k_eSessionFinished = 6; + k_eAlreadyLeft = 7; + k_eNotACoach = 8; + k_eNoLobby = 9; + k_eCoachInThisLobby = 10; + k_eCoachInALobby = 11; + k_eLobbyIsLan = 12; + k_eLobbyIsLeague = 13; + k_eInvalidLobbyType = 14; + k_eInvalidLobbyState = 15; + k_eRequesterIsNotPlayer = 16; + k_eTooManyCoaches = 17; + k_eCoachWasPlayer = 18; + k_eJoinFailed = 19; + } + + optional .CMsgClientToGCJoinPrivateCoachingSessionLobbyResponse.EResponse result = 1 [default = k_eInternalError]; +} + +message CMsgClientToGCCoachFriend { + optional uint32 target_account_id = 1; +} + +message CMsgClientToGCCoachFriendResponse { + enum EResponse { + k_eInternalError = 0; + k_eSuccess = 1; + k_eTooBusy = 2; + k_eDisabled = 3; + k_eTimeout = 4; + k_eCoachNotSubscriber = 5; + k_eLobbyNotFound = 6; + k_eFriendsOnBothSides = 7; + k_eNotFriends = 8; + k_eCoachInThisLobby = 9; + k_eCoachInALobby = 10; + k_eLobbyIsLan = 11; + k_eInvalidLobbyType = 12; + k_eInvalidLobbyState = 13; + k_eFriendIsNotAPlayer = 14; + k_eTooManyCoaches = 15; + k_eCoachSwitchedTeams = 16; + k_eLobbyIsLeague = 17; + k_eCoachWasPlayer = 18; + k_eRequestRejected = 19; + } + + optional .CMsgClientToGCCoachFriendResponse.EResponse result = 1 [default = k_eInternalError]; +} + +message CMsgClientToGCRespondToCoachFriendRequest { + optional uint32 coach_account_id = 1; + optional .ELobbyMemberCoachRequestState response = 2 [default = k_eLobbyMemberCoachRequestState_None]; +} + +message CMsgClientToGCRespondToCoachFriendRequestResponse { + enum EResponse { + k_eInternalError = 0; + k_eSuccess = 1; + k_eTooBusy = 2; + k_eDisabled = 3; + k_eTimeout = 4; + k_eLobbyNotFound = 5; + k_eInvalidLobbyState = 6; + k_eCoachNotInLobby = 7; + k_ePlayerInvalidTeam = 8; + k_eCoachInvalidTeam = 9; + k_eNoRequest = 10; + k_eInvalidResponse = 11; + k_eAlreadyResponded = 12; + } + + optional .CMsgClientToGCRespondToCoachFriendRequestResponse.EResponse result = 1 [default = k_eInternalError]; +} diff --git a/Protobufs/dota2/dota_gcmessages_client_fantasy.proto b/Protobufs/dota2/dota_gcmessages_client_fantasy.proto new file mode 100644 index 0000000..c16dc8e --- /dev/null +++ b/Protobufs/dota2/dota_gcmessages_client_fantasy.proto @@ -0,0 +1,564 @@ +import "dota_shared_enums.proto"; + +enum DOTA_2013PassportSelectionIndices { + PP13_SEL_ALLSTAR_PLAYER_0 = 0; + PP13_SEL_ALLSTAR_PLAYER_1 = 1; + PP13_SEL_ALLSTAR_PLAYER_2 = 2; + PP13_SEL_ALLSTAR_PLAYER_3 = 3; + PP13_SEL_ALLSTAR_PLAYER_4 = 4; + PP13_SEL_ALLSTAR_PLAYER_5 = 5; + PP13_SEL_ALLSTAR_PLAYER_6 = 6; + PP13_SEL_ALLSTAR_PLAYER_7 = 7; + PP13_SEL_ALLSTAR_PLAYER_8 = 8; + PP13_SEL_ALLSTAR_PLAYER_9 = 9; + PP13_SEL_QUALPRED_WEST_0 = 10; + PP13_SEL_QUALPRED_WEST_1 = 11; + PP13_SEL_QUALPRED_WEST_2 = 12; + PP13_SEL_QUALPRED_WEST_3 = 13; + PP13_SEL_QUALPRED_WEST_4 = 14; + PP13_SEL_QUALPRED_WEST_5 = 15; + PP13_SEL_QUALPRED_WEST_6 = 16; + PP13_SEL_QUALPRED_WEST_7 = 17; + PP13_SEL_QUALPRED_WEST_8 = 18; + PP13_SEL_QUALPRED_WEST_9 = 19; + PP13_SEL_QUALPRED_WEST_10 = 20; + PP13_SEL_QUALPRED_WEST_11 = 21; + PP13_SEL_QUALPRED_WEST_12 = 22; + PP13_SEL_QUALPRED_WEST_13 = 23; + PP13_SEL_QUALPRED_WEST_14 = 24; + PP13_SEL_QUALPRED_EAST_0 = 25; + PP13_SEL_QUALPRED_EAST_1 = 26; + PP13_SEL_QUALPRED_EAST_2 = 27; + PP13_SEL_QUALPRED_EAST_3 = 28; + PP13_SEL_QUALPRED_EAST_4 = 29; + PP13_SEL_QUALPRED_EAST_5 = 30; + PP13_SEL_QUALPRED_EAST_6 = 31; + PP13_SEL_QUALPRED_EAST_7 = 32; + PP13_SEL_QUALPRED_EAST_8 = 33; + PP13_SEL_QUALPRED_EAST_9 = 34; + PP13_SEL_QUALPRED_EAST_10 = 35; + PP13_SEL_QUALPRED_EAST_11 = 36; + PP13_SEL_QUALPRED_EAST_12 = 37; + PP13_SEL_QUALPRED_EAST_13 = 38; + PP13_SEL_QUALPRED_EAST_14 = 39; + PP13_SEL_TEAMCUP_TEAM = 40; + PP13_SEL_TEAMCUP_PLAYER = 41; + PP13_SEL_TEAMCUP_TEAM_LOCK = 42; + PP13_SEL_TEAMCUP_PLAYER_LOCK = 43; + PP13_SEL_EVENTPRED_0 = 44; + PP13_SEL_EVENTPRED_1 = 45; + PP13_SEL_EVENTPRED_2 = 46; + PP13_SEL_EVENTPRED_3 = 47; + PP13_SEL_EVENTPRED_4 = 48; + PP13_SEL_EVENTPRED_5 = 49; + PP13_SEL_EVENTPRED_6 = 50; + PP13_SEL_EVENTPRED_7 = 51; + PP13_SEL_EVENTPRED_8 = 52; + PP13_SEL_EVENTPRED_9 = 53; + PP13_SEL_EVENTPRED_10 = 54; + PP13_SEL_EVENTPRED_11 = 55; + PP13_SEL_EVENTPRED_12 = 56; + PP13_SEL_EVENTPRED_13 = 57; + PP13_SEL_EVENTPRED_14 = 58; + PP13_SEL_EVENTPRED_15 = 59; + PP13_SEL_EVENTPRED_16 = 60; + PP13_SEL_EVENTPRED_17 = 61; + PP13_SEL_EVENTPRED_18 = 62; + PP13_SEL_EVENTPRED_19 = 63; + PP13_SEL_EVENTPRED_20 = 64; + PP13_SEL_EVENTPRED_21 = 65; + PP13_SEL_EVENTPRED_22 = 66; + PP13_SEL_EVENTPRED_23 = 67; + PP13_SEL_EVENTPRED_24 = 68; + PP13_SEL_EVENTPRED_25 = 69; + PP13_SEL_EVENTPRED_26 = 70; + PP13_SEL_EVENTPRED_27 = 71; + PP13_SEL_EVENTPRED_28 = 72; + PP13_SEL_EVENTPRED_29 = 73; + PP13_SEL_EVENTPRED_30 = 74; + PP13_SEL_EVENTPRED_31 = 75; + PP13_SEL_EVENTPRED_32 = 76; + PP13_SEL_EVENTPRED_33 = 77; + PP13_SEL_EVENTPRED_34 = 78; + PP13_SEL_EVENTPRED_35 = 79; + PP13_SEL_EVENTPRED_36 = 80; + PP13_SEL_EVENTPRED_37 = 81; + PP13_SEL_EVENTPRED_38 = 82; + PP13_SEL_EVENTPRED_39 = 83; + PP13_SEL_EVENTPRED_40 = 84; + PP13_SEL_EVENTPRED_41 = 85; + PP13_SEL_EVENTPRED_42 = 86; + PP13_SEL_EVENTPRED_43 = 87; + PP13_SEL_SOLO_0 = 88; + PP13_SEL_SOLO_1 = 89; + PP13_SEL_SOLO_2 = 90; + PP13_SEL_SOLO_3 = 91; + PP13_SEL_SOLO_4 = 92; + PP13_SEL_SOLO_5 = 93; + PP13_SEL_SOLO_6 = 94; + PP13_SEL_SOLO_7 = 95; +} + +message CMsgDOTAPlayerInfo { + message Results { + optional uint32 league_id = 1; + optional uint32 placement = 2; + optional uint32 earnings = 3; + } + + message AuditEntry { + optional uint32 start_timestamp = 1; + optional uint32 end_timestamp = 2; + optional uint32 team_id = 3; + optional string team_name = 4; + optional string team_tag = 5; + optional string team_url_logo = 6; + } + + optional uint32 account_id = 1; + optional string name = 2; + optional string country_code = 3; + optional .Fantasy_Roles fantasy_role = 4 [default = FANTASY_ROLE_UNDEFINED]; + optional uint32 team_id = 5; + optional string team_name = 6; + optional string team_tag = 7; + optional string sponsor = 8; + optional bool is_locked = 9; + optional bool is_pro = 10; + optional string real_name = 11; + optional uint32 total_earnings = 13; + repeated .CMsgDOTAPlayerInfo.Results results = 14; + optional string team_url_logo = 15; + repeated .CMsgDOTAPlayerInfo.AuditEntry audit_entries = 16; + optional string team_abbreviation = 17; +} + +message CMsgDOTAPlayerInfoList { + repeated .CMsgDOTAPlayerInfo player_infos = 1; +} + +message CMsgDOTATeamRoster { + optional uint32 timestamp = 1; + optional uint32 team_id = 2; + repeated uint32 member_account_ids = 3; + optional uint32 coach_account_id = 4; +} + +message CMsgDOTADPCProfileInfo { + message PredictionInfo { + optional uint32 percent = 1; + optional int32 shard_winnings = 2; + } + + message FantasyInfo { + optional uint32 top_90_finishes = 1; + optional uint32 top_75_finishes = 2; + optional uint32 top_50_finishes = 3; + optional uint32 shard_winnings = 4; + } + + optional .CMsgDOTAPlayerInfo player_info = 1; + optional .CMsgDOTADPCProfileInfo.PredictionInfo prediction_info = 2; + optional .CMsgDOTADPCProfileInfo.FantasyInfo fantasy_info = 3; + repeated uint32 disabled_notifications = 4; +} + +message CMsgDOTALeaderboards { + message RegionLeaderboard { + optional uint32 division = 1; + repeated uint32 account_ids = 2; + } + + repeated .CMsgDOTALeaderboards.RegionLeaderboard leaderboards = 2; +} + +message CMsgDOTAPassportVoteTeamGuess { + optional uint32 league_id = 1; + optional uint32 winner_id = 2; + optional uint32 runnerup_id = 3; +} + +message CMsgDOTAPassportVoteGenericSelection { + optional .DOTA_2013PassportSelectionIndices selection_index = 1 [default = PP13_SEL_ALLSTAR_PLAYER_0]; + optional uint32 selection = 2; +} + +message CMsgDOTAPassportStampedPlayer { + optional uint64 steam_id = 1; + optional uint32 stamp_level = 2; +} + +message CMsgDOTAPassportPlayerCardChallenge { + optional uint32 challenge_id = 1; +} + +message CMsgDOTAPassportVote { + repeated .CMsgDOTAPassportVoteTeamGuess team_votes = 1; + repeated .CMsgDOTAPassportVoteGenericSelection generic_selections = 2; + repeated .CMsgDOTAPassportStampedPlayer stamped_players = 3; + repeated .CMsgDOTAPassportPlayerCardChallenge player_card_challenges = 4; +} + +message CMsgClientToGCGetPlayerCardRosterRequest { + optional uint32 league_id = 1; + optional uint32 fantasy_period = 3 [default = 4294967295]; +} + +message CMsgClientToGCGetPlayerCardRosterResponse { + enum Result { + SUCCESS = 0; + ERROR_UNSPECIFIED = 1; + ERROR_INVALID_LEAGUE_ID = 2; + ERROR_INVALID_TIMESTAMP = 3; + } + + optional .CMsgClientToGCGetPlayerCardRosterResponse.Result result = 1 [default = SUCCESS]; + repeated uint64 player_card_item_id = 2; + optional float score = 3; + optional bool finalized = 4; + optional float percentile = 5; +} + +message CMsgClientToGCBatchGetPlayerCardRosterRequest { + message LeagueTimestamp { + optional uint32 league_id = 1; + optional uint32 fantasy_period = 3 [default = 4294967295]; + } + + repeated .CMsgClientToGCBatchGetPlayerCardRosterRequest.LeagueTimestamp league_timestamps = 1; +} + +message CMsgClientToGCBatchGetPlayerCardRosterResponse { + message RosterResponse { + optional uint32 league_id = 1; + optional uint32 deprecated_timestamp = 2; + optional .CMsgClientToGCBatchGetPlayerCardRosterResponse.Result result = 3 [default = SUCCESS]; + repeated uint64 player_card_item_id = 4; + optional float score = 5; + optional bool finalized = 6; + optional float percentile = 7; + optional uint32 fantasy_period = 8 [default = 4294967295]; + } + + enum Result { + SUCCESS = 0; + ERROR_UNSPECIFIED = 1; + ERROR_INVALID_LEAGUE_ID = 2; + ERROR_INVALID_TIMESTAMP = 3; + } + + repeated .CMsgClientToGCBatchGetPlayerCardRosterResponse.RosterResponse responses = 1; +} + +message CMsgClientToGCSetPlayerCardRosterRequest { + optional uint32 league_id = 1; + optional uint32 deprecated_timestamp = 2; + optional uint32 slot = 3; + optional uint64 player_card_item_id = 4; + optional uint32 event_id = 5; + optional uint32 fantasy_period = 6 [default = 4294967295]; +} + +message CMsgClientToGCSetPlayerCardRosterResponse { + enum Result { + SUCCESS = 0; + ERROR_UNSPECIFIED = 1; + ERROR_INVALID_LEAGUE_ID = 2; + ERROR_INVALID_TIMESTAMP = 3; + ERROR_PLAYER_CARD_NOT_OWNED = 4; + ERROR_INVALID_SLOT = 5; + ERROR_FAILED_CARD_INFO = 6; + ERROR_ACCOUNT_DUPLICATE = 7; + ERROR_LOCKED_TIMESTAMP = 8; + ERROR_INVALID_LEAGUE_FOR_PERIOD = 9; + ERROR_INVALID_EVENT = 10; + } + + optional .CMsgClientToGCSetPlayerCardRosterResponse.Result result = 1 [default = SUCCESS]; +} + +message CMsgDOTAFantasyDPCLeagueStatus { + message LeagueInfo { + optional uint32 league_id = 1; + optional string league_name = 2; + optional uint32 start_timestamp = 3; + optional uint32 end_timestamp = 4; + repeated uint32 day_timestamps = 5; + optional .CMsgDOTAFantasyDPCLeagueStatus.ERosterStatus status = 8 [default = UNSET]; + } + + enum ERosterStatus { + UNSET = 0; + PARTIAL = 1; + FULL = 2; + CONCLUDED = 3; + } + + repeated .CMsgDOTAFantasyDPCLeagueStatus.LeagueInfo league_infos = 1; +} + +message CMsgDOTADPCSearchResults { + message Player { + optional uint32 id = 1; + optional string name = 2; + optional string real_name = 3; + } + + message Team { + optional uint32 id = 1; + optional string name = 2; + optional string url = 3; + } + + message League { + optional uint32 id = 1; + optional string name = 2; + } + + enum ESearchResultsDesired { + k_ESearchResultsDesired_Players = 1; + k_ESearchResultsDesired_Teams = 2; + k_ESearchResultsDesired_Leagues = 4; + k_ESearchResultsDesired_All = 7; + } + + repeated .CMsgDOTADPCSearchResults.Player players = 1; + repeated .CMsgDOTADPCSearchResults.Team teams = 2; + repeated .CMsgDOTADPCSearchResults.League leagues = 3; +} + +message CMsgDOTADPCTeamFavoriteRankings { + message Team { + optional uint32 team_id = 1; + optional uint32 favorites = 2; + } + + repeated .CMsgDOTADPCTeamFavoriteRankings.Team teams = 1; +} + +message CMsgDotaFantasyCraftingTabletPeriodData { + message Gem { + optional .Fantasy_Gem_Type type = 1 [default = FANTASY_GEM_TYPE_RUBY]; + optional uint32 slot = 2; + optional uint32 shape = 3; + optional uint32 quality = 4; + optional .Fantasy_Scoring stat = 5 [default = FANTASY_SCORING_KILLS]; + } + + message Tablet { + optional uint32 tablet_id = 1; + optional uint32 tablet_level = 2; + optional .Fantasy_Roles fantasy_role = 3 [default = FANTASY_ROLE_UNDEFINED]; + optional uint32 account_id = 4; + optional uint32 prefix = 5; + optional uint32 suffix = 6; + repeated .CMsgDotaFantasyCraftingTabletPeriodData.Gem gems = 7; + optional float score = 8; + optional uint32 best_series = 9; + } + + optional uint32 fantasy_period = 1 [default = 4294967295]; + repeated .CMsgDotaFantasyCraftingTabletPeriodData.Tablet tablets = 2; +} + +message CMsgDotaFantasyCraftingTabletData { + message TabletPeriodDataEntry { + optional uint32 key = 1; + optional .CMsgDotaFantasyCraftingTabletPeriodData value = 2; + } + + repeated .CMsgDotaFantasyCraftingTabletData.TabletPeriodDataEntry tablet_period_data = 1; +} + +message CMsgDotaFantasyCraftingUserData { + message PeriodScore { + optional float total_score = 1; + optional float percentile = 2; + } + + message PeriodRollTokensEntry { + optional uint32 key = 1; + optional uint32 value = 2; + } + + message PeriodScoresEntry { + optional uint32 key = 1; + optional .CMsgDotaFantasyCraftingUserData.PeriodScore value = 2; + } + + repeated uint32 available_rolls = 1; + repeated .CMsgDotaFantasyCraftingUserData.PeriodRollTokensEntry period_roll_tokens = 2; + repeated .CMsgDotaFantasyCraftingUserData.PeriodScoresEntry period_scores = 3; +} + +message CMsgDotaFantasyCraftingDataCache { + message CacheEntry { + optional uint32 account_id = 1; + optional uint32 fantasy_league = 2; + optional .CMsgGCToClientFantasyCraftingDataUpdated cache_data = 3; + } + + repeated .CMsgDotaFantasyCraftingDataCache.CacheEntry cache_entries = 1; +} + +message CMsgClientToGCFantasyCraftingGetData { + optional uint32 fantasy_league = 1; + optional uint32 account_id = 2; +} + +message CMsgClientToGCFantasyCraftingGetDataResponse { + enum EResponse { + k_eInternalError = 0; + k_eSuccess = 1; + k_eTooBusy = 2; + k_eDisabled = 3; + k_eTimeout = 4; + k_eInvalidLeague = 5; + } + + optional .CMsgClientToGCFantasyCraftingGetDataResponse.EResponse response = 1 [default = k_eInternalError]; + optional .CMsgDotaFantasyCraftingUserData user_data = 2; + optional .CMsgDotaFantasyCraftingTabletData tablet_data = 4; +} + +message CMsgClientToGCFantasyCraftingPerformOperation { + optional uint32 fantasy_league = 1; + optional uint32 tablet_id = 2; + optional uint32 operation_id = 3; + optional uint64 extra_data = 4; +} + +message CMsgClientToGCFantasyCraftingPerformOperationResponse { + message TitleChoice { + optional uint32 prefix_choice = 1; + optional uint32 suffix_choice = 2; + } + + enum EResponse { + k_eInternalError = 0; + k_eSuccess = 1; + k_eTooBusy = 2; + k_eDisabled = 3; + k_eTimeout = 4; + k_eInvalidLeague = 5; + k_eNoTokens = 6; + k_eMoreInfo = 7; + } + + optional .CMsgClientToGCFantasyCraftingPerformOperationResponse.EResponse response = 1 [default = k_eInternalError]; + optional uint32 operation_id = 2; + optional uint32 tablet_id = 7; + optional .CMsgDotaFantasyCraftingUserData user_data = 8; + optional .CMsgDotaFantasyCraftingTabletData tablet_data = 9; + repeated uint32 player_choices = 3; + repeated uint32 prefix_choices = 4; + repeated uint32 suffix_choices = 5; + repeated .CMsgClientToGCFantasyCraftingPerformOperationResponse.TitleChoice title_choices = 6; +} + +message CMsgGCToClientFantasyCraftingDataUpdated { + optional uint32 fantasy_league = 1; + optional .CMsgDotaFantasyCraftingUserData user_data = 2; + optional .CMsgDotaFantasyCraftingTabletData tablet_data = 4; +} + +message CMsgClientToGCFantasyCraftingDevModifyTablet { + optional uint32 fantasy_league = 1; + optional bool reset_tablet = 2; + optional uint32 modify_tokens = 3; + optional bool upgrade_tablets = 6; + optional uint32 fantasy_period = 5 [default = 4294967295]; +} + +message CMsgClientToGCFantasyCraftingDevModifyTabletResponse { + enum EResponse { + k_eInternalError = 0; + k_eSuccess = 1; + k_eTooBusy = 2; + k_eDisabled = 3; + k_eTimeout = 4; + k_eInvalidLeague = 5; + } + + optional .CMsgClientToGCFantasyCraftingDevModifyTabletResponse.EResponse response = 1 [default = k_eInternalError]; + optional .CMsgDotaFantasyCraftingUserData user_data = 2; + optional .CMsgDotaFantasyCraftingTabletData tablet_data = 3; +} + +message CMsgClientToGCFantasyCraftingSelectPlayer { + optional uint32 fantasy_league = 1; + optional uint32 account_id = 2; +} + +message CMsgClientToGCFantasyCraftingSelectPlayerResponse { + enum EResponse { + k_eInternalError = 0; + k_eSuccess = 1; + k_eTooBusy = 2; + k_eDisabled = 3; + k_eTimeout = 4; + k_eInvalidLeague = 5; + k_eInvalidPlayer = 6; + } + + optional .CMsgClientToGCFantasyCraftingSelectPlayerResponse.EResponse response = 1 [default = k_eInternalError]; + optional .CMsgDotaFantasyCraftingTabletData tablet_data = 2; +} + +message CMsgClientToGCFantasyCraftingGenerateTablets { + optional uint32 fantasy_league = 1; + repeated uint32 account_ids = 2; +} + +message CMsgClientToGCFantasyCraftingGenerateTabletsResponse { + enum EResponse { + k_eInternalError = 0; + k_eSuccess = 1; + k_eTooBusy = 2; + k_eDisabled = 3; + k_eTimeout = 4; + k_eInvalidLeague = 5; + k_eInvalidPlayer = 6; + } + + optional .CMsgClientToGCFantasyCraftingGenerateTabletsResponse.EResponse response = 1 [default = k_eInternalError]; + optional .CMsgDotaFantasyCraftingUserData user_data = 2; + optional .CMsgDotaFantasyCraftingTabletData tablet_data = 3; +} + +message CMsgClientToGcFantasyCraftingUpgradeTablets { + optional uint32 fantasy_league = 1; +} + +message CMsgClientToGcFantasyCraftingUpgradeTabletsResponse { + enum EResponse { + k_eInternalError = 0; + k_eSuccess = 1; + k_eTooBusy = 2; + k_eDisabled = 3; + k_eTimeout = 4; + k_eInvalidLeague = 5; + } + + optional .CMsgClientToGcFantasyCraftingUpgradeTabletsResponse.EResponse response = 1 [default = k_eInternalError]; + optional .CMsgDotaFantasyCraftingTabletData tablet_data = 3; +} + +message CMsgClientToGCFantasyCraftingRerollOptions { + optional uint32 fantasy_league = 1; +} + +message CMsgClientToGCFantasyCraftingRerollOptionsResponse { + enum EResponse { + k_eInternalError = 0; + k_eSuccess = 1; + k_eTooBusy = 2; + k_eDisabled = 3; + k_eTimeout = 4; + k_eInvalidLeague = 5; + k_eInsufficientTokens = 6; + } + + optional .CMsgClientToGCFantasyCraftingRerollOptionsResponse.EResponse response = 1 [default = k_eInternalError]; + optional .CMsgDotaFantasyCraftingUserData user_data = 2; +} diff --git a/Protobufs/dota2/dota_gcmessages_client_guild.proto b/Protobufs/dota2/dota_gcmessages_client_guild.proto new file mode 100644 index 0000000..80243c6 --- /dev/null +++ b/Protobufs/dota2/dota_gcmessages_client_guild.proto @@ -0,0 +1,651 @@ +import "dota_shared_enums.proto"; + +enum EGuildAuditAction { + k_EGuildAuditAction_Invalid = 0; + k_EGuildAuditAction_GuildCreated = 1; + k_EGuildAuditAction_GuildLanguageChanged = 2; + k_EGuildAuditAction_GuildFlagsChanged = 3; + k_EGuildAuditAction_GuildMemberJoined = 5; + k_EGuildAuditAction_GuildMemberLeft = 6; + k_EGuildAuditAction_GuildMemberKicked = 7; + k_EGuildAuditAction_GuildMemberRoleChanged = 8; + k_EGuildAuditAction_GuildLogoChanged = 9; + k_EGuildAuditAction_GuildRegionChanged = 10; + k_EGuildAuditAction_GuildDescriptionChanged = 11; + k_EGuildAuditAction_GuildPrimaryColorChanged = 12; + k_EGuildAuditAction_GuildSecondaryColorChanged = 13; + k_EGuildAuditAction_GuildPatternChanged = 14; + k_EGuildAuditAction_AdminClearedLogo = 15; + k_EGuildAuditAction_GuildRequiredRankChanged = 16; + k_EGuildAuditAction_GuildMotDChanged = 18; + k_EGuildAuditAction_AdminResetName = 19; + k_EGuildAuditAction_AdminResetTag = 20; + k_EGuildAuditAction_AdminLock = 21; + k_EGuildAuditAction_GuildNameChanged = 22; + k_EGuildAuditAction_GuildTagChanged = 23; + k_EGuildAuditAction_AdminPermitted = 24; + k_EGuildAuditAction_AdminBlocked = 25; + k_EGuildAuditAction_AdminBannedUser = 26; + k_EGuildAuditAction_AdminExonerated = 27; +} + +enum EGuildChatType { + k_EGuildChatType_Unspecified = 0; + k_EGuildChatType_SteamChatGroup = 1; + k_EGuildChatType_GC = 2; +} + +message CMsgGuildInfo { + optional string guild_name = 1; + optional string guild_tag = 2; + optional uint32 created_timestamp = 3; + optional uint32 guild_language = 4; + optional uint32 guild_flags = 5; + optional uint64 guild_logo = 7; + optional uint32 guild_region = 8; + optional uint64 guild_chat_group_id = 9; + optional string guild_description = 10; + optional uint64 default_chat_channel_id = 11; + optional uint32 guild_primary_color = 12; + optional uint32 guild_secondary_color = 13; + optional uint32 guild_pattern = 14; + optional uint32 guild_refresh_time_offset = 15; + optional uint32 guild_required_rank_tier = 16; + optional uint32 guild_motd_timestamp = 17; + optional string guild_motd = 18; +} + +message CMsgGuildSummary { + message EventPoints { + optional uint32 event_id = 1; + optional uint32 guild_points = 2; + optional uint32 guild_rank = 3; + optional uint32 guild_weekly_rank = 4; + optional uint32 guild_weekly_percentile = 5; + optional uint32 guild_current_percentile = 6; + } + + optional .CMsgGuildInfo guild_info = 1; + optional uint32 member_count = 2; + repeated .CMsgGuildSummary.EventPoints event_points = 3; +} + +message CMsgGuildRole { + optional uint32 role_id = 1; + optional string role_name = 2; + optional uint32 role_flags = 3; + optional uint32 role_order = 4; +} + +message CMsgGuildMember { + optional uint32 member_account_id = 1; + optional uint32 member_role_id = 2; + optional uint32 member_joined_timestamp = 3; + optional uint32 member_last_active_timestamp = 4; +} + +message CMsgGuildInvite { + optional uint32 requester_account_id = 1; + optional uint32 target_account_id = 2; + optional uint32 timestamp_sent = 3; +} + +message CMsgGuildData { + optional uint32 guild_id = 1; + optional .CMsgGuildInfo guild_info = 2; + repeated .CMsgGuildRole guild_roles = 3; + repeated .CMsgGuildMember guild_members = 4; + repeated .CMsgGuildInvite guild_invites = 5; +} + +message CMsgAccountGuildInvite { + optional uint32 guild_id = 1; + optional uint32 requester_account_id = 2; + optional uint32 timestamp_sent = 3; +} + +message CMsgAccountGuildMemberships { + repeated uint32 guild_ids = 1; + repeated .CMsgAccountGuildInvite guild_invites = 2; +} + +message CMsgGuildPersonaInfo { + optional uint32 guild_id = 1; + optional string guild_tag = 2; + optional uint32 guild_flags = 3; +} + +message CMsgAccountGuildsPersonaInfo { + repeated .CMsgGuildPersonaInfo guild_persona_infos = 1; +} + +message CMsgGuildFeedEvent { + optional uint64 feed_event_id = 1; + optional uint32 timestamp = 2; + optional uint32 event_type = 3; + optional uint32 param_uint_1 = 4; + optional uint32 param_uint_2 = 5; + optional uint32 param_uint_3 = 6; +} + +message CMsgClientToGCCreateGuild { + optional .CMsgGuildInfo guild_info = 1; + optional .EGuildChatType guild_chat_type = 2 [default = k_EGuildChatType_Unspecified]; +} + +message CMsgClientToGCCreateGuildResponse { + enum EResponse { + k_eInternalError = 0; + k_eSuccess = 1; + k_eTooBusy = 2; + k_eDisabled = 3; + k_eTimeout = 4; + k_eInvalidName = 5; + k_eNameAlreadyUsed = 6; + k_eInvalidTag = 7; + k_eTagAlreadyUsed = 8; + k_eInvalidDescription = 9; + k_eInvalidRegion = 10; + k_eInvalidLogo = 11; + k_eDoesNotOwnEvent = 12; + k_eGuildLimit = 13; + k_eInvalidMotD = 14; + k_eBlocked = 15; + k_eFreeTrialNotAllowed = 16; + } + + optional .CMsgClientToGCCreateGuildResponse.EResponse result = 1 [default = k_eInternalError]; + optional uint32 guild_id = 2; +} + +message CMsgClientToGCSetGuildInfo { + optional uint32 guild_id = 1; + optional .CMsgGuildInfo guild_info = 2; + optional .EGuildChatType guild_chat_type = 3 [default = k_EGuildChatType_Unspecified]; +} + +message CMsgClientToGCSetGuildInfoResponse { + enum EResponse { + k_eInternalError = 0; + k_eSuccess = 1; + k_eTooBusy = 2; + k_eDisabled = 3; + k_eTimeout = 4; + k_eInvalidGuild = 5; + k_eNotMember = 6; + k_eNoPermission = 7; + k_eMotDTooLong = 8; + k_eNameChangeNoPermissions = 9; + k_eTagChangeNoPermissions = 10; + k_eNameInvalid = 11; + k_eTagInvalid = 12; + k_eDescriptionInvalid = 13; + k_eBlocked = 14; + } + + optional .CMsgClientToGCSetGuildInfoResponse.EResponse result = 1 [default = k_eInternalError]; +} + +message CMsgClientToGCRequestGuildData { + optional uint32 guild_id = 1; +} + +message CMsgClientToGCRequestGuildDataResponse { + enum EResponse { + k_eInternalError = 0; + k_eSuccess = 1; + k_eTooBusy = 2; + k_eDisabled = 3; + k_eTimeout = 4; + k_eInvalidGuild = 5; + k_eNotMember = 6; + } + + optional .CMsgClientToGCRequestGuildDataResponse.EResponse result = 1 [default = k_eInternalError]; + optional .CMsgGuildData guild_data = 2; +} + +message CMsgGCToClientGuildDataUpdated { + optional .CMsgGuildData guild_data = 1; + optional uint32 update_flags = 2; +} + +message CMsgGCToClientGuildMembersDataUpdated { + optional uint32 guild_id = 1; + repeated .CMsgGuildMember members_data = 2; +} + +message CMsgClientToGCRequestGuildMembership { +} + +message CMsgClientToGCRequestGuildMembershipResponse { + enum EResponse { + k_eInternalError = 0; + k_eSuccess = 1; + k_eTooBusy = 2; + k_eDisabled = 3; + k_eTimeout = 4; + } + + optional .CMsgClientToGCRequestGuildMembershipResponse.EResponse result = 1 [default = k_eInternalError]; + optional .CMsgAccountGuildMemberships guild_memberships = 2; +} + +message CMsgGCToClientGuildMembershipUpdated { + optional .CMsgAccountGuildMemberships guild_memberships = 1; +} + +message CMsgClientToGCJoinGuild { + optional uint32 guild_id = 1; +} + +message CMsgClientToGCJoinGuildResponse { + enum EResponse { + k_eInternalError = 0; + k_eSuccess = 1; + k_eTooBusy = 2; + k_eDisabled = 3; + k_eTimeout = 4; + k_eInvalidGuild = 5; + k_eGuildFull = 6; + k_eAlreadyMember = 7; + k_eGuildLimit = 8; + k_eGuildRequiresInvite = 9; + k_eGuildRankTooLow = 10; + } + + optional .CMsgClientToGCJoinGuildResponse.EResponse result = 1 [default = k_eInternalError]; +} + +message CMsgClientToGCLeaveGuild { + optional uint32 guild_id = 1; +} + +message CMsgClientToGCLeaveGuildResponse { + enum EResponse { + k_eInternalError = 0; + k_eSuccess = 1; + k_eTooBusy = 2; + k_eDisabled = 3; + k_eTimeout = 4; + k_eInvalidGuild = 5; + k_eNotMember = 6; + k_eLastAdmin = 7; + } + + optional .CMsgClientToGCLeaveGuildResponse.EResponse result = 1 [default = k_eInternalError]; +} + +message CMsgClientToGCKickGuildMember { + optional uint32 guild_id = 1; + optional uint32 target_account_id = 2; +} + +message CMsgClientToGCKickGuildMemberResponse { + enum EResponse { + k_eInternalError = 0; + k_eSuccess = 1; + k_eTooBusy = 2; + k_eDisabled = 3; + k_eTimeout = 4; + k_eInvalidGuild = 5; + k_eRequesterNotMember = 6; + k_eTargetNotMember = 7; + k_eNoPermission = 8; + k_eCantKickSelf = 9; + } + + optional .CMsgClientToGCKickGuildMemberResponse.EResponse result = 1 [default = k_eInternalError]; +} + +message CMsgClientToGCSetGuildMemberRole { + optional uint32 guild_id = 1; + optional uint32 target_account_id = 2; + optional uint32 target_role_id = 3; +} + +message CMsgClientToGCSetGuildMemberRoleResponse { + enum EResponse { + k_eInternalError = 0; + k_eSuccess = 1; + k_eTooBusy = 2; + k_eDisabled = 3; + k_eTimeout = 4; + k_eInvalidGuild = 5; + k_eRequesterNotMember = 6; + k_eTargetNotMember = 7; + k_eNoPermission = 8; + k_eInvalidRole = 9; + k_eAdminViolation = 10; + } + + optional .CMsgClientToGCSetGuildMemberRoleResponse.EResponse result = 1 [default = k_eInternalError]; +} + +message CMsgClientToGCInviteToGuild { + optional uint32 guild_id = 1; + optional uint32 target_account_id = 2; +} + +message CMsgClientToGCInviteToGuildResponse { + enum EResponse { + k_eInternalError = 0; + k_eSuccess = 1; + k_eTooBusy = 2; + k_eDisabled = 3; + k_eTimeout = 4; + k_eInvalidGuild = 5; + k_eGuildFull = 6; + k_eRequesterNotMember = 7; + k_eAlreadyAMember = 8; + k_eAlreadyInvited = 9; + k_eNoInvitePermissions = 10; + k_eTooManyInvites = 11; + k_eInvalidUser = 12; + } + + optional .CMsgClientToGCInviteToGuildResponse.EResponse result = 1 [default = k_eInternalError]; +} + +message CMsgClientToGCDeclineInviteToGuild { + optional uint32 guild_id = 1; +} + +message CMsgClientToGCDeclineInviteToGuildResponse { + enum EResponse { + k_eInternalError = 0; + k_eSuccess = 1; + k_eTooBusy = 2; + k_eDisabled = 3; + k_eTimeout = 4; + k_eInvalidGuild = 5; + k_eNoInviteFound = 6; + } + + optional .CMsgClientToGCDeclineInviteToGuildResponse.EResponse result = 1 [default = k_eInternalError]; +} + +message CMsgClientToGCAcceptInviteToGuild { + optional uint32 guild_id = 1; +} + +message CMsgClientToGCAcceptInviteToGuildResponse { + enum EResponse { + k_eInternalError = 0; + k_eSuccess = 1; + k_eTooBusy = 2; + k_eDisabled = 3; + k_eTimeout = 4; + k_eInvalidGuild = 5; + k_eNoInviteFound = 6; + k_eGuildFull = 7; + k_eGuildLimit = 8; + k_eInvalidInviter = 9; + k_eAlreadyInGuild = 10; + } + + optional .CMsgClientToGCAcceptInviteToGuildResponse.EResponse result = 1 [default = k_eInternalError]; +} + +message CMsgClientToGCCancelInviteToGuild { + optional uint32 guild_id = 1; + optional uint32 target_account_id = 2; +} + +message CMsgClientToGCCancelInviteToGuildResponse { + enum EResponse { + k_eInternalError = 0; + k_eSuccess = 1; + k_eTooBusy = 2; + k_eDisabled = 3; + k_eTimeout = 4; + k_eInvalidGuild = 5; + k_eNoInviteFound = 6; + k_eNoPermissions = 7; + } + + optional .CMsgClientToGCCancelInviteToGuildResponse.EResponse result = 1 [default = k_eInternalError]; +} + +message CMsgClientToGCAddGuildRole { + optional uint32 guild_id = 1; + optional string role_name = 2; + optional uint32 role_flags = 3; +} + +message CMsgClientToGCAddGuildRoleResponse { + enum EResponse { + k_eInternalError = 0; + k_eSuccess = 1; + k_eTooBusy = 2; + k_eDisabled = 3; + k_eTimeout = 4; + k_eInvalidGuild = 5; + k_eNameAlreadyUsed = 6; + k_eNoPermissions = 7; + k_eInvalidFlags = 8; + k_eInvalidName = 9; + k_eAdminViolation = 10; + k_eTooManyRoles = 11; + k_eBlocked = 12; + } + + optional .CMsgClientToGCAddGuildRoleResponse.EResponse result = 1 [default = k_eInternalError]; + optional uint32 role_id = 2; +} + +message CMsgClientToGCModifyGuildRole { + optional uint32 guild_id = 1; + optional uint32 role_id = 2; + optional string role_name = 3; + optional uint32 role_flags = 4; +} + +message CMsgClientToGCModifyGuildRoleResponse { + enum EResponse { + k_eInternalError = 0; + k_eSuccess = 1; + k_eTooBusy = 2; + k_eDisabled = 3; + k_eTimeout = 4; + k_eInvalidGuild = 5; + k_eInvalidRole = 6; + k_eNameAlreadyUsed = 7; + k_eInvalidFlags = 8; + k_eInvalidName = 9; + k_eNoPermissions = 10; + k_eAdminViolation = 11; + k_eBlocked = 12; + } + + optional .CMsgClientToGCModifyGuildRoleResponse.EResponse result = 1 [default = k_eInternalError]; +} + +message CMsgClientToGCRemoveGuildRole { + optional uint32 guild_id = 1; + optional uint32 role_id = 2; +} + +message CMsgClientToGCRemoveGuildRoleResponse { + enum EResponse { + k_eInternalError = 0; + k_eSuccess = 1; + k_eTooBusy = 2; + k_eDisabled = 3; + k_eTimeout = 4; + k_eInvalidGuild = 5; + k_eInvalidRole = 6; + k_eRoleNotEmpty = 7; + k_eNoPermissions = 8; + k_eAdminViolation = 9; + k_eCantRemoveDefaultRole = 10; + } + + optional .CMsgClientToGCRemoveGuildRoleResponse.EResponse result = 1 [default = k_eInternalError]; +} + +message CMsgClientToGCSetGuildRoleOrder { + optional uint32 guild_id = 1; + repeated uint32 requested_role_ids = 2; + repeated uint32 previous_role_ids = 3; +} + +message CMsgClientToGCSetGuildRoleOrderResponse { + enum EResponse { + k_eInternalError = 0; + k_eSuccess = 1; + k_eTooBusy = 2; + k_eDisabled = 3; + k_eTimeout = 4; + k_eInvalidGuild = 5; + k_eInvalidRole = 6; + k_eInvalidOrder = 7; + k_eNoPermissions = 8; + k_eAdminViolation = 9; + } + + optional .CMsgClientToGCSetGuildRoleOrderResponse.EResponse result = 1 [default = k_eInternalError]; + repeated uint32 confirmed_role_ids = 2; +} + +message CMsgClientToGCGuildFeedRequest { + optional uint32 guild_id = 1; + optional uint64 last_seen_id = 2; +} + +message CMsgClientToGCRequestGuildFeedResponse { + enum EResponse { + k_eInternalError = 0; + k_eSuccess = 1; + k_eTooBusy = 2; + k_eDisabled = 3; + k_eTimeout = 4; + k_eInvalidGuild = 5; + k_eNoPermissions = 6; + } + + optional .CMsgClientToGCRequestGuildFeedResponse.EResponse result = 1 [default = k_eInternalError]; + optional uint32 guild_id = 2; + repeated .CMsgGuildFeedEvent feed_events = 3; +} + +message CMsgGCToClientGuildFeedUpdated { + optional uint32 guild_id = 1; +} + +message CMsgClientToGCAddPlayerToGuildChat { + optional uint32 guild_id = 1; +} + +message CMsgClientToGCAddPlayerToGuildChatResponse { + enum EResponse { + k_eInternalError = 0; + k_eSuccess = 1; + k_eTooBusy = 2; + k_eDisabled = 3; + k_eTimeout = 4; + k_eInvalidGuild = 5; + k_eNotMember = 6; + k_eSteamChatNotEnabled = 7; + } + + optional .CMsgClientToGCAddPlayerToGuildChatResponse.EResponse result = 1 [default = k_eInternalError]; +} + +message CMsgFindGuildByTagResponse { + enum EResponse { + k_eInternalError = 0; + k_eSuccess = 1; + k_eTooBusy = 2; + k_eDisabled = 3; + k_eTimeout = 4; + k_eInvalidTag = 5; + k_eGuildNotFound = 6; + } + + optional .CMsgFindGuildByTagResponse.EResponse result = 1 [default = k_eInternalError]; + optional uint32 guild_id = 2; + optional .CMsgGuildSummary guild_summary = 3; +} + +message CMsgSearchForOpenGuildsResponse { + message SearchResult { + optional uint32 guild_id = 1; + optional .CMsgGuildSummary guild_summary = 2; + } + + enum EResponse { + k_eInternalError = 0; + k_eSuccess = 1; + k_eTooBusy = 2; + k_eDisabled = 3; + k_eTimeout = 4; + } + + optional .CMsgSearchForOpenGuildsResponse.EResponse result = 1 [default = k_eInternalError]; + repeated .CMsgSearchForOpenGuildsResponse.SearchResult search_results = 2; + optional bool use_whitelist = 3; +} + +message CMsgClientToGCReportGuildContent { + enum EContentFlags { + k_eNone = 0; + k_eInappropriateName = 1; + k_eInappropriateTag = 2; + k_eInappropriateLogo = 4; + k_eValidFlags = 7; + } + + optional uint32 guild_id = 1; + optional uint32 guild_content_flags = 2; +} + +message CMsgClientToGCReportGuildContentResponse { + enum EResponse { + k_eInternalError = 0; + k_eSuccess = 1; + k_eTooBusy = 2; + k_eDisabled = 3; + k_eTimeout = 4; + k_eGuildNotFound = 5; + k_eFlagsInvalid = 6; + } + + optional .CMsgClientToGCReportGuildContentResponse.EResponse result = 1 [default = k_eInternalError]; +} + +message CMsgClientToGCRequestAccountGuildPersonaInfo { + optional uint32 account_id = 1; +} + +message CMsgClientToGCRequestAccountGuildPersonaInfoResponse { + enum EResponse { + k_eInternalError = 0; + k_eSuccess = 1; + k_eTooBusy = 2; + k_eDisabled = 3; + k_eTimeout = 4; + k_eInvalidAccount = 5; + } + + optional .CMsgClientToGCRequestAccountGuildPersonaInfoResponse.EResponse result = 1 [default = k_eInternalError]; + optional .CMsgAccountGuildsPersonaInfo persona_info = 2; +} + +message CMsgClientToGCRequestAccountGuildPersonaInfoBatch { + repeated uint32 account_ids = 1; +} + +message CMsgClientToGCRequestAccountGuildPersonaInfoBatchResponse { + enum EResponse { + k_eInternalError = 0; + k_eSuccess = 1; + k_eTooBusy = 2; + k_eDisabled = 3; + k_eTimeout = 4; + k_eInvalidRequest = 5; + } + + optional .CMsgClientToGCRequestAccountGuildPersonaInfoBatchResponse.EResponse result = 1 [default = k_eInternalError]; + repeated .CMsgAccountGuildsPersonaInfo persona_infos = 2; +} diff --git a/Protobufs/dota2/dota_gcmessages_client_guild_events.proto b/Protobufs/dota2/dota_gcmessages_client_guild_events.proto new file mode 100644 index 0000000..eed5ac4 --- /dev/null +++ b/Protobufs/dota2/dota_gcmessages_client_guild_events.proto @@ -0,0 +1,231 @@ +import "dota_shared_enums.proto"; + +enum EGuildEventAuditAction { + k_EGuildEventAuditAction_Invalid = 0; + k_EGuildEventAuditAction_DevGrant = 1; + k_EGuildEventAuditAction_CompleteContract = 2; + k_EGuildEventAuditAction_CompleteChallenge = 3; + k_EGuildEventAuditAction_CompleteMatch_Winner = 4; + k_EGuildEventAuditAction_ChallengeProgress = 5; + k_EGuildEventAuditAction_CompleteMatch_Loser = 6; + k_EGuildEventAuditAction_WeeklyLeaderboard = 7; + k_EGuildEventAuditAction_ManualGrant = 8; +} + +message CMsgGuildContract { + optional uint64 contract_id = 1; + optional uint32 challenge_instance_id = 2; + optional uint32 challenge_parameter = 3; + optional uint32 challenge_timestamp = 4; + optional uint32 assigned_account_id = 5; + optional uint32 contract_flags = 6; +} + +message CMsgGuildContractSlot { + optional .CMsgGuildContract contract = 1; +} + +message CMsgAccountGuildEventData { + optional uint32 guild_points = 1; + optional uint32 contracts_refreshed_timestamp = 2; + repeated .CMsgGuildContractSlot contract_slots = 3; + optional uint32 completed_challenge_count = 4; + optional uint32 challenges_refresh_timestamp = 5; + optional uint32 guild_weekly_percentile = 6; + optional uint32 guild_weekly_last_timestamp = 7; + optional uint32 last_weekly_claim_time = 8; + optional uint32 guild_current_percentile = 9; +} + +message CMsgGuildActiveContracts { + optional uint32 contracts_refreshed_timestamp = 1; + repeated .CMsgGuildContract contracts = 2; +} + +message CMsgGuildChallenge { + optional uint32 challenge_instance_id = 1; + optional uint32 challenge_parameter = 2; + optional uint32 challenge_timestamp = 3; + optional uint32 challenge_progress = 4; + optional uint32 challenge_flags = 5; +} + +message CMsgGuildEventMember { + optional uint32 account_id = 1; + optional uint32 guild_points_earned = 2; +} + +message CMsgClientToGCRequestAccountGuildEventData { + optional uint32 guild_id = 1; + optional .EEvent event_id = 2 [default = EVENT_ID_NONE]; +} + +message CMsgClientToGCRequestAccountGuildEventDataResponse { + enum EResponse { + k_eInternalError = 0; + k_eSuccess = 1; + k_eTooBusy = 2; + k_eDisabled = 3; + k_eTimeout = 4; + k_eInvalidEvent = 5; + k_eInvalidGuild = 6; + k_eNotMember = 7; + k_eInvalidGuildEvent = 8; + } + + optional .CMsgClientToGCRequestAccountGuildEventDataResponse.EResponse result = 1 [default = k_eInternalError]; + optional .EEvent event_id = 2 [default = EVENT_ID_NONE]; + optional .CMsgAccountGuildEventData event_data = 3; +} + +message CMsgGCToClientAccountGuildEventDataUpdated { + optional uint32 guild_id = 1; + optional .EEvent event_id = 2 [default = EVENT_ID_NONE]; + optional uint32 update_flags = 3; + optional .CMsgAccountGuildEventData guild_event_data = 4; + optional bool contracts_updated = 5; +} + +message CMsgClientToGCRequestActiveGuildContracts { + optional uint32 guild_id = 1; + optional .EEvent event_id = 2 [default = EVENT_ID_NONE]; +} + +message CMsgClientToGCRequestActiveGuildContractsResponse { + enum EResponse { + k_eInternalError = 0; + k_eSuccess = 1; + k_eTooBusy = 2; + k_eDisabled = 3; + k_eTimeout = 4; + k_eInvalidEvent = 5; + k_eInvalidGuild = 6; + k_eNotMember = 7; + k_eInvalidGuildEvent = 8; + } + + optional .CMsgClientToGCRequestActiveGuildContractsResponse.EResponse result = 1 [default = k_eInternalError]; + optional .CMsgGuildActiveContracts active_contracts = 2; + optional .CMsgGuildChallenge active_challenges = 3; +} + +message CMsgGCToClientActiveGuildContractsUpdated { + optional uint32 guild_id = 1; + optional .EEvent event_id = 2 [default = EVENT_ID_NONE]; +} + +message CMsgClientToGCSelectGuildContract { + optional uint32 guild_id = 1; + optional .EEvent event_id = 2 [default = EVENT_ID_NONE]; + optional uint64 contract_id = 3; + optional uint32 contract_slot = 4; +} + +message CMsgClientToGCSelectGuildContractResponse { + enum EResponse { + k_eInternalError = 0; + k_eSuccess = 1; + k_eTooBusy = 2; + k_eDisabled = 3; + k_eTimeout = 4; + k_eInvalidEvent = 5; + k_eInvalidGuild = 6; + k_eNotMember = 7; + k_eInvalidGuildEvent = 8; + k_eInvalidContractID = 9; + k_eAlreadyAssigned = 10; + k_eInvalidContractSlot = 11; + k_eContractSlotLockedGuild = 12; + k_eContractSlotCooldown = 13; + k_eContractDuplicate = 14; + k_eContractSlotTimeError = 15; + k_eContractSlotLockedDotaPlus = 16; + } + + optional .CMsgClientToGCSelectGuildContractResponse.EResponse result = 1 [default = k_eInternalError]; +} + +message CMsgClientToGCRequestActiveGuildChallenge { + optional uint32 guild_id = 1; + optional .EEvent event_id = 2 [default = EVENT_ID_NONE]; +} + +message CMsgClientToGCRequestActiveGuildChallengeResponse { + enum EResponse { + k_eInternalError = 0; + k_eSuccess = 1; + k_eTooBusy = 2; + k_eDisabled = 3; + k_eTimeout = 4; + k_eInvalidEvent = 5; + k_eInvalidGuild = 6; + k_eNotMember = 7; + k_eInvalidGuildEvent = 8; + } + + optional .CMsgClientToGCRequestActiveGuildChallengeResponse.EResponse result = 1 [default = k_eInternalError]; + optional .CMsgGuildChallenge active_challenge = 2; +} + +message CMsgGCToClientActiveGuildChallengeUpdated { + optional uint32 guild_id = 1; + optional .EEvent event_id = 2 [default = EVENT_ID_NONE]; + optional .CMsgGuildChallenge active_challenge = 3; +} + +message CMsgClientToGCRequestGuildEventMembers { + optional uint32 guild_id = 1; + optional .EEvent event_id = 2 [default = EVENT_ID_NONE]; +} + +message CMsgClientToGCRequestGuildEventMembersResponse { + enum EResponse { + k_eInternalError = 0; + k_eSuccess = 1; + k_eTooBusy = 2; + k_eDisabled = 3; + k_eTimeout = 4; + k_eInvalidEvent = 5; + k_eInvalidGuild = 6; + k_eNotMember = 7; + k_eInvalidGuildEvent = 8; + } + + optional .CMsgClientToGCRequestGuildEventMembersResponse.EResponse result = 1 [default = k_eInternalError]; + repeated .CMsgGuildEventMember members = 2; +} + +message CMsgGuildLeaderboardCombinedResponse { + optional .EEvent event_id = 1 [default = EVENT_ID_NONE]; + optional uint32 region = 2; + optional uint32 last_updated = 3; + repeated uint32 guild_id = 4 [packed = true]; + repeated uint32 rank = 5 [packed = true]; + repeated uint32 current_percentile = 6 [packed = true]; + repeated uint32 weekly_percentile = 7 [packed = true]; + repeated uint32 points = 8 [packed = true]; +} + +message CMsgClientToGCClaimLeaderboardRewards { + optional uint32 guild_id = 1; + optional .EEvent event_id = 2 [default = EVENT_ID_NONE]; +} + +message CMsgClientToGCClaimLeaderboardRewardsResponse { + enum EResponse { + k_eInternalError = 0; + k_eSuccess = 1; + k_eTooBusy = 2; + k_eDisabled = 3; + k_eTimeout = 4; + k_eInvalidEvent = 5; + k_eInvalidGuild = 6; + k_eNotMember = 7; + k_eInvalidGuildEvent = 8; + k_eDoesNotQualify = 9; + k_eAlreadyClaimed = 10; + } + + optional .CMsgClientToGCClaimLeaderboardRewardsResponse.EResponse result = 1 [default = k_eInternalError]; + optional uint32 event_points = 2; +} diff --git a/Protobufs/dota2/dota_gcmessages_client_match_management.proto b/Protobufs/dota2/dota_gcmessages_client_match_management.proto new file mode 100644 index 0000000..f647640 --- /dev/null +++ b/Protobufs/dota2/dota_gcmessages_client_match_management.proto @@ -0,0 +1,461 @@ +import "steammessages.proto"; +import "dota_shared_enums.proto"; +import "dota_client_enums.proto"; +import "base_gcmessages.proto"; +import "dota_gcmessages_common_lobby.proto"; + +enum EStartFindingMatchResult { + k_EStartFindingMatchResult_Invalid = 0; + k_EStartFindingMatchResult_OK = 1; + k_EStartFindingMatchResult_AlreadySearching = 2; + k_EStartFindingMatchResult_FailGeneric = 100; + k_EStartFindingMatchResult_FailedIgnore = 101; + k_EStartFindingMatchResult_MatchmakingDisabled = 102; + k_EStartFindingMatchResult_RegionOffline = 103; + k_EStartFindingMatchResult_MatchmakingCooldown = 104; + k_EStartFindingMatchResult_ClientOutOfDate = 105; + k_EStartFindingMatchResult_CompetitiveNoLowPriority = 106; + k_EStartFindingMatchResult_CompetitiveNotUnlocked = 107; + k_EStartFindingMatchResult_GameModeNotUnlocked = 108; + k_EStartFindingMatchResult_CompetitiveNotEnoughPlayTime = 109; + k_EStartFindingMatchResult_MissingInitialSkill = 110; + k_EStartFindingMatchResult_CompetitiveRankSpreadTooLarge = 111; + k_EStartFindingMatchResult_MemberAlreadyInLobby = 112; + k_EStartFindingMatchResult_MemberNotVACVerified = 113; + k_EStartFindingMatchResult_WeekendTourneyBadPartySize = 114; + k_EStartFindingMatchResult_WeekendTourneyTeamBuyInTooSmall = 115; + k_EStartFindingMatchResult_WeekendTourneyIndividualBuyInTooLarge = 116; + k_EStartFindingMatchResult_WeekendTourneyTeamBuyInTooLarge = 117; + k_EStartFindingMatchResult_MemberMissingEventOwnership = 118; + k_EStartFindingMatchResult_WeekendTourneyNotUnlocked = 119; + k_EStartFindingMatchResult_WeekendTourneyRecentParticipation = 120; + k_EStartFindingMatchResult_MemberMissingAnchoredPhoneNumber = 121; + k_EStartFindingMatchResult_NotMemberOfClan = 122; + k_EStartFindingMatchResult_CoachesChallengeBadPartySize = 123; + k_EStartFindingMatchResult_CoachesChallengeRequirementsNotMet = 124; + k_EStartFindingMatchResult_InvalidRoleSelections = 125; + k_EStartFindingMatchResult_PhoneNumberDiscrepancy = 126; + k_EStartFindingMatchResult_NoQueuePoints = 127; + k_EStartFindingMatchResult_MemberMissingGauntletFlag = 128; + k_EStartFindingMatchResult_MemberGauntletTooRecent = 129; + k_EStartFindingMatchResult_DifficultyNotUnlocked = 130; + k_EStartFindingMatchResult_CoachesNotAllowedInParty = 131; + k_EStartFindingMatchResult_MatchmakingBusy = 132; + k_EStartFindingMatchResult_SteamChinaBanned = 133; + k_EStartFindingMatchResult_SteamChinaInvalidMixedParty = 134; + k_EStartFindingMatchResult_RestrictedFromRanked = 135; +} + +message CMsgStartFindingMatch { + optional string key = 1; + optional uint32 matchgroups = 2 [default = 4294967295]; + optional uint32 client_version = 3; + optional uint32 game_modes = 4 [default = 4294967295]; + optional .MatchType match_type = 6 [default = MATCH_TYPE_CASUAL]; + optional uint32 matchlanguages = 7 [default = 4294967295]; + optional uint32 team_id = 8; + optional .MatchLanguages game_language_enum = 10 [default = MATCH_LANGUAGE_INVALID]; + optional string game_language_name = 11; + optional .CMsgClientPingData ping_data = 12; + optional uint32 region_select_flags = 13; + optional bool solo_queue = 14; + optional uint32 steam_clan_account_id = 16; + optional bool is_challenge_match = 17; + optional uint32 lane_selection_flags = 18; + optional bool high_priority_disabled = 19; + optional bool disable_experimental_gameplay = 20; + optional uint32 custom_game_difficulty_mask = 21; + optional uint32 bot_difficulty_mask = 22; + optional uint32 bot_script_index_mask = 23; +} + +message CMsgStartFindingMatchResult { + optional uint32 legacy_generic_eresult = 1 [default = 2]; + optional .EStartFindingMatchResult result = 2 [default = k_EStartFindingMatchResult_Invalid]; + optional string error_token = 3; + optional string debug_message = 4; + repeated fixed64 responsible_party_members = 5; + optional uint32 result_metadata = 6; +} + +message CMsgStopFindingMatch { + optional bool accept_cooldown = 1; +} + +message CMsgPartyBuilderOptions { + optional uint32 additional_slots = 1; + optional .MatchType match_type = 2 [default = MATCH_TYPE_CASUAL]; + optional uint32 matchgroups = 3; + optional uint32 client_version = 4; + optional .MatchLanguages language = 5 [default = MATCH_LANGUAGE_INVALID]; +} + +message CMsgReadyUp { + optional .DOTALobbyReadyState state = 1 [default = DOTALobbyReadyState_UNDECLARED]; + optional fixed64 ready_up_key = 2; + optional .CDOTAClientHardwareSpecs hardware_specs = 3; +} + +message CMsgReadyUpStatus { + optional fixed64 lobby_id = 1; + repeated uint32 accepted_ids = 2; + repeated uint32 declined_ids = 3; + repeated uint32 accepted_indices = 4; + repeated uint32 declined_indices = 5; + optional .DOTALobbyReadyState local_ready_state = 6 [default = DOTALobbyReadyState_UNDECLARED]; +} + +message CMsgAbandonCurrentGame { +} + +message CMsgLobbyScenarioSave { + optional int32 version = 1; + optional bytes data = 2; +} + +message CMsgPracticeLobbySetDetails { + message AbilityDraftSpecificDetails { + optional bool shuffle_draft_order = 1; + } + + optional uint64 lobby_id = 1; + optional string game_name = 2; + repeated .CLobbyTeamDetails team_details = 3; + optional uint32 server_region = 4; + optional uint32 game_mode = 5; + optional .DOTA_CM_PICK cm_pick = 6 [default = DOTA_CM_RANDOM]; + optional .DOTABotDifficulty bot_difficulty_radiant = 9 [default = BOT_DIFFICULTY_PASSIVE]; + optional bool allow_cheats = 10; + optional bool fill_with_bots = 11; + optional bool allow_spectating = 13; + optional string pass_key = 15; + optional uint32 leagueid = 16; + optional uint32 penalty_level_radiant = 17; + optional uint32 penalty_level_dire = 18; + optional uint32 series_type = 20; + optional uint32 radiant_series_wins = 21; + optional uint32 dire_series_wins = 22; + optional bool allchat = 23 [default = false]; + optional .LobbyDotaTVDelay dota_tv_delay = 24 [default = LobbyDotaTV_120]; + optional bool lan = 25; + optional string custom_game_mode = 26; + optional string custom_map_name = 27; + optional uint32 custom_difficulty = 28; + optional uint64 custom_game_id = 29; + optional uint32 custom_min_players = 30; + optional uint32 custom_max_players = 31; + optional .DOTALobbyVisibility visibility = 33 [default = DOTALobbyVisibility_Public]; + optional fixed64 custom_game_crc = 34; + optional fixed32 custom_game_timestamp = 37; + optional uint64 previous_match_override = 38; + optional .LobbyDotaPauseSetting pause_setting = 42 [default = LobbyDotaPauseSetting_Unlimited]; + optional .DOTABotDifficulty bot_difficulty_dire = 43 [default = BOT_DIFFICULTY_PASSIVE]; + optional uint64 bot_radiant = 44; + optional uint64 bot_dire = 45; + optional .DOTASelectionPriorityRules selection_priority_rules = 46 [default = k_DOTASelectionPriorityRules_Manual]; + optional bool custom_game_penalties = 47; + optional string lan_host_ping_location = 48; + optional uint32 league_node_id = 49; + repeated int32 requested_hero_ids = 50; + optional .CMsgLobbyScenarioSave scenario_save = 51; + optional .CMsgPracticeLobbySetDetails.AbilityDraftSpecificDetails ability_draft_specific_details = 52; + optional bool do_player_draft = 53; +} + +message CMsgPracticeLobbyCreate { + optional string search_key = 1; + optional string pass_key = 5; + optional uint32 client_version = 6; + optional .CMsgPracticeLobbySetDetails lobby_details = 7; +} + +message CMsgPracticeLobbySetTeamSlot { + optional .DOTA_GC_TEAM team = 1 [default = DOTA_GC_TEAM_GOOD_GUYS]; + optional uint32 slot = 2; + optional .DOTABotDifficulty bot_difficulty = 3 [default = BOT_DIFFICULTY_PASSIVE]; +} + +message CMsgPracticeLobbySetCoach { + optional .DOTA_GC_TEAM team = 1 [default = DOTA_GC_TEAM_GOOD_GUYS]; +} + +message CMsgPracticeLobbyJoinBroadcastChannel { + optional uint32 channel = 1; + optional string preferred_description = 2; + optional string preferred_country_code = 3; + optional string preferred_language_code = 4; +} + +message CMsgPracticeLobbyCloseBroadcastChannel { + optional uint32 channel = 1; +} + +message CMsgPracticeLobbyToggleBroadcastChannelCameramanStatus { +} + +message CMsgPracticeLobbyKick { + optional uint32 account_id = 3; +} + +message CMsgPracticeLobbyKickFromTeam { + optional uint32 account_id = 1; +} + +message CMsgPracticeLobbyLeave { +} + +message CMsgPracticeLobbyLaunch { + optional uint32 client_version = 5; +} + +message CMsgApplyTeamToPracticeLobby { + optional uint32 team_id = 1; +} + +message CMsgPracticeLobbyList { + optional string pass_key = 2; + optional uint32 region = 3; + optional .DOTA_GameMode game_mode = 4 [default = DOTA_GAMEMODE_NONE]; +} + +message CMsgPracticeLobbyListResponseEntry { + message CLobbyMember { + optional uint32 account_id = 1; + optional string player_name = 2; + } + + optional uint64 id = 1 [(key_field) = true]; + repeated .CMsgPracticeLobbyListResponseEntry.CLobbyMember members = 5; + optional bool requires_pass_key = 6; + optional uint32 leader_account_id = 7; + optional string name = 10; + optional string custom_game_mode = 11; + optional .DOTA_GameMode game_mode = 12 [default = DOTA_GAMEMODE_NONE]; + optional bool friend_present = 13; + optional uint32 players = 14; + optional string custom_map_name = 15; + optional uint32 max_player_count = 16; + optional uint32 server_region = 17; + optional uint32 league_id = 19; + optional string lan_host_ping_location = 20; + optional uint32 min_player_count = 21; + optional bool penalties_enabled = 22; +} + +message CMsgPracticeLobbyListResponse { + repeated .CMsgPracticeLobbyListResponseEntry lobbies = 2; +} + +message CMsgLobbyList { + optional uint32 server_region = 1 [default = 0]; + optional .DOTA_GameMode game_mode = 2 [default = DOTA_GAMEMODE_NONE]; +} + +message CMsgLobbyListResponse { + repeated .CMsgPracticeLobbyListResponseEntry lobbies = 1; +} + +message CMsgPracticeLobbyJoin { + optional uint64 lobby_id = 1; + optional uint32 client_version = 2; + optional string pass_key = 3; + optional fixed64 custom_game_crc = 4; + optional fixed32 custom_game_timestamp = 5; +} + +message CMsgPracticeLobbyJoinResponse { + optional .DOTAJoinLobbyResult result = 1 [default = DOTA_JOIN_RESULT_SUCCESS]; +} + +message CMsgFriendPracticeLobbyListRequest { + repeated uint32 friends = 1; +} + +message CMsgFriendPracticeLobbyListResponse { + repeated .CMsgPracticeLobbyListResponseEntry lobbies = 1; +} + +message CMsgJoinableCustomGameModesRequest { + optional uint32 server_region = 1; +} + +message CMsgJoinableCustomGameModesResponseEntry { + optional uint64 custom_game_id = 1; + optional uint32 lobby_count = 2; + optional uint32 player_count = 3; +} + +message CMsgJoinableCustomGameModesResponse { + repeated .CMsgJoinableCustomGameModesResponseEntry game_modes = 1; +} + +message CMsgJoinableCustomLobbiesRequest { + optional uint32 server_region = 1; + optional uint64 custom_game_id = 2; +} + +message CMsgJoinableCustomLobbiesResponseEntry { + optional fixed64 lobby_id = 1; + optional uint64 custom_game_id = 2; + optional string lobby_name = 3; + optional uint32 member_count = 4; + optional uint32 leader_account_id = 5; + optional string leader_name = 6; + optional string custom_map_name = 7; + optional uint32 max_player_count = 8; + optional uint32 server_region = 9; + optional bool has_pass_key = 11; + optional string lan_host_ping_location = 12; + optional uint32 lobby_creation_time = 13; + optional uint32 custom_game_timestamp = 14; + optional uint64 custom_game_crc = 15; + optional uint32 min_player_count = 16; + optional bool penalties_enabled = 17; +} + +message CMsgJoinableCustomLobbiesResponse { + repeated .CMsgJoinableCustomLobbiesResponseEntry lobbies = 1; +} + +message CMsgQuickJoinCustomLobby { + message LegacyRegionPing { + optional uint32 server_region = 1; + optional uint32 ping = 2; + optional fixed32 region_code = 3; + } + + optional uint32 legacy_server_region = 1; + optional uint64 custom_game_id = 2; + optional uint32 client_version = 3; + optional .CMsgPracticeLobbySetDetails create_lobby_details = 4; + optional bool allow_any_map = 5; + repeated .CMsgQuickJoinCustomLobby.LegacyRegionPing legacy_region_pings = 6; + optional .CMsgClientPingData ping_data = 7; +} + +message CMsgQuickJoinCustomLobbyResponse { + optional .DOTAJoinLobbyResult result = 1 [default = DOTA_JOIN_RESULT_SUCCESS]; +} + +message CMsgBotGameCreate { + optional string search_key = 1; + optional uint32 client_version = 2; + optional .DOTABotDifficulty difficulty_radiant = 3 [default = BOT_DIFFICULTY_PASSIVE]; + optional .DOTA_GC_TEAM team = 4 [default = DOTA_GC_TEAM_GOOD_GUYS]; + optional uint32 game_mode = 5; + optional .DOTABotDifficulty difficulty_dire = 6 [default = BOT_DIFFICULTY_PASSIVE]; +} + +message CMsgDOTAPartyMemberSetCoach { + optional bool wants_coach = 1; +} + +message CMsgDOTASetGroupLeader { + optional fixed64 new_leader_steamid = 1; +} + +message CMsgDOTACancelGroupInvites { + repeated fixed64 invited_steamids = 1; + repeated fixed64 invited_groupids = 2; +} + +message CMsgDOTASetGroupOpenStatus { + optional bool open = 1; +} + +message CMsgDOTAGroupMergeInvite { + optional fixed64 other_group_id = 1; +} + +message CMsgDOTAGroupMergeResponse { + optional fixed64 initiator_group_id = 1; + optional bool accept = 2; +} + +message CMsgDOTAGroupMergeReply { + optional .EDOTAGroupMergeResult result = 1 [default = k_EDOTAGroupMergeResult_OK]; +} + +message CMsgSpectatorLobbyGameDetails { + message Team { + optional uint32 team_id = 1; + optional string team_name = 2; + optional fixed64 team_logo = 3; + } + + optional uint32 language = 1; + optional uint64 match_id = 2; + optional fixed64 server_steam_id = 3; + optional string stream_url = 4; + optional string stream_name = 5; + optional uint32 league_id = 6; + optional uint32 series_type = 7; + optional uint32 series_game = 8; + optional .CMsgSpectatorLobbyGameDetails.Team radiant_team = 9; + optional .CMsgSpectatorLobbyGameDetails.Team dire_team = 10; +} + +message CMsgSetSpectatorLobbyDetails { + optional uint64 lobby_id = 1; + optional string lobby_name = 2; + optional string pass_key = 3; + optional .CMsgSpectatorLobbyGameDetails game_details = 4; +} + +message CMsgCreateSpectatorLobby { + optional uint32 client_version = 1; + optional .CMsgSetSpectatorLobbyDetails details = 2; +} + +message CMsgSpectatorLobbyList { +} + +message CMsgSpectatorLobbyListResponse { + message SpectatorLobby { + optional uint64 lobby_id = 1; + optional string game_name = 2; + optional bool requires_pass_key = 3; + optional uint32 leader_account_id = 4; + optional uint32 member_count = 5; + optional .CMsgSpectatorLobbyGameDetails game_details = 7; + } + + repeated .CMsgSpectatorLobbyListResponse.SpectatorLobby lobbies = 1; +} + +message CMsgClientToGCRequestSteamDatagramTicket { + optional fixed64 server_steam_id = 1; +} + +message CMsgClientToGCRequestSteamDatagramTicketResponse { + optional bytes serialized_ticket = 1; + optional string message = 2; +} + +message CMsgGCToClientSteamDatagramTicket { + optional fixed32 legacy_time_expiry = 1; + optional fixed64 legacy_authorized_steam_id = 2; + optional fixed32 legacy_authorized_public_ip = 3; + optional fixed64 legacy_gameserver_steam_id = 4; + optional fixed64 legacy_gameserver_net_id = 5; + optional bytes legacy_signature = 6; + optional uint32 legacy_app_id = 7; + repeated bytes legacy_extra_fields = 8; + optional bytes serialized_ticket = 16; +} + +message CMsgGCToClientRequestLaneSelection { +} + +message CMsgGCToClientRequestLaneSelectionResponse { + optional uint32 lane_selection_flags = 1; + optional bool high_priority_disabled = 2; +} + +message CMsgGCToClientRequestMMInfo { +} + +message CMsgClientToGCMMInfo { + optional uint32 lane_selection_flags = 1; + optional bool high_priority_disabled = 2; +} diff --git a/Protobufs/dota2/dota_gcmessages_client_showcase.proto b/Protobufs/dota2/dota_gcmessages_client_showcase.proto new file mode 100644 index 0000000..e58c99f --- /dev/null +++ b/Protobufs/dota2/dota_gcmessages_client_showcase.proto @@ -0,0 +1,529 @@ +import "steammessages.proto"; +import "dota_shared_enums.proto"; +import "dota_gcmessages_common.proto"; +import "dota_gcmessages_webapi.proto"; +import "gcsdk_gcmessages.proto"; +import "base_gcmessages.proto"; +import "econ_gcmessages.proto"; +import "dota_gcmessages_client.proto"; +import "valveextensions.proto"; + +enum EShowcaseHeroPlusFlag { + k_eShowcaseHeroPlusFlag_None = 0; + k_eShowcaseHeroPlusFlag_BadgePosTop = 1; + k_eShowcaseHeroPlusFlag_BadgePosBottom = 2; + k_eShowcaseHeroPlusFlag_BadgePosLeft = 4; + k_eShowcaseHeroPlusFlag_BadgePosRight = 8; + k_eShowcaseHeroPlusFlag_ShowRelics = 16; +} + +enum EShowcaseType { + k_eShowcaseType_Invalid = 0; + k_eShowcaseType_Profile = 1; + k_eShowcaseType_MiniProfile = 2; + k_eShowcaseType_DefaultProfile = 3; + k_eShowcaseType_DefaultMiniProfile = 4; +} + +enum EShowcaseItemState { + k_eShowcaseItemState_Ok = 0; + k_eShowcaseItemState_MinorModifications = 1; + k_eShowcaseItemState_ValidityUnknown = 2; + k_eShowcaseItemState_PartiallyInvalid = 3; + k_eShowcaseItemState_Invalid = 4; + k_eShowcaseItemState_Failure = 5; +} + +enum EShowcaseAuditAction { + k_eShowcaseAuditAction_Invalid = 0; + k_eShowcaseAuditAction_ShowcaseChanged = 1; + k_eShowcaseAuditAction_AdminShowcaseReset = 2; + k_eShowcaseAuditAction_AdminShowcaseAccountLocked = 3; + k_eShowcaseAuditAction_AdminShowcaseExonerated = 4; + k_eShowcaseAuditAction_AdminShowcaseConvicted = 5; + k_eShowcaseAuditAction_AdminModerationApproved = 6; + k_eShowcaseAuditAction_AdminModerationRejected = 7; +} + +enum EShowcaseItemFlag { + k_eShowcaseItemFlag_None = 0; + k_eShowcaseItemFlag_FlipHorizontally = 1; +} + +enum EShowcaseItemFlag_Hero { + k_eShowcaseItemFlag_Hero_None = 0; + k_eShowcaseItemFlag_Hero_ShowPedestal = 1; + k_eShowcaseItemFlag_Hero_UseCurrentLoadout = 2; + k_eShowcaseItemFlag_Hero_ShowHeroCard = 4; + k_eShowcaseItemFlag_Hero_HeroCardHideName = 8; + k_eShowcaseItemFlag_Hero_HeroCardUseMovie = 16; +} + +message CMsgShowcaseEconItemReference { + optional uint64 id = 1; + optional uint64 original_id = 2; + optional uint32 definition_index = 3; + optional int32 equipment_slot_index = 4 [default = -1]; +} + +message CMsgHeroPlusInfo { + optional uint32 flags = 1; +} + +message CMsgShowcaseItem_Trophy { + message Data { + optional uint32 trophy_score = 1; + } + + optional .CMsgShowcaseItem_Trophy.Data data = 1; + optional uint32 trophy_id = 2; +} + +message CMsgShowcaseItem_EconItem { + message Data { + optional .CSOEconItem econ_item = 1; + } + + optional .CMsgShowcaseItem_EconItem.Data data = 1; + optional .CMsgShowcaseEconItemReference ref = 2; +} + +message CMsgShowcaseItem_Hero { + message Data { + repeated .CSOEconItem econ_items = 1; + optional int32 actual_hero_id = 2; + optional uint32 plus_hero_xp = 3; + } + + optional .CMsgShowcaseItem_Hero.Data data = 1; + optional int32 hero_id = 2; + repeated .CMsgShowcaseEconItemReference econ_item_refs = 3; + optional uint32 rotation = 4; + optional uint32 flags = 5; + optional .CMsgHeroPlusInfo plus_info = 6; + optional string animation_name = 7; + optional uint32 animation_playback_speed = 8 [default = 100]; + optional uint32 animation_offset = 9; + optional uint32 zoom = 10 [default = 100]; + optional uint32 slot_index = 11; + optional uint32 model_index = 12; +} + +message CMsgShowcaseItem_HeroIcon { + message Data { + optional .CSOEconItem econ_item = 1; + } + + optional .CMsgShowcaseItem_HeroIcon.Data data = 1; + optional int32 hero_id = 2; + optional .CMsgShowcaseEconItemReference econ_item_ref = 3; +} + +message CMsgShowcaseItem_PlayerMatch { + message Data { + optional int32 hero_id = 1; + optional uint32 timestamp = 2; + optional uint32 duration = 3; + optional .DOTA_GameMode game_mode = 4 [default = DOTA_GAMEMODE_NONE]; + optional .CMsgShowcaseItem_PlayerMatch.EPlayerOutcome outcome = 5 [default = k_eInvalid]; + optional uint32 kills = 6; + optional uint32 deaths = 7; + optional uint32 assists = 8; + } + + enum EPlayerOutcome { + k_eInvalid = 0; + k_eWin = 1; + k_eLoss = 2; + k_eNotScored = 3; + } + + optional .CMsgShowcaseItem_PlayerMatch.Data data = 1; + optional uint64 match_id = 2; + optional uint32 player_slot = 3; +} + +message CMsgShowcaseItem_ChatWheel { + message Data { + } + + optional .CMsgShowcaseItem_ChatWheel.Data data = 1; + optional uint32 chat_wheel_message_id = 2 [default = 4294967295]; +} + +message CMsgShowcaseItem_Emoticon { + message Data { + } + + optional .CMsgShowcaseItem_Emoticon.Data data = 1; + optional uint32 emoticon_id = 2; +} + +message CMsgShowcaseItem_SpiderGraph { + message Data { + } + + optional .CMsgShowcaseItem_SpiderGraph.Data data = 1; +} + +message CMsgShowcaseItem_UserFeed { + message Data { + } + + optional .CMsgShowcaseItem_UserFeed.Data data = 1; +} + +message CMsgShowcaseItem_Stat { + message Data { + optional uint32 stat_score = 1; + } + + optional .CMsgShowcaseItem_Stat.Data data = 1; + optional .CMsgDOTAProfileCard.EStatID stat_id = 2 [default = k_eStat_Wins]; +} + +message CMsgShowcaseBackground { + message Data { + optional .CSOEconItem loading_screen = 1; + } + + optional .CMsgShowcaseBackground.Data data = 1; + optional .CMsgShowcaseEconItemReference loading_screen_ref = 2; + optional uint32 dim = 3; + optional uint32 blur = 4; + optional uint32 background_id = 5; +} + +message CMsgShowcaseItemData { + oneof item { + .CMsgShowcaseItem_Trophy trophy = 1; + .CMsgShowcaseItem_EconItem econ_item_icon = 2; + .CMsgShowcaseItem_EconItem sticker = 3; + .CMsgShowcaseItem_Hero hero_model = 4; + .CMsgShowcaseItem_PlayerMatch player_match = 5; + .CMsgShowcaseItem_ChatWheel chat_wheel = 6; + .CMsgShowcaseItem_ChatWheel spray = 7; + .CMsgShowcaseItem_Emoticon emoticon = 8; + .CMsgShowcaseItem_EconItem courier = 10; + .CMsgShowcaseItem_EconItem ward = 11; + .CMsgShowcaseItem_HeroIcon hero_icon = 12; + .CMsgShowcaseItem_SpiderGraph spider_graph = 13; + .CMsgShowcaseItem_UserFeed user_feed = 14; + .CMsgShowcaseItem_Stat stat = 15; + .CMsgShowcaseItem_EconItem roshan = 16; + .CMsgShowcaseItem_EconItem creep = 17; + .CMsgShowcaseItem_EconItem tower = 18; + .CMsgShowcaseItem_EconItem effigy = 19; + .CMsgShowcaseItem_EconItem decoration = 20; + .CMsgShowcaseBackground background = 100; + } +} + +message CMsgShowcaseItemPosition { + optional int32 position_x = 1; + optional int32 position_y = 2; + optional uint32 scale = 3; + optional uint32 width = 4; + optional uint32 height = 5; + optional uint32 rotation = 6; + optional uint32 parent_id = 7; + optional uint32 parent_attachment_point_id = 8; + optional uint32 attachment_anchor_x = 9; + optional uint32 attachment_anchor_y = 10; +} + +message CMsgShowcaseItem { + optional uint32 showcase_item_id = 1; + optional .CMsgShowcaseItemPosition item_position = 2; + optional .CMsgShowcaseItemData item_data = 3; + optional .EShowcaseItemState state = 4 [default = k_eShowcaseItemState_Ok]; + optional uint32 flags = 5; +} + +message CMsgShowcase { + enum EModerationState { + k_eModerationState_Ok = 0; + k_eModerationState_PendingApproval = 1; + } + + repeated .CMsgShowcaseItem showcase_items = 1; + optional .CMsgShowcaseItem background = 3; + optional .CMsgShowcase.EModerationState moderation_state = 4 [default = k_eModerationState_Ok]; +} + +message CMsgClientToGCShowcaseGetUserData { + optional uint32 account_id = 1; + optional .EShowcaseType showcase_type = 2 [default = k_eShowcaseType_Invalid]; +} + +message CMsgClientToGCShowcaseGetUserDataResponse { + enum EResponse { + k_eInternalError = 0; + k_eSuccess = 1; + k_eTooBusy = 2; + k_eDisabled = 3; + k_eTimeout = 4; + k_eUnknownShowcase = 5; + } + + optional .CMsgClientToGCShowcaseGetUserDataResponse.EResponse response = 1 [default = k_eInternalError]; + optional .CMsgShowcase showcase = 2; +} + +message CMsgClientToGCShowcaseSetUserData { + optional .EShowcaseType showcase_type = 1 [default = k_eShowcaseType_Invalid]; + optional .CMsgShowcase showcase = 2; + optional uint32 format_version = 3; +} + +message CMsgClientToGCShowcaseSetUserDataResponse { + enum EResponse { + k_eInternalError = 0; + k_eSuccess = 1; + k_eTooBusy = 2; + k_eDisabled = 3; + k_eTimeout = 4; + k_eInvalid = 5; + k_eLockedFromEditing = 6; + k_eBudgetExceeded = 7; + k_eCommunicationScoreTooLow = 8; + } + + optional .CMsgClientToGCShowcaseSetUserDataResponse.EResponse response = 1 [default = k_eInternalError]; + optional .CMsgShowcase validated_showcase = 2; + optional uint32 locked_until_timestamp = 3; +} + +message CMsgClientToGCShowcaseSubmitReport { + optional uint32 target_account_id = 1; + optional .EShowcaseType showcase_type = 2 [default = k_eShowcaseType_Invalid]; + optional string report_comment = 3; +} + +message CMsgClientToGCShowcaseSubmitReportResponse { + enum EResponse { + k_eInternalError = 0; + k_eSuccess = 1; + k_eTooBusy = 2; + k_eDisabled = 3; + k_eTimeout = 4; + k_eAlreadyReported = 5; + } + + optional .CMsgClientToGCShowcaseSubmitReportResponse.EResponse response = 1 [default = k_eInternalError]; +} + +message CMsgShowcaseReportsRollupInfo { + optional uint32 rollup_id = 1; + optional uint32 start_timestamp = 2; + optional uint32 end_timestamp = 3; +} + +message CMsgShowcaseReportsRollupList { + repeated .CMsgShowcaseReportsRollupInfo rollups = 1; +} + +message CMsgShowcaseReportsRollupEntry { + optional uint32 account_id = 1; + optional .EShowcaseType showcase_type = 2 [default = k_eShowcaseType_Invalid]; + optional uint32 report_count = 3; +} + +message CMsgShowcaseReportsRollup { + optional .CMsgShowcaseReportsRollupInfo rollup_info = 1; + repeated .CMsgShowcaseReportsRollupEntry rollup_entries = 2; +} + +message CMsgClientToGCShowcaseAdminGetReportsRollupList { +} + +message CMsgClientToGCShowcaseAdminGetReportsRollupListResponse { + enum EResponse { + k_eInternalError = 0; + k_eSuccess = 1; + k_eTooBusy = 2; + k_eDisabled = 3; + k_eTimeout = 4; + k_eNoPermission = 5; + } + + optional .CMsgClientToGCShowcaseAdminGetReportsRollupListResponse.EResponse response = 1 [default = k_eInternalError]; + optional .CMsgShowcaseReportsRollupList rollup_list = 2; +} + +message CMsgClientToGCShowcaseAdminGetReportsRollup { + optional uint32 rollup_id = 1; +} + +message CMsgClientToGCShowcaseAdminGetReportsRollupResponse { + enum EResponse { + k_eInternalError = 0; + k_eSuccess = 1; + k_eTooBusy = 2; + k_eDisabled = 3; + k_eTimeout = 4; + k_eNoPermission = 5; + k_eNotFound = 6; + } + + optional .CMsgClientToGCShowcaseAdminGetReportsRollupResponse.EResponse response = 1 [default = k_eInternalError]; + optional .CMsgShowcaseReportsRollup rollup = 2; +} + +message CMsgShowcaseAuditEntry { + optional .EShowcaseType showcase_type = 1 [default = k_eShowcaseType_Invalid]; + optional .EShowcaseAuditAction audit_action = 2 [default = k_eShowcaseAuditAction_Invalid]; + optional uint64 audit_data = 3; + optional uint32 timestamp = 4; +} + +message CMsgShowcaseReport { + optional uint32 reporter_account_id = 1; + optional .EShowcaseType showcase_type = 2 [default = k_eShowcaseType_Invalid]; + optional uint32 report_timestamp = 3; + optional string report_comment = 4; +} + +message CMsgShowcaseAdminUserDetails { + optional uint32 locked_until_timestamp = 1; + repeated .CMsgShowcaseAuditEntry audit_entries = 2; + repeated .CMsgShowcaseReport reports = 3; +} + +message CMsgClientToGCShowcaseAdminGetUserDetails { + optional uint32 account_id = 1; +} + +message CMsgClientToGCShowcaseAdminGetUserDetailsResponse { + enum EResponse { + k_eInternalError = 0; + k_eSuccess = 1; + k_eTooBusy = 2; + k_eDisabled = 3; + k_eTimeout = 4; + k_eNoPermission = 5; + } + + optional .CMsgClientToGCShowcaseAdminGetUserDetailsResponse.EResponse response = 1 [default = k_eInternalError]; + optional .CMsgShowcaseAdminUserDetails user_details = 2; +} + +message CMsgClientToGCShowcaseAdminReset { + optional uint32 target_account_id = 1; + optional .EShowcaseType showcase_type = 2 [default = k_eShowcaseType_Invalid]; +} + +message CMsgClientToGCShowcaseAdminResetResponse { + enum EResponse { + k_eInternalError = 0; + k_eSuccess = 1; + k_eTooBusy = 2; + k_eDisabled = 3; + k_eTimeout = 4; + k_eNoPermission = 5; + } + + optional .CMsgClientToGCShowcaseAdminResetResponse.EResponse response = 1 [default = k_eInternalError]; +} + +message CMsgClientToGCShowcaseAdminLockAccount { + optional uint32 target_account_id = 1; + optional uint32 locked_until_timestamp = 2; +} + +message CMsgClientToGCShowcaseAdminLockAccountResponse { + enum EResponse { + k_eInternalError = 0; + k_eSuccess = 1; + k_eTooBusy = 2; + k_eDisabled = 3; + k_eTimeout = 4; + k_eNoPermission = 5; + } + + optional .CMsgClientToGCShowcaseAdminLockAccountResponse.EResponse response = 1 [default = k_eInternalError]; +} + +message CMsgClientToGCShowcaseAdminConvict { + optional uint32 target_account_id = 1; + optional .EShowcaseType showcase_type = 2 [default = k_eShowcaseType_Invalid]; +} + +message CMsgClientToGCShowcaseAdminConvictResponse { + enum EResponse { + k_eInternalError = 0; + k_eSuccess = 1; + k_eTooBusy = 2; + k_eDisabled = 3; + k_eTimeout = 4; + k_eNoPermission = 5; + k_eAlreadyConvicted = 6; + } + + optional .CMsgClientToGCShowcaseAdminConvictResponse.EResponse response = 1 [default = k_eInternalError]; +} + +message CMsgClientToGCShowcaseAdminExonerate { + optional uint32 target_account_id = 1; + optional .EShowcaseType showcase_type = 2 [default = k_eShowcaseType_Invalid]; +} + +message CMsgClientToGCShowcaseAdminExonerateResponse { + enum EResponse { + k_eInternalError = 0; + k_eSuccess = 1; + k_eTooBusy = 2; + k_eDisabled = 3; + k_eTimeout = 4; + k_eNoPermission = 5; + k_eAlreadyExonerated = 6; + } + + optional .CMsgClientToGCShowcaseAdminExonerateResponse.EResponse response = 1 [default = k_eInternalError]; +} + +message CMsgShowcaseModerationInfo { + optional uint32 account_id = 1; + optional .EShowcaseType showcase_type = 2 [default = k_eShowcaseType_Invalid]; + optional uint32 showcase_timestamp = 3; +} + +message CMsgClientToGCShowcaseModerationGetQueue { + optional uint32 start_timestamp = 1; + optional uint32 result_count = 2; +} + +message CMsgClientToGCShowcaseModerationGetQueueResponse { + enum EResponse { + k_eInternalError = 0; + k_eSuccess = 1; + k_eTooBusy = 2; + k_eDisabled = 3; + k_eTimeout = 4; + k_eNoPermission = 5; + } + + optional .CMsgClientToGCShowcaseModerationGetQueueResponse.EResponse response = 1 [default = k_eInternalError]; + repeated .CMsgShowcaseModerationInfo showcases = 2; +} + +message CMsgClientToGCShowcaseModerationApplyModeration { + optional uint32 account_id = 1; + optional .EShowcaseType showcase_type = 2 [default = k_eShowcaseType_Invalid]; + optional uint32 showcase_timestamp = 3; + optional bool approve = 4; +} + +message CMsgClientToGCShowcaseModerationApplyModerationResponse { + enum EResponse { + k_eInternalError = 0; + k_eSuccess = 1; + k_eTooBusy = 2; + k_eDisabled = 3; + k_eTimeout = 4; + k_eNoPermission = 5; + k_eGone = 6; + } + + optional .CMsgClientToGCShowcaseModerationApplyModerationResponse.EResponse response = 1 [default = k_eInternalError]; +} diff --git a/Protobufs/dota2/dota_gcmessages_client_team.proto b/Protobufs/dota2/dota_gcmessages_client_team.proto new file mode 100644 index 0000000..7c8bda7 --- /dev/null +++ b/Protobufs/dota2/dota_gcmessages_client_team.proto @@ -0,0 +1,275 @@ +import "dota_shared_enums.proto"; + +enum ETeamInviteResult { + TEAM_INVITE_SUCCESS = 0; + TEAM_INVITE_FAILURE_INVITE_REJECTED = 1; + TEAM_INVITE_FAILURE_INVITE_TIMEOUT = 2; + TEAM_INVITE_ERROR_TEAM_AT_MEMBER_LIMIT = 3; + TEAM_INVITE_ERROR_TEAM_LOCKED = 4; + TEAM_INVITE_ERROR_INVITEE_NOT_AVAILABLE = 5; + TEAM_INVITE_ERROR_INVITEE_BUSY = 6; + TEAM_INVITE_ERROR_INVITEE_ALREADY_MEMBER = 7; + TEAM_INVITE_ERROR_INVITEE_AT_TEAM_LIMIT = 8; + TEAM_INVITE_ERROR_INVITEE_INSUFFICIENT_PLAY_TIME = 9; + TEAM_INVITE_ERROR_INVITER_INVALID_ACCOUNT_TYPE = 10; + TEAM_INVITE_ERROR_INVITER_NOT_ADMIN = 11; + TEAM_INVITE_ERROR_INCORRECT_USER_RESPONDED = 12; + TEAM_INVITE_ERROR_UNSPECIFIED = 13; +} + +message CMsgDOTATeamInfo { + message HeroStats { + optional int32 hero_id = 1; + optional uint32 picks = 2; + optional uint32 wins = 3; + optional uint32 bans = 4; + optional float avg_kills = 5; + optional float avg_deaths = 6; + optional float avg_assists = 7; + optional float avg_gpm = 8; + optional float avg_xpm = 9; + } + + message MemberStats { + optional uint32 account_id = 1; + optional uint32 wins_with_team = 2; + optional uint32 losses_with_team = 3; + repeated .CMsgDOTATeamInfo.HeroStats top_heroes = 4; + optional float avg_kills = 5; + optional float avg_deaths = 6; + optional float avg_assists = 7; + } + + message TeamStats { + repeated .CMsgDOTATeamInfo.HeroStats played_heroes = 1; + optional float farming = 2; + optional float fighting = 3; + optional float versatility = 4; + optional float avg_kills = 5; + optional float avg_deaths = 6; + optional float avg_duration = 7; + } + + message DPCResult { + optional uint32 league_id = 1; + optional uint32 standing = 2; + optional uint32 points = 3; + optional uint32 earnings = 4; + optional uint32 timestamp = 5; + } + + message Member { + optional uint32 account_id = 1; + optional uint32 time_joined = 2; + optional bool admin = 3; + optional string pro_name = 6; + optional .Fantasy_Roles role = 8 [default = FANTASY_ROLE_UNDEFINED]; + optional string real_name = 9; + } + + message AuditEntry { + optional uint32 audit_action = 1; + optional uint32 timestamp = 2; + optional uint32 account_id = 3; + } + + repeated .CMsgDOTATeamInfo.Member members = 1; + optional uint32 team_id = 2; + optional string name = 3; + optional string tag = 4; + optional uint32 time_created = 5; + optional bool pro = 6; + optional bool pickup_team = 8; + optional uint64 ugc_logo = 9; + optional uint64 ugc_base_logo = 10; + optional uint64 ugc_banner_logo = 11; + optional uint64 ugc_sponsor_logo = 12; + optional string country_code = 13; + optional string url = 14; + optional uint32 wins = 15; + optional uint32 losses = 16; + optional uint32 games_played_total = 19; + optional uint32 games_played_matchmaking = 20; + optional string url_logo = 24; + repeated uint32 registered_member_account_ids = 30; + optional uint32 coach_account_id = 36; + repeated .CMsgDOTATeamInfo.AuditEntry audit_entries = 31; + optional .ELeagueRegion region = 29 [default = LEAGUE_REGION_UNSET]; + optional string abbreviation = 32; + repeated .CMsgDOTATeamInfo.MemberStats member_stats = 33; + optional .CMsgDOTATeamInfo.TeamStats team_stats = 34; + repeated .CMsgDOTATeamInfo.DPCResult dpc_results = 35; + optional string color_primary = 37; + optional string color_secondary = 38; + optional uint32 team_captain = 39; +} + +message CMsgDOTATeamsInfo { + optional uint32 league_id = 1; + repeated .CMsgDOTATeamInfo teams = 2; +} + +message CMsgDOTATeamInfoList { + repeated .CMsgDOTATeamInfo teams = 1; +} + +message CMsgDOTATeamInfoCache { + optional uint32 cache_timestamp = 1; + optional .CMsgDOTATeamInfoList team_list = 2; +} + +message CMsgDOTAMyTeamInfoRequest { +} + +message CMsgDOTACreateTeam { + optional string name = 1; + optional string tag = 2; + optional uint64 logo = 3; + optional uint64 base_logo = 4; + optional uint64 banner_logo = 5; + optional uint64 sponsor_logo = 6; + optional string country_code = 7; + optional string url = 8; + optional bool pickup_team = 9; + optional string abbreviation = 10; +} + +message CMsgDOTACreateTeamResponse { + enum Result { + INVALID = -1; + SUCCESS = 0; + NAME_EMPTY = 1; + NAME_BAD_CHARACTERS = 2; + NAME_TAKEN = 3; + NAME_TOO_LONG = 4; + TAG_EMPTY = 5; + TAG_BAD_CHARACTERS = 6; + TAG_TAKEN = 7; + TAG_TOO_LONG = 8; + CREATOR_BUSY = 9; + UNSPECIFIED_ERROR = 10; + CREATOR_TEAM_LIMIT_REACHED = 11; + NO_LOGO = 12; + CREATOR_TEAM_CREATION_COOLDOWN = 13; + LOGO_UPLOAD_FAILED = 14; + NAME_CHANGED_TOO_RECENTLY = 15; + CREATOR_INSUFFICIENT_LEVEL = 16; + INVALID_ACCOUNT_TYPE = 17; + } + + optional .CMsgDOTACreateTeamResponse.Result result = 1 [default = INVALID]; + optional uint32 team_id = 2; +} + +message CMsgDOTAEditTeamDetails { + optional uint32 team_id = 1; + optional string name = 2; + optional string tag = 3; + optional uint64 logo = 4; + optional uint64 base_logo = 5; + optional uint64 banner_logo = 6; + optional uint64 sponsor_logo = 7; + optional string country_code = 8; + optional string url = 9; + optional bool in_use_by_party = 10; + optional string abbreviation = 11; +} + +message CMsgDOTAEditTeamDetailsResponse { + enum Result { + SUCCESS = 0; + FAILURE_INVALID_ACCOUNT_TYPE = 1; + FAILURE_NOT_MEMBER = 2; + FAILURE_TEAM_LOCKED = 3; + FAILURE_UNSPECIFIED_ERROR = 4; + } + + optional .CMsgDOTAEditTeamDetailsResponse.Result result = 1 [default = SUCCESS]; +} + +message CMsgDOTATeamInvite_InviterToGC { + optional uint32 account_id = 1; + optional uint32 team_id = 2; +} + +message CMsgDOTATeamInvite_GCImmediateResponseToInviter { + optional .ETeamInviteResult result = 1 [default = TEAM_INVITE_SUCCESS]; + optional string invitee_name = 2; + optional uint32 required_play_time = 3; +} + +message CMsgDOTATeamInvite_GCRequestToInvitee { + optional uint32 inviter_account_id = 1; + optional string team_name = 2; + optional string team_tag = 3; + optional uint64 logo = 4; +} + +message CMsgDOTATeamInvite_InviteeResponseToGC { + optional .ETeamInviteResult result = 1 [default = TEAM_INVITE_SUCCESS]; +} + +message CMsgDOTATeamInvite_GCResponseToInviter { + optional .ETeamInviteResult result = 1 [default = TEAM_INVITE_SUCCESS]; + optional string invitee_name = 2; +} + +message CMsgDOTATeamInvite_GCResponseToInvitee { + optional .ETeamInviteResult result = 1 [default = TEAM_INVITE_SUCCESS]; + optional string team_name = 2; +} + +message CMsgDOTAKickTeamMember { + optional uint32 account_id = 1; + optional uint32 team_id = 2; +} + +message CMsgDOTAKickTeamMemberResponse { + enum Result { + SUCCESS = 0; + FAILURE_INVALID_ACCOUNT_TYPE = 1; + FAILURE_KICKER_NOT_ADMIN = 2; + FAILURE_KICKEE_NOT_MEMBER = 3; + FAILURE_TEAM_LOCKED = 4; + FAILURE_UNSPECIFIED_ERROR = 5; + } + + optional .CMsgDOTAKickTeamMemberResponse.Result result = 1 [default = SUCCESS]; +} + +message CMsgDOTATransferTeamAdmin { + optional uint32 new_admin_account_id = 1; + optional uint32 team_id = 2; +} + +message CMsgDOTATransferTeamAdminResponse { + enum Result { + SUCCESS = 0; + FAILURE_INVALID_ACCOUNT_TYPE = 1; + FAILURE_NOT_ADMIN = 2; + FAILURE_SAME_ACCOUNT = 3; + FAILURE_NOT_MEMBER = 4; + FAILURE_UNSPECIFIED_ERROR = 5; + } + + optional .CMsgDOTATransferTeamAdminResponse.Result result = 1 [default = SUCCESS]; +} + +message CMsgDOTALeaveTeam { + optional uint32 team_id = 1; +} + +message CMsgDOTALeaveTeamResponse { + enum Result { + SUCCESS = 0; + FAILURE_NOT_MEMBER = 1; + FAILURE_TEAM_LOCKED = 2; + FAILURE_UNSPECIFIED_ERROR = 3; + } + + optional .CMsgDOTALeaveTeamResponse.Result result = 1 [default = SUCCESS]; +} + +message CMsgDOTABetaParticipation { + optional uint32 access_rights = 1; +} diff --git a/Protobufs/dota2/dota_gcmessages_client_tournament.proto b/Protobufs/dota2/dota_gcmessages_client_tournament.proto new file mode 100644 index 0000000..48bdeac --- /dev/null +++ b/Protobufs/dota2/dota_gcmessages_client_tournament.proto @@ -0,0 +1,173 @@ +import "dota_client_enums.proto"; + +enum ETournamentEvent { + k_ETournamentEvent_None = 0; + k_ETournamentEvent_TournamentCreated = 1; + k_ETournamentEvent_TournamentsMerged = 2; + k_ETournamentEvent_GameOutcome = 3; + k_ETournamentEvent_TeamGivenBye = 4; + k_ETournamentEvent_TournamentCanceledByAdmin = 5; + k_ETournamentEvent_TeamAbandoned = 6; + k_ETournamentEvent_ScheduledGameStarted = 7; + k_ETournamentEvent_Canceled = 8; + k_ETournamentEvent_TeamParticipationTimedOut_EntryFeeRefund = 9; + k_ETournamentEvent_TeamParticipationTimedOut_EntryFeeForfeit = 10; + k_ETournamentEvent_TeamParticipationTimedOut_GrantedVictory = 11; +} + +message CMsgRequestWeekendTourneySchedule { +} + +message CMsgWeekendTourneySchedule { + message Division { + optional uint32 division_code = 1; + optional uint32 time_window_open = 2; + optional uint32 time_window_close = 3; + optional uint32 time_window_open_next = 4; + optional uint32 trophy_id = 5; + optional bool free_weekend = 6; + } + + repeated .CMsgWeekendTourneySchedule.Division divisions = 1; +} + +message CMsgWeekendTourneyOpts { + optional bool participating = 1; + optional uint32 division_id = 2; + optional uint32 buyin = 3; + optional uint32 skill_level = 4; + optional uint32 match_groups = 5; + optional uint32 team_id = 6; + optional string pickup_team_name = 7; + optional uint64 pickup_team_logo = 8; +} + +message CMsgWeekendTourneyLeave { +} + +message CMsgDOTATournament { + message Team { + optional fixed64 team_gid = 1; + optional uint32 node_or_state = 2; + repeated uint32 players = 3 [packed = true]; + repeated uint32 player_buyin = 9 [packed = true]; + repeated uint32 player_skill_level = 10 [packed = true]; + optional uint32 match_group_mask = 12; + optional uint32 team_id = 4; + optional string team_name = 5; + optional uint64 team_base_logo = 7; + optional uint64 team_ui_logo = 8; + } + + message Game { + optional uint32 node_idx = 1; + optional fixed64 lobby_id = 2; + optional uint64 match_id = 3; + optional bool team_a_good = 4; + optional .ETournamentGameState state = 5 [default = k_ETournamentGameState_Unknown]; + optional uint32 start_time = 6; + } + + message Node { + optional uint32 node_id = 1; + optional uint32 team_idx_a = 2; + optional uint32 team_idx_b = 3; + optional .ETournamentNodeState node_state = 4 [default = k_ETournamentNodeState_Unknown]; + } + + optional uint32 tournament_id = 1; + optional uint32 division_id = 2; + optional uint32 schedule_time = 3; + optional uint32 skill_level = 4; + optional .ETournamentTemplate tournament_template = 5 [default = k_ETournamentTemplate_None]; + optional .ETournamentState state = 6 [default = k_ETournamentState_Unknown]; + optional uint32 state_seq_num = 10; + optional uint32 season_trophy_id = 11; + repeated .CMsgDOTATournament.Team teams = 7; + repeated .CMsgDOTATournament.Game games = 8; + repeated .CMsgDOTATournament.Node nodes = 9; +} + +message CMsgDOTATournamentStateChange { + message GameChange { + optional uint64 match_id = 1; + optional .ETournamentGameState new_state = 2 [default = k_ETournamentGameState_Unknown]; + } + + message TeamChange { + optional uint64 team_gid = 1; + optional uint32 new_node_or_state = 2; + optional uint32 old_node_or_state = 3; + } + + optional uint32 new_tournament_id = 1; + optional .ETournamentEvent event = 2 [default = k_ETournamentEvent_None]; + optional .ETournamentState new_tournament_state = 3 [default = k_ETournamentState_Unknown]; + repeated .CMsgDOTATournamentStateChange.GameChange game_changes = 4; + repeated .CMsgDOTATournamentStateChange.TeamChange team_changes = 5; + repeated uint32 merged_tournament_ids = 6 [packed = true]; + optional uint32 state_seq_num = 7; +} + +message CMsgDOTAWeekendTourneyPlayerSkillLevelStats { + optional uint32 skill_level = 1; + optional uint32 times_won_0 = 2; + optional uint32 times_won_1 = 3; + optional uint32 times_won_2 = 4; + optional uint32 times_won_3 = 5; + optional uint32 times_bye_and_lost = 6; + optional uint32 times_bye_and_won = 7; + optional uint32 times_unusual_champ = 10; + optional uint32 total_games_won = 8; + optional uint32 score = 9; +} + +message CMsgDOTAWeekendTourneyPlayerStats { + optional uint32 account_id = 1; + optional uint32 season_trophy_id = 2; + repeated .CMsgDOTAWeekendTourneyPlayerSkillLevelStats skill_levels = 3; + optional uint32 current_tier = 4; +} + +message CMsgDOTAWeekendTourneyPlayerStatsRequest { + optional uint32 account_id = 1; + optional uint32 season_trophy_id = 2; +} + +message CMsgDOTAWeekendTourneyPlayerHistory { + message Tournament { + optional uint32 tournament_id = 1; + optional uint32 start_time = 2; + optional uint32 tournament_tier = 3; + optional uint32 team_id = 4; + optional uint32 team_date = 5; + optional uint32 team_result = 6; + repeated uint32 account_id = 7; + optional string team_name = 8; + optional uint32 season_trophy_id = 9; + } + + optional uint32 account_id = 1; + repeated .CMsgDOTAWeekendTourneyPlayerHistory.Tournament tournaments = 3; +} + +message CMsgDOTAWeekendTourneyParticipationDetails { + message Tier { + optional uint32 tier = 1; + optional uint32 players = 2; + optional uint32 teams = 3; + optional uint32 winning_teams = 4; + optional uint32 players_streak_2 = 5; + optional uint32 players_streak_3 = 6; + optional uint32 players_streak_4 = 7; + optional uint32 players_streak_5 = 8; + } + + message Division { + optional uint32 division_id = 1; + optional uint32 schedule_time = 2; + repeated .CMsgDOTAWeekendTourneyParticipationDetails.Tier tiers = 3; + } + + repeated .CMsgDOTAWeekendTourneyParticipationDetails.Division divisions = 1; +} diff --git a/Protobufs/dota2/dota_gcmessages_client_watch.proto b/Protobufs/dota2/dota_gcmessages_client_watch.proto new file mode 100644 index 0000000..5602690 --- /dev/null +++ b/Protobufs/dota2/dota_gcmessages_client_watch.proto @@ -0,0 +1,205 @@ +import "dota_gcmessages_common.proto"; + +message CSourceTVGameSmall { + message Player { + optional uint32 account_id = 1; + optional int32 hero_id = 2; + optional uint32 team_slot = 3; + optional uint32 team = 4; + } + + optional uint32 activate_time = 1; + optional uint32 deactivate_time = 2; + optional uint64 server_steam_id = 3; + optional uint64 lobby_id = 4; + optional uint32 league_id = 5; + optional uint32 lobby_type = 6; + optional int32 game_time = 7; + optional uint32 delay = 8; + optional uint32 spectators = 9; + optional uint32 game_mode = 10; + optional uint32 average_mmr = 11; + optional uint64 match_id = 12; + optional uint32 series_id = 13; + optional string team_name_radiant = 15; + optional string team_name_dire = 16; + optional fixed64 team_logo_radiant = 24; + optional fixed64 team_logo_dire = 25; + optional uint32 team_id_radiant = 30; + optional uint32 team_id_dire = 31; + optional uint32 sort_score = 17; + optional float last_update_time = 18; + optional int32 radiant_lead = 19; + optional uint32 radiant_score = 20; + optional uint32 dire_score = 21; + repeated .CSourceTVGameSmall.Player players = 22; + optional fixed32 building_state = 23; + optional uint32 weekend_tourney_tournament_id = 26; + optional uint32 weekend_tourney_division = 27; + optional uint32 weekend_tourney_skill_level = 28; + optional uint32 weekend_tourney_bracket_round = 29; + optional uint32 custom_game_difficulty = 32; +} + +message CMsgClientToGCFindTopSourceTVGames { + optional string search_key = 1; + optional uint32 league_id = 2; + optional int32 hero_id = 3; + optional uint32 start_game = 4; + optional uint32 game_list_index = 5; + repeated uint64 lobby_ids = 6; +} + +message CMsgGCToClientFindTopSourceTVGamesResponse { + optional string search_key = 1; + optional uint32 league_id = 2; + optional int32 hero_id = 3; + optional uint32 start_game = 4; + optional uint32 num_games = 5; + optional uint32 game_list_index = 6; + repeated .CSourceTVGameSmall game_list = 7; + optional bool specific_games = 8; + optional .CSourceTVGameSmall bot_game = 9; +} + +message CMsgGCToClientTopWeekendTourneyGames { + repeated .CSourceTVGameSmall live_games = 1; +} + +message CMsgClientToGCTopLeagueMatchesRequest { +} + +message CMsgClientToGCTopFriendMatchesRequest { +} + +message CMsgClientToGCMatchesMinimalRequest { + repeated uint64 match_ids = 1; +} + +message CMsgClientToGCMatchesMinimalResponse { + repeated .CMsgDOTAMatchMinimal matches = 1; + optional bool last_match = 2; +} + +message CMsgGCToClientTopLeagueMatchesResponse { + repeated .CMsgDOTAMatchMinimal matches = 2; +} + +message CMsgGCToClientTopFriendMatchesResponse { + repeated .CMsgDOTAMatchMinimal matches = 1; +} + +message CMsgSpectateFriendGame { + optional fixed64 steam_id = 1; + optional bool live = 2; +} + +message CMsgSpectateFriendGameResponse { + enum EWatchLiveResult { + SUCCESS = 0; + ERROR_GENERIC = 1; + ERROR_NO_PLUS = 2; + ERROR_NOT_FRIENDS = 3; + ERROR_LOBBY_NOT_FOUND = 4; + ERROR_SPECTATOR_IN_A_LOBBY = 5; + ERROR_LOBBY_IS_LAN = 6; + ERROR_WRONG_LOBBY_TYPE = 7; + ERROR_WRONG_LOBBY_STATE = 8; + ERROR_PLAYER_NOT_PLAYER = 9; + ERROR_TOO_MANY_SPECTATORS = 10; + ERROR_SPECTATOR_SWITCHED_TEAMS = 11; + ERROR_FRIENDS_ON_BOTH_SIDES = 12; + ERROR_SPECTATOR_IN_THIS_LOBBY = 13; + ERROR_LOBBY_IS_LEAGUE = 14; + } + + optional fixed64 server_steamid = 4; + optional .CMsgSpectateFriendGameResponse.EWatchLiveResult watch_live_result = 5 [default = SUCCESS]; +} + +message CDOTAReplayDownloadInfo { + message Highlight { + optional uint32 timestamp = 1; + optional string description = 2; + } + + optional .CMsgDOTAMatchMinimal match = 1; + optional string title = 2; + optional string description = 3; + optional uint32 size = 4; + repeated string tags = 5; + optional bool exists_on_disk = 6; +} + +message CMsgWatchGame { + optional fixed64 server_steamid = 1; + optional uint32 client_version = 2; + optional fixed64 watch_server_steamid = 3; + optional uint64 lobby_id = 4; + repeated uint32 regions = 5; +} + +message CMsgCancelWatchGame { +} + +message CMsgWatchGameResponse { + enum WatchGameResult { + PENDING = 0; + READY = 1; + GAMESERVERNOTFOUND = 2; + UNAVAILABLE = 3; + CANCELLED = 4; + INCOMPATIBLEVERSION = 5; + MISSINGLEAGUESUBSCRIPTION = 6; + LOBBYNOTFOUND = 7; + } + + optional .CMsgWatchGameResponse.WatchGameResult watch_game_result = 1 [default = PENDING]; + optional uint32 source_tv_public_addr = 2; + optional uint32 source_tv_private_addr = 3; + optional uint32 source_tv_port = 4; + optional fixed64 game_server_steamid = 5; + optional fixed64 watch_server_steamid = 6; + optional fixed64 watch_tv_unique_secret_code = 7; +} + +message CMsgPartyLeaderWatchGamePrompt { + optional fixed64 game_server_steamid = 5; +} + +message CDOTABroadcasterInfo { + optional uint32 account_id = 1; + optional fixed64 server_steam_id = 2; + optional bool live = 3; + optional string team_name_radiant = 4; + optional string team_name_dire = 5; + optional uint32 series_game = 7; + optional uint32 upcoming_broadcast_timestamp = 9; + optional bool allow_live_video = 10; + optional uint32 node_type = 11; + optional string node_name = 12; +} + +message CMsgDOTASeries { + message TeamInfo { + optional uint32 team_id = 1; + optional string team_name = 2; + optional string team_logo_url = 3; + optional uint32 wager_count = 4; + } + + message LiveGame { + optional fixed64 server_steam_id = 1; + optional .CMsgDOTASeries.TeamInfo team_radiant = 2; + optional .CMsgDOTASeries.TeamInfo team_dire = 3; + optional uint32 team_radiant_score = 4; + optional uint32 team_dire_score = 5; + } + + optional uint32 series_id = 1; + optional uint32 series_type = 2; + optional .CMsgDOTASeries.TeamInfo team_1 = 3; + optional .CMsgDOTASeries.TeamInfo team_2 = 4; + repeated .CMsgDOTAMatchMinimal match_minimal = 5; + optional .CMsgDOTASeries.LiveGame live_game = 6; +} diff --git a/Protobufs/dota2/dota_gcmessages_common.proto b/Protobufs/dota2/dota_gcmessages_common.proto new file mode 100644 index 0000000..c70fef2 --- /dev/null +++ b/Protobufs/dota2/dota_gcmessages_common.proto @@ -0,0 +1,1814 @@ +import "steammessages.proto"; +import "gcsdk_gcmessages.proto"; +import "dota_shared_enums.proto"; + +enum ESpecialPingValue { + k_ESpecialPingValue_NoData = 16382; + k_ESpecialPingValue_Failed = 16383; +} + +enum EDOTAGCSessionNeed { + k_EDOTAGCSessionNeed_Unknown = 0; + k_EDOTAGCSessionNeed_UserNoSessionNeeded = 100; + k_EDOTAGCSessionNeed_UserInOnlineGame = 101; + k_EDOTAGCSessionNeed_UserInLocalGame = 102; + k_EDOTAGCSessionNeed_UserInUIWasConnected = 103; + k_EDOTAGCSessionNeed_UserInUINeverConnected = 104; + k_EDOTAGCSessionNeed_UserTutorials = 105; + k_EDOTAGCSessionNeed_UserInUIWasConnectedIdle = 106; + k_EDOTAGCSessionNeed_UserInUINeverConnectedIdle = 107; + k_EDOTAGCSessionNeed_GameServerOnline = 200; + k_EDOTAGCSessionNeed_GameServerLocal = 201; + k_EDOTAGCSessionNeed_GameServerIdle = 202; + k_EDOTAGCSessionNeed_GameServerRelay = 203; + k_EDOTAGCSessionNeed_GameServerLocalUpload = 204; +} + +enum EDOTAMatchPlayerTimeCustomStat { + k_EDOTA_MatchPlayerTimeCustomStat_HPRegenUnderT1Towers = 1; + k_EDOTA_MatchPlayerTimeCustomStat_MagicDamageReducedWithNewFormula_Absolute = 2; + k_EDOTA_MatchPlayerTimeCustomStat_MagicDamageReducedWithNewFormula_PercentOfTotalHP = 3; +} + +enum DOTA_TournamentEvents { + TE_FIRST_BLOOD = 0; + TE_GAME_END = 1; + TE_MULTI_KILL = 2; + TE_HERO_DENY = 3; + TE_AEGIS_DENY = 4; + TE_AEGIS_STOLEN = 5; + TE_GODLIKE = 6; + TE_COURIER_KILL = 7; + TE_ECHOSLAM = 8; + TE_RAPIER = 9; + TE_EARLY_ROSHAN = 10; + TE_BLACK_HOLE = 11; +} + +enum EBroadcastTimelineEvent { + EBroadcastTimelineEvent_MatchStarted = 1; + EBroadcastTimelineEvent_GameStateChanged = 2; + EBroadcastTimelineEvent_TowerDeath = 3; + EBroadcastTimelineEvent_BarracksDeath = 4; + EBroadcastTimelineEvent_AncientDeath = 5; + EBroadcastTimelineEvent_RoshanDeath = 6; + EBroadcastTimelineEvent_HeroDeath = 7; + EBroadcastTimelineEvent_TeamFight = 8; + EBroadcastTimelineEvent_FirstBlood = 9; +} + +enum ECustomGameWhitelistState { + CUSTOM_GAME_WHITELIST_STATE_UNKNOWN = 0; + CUSTOM_GAME_WHITELIST_STATE_APPROVED = 1; + CUSTOM_GAME_WHITELIST_STATE_REJECTED = 2; +} + +enum EDOTATriviaQuestionCategory { + k_EDOTATriviaQuestionCategory_AbilityIcon = 0; + k_EDOTATriviaQuestionCategory_AbilityCooldown = 1; + k_EDOTATriviaQuestionCategory_HeroAttributes = 2; + k_EDOTATriviaQuestionCategory_HeroMovementSpeed = 3; + k_EDOTATriviaQuestionCategory_TalentTree = 4; + k_EDOTATriviaQuestionCategory_HeroStats = 5; + k_EDOTATriviaQuestionCategory_ItemPrice = 6; + k_EDOTATriviaQuestionCategory_AbilitySound = 7; + k_EDOTATriviaQuestionCategory_InvokerSpells = 8; + k_EDOTATriviaQuestionCategory_AbilityManaCost = 9; + k_EDOTATriviaQuestionCategory_HeroAttackSound = 10; + k_EDOTATriviaQuestionCategory_AbilityName = 11; + k_EDOTATriviaQuestionCategory_ItemComponents = 12; + k_EDOTATriviaQuestionCategory_ItemLore = 13; + k_EDOTATriviaQuestionCategory_ItemPassives = 14; + k_EDOTATriviaQuestionCategory_STATIC_QUESTIONS_END = 15; + k_EDOTATriviaQuestionCategory_DYNAMIC_QUESTIONS_START = 99; + k_EDOTATriviaQuestionCategory_Dynamic_ItemBuild = 100; +} + +enum EOverwatchConviction { + k_EOverwatchConviction_None = 0; + k_EOverwatchConviction_NotGuilty = 1; + k_EOverwatchConviction_GuiltUnclear = 2; + k_EOverwatchConviction_Guilty = 3; +} + +enum EHeroRelicRarity { + HERO_RELIC_RARITY_INVALID = -1; + HERO_RELIC_RARITY_COMMON = 0; + HERO_RELIC_RARITY_RARE = 1; +} + +enum EStickerbookAuditAction { + STICKERBOOK_AUDIT_CREATE_PAGE = 0; + STICKERBOOK_AUDIT_DELETE_PAGE = 1; + STICKERBOOK_AUDIT_STICK_STICKERS = 2; + STICKERBOOK_AUDIT_REPLACE_STICKERS = 3; + STICKERBOOK_AUDIT_HERO_STICKER = 4; +} + +enum EStickerbookPageType { + STICKER_PAGE_GENERIC = 0; + STICKER_PAGE_TEAM = 1; + STICKER_PAGE_TALENT = 2; +} + +enum ENewBloomGiftingResponse { + kENewBloomGifting_Success = 0; + kENewBloomGifting_UnknownFailure = 1; + kENewBloomGifting_MalformedRequest = 2; + kENewBloomGifting_FeatureDisabled = 3; + kENewBloomGifting_ItemNotFound = 4; + kENewBloomGifting_PlayerNotAllowedToGiveGifts = 5; + kENewBloomGifting_TargetNotAllowedToReceiveGifts = 6; + kENewBloomGifting_ServerNotAuthorized = 100; + kENewBloomGifting_PlayerNotInLobby = 101; + kENewBloomGifting_TargetNotInLobby = 102; + kENewBloomGifting_LobbyNotEligible = 103; + kENewBloomGifting_TargetNotFriend = 200; + kENewBloomGifting_TargetFriendDurationTooShort = 201; +} + +message CSODOTAGameAccountClient { + message RoleHandicap { + optional uint32 role = 1; + optional float handicap = 2; + } + + optional uint32 account_id = 1 [(key_field) = true]; + optional uint32 wins = 3; + optional uint32 losses = 4; + optional uint32 xp = 12; + optional uint32 level = 13; + optional uint32 initial_skill = 14; + optional uint32 leaver_count = 15; + optional uint32 secondary_leaver_count = 58; + optional uint32 low_priority_until_date = 18; + optional uint32 prevent_text_chat_until_date = 20; + optional uint32 prevent_voice_until_date = 21; + optional uint32 prevent_public_text_chat_until_date = 86; + optional uint32 prevent_new_player_chat_until_date = 122; + optional uint32 last_abandoned_game_date = 22; + optional uint32 last_secondary_abandoned_game_date = 59; + optional uint32 leaver_penalty_count = 23; + optional uint32 completed_game_streak = 24; + optional uint32 account_disabled_until_date = 38; + optional uint32 account_disabled_count = 39; + optional uint32 match_disabled_until_date = 41; + optional uint32 match_disabled_count = 42; + optional uint32 shutdownlawterminatetimestamp = 47; + optional uint32 low_priority_games_remaining = 48; + optional uint32 recruitment_level = 55; + optional bool has_new_notifications = 56; + optional bool is_league_admin = 57; + optional uint32 casual_games_played = 60; + optional uint32 solo_competitive_games_played = 61; + optional uint32 party_competitive_games_played = 62; + optional uint32 casual_1v1_games_played = 65; + optional int32 curr_all_hero_challenge_id = 67; + optional uint32 play_time_points = 68; + optional uint32 account_flags = 69; + optional uint32 play_time_level = 70; + optional uint32 player_behavior_seq_num_last_report = 71; + optional uint32 player_behavior_score_last_report = 72; + optional bool player_behavior_report_old_data = 73; + optional uint32 tourney_skill_level = 74; + optional uint32 tourney_recent_participation_date = 85; + optional uint64 anchored_phone_number_id = 88; + optional uint32 ranked_matchmaking_ban_until_date = 89; + optional uint32 recent_game_time_1 = 90; + optional uint32 recent_game_time_2 = 91; + optional uint32 recent_game_time_3 = 92; + optional uint64 favorite_team_packed = 103; + optional uint32 recent_report_time = 104; + optional uint32 custom_game_disabled_until_date = 105; + optional uint32 recent_win_time_1 = 106; + optional uint32 recent_win_time_2 = 107; + optional uint32 recent_win_time_3 = 108; + optional uint32 coach_rating = 109; + optional uint32 queue_points = 114; + repeated .CSODOTAGameAccountClient.RoleHandicap role_handicaps = 115; + optional uint32 event_mode_recent_time = 120; + optional uint32 mmr_recalibration_time = 121; + repeated int32 banned_hero_ids = 123; +} + +message CSODOTAGameAccountPlus { + optional uint32 account_id = 1 [(key_field) = true]; + optional uint32 original_start_date = 2; + optional uint32 plus_flags = 3; + optional uint32 plus_status = 4; + optional uint32 prepaid_time_start = 5; + optional uint32 prepaid_time_balance = 6; + optional fixed32 next_payment_date = 7; + optional fixed64 steam_agreement_id = 8; +} + +message CSODOTAChatWheel { + optional uint32 message_id = 1 [default = 4294967295, (key_field) = true]; +} + +message CMsgLobbyFeaturedGamemodeProgress { + message AccountProgress { + optional uint32 account_id = 1; + optional uint32 current_value = 2; + optional uint32 max_value = 3; + } + + repeated .CMsgLobbyFeaturedGamemodeProgress.AccountProgress accounts = 1; +} + +message CMsgBattleCupVictory { + optional uint32 account_id = 1; + optional uint32 win_date = 2; + optional uint32 valid_until = 3; + optional uint32 skill_level = 4; + optional uint32 tournament_id = 5; + optional uint32 division_id = 6; + optional uint32 team_id = 7; + optional uint32 streak = 8; + optional uint32 trophy_id = 9; +} + +message CMsgLobbyBattleCupVictoryList { + repeated .CMsgBattleCupVictory winners = 1; +} + +message CMsgDOTABroadcastNotification { + optional string message = 1; +} + +message CProtoItemHeroStatue { + optional int32 hero_id = 1; + optional uint32 status_effect_index = 2; + optional string sequence_name = 3; + optional float cycle = 4; + repeated uint32 wearable = 5; + optional string inscription = 6; + repeated uint32 style = 7; + optional bool tournament_drop = 8; +} + +message CMatchPlayerAbilityUpgrade { + optional int32 ability = 1 [default = -1]; + optional uint32 time = 2; +} + +message CMatchPlayerTimedCustomStat { + optional .EDOTAMatchPlayerTimeCustomStat stat = 2 [default = k_EDOTA_MatchPlayerTimeCustomStat_HPRegenUnderT1Towers]; + optional float value = 3; +} + +message CMatchPlayerTimedStats { + optional uint32 time = 1; + optional uint32 kills = 2; + optional uint32 deaths = 3; + optional uint32 assists = 4; + optional uint32 net_worth = 5; + optional uint32 xp = 6; + optional uint32 last_hits = 7; + optional uint32 denies = 8; + optional uint32 bounty_rune_gold = 9; + optional uint32 range_creep_upgrade_gold = 10; + optional uint32 observer_wards_dewarded = 11; + optional uint32 reliable_gold_earned = 12; + optional uint32 gold_loss_prevented = 13; + optional uint32 hero_kill_gold = 14; + optional uint32 creep_kill_gold = 15; + optional uint32 building_gold = 16; + optional uint32 other_gold = 17; + optional uint32 comeback_gold = 18; + optional uint32 experimental_gold = 19; + optional uint32 experimental2_gold = 20; + optional uint32 creep_deny_gold = 21; + optional uint32 tp_scrolls_purchased_1 = 22; + optional uint32 tp_scrolls_purchased_2 = 23; + optional uint32 tp_scrolls_purchased_3 = 24; + optional uint32 tp_scrolls_purchased_4 = 25; + optional uint32 tp_scrolls_purchased_5 = 26; + optional uint32 neutral_gold = 27; + optional uint32 courier_gold = 28; + optional uint32 roshan_gold = 29; + optional uint32 income_gold = 30; + optional uint32 item_value = 36; + optional uint32 support_gold_spent = 37; + optional uint32 camps_stacked = 38; + optional uint32 wards_placed = 39; + optional uint32 triple_kills = 40; + optional uint32 rampages = 41; + repeated .CMatchPlayerTimedCustomStat custom_stats = 42; +} + +message CMatchTeamTimedStats { + optional uint32 time = 1; + optional uint32 enemy_towers_killed = 2; + optional uint32 enemy_barracks_killed = 3; + optional uint32 enemy_towers_status = 4; + optional uint32 enemy_barracks_status = 5; +} + +message CMatchAdditionalUnitInventory { + optional string unit_name = 1; + repeated int32 items = 2; +} + +message CMatchPlayerPermanentBuff { + optional uint32 permanent_buff = 1; + optional uint32 stack_count = 2; + optional uint32 grant_time = 3; +} + +message CMatchHeroSelectEvent { + optional bool is_pick = 1; + optional uint32 team = 2; + optional int32 hero_id = 3; +} + +message CMatchClip { + optional uint64 match_id = 1; + optional uint32 player_account_id = 2; + optional uint32 game_time_seconds = 3; + optional uint32 duration_seconds = 4; + optional uint32 player_id = 5; + optional int32 hero_id = 6; + optional int32 ability_id = 7 [default = -1]; + optional uint32 camera_mode = 8; + optional string comment = 9; +} + +message CPartySearchClientParty { + optional fixed64 party_id = 1; + optional int32 beacon_type = 2; + repeated fixed32 party_members = 3; +} + +message CMsgDOTAHasItemQuery { + optional uint32 account_id = 1; + optional uint64 item_id = 2; +} + +message CMsgDOTAHasItemResponse { + optional bool has_item = 1; +} + +message CMsgGCGetPlayerCardItemInfo { + optional uint32 account_id = 1; + repeated uint64 player_card_item_ids = 2; + optional uint32 all_for_event = 3; +} + +message CMsgGCGetPlayerCardItemInfoResponse { + message PlayerCardInfo { + optional uint64 player_card_item_id = 1; + optional uint32 account_id = 2; + optional uint64 packed_bonuses = 3; + } + + repeated .CMsgGCGetPlayerCardItemInfoResponse.PlayerCardInfo player_card_infos = 1; +} + +message CSODOTAMapLocationState { + optional uint32 account_id = 1 [(key_field) = true]; + optional int32 location_id = 2 [(key_field) = true]; + optional bool completed = 3; +} + +message CMsgLeagueAdminList { + repeated uint32 account_ids = 1; +} + +message CMsgDOTAProfileCard { + message Slot { + message Trophy { + optional uint32 trophy_id = 1; + optional uint32 trophy_score = 2; + } + + message Stat { + optional .CMsgDOTAProfileCard.EStatID stat_id = 1 [default = k_eStat_Wins]; + optional uint32 stat_score = 2; + } + + message Item { + optional bytes serialized_item = 1; + optional uint64 item_id = 2; + } + + message Hero { + optional int32 hero_id = 1; + optional uint32 hero_wins = 2; + optional uint32 hero_losses = 3; + } + + message Emoticon { + optional uint32 emoticon_id = 1; + } + + message Team { + optional uint32 team_id = 1; + } + + optional uint32 slot_id = 1; + optional .CMsgDOTAProfileCard.Slot.Trophy trophy = 2; + optional .CMsgDOTAProfileCard.Slot.Stat stat = 3; + optional .CMsgDOTAProfileCard.Slot.Item item = 4; + optional .CMsgDOTAProfileCard.Slot.Hero hero = 5; + optional .CMsgDOTAProfileCard.Slot.Emoticon emoticon = 6; + optional .CMsgDOTAProfileCard.Slot.Team team = 7; + } + + enum EStatID { + k_eStat_Wins = 3; + k_eStat_Commends = 4; + k_eStat_GamesPlayed = 5; + k_eStat_FirstMatchDate = 6; + k_eStat_PreviousSeasonRank = 7; + k_eStat_GamesMVP = 8; + } + + optional uint32 account_id = 1; + repeated .CMsgDOTAProfileCard.Slot slots = 3; + optional uint32 badge_points = 4; + optional uint32 event_id = 6; + optional .CMsgBattleCupVictory recent_battle_cup_victory = 7; + optional uint32 rank_tier = 8; + optional uint32 leaderboard_rank = 9; + optional bool is_plus_subscriber = 10; + optional uint32 plus_original_start_date = 11; + optional uint32 rank_tier_score = 12; + optional uint32 leaderboard_rank_core = 17; + optional uint32 title = 23; + optional uint64 favorite_team_packed = 24; + optional uint32 lifetime_games = 25; + optional uint32 event_level = 26; +} + +message CSODOTAPlayerChallenge { + optional uint32 account_id = 1 [(key_field) = true]; + optional uint32 event_id = 2 [(key_field) = true]; + optional uint32 slot_id = 3 [(key_field) = true]; + optional uint32 int_param_0 = 5; + optional uint32 int_param_1 = 6; + optional uint32 created_time = 7; + optional uint32 completed = 8; + optional uint32 sequence_id = 9; + optional uint32 challenge_tier = 10; + optional uint32 flags = 11; + optional uint32 attempts = 12; + optional uint32 complete_limit = 13; + optional uint32 quest_rank = 14; + optional uint32 max_quest_rank = 15; + optional uint32 instance_id = 16; + optional int32 hero_id = 17; + optional uint32 template_id = 18; +} + +message CMsgClientToGCRerollPlayerChallenge { + optional .EEvent event_id = 1 [default = EVENT_ID_NONE]; + optional uint32 sequence_id = 3; + optional int32 hero_id = 4; +} + +message CMsgGCRerollPlayerChallengeResponse { + enum EResult { + eResult_Success = 0; + eResult_Dropped = 1; + eResult_NotFound = 2; + eResult_CantReroll = 3; + eResult_ServerError = 4; + } + + optional .CMsgGCRerollPlayerChallengeResponse.EResult result = 1 [default = eResult_Success]; +} + +message CMsgGCTopCustomGamesList { + repeated uint64 top_custom_games = 1; + optional uint64 game_of_the_day = 2; +} + +message CMsgDOTARealtimeGameStats { + message TeamDetails { + optional uint32 team_number = 1; + optional uint32 team_id = 2; + optional string team_name = 3; + optional fixed64 team_logo = 4; + optional string team_tag = 10; + optional uint32 score = 5; + optional uint32 net_worth = 9; + repeated .CMsgDOTARealtimeGameStats.PlayerDetails players = 6; + optional bool only_team = 7; + optional uint32 cheers = 8; + optional string team_logo_url = 11; + } + + message ItemDetails { + optional int32 item_ability_id = 1 [default = -1]; + optional string name = 2; + optional int32 time = 3; + optional bool sold = 4; + optional uint32 stackcount = 5; + } + + message AbilityDetails { + optional int32 id = 1 [default = -1]; + optional string name = 2; + optional uint32 level = 3; + optional float cooldown = 4; + optional float cooldown_max = 5; + } + + message HeroToHeroStats { + optional int32 victimid = 1 [default = -1]; + optional uint32 kills = 2; + optional uint32 assists = 3; + } + + message AbilityList { + repeated int32 id = 1; + } + + message PlayerDetails { + optional uint32 accountid = 1; + optional int32 playerid = 2 [default = -1]; + optional string name = 3; + optional uint32 team = 4; + optional int32 heroid = 5; + optional uint32 healthpoints = 6; + optional uint32 maxhealthpoints = 7; + optional float healthregenrate = 8; + optional uint32 manapoints = 9; + optional uint32 maxmanapoints = 10; + optional float manaregenrate = 11; + optional uint32 base_strength = 12; + optional uint32 base_agility = 13; + optional uint32 base_intelligence = 14; + optional int32 base_armor = 15; + optional uint32 base_movespeed = 16; + optional uint32 base_damage = 17; + optional uint32 strength = 18; + optional uint32 agility = 19; + optional uint32 intelligence = 20; + optional int32 armor = 21; + optional uint32 movespeed = 22; + optional uint32 damage = 23; + optional uint32 hero_damage = 24; + optional uint32 tower_damage = 25; + repeated .CMsgDOTARealtimeGameStats.AbilityDetails abilities = 26; + optional uint32 level = 27; + optional uint32 kill_count = 28; + optional uint32 death_count = 29; + optional uint32 assists_count = 30; + optional uint32 denies_count = 31; + optional uint32 lh_count = 32; + optional uint32 hero_healing = 33; + optional uint32 gold_per_min = 34; + optional uint32 xp_per_min = 35; + optional uint32 net_gold = 36; + optional uint32 gold = 37; + optional float x = 38; + optional float y = 39; + optional int32 respawn_time = 40; + optional uint32 ultimate_cooldown = 41; + optional bool has_buyback = 42; + repeated .CMsgDOTARealtimeGameStats.ItemDetails items = 43; + repeated .CMsgDOTARealtimeGameStats.ItemDetails stashitems = 44; + repeated .CMsgDOTARealtimeGameStats.ItemDetails itemshoppinglist = 45; + repeated .CMsgDOTARealtimeGameStats.AbilityList levelpoints = 46; + repeated .CMsgDOTARealtimeGameStats.HeroToHeroStats hero_to_hero_stats = 47; + optional bool has_ultimate = 48; + optional bool has_ultimate_mana = 49; + optional uint32 team_slot = 50; + } + + message BuildingDetails { + optional uint32 team = 2; + optional float heading = 3; + optional uint32 lane = 4; + optional uint32 tier = 5; + optional uint32 type = 6; + optional float x = 7; + optional float y = 8; + optional bool destroyed = 9; + } + + message KillDetails { + optional int32 player_id = 1 [default = -1]; + optional int32 death_time = 2; + optional int32 killer_player_id = 3 [default = -1]; + } + + message BroadcasterDetails { + optional int32 player_id = 1 [default = -1]; + } + + message PickBanDetails { + optional int32 hero = 1; + optional uint32 team = 2; + } + + message MatchDetails { + optional fixed64 server_steam_id = 1; + optional uint64 match_id = 2; + optional uint32 timestamp = 3; + optional float time_of_day = 4; + optional bool is_nightstalker_night = 5; + optional int32 game_time = 6; + optional uint32 game_state = 19; + optional uint32 teamid_radiant = 8; + optional uint32 teamid_dire = 9; + repeated .CMsgDOTARealtimeGameStats.PickBanDetails picks = 10; + repeated .CMsgDOTARealtimeGameStats.PickBanDetails bans = 11; + repeated .CMsgDOTARealtimeGameStats.KillDetails kills = 12; + repeated .CMsgDOTARealtimeGameStats.BroadcasterDetails broadcasters = 13; + optional uint32 game_mode = 14; + optional uint32 league_id = 15; + optional uint32 league_node_id = 18; + optional bool single_team = 16; + optional uint32 cheers_peak = 17; + optional uint32 lobby_type = 20; + optional uint32 start_timestamp = 21; + } + + message GraphData { + message LocationStats { + repeated int32 stats = 1; + } + + message TeamLocationStats { + repeated .CMsgDOTARealtimeGameStats.GraphData.LocationStats loc_stats = 1; + } + + enum eStat { + CreepGoldEarned = 0; + KillGoldEarned = 1; + DeathAndBuybackGoldLost = 2; + XPEarned = 3; + } + + enum eLocation { + BotLane = 0; + MidLane = 1; + TopLane = 2; + Jungle = 3; + Ancients = 4; + Other = 5; + } + + repeated int32 graph_gold = 1; + repeated int32 graph_xp = 2; + repeated int32 graph_kill = 3; + repeated int32 graph_tower = 4; + repeated int32 graph_rax = 5; + repeated .CMsgDOTARealtimeGameStats.GraphData.TeamLocationStats team_loc_stats = 6; + } + + optional .CMsgDOTARealtimeGameStats.MatchDetails match = 1; + repeated .CMsgDOTARealtimeGameStats.TeamDetails teams = 2; + repeated .CMsgDOTARealtimeGameStats.BuildingDetails buildings = 3; + optional .CMsgDOTARealtimeGameStats.GraphData graph_data = 4; + optional bool delta_frame = 5; +} + +message CMsgDOTARealtimeGameStatsTerse { + message TeamDetails { + optional uint32 team_number = 1; + optional uint32 team_id = 2; + optional string team_name = 3; + optional string team_tag = 8; + optional fixed64 team_logo = 4; + optional uint32 score = 5; + optional uint32 net_worth = 7; + optional string team_logo_url = 9; + repeated .CMsgDOTARealtimeGameStatsTerse.PlayerDetails players = 6; + } + + message PlayerDetails { + optional uint32 accountid = 1; + optional int32 playerid = 2 [default = -1]; + optional string name = 3; + optional uint32 team = 4; + optional int32 heroid = 5; + optional uint32 level = 6; + optional uint32 kill_count = 7; + optional uint32 death_count = 8; + optional uint32 assists_count = 9; + optional uint32 denies_count = 10; + optional uint32 lh_count = 11; + optional uint32 gold = 12; + optional float x = 13; + optional float y = 14; + optional uint32 net_worth = 15; + repeated int32 abilities = 16; + repeated int32 items = 17; + optional uint32 team_slot = 18; + } + + message BuildingDetails { + optional uint32 team = 1; + optional float heading = 2; + optional uint32 type = 3; + optional uint32 lane = 4; + optional uint32 tier = 5; + optional float x = 6; + optional float y = 7; + optional bool destroyed = 8; + } + + message PickBanDetails { + optional int32 hero = 1; + optional uint32 team = 2; + } + + message MatchDetails { + optional fixed64 server_steam_id = 1; + optional uint64 match_id = 2; + optional uint32 timestamp = 3; + optional int32 game_time = 4; + repeated uint32 steam_broadcaster_account_ids = 6; + optional uint32 game_mode = 7; + optional uint32 league_id = 8; + optional uint32 league_node_id = 9; + optional uint32 game_state = 10; + repeated .CMsgDOTARealtimeGameStatsTerse.PickBanDetails picks = 11; + repeated .CMsgDOTARealtimeGameStatsTerse.PickBanDetails bans = 12; + optional uint32 lobby_type = 13; + optional uint32 start_timestamp = 14; + } + + message GraphData { + repeated int32 graph_gold = 1; + } + + optional .CMsgDOTARealtimeGameStatsTerse.MatchDetails match = 1; + repeated .CMsgDOTARealtimeGameStatsTerse.TeamDetails teams = 2; + repeated .CMsgDOTARealtimeGameStatsTerse.BuildingDetails buildings = 3; + optional .CMsgDOTARealtimeGameStatsTerse.GraphData graph_data = 4; + optional bool delta_frame = 5; +} + +message CMsgDOTABroadcastTimelineEvent { + optional .EBroadcastTimelineEvent event = 1 [default = EBroadcastTimelineEvent_MatchStarted]; + optional fixed32 timestamp = 2; + optional uint32 data = 3; + optional string string_data = 4; +} + +message CMsgGCToClientMatchGroupsVersion { + optional uint32 matchgroups_version = 1; +} + +message CMsgDOTASDOHeroStatsHistory { + optional uint64 match_id = 1; + optional uint32 game_mode = 2; + optional uint32 lobby_type = 3; + optional uint32 start_time = 4; + optional bool won = 5; + optional uint32 gpm = 6; + optional uint32 xpm = 7; + optional uint32 kills = 8; + optional uint32 deaths = 9; + optional uint32 assists = 10; +} + +message CMsgPredictionChoice { + optional uint32 value = 1; + optional string name = 2; + optional uint32 min_raw_value = 3; + optional uint32 max_raw_value = 4; +} + +message CMsgInGamePrediction { + message QueryKeyValues { + optional string name = 1; + optional string value = 2; + } + + enum ERawValueType_t { + Number = 0; + Time = 1; + } + + enum EPredictionType { + Generic = 0; + Hero = 1; + Team = 2; + Player = 3; + Special = 4; + YesNo = 5; + QualifiersTeam = 6; + } + + enum EResolutionType_t { + InvalidQuery = 0; + FirstToPassQuery = 1; + LastToPassQuery = 2; + LastRemainingQuery = 3; + MaxToPassQuery = 4; + MinToPassQuery = 5; + SumQuery = 6; + MaxTeamSumToPassQuery = 7; + MinTeamSumToPassQuery = 8; + } + + enum ERandomSelectionGroup_t { + EarlyGame = 0; + MidGame = 1; + LateGame = 2; + Count = 3; + } + + optional uint32 id = 1; + optional string name = 2; + optional .CMsgInGamePrediction.EPredictionType type = 3 [default = Generic]; + optional .CMsgInGamePrediction.ERandomSelectionGroup_t group = 4 [default = EarlyGame]; + optional string question = 5; + repeated .CMsgPredictionChoice choices = 6; + repeated string required_heroes = 7; + optional string query_name = 8; + repeated .CMsgInGamePrediction.QueryKeyValues query_values = 9; + optional .CMsgInGamePrediction.EResolutionType_t answer_resolution_type = 10 [default = InvalidQuery]; + optional uint32 points_to_grant = 11; + optional uint32 reward_action = 12; + optional uint32 debug_force_selection = 13; + optional .CMsgInGamePrediction.ERawValueType_t raw_value_type = 14 [default = Number]; +} + +message CMsgDOTASeasonPredictions { + message Prediction { + message Answers { + optional uint32 answer_id = 1; + } + + enum EPredictionType { + Generic = 0; + Hero = 1; + Team = 2; + Player = 3; + Special = 4; + YesNo = 5; + QualifiersTeam = 6; + LastChanceTeam = 7; + } + + enum EAnswerType { + SingleInt = 0; + SingleFloat = 1; + MultipleInt = 2; + MultipleFloat = 3; + AnswerTeam = 4; + SingleTime = 5; + MultipleTime = 6; + NoAnswer = 7; + } + + optional .CMsgDOTASeasonPredictions.Prediction.EPredictionType type = 1 [default = Generic]; + optional string question = 2; + repeated .CMsgPredictionChoice choices = 3; + optional uint32 selection_id = 4; + optional uint32 start_date = 5; + optional uint32 lock_date = 6; + optional uint32 reward = 7; + optional .CMsgDOTASeasonPredictions.Prediction.EAnswerType answer_type = 8 [default = SingleInt]; + optional uint32 answer_id = 9; + repeated .CMsgDOTASeasonPredictions.Prediction.Answers answers = 10; + optional string query_name = 11; + optional uint32 lock_on_selection_id = 13; + optional uint32 lock_on_selection_value = 14; + optional bool lock_on_selection_set = 15; + optional bool use_answer_value_ranges = 16; + optional .ELeagueRegion region = 17 [default = LEAGUE_REGION_UNSET]; + repeated .ELeaguePhase phases = 18; + optional .EEvent reward_event = 19 [default = EVENT_ID_NONE]; + optional uint32 league_node_id = 20; + } + + repeated .CMsgDOTASeasonPredictions.Prediction predictions = 1; + repeated .CMsgInGamePrediction in_game_predictions = 2; + optional uint32 in_game_prediction_count_per_game = 3; + optional uint32 in_game_prediction_voting_period_minutes = 4; +} + +message CMsgAvailablePredictions { + message MatchPrediction { + optional uint64 match_id = 1; + repeated .CMsgInGamePrediction predictions = 2; + } + + repeated .CMsgAvailablePredictions.MatchPrediction match_predictions = 1; +} + +message CMsgLeagueWatchedGames { + message Series { + optional uint32 node_id = 1; + repeated uint32 game = 2; + } + + message League { + optional uint32 league_id = 1; + repeated .CMsgLeagueWatchedGames.Series series = 2; + } + + repeated .CMsgLeagueWatchedGames.League leagues = 1; +} + +message CMsgDOTAMatch { + message Player { + message CustomGameData { + optional uint32 dota_team = 1; + optional bool winner = 2; + } + + message HeroDamageReceived { + optional uint32 pre_reduction = 1; + optional uint32 post_reduction = 2; + optional .CMsgDOTAMatch.Player.HeroDamageType damage_type = 3 [default = HERO_DAMAGE_PHYSICAL]; + } + + enum HeroDamageType { + HERO_DAMAGE_PHYSICAL = 0; + HERO_DAMAGE_MAGICAL = 1; + HERO_DAMAGE_PURE = 2; + } + + optional uint32 account_id = 1; + optional uint32 player_slot = 2; + optional int32 hero_id = 3; + optional int32 item_0 = 4 [default = -1]; + optional int32 item_1 = 5 [default = -1]; + optional int32 item_2 = 6 [default = -1]; + optional int32 item_3 = 7 [default = -1]; + optional int32 item_4 = 8 [default = -1]; + optional int32 item_5 = 9 [default = -1]; + optional int32 item_6 = 59 [default = -1]; + optional int32 item_7 = 60 [default = -1]; + optional int32 item_8 = 61 [default = -1]; + optional int32 item_9 = 76 [default = -1]; + optional float expected_team_contribution = 10; + optional float scaled_metric = 11; + optional uint32 previous_rank = 12; + optional sint32 rank_change = 13; + optional uint32 mmr_type = 74; + optional uint32 kills = 14; + optional uint32 deaths = 15; + optional uint32 assists = 16; + optional uint32 leaver_status = 17; + optional uint32 gold = 18; + optional uint32 last_hits = 19; + optional uint32 denies = 20; + optional uint32 gold_per_min = 21; + optional uint32 xp_per_min = 22; + optional uint32 gold_spent = 23; + optional uint32 hero_damage = 24; + optional uint32 tower_damage = 25; + optional uint32 hero_healing = 26; + optional uint32 level = 27; + optional uint32 time_last_seen = 28; + optional string player_name = 29; + optional uint32 support_ability_value = 30; + optional bool feeding_detected = 32; + optional uint32 search_rank = 34; + optional uint32 search_rank_uncertainty = 35; + optional int32 rank_uncertainty_change = 36; + optional uint32 hero_play_count = 37; + optional fixed64 party_id = 38; + optional uint32 scaled_hero_damage = 54; + optional uint32 scaled_tower_damage = 55; + optional uint32 scaled_hero_healing = 56; + optional float scaled_kills = 39; + optional float scaled_deaths = 40; + optional float scaled_assists = 41; + optional uint32 claimed_farm_gold = 42; + optional uint32 support_gold = 43; + optional uint32 claimed_denies = 44; + optional uint32 claimed_misses = 45; + optional uint32 misses = 46; + repeated .CMatchPlayerAbilityUpgrade ability_upgrades = 47; + repeated .CMatchAdditionalUnitInventory additional_units_inventory = 48; + repeated .CMatchPlayerPermanentBuff permanent_buffs = 57; + optional string pro_name = 72; + optional string real_name = 73; + optional .CMsgDOTAMatch.Player.CustomGameData custom_game_data = 50; + optional bool active_plus_subscription = 51; + optional uint32 net_worth = 52; + optional uint32 bot_difficulty = 58; + optional uint32 hero_pick_order = 63; + optional bool hero_was_randomed = 64; + optional bool hero_was_dota_plus_suggestion = 69; + repeated .CMsgDOTAMatch.Player.HeroDamageReceived hero_damage_received = 67; + repeated .CMsgDOTAMatch.Player.HeroDamageReceived hero_damage_dealt = 79; + optional uint32 seconds_dead = 70; + optional uint32 gold_lost_to_death = 71; + optional uint32 lane_selection_flags = 75; + optional uint32 bounty_runes = 77; + optional uint32 outposts_captured = 78; + optional .DOTA_GC_TEAM team_number = 80 [default = DOTA_GC_TEAM_GOOD_GUYS]; + optional uint32 team_slot = 81; + optional uint32 selected_facet = 82; + } + + message BroadcasterInfo { + optional uint32 account_id = 1; + optional string name = 2; + } + + message BroadcasterChannel { + optional string country_code = 1; + optional string description = 2; + repeated .CMsgDOTAMatch.BroadcasterInfo broadcaster_infos = 3; + optional string language_code = 4; + } + + message Coach { + optional uint32 account_id = 1; + optional string coach_name = 2; + optional uint32 coach_rating = 3; + optional uint32 coach_team = 4; + optional uint64 coach_party_id = 5; + optional bool is_private_coach = 6; + } + + message CustomGameData { + optional uint64 custom_game_id = 1; + optional string map_name = 2; + } + + enum ReplayState { + REPLAY_AVAILABLE = 0; + REPLAY_NOT_RECORDED = 1; + REPLAY_EXPIRED = 2; + } + + optional uint32 duration = 3; + optional fixed32 starttime = 4; + repeated .CMsgDOTAMatch.Player players = 5; + optional uint64 match_id = 6; + repeated uint32 tower_status = 8; + repeated uint32 barracks_status = 9; + optional uint32 cluster = 10; + optional uint32 first_blood_time = 12; + optional fixed32 replay_salt = 13; + optional fixed32 server_ip = 14; + optional uint32 server_port = 15; + optional uint32 lobby_type = 16; + optional uint32 human_players = 17; + optional uint32 average_skill = 18; + optional float game_balance = 19; + optional uint32 radiant_team_id = 20; + optional uint32 dire_team_id = 21; + optional uint32 leagueid = 22; + optional string radiant_team_name = 23; + optional string dire_team_name = 24; + optional uint64 radiant_team_logo = 25; + optional uint64 dire_team_logo = 26; + optional string radiant_team_logo_url = 54; + optional string dire_team_logo_url = 55; + optional uint32 radiant_team_complete = 27; + optional uint32 dire_team_complete = 28; + optional .DOTA_GameMode game_mode = 31 [default = DOTA_GAMEMODE_NONE]; + repeated .CMatchHeroSelectEvent picks_bans = 32; + optional uint64 match_seq_num = 33; + optional .CMsgDOTAMatch.ReplayState replay_state = 34 [default = REPLAY_AVAILABLE]; + optional uint32 radiant_guild_id = 35; + optional uint32 dire_guild_id = 36; + optional string radiant_team_tag = 37; + optional string dire_team_tag = 38; + optional uint32 series_id = 39; + optional uint32 series_type = 40; + repeated .CMsgDOTAMatch.BroadcasterChannel broadcaster_channels = 43; + optional uint32 engine = 44; + optional .CMsgDOTAMatch.CustomGameData custom_game_data = 45; + optional uint32 match_flags = 46; + optional fixed32 private_metadata_key = 47; + optional uint32 radiant_team_score = 48; + optional uint32 dire_team_score = 49; + optional .EMatchOutcome match_outcome = 50 [default = k_EMatchOutcome_Unknown]; + optional uint32 tournament_id = 51; + optional uint32 tournament_round = 52; + optional uint32 pre_game_duration = 53; + repeated .CMsgDOTAMatch.Coach coaches = 57; +} + +message CMsgPlayerCard { + message StatModifier { + optional uint32 stat = 1; + optional uint32 value = 2; + } + + optional uint32 account_id = 1; + repeated .CMsgPlayerCard.StatModifier stat_modifier = 2; +} + +message CMsgDOTAFantasyPlayerStats { + optional uint32 player_account_id = 1; + optional uint64 match_id = 2; + optional bool match_completed = 3; + optional uint32 team_id = 4; + optional uint32 league_id = 5; + optional uint32 delay = 6; + optional uint32 series_id = 7; + optional uint32 series_type = 8; + optional uint32 kills = 10; + optional uint32 deaths = 11; + optional uint32 cs = 12; + optional float gpm = 13; + optional uint32 tower_kills = 14; + optional uint32 roshan_kills = 15; + optional float teamfight_participation = 16; + optional uint32 wards_placed = 17; + optional uint32 camps_stacked = 18; + optional uint32 runes_grabbed = 19; + optional uint32 first_blood = 20; + optional float stuns = 21; + optional uint32 smokes = 22; + optional uint32 neutral_tokens = 23; + optional uint32 watchers = 24; + optional uint32 lotuses = 25; + optional uint32 tormentors = 26; + optional uint32 courier_kills = 27; + optional fixed64 title_stats = 28; +} + +message CMsgDOTAFantasyPlayerMatchStats { + repeated .CMsgDOTAFantasyPlayerStats matches = 1; +} + +message CMsgDOTABotDebugInfo { + message Bot { + message Mode { + optional uint32 mode_id = 1; + optional float desire = 2; + optional int32 target_entity = 3 [default = -1]; + optional uint32 target_x = 4; + optional uint32 target_y = 5; + optional uint32 target_z = 6; + } + + message Action { + optional uint32 action_id = 1; + optional string action_target = 2; + } + + optional int32 player_owner_id = 1 [default = -1]; + optional int32 hero_id = 2; + optional uint32 difficulty = 3; + optional uint32 power_current = 4; + optional uint32 power_max = 5; + optional uint32 move_target_x = 6; + optional uint32 move_target_y = 7; + optional uint32 move_target_z = 8; + optional uint32 active_mode_id = 9; + optional float execution_time = 10; + repeated .CMsgDOTABotDebugInfo.Bot.Mode modes = 11; + optional .CMsgDOTABotDebugInfo.Bot.Action action = 12; + } + + repeated .CMsgDOTABotDebugInfo.Bot bots = 1; + optional float desire_push_lane_top = 2; + optional float desire_push_lane_mid = 3; + optional float desire_push_lane_bot = 4; + optional float desire_defend_lane_top = 5; + optional float desire_defend_lane_mid = 6; + optional float desire_defend_lane_bot = 7; + optional float desire_farm_lane_top = 8; + optional float desire_farm_lane_mid = 9; + optional float desire_farm_lane_bot = 10; + optional float desire_farm_roshan = 11; + optional float execution_time = 12; + repeated uint32 rune_status = 13; +} + +message CMsgSuccessfulHero { + optional int32 hero_id = 1; + optional float win_percent = 2; + optional uint32 longest_streak = 3; +} + +message CMsgRecentMatchInfo { + optional uint64 match_id = 1; + optional .DOTA_GameMode game_mode = 2 [default = DOTA_GAMEMODE_NONE]; + optional uint32 kills = 3; + optional uint32 deaths = 4; + optional uint32 assists = 5; + optional uint32 duration = 6; + optional uint32 player_slot = 7; + optional .EMatchOutcome match_outcome = 8 [default = k_EMatchOutcome_Unknown]; + optional uint32 timestamp = 9; + optional uint32 lobby_type = 10; + optional uint32 team_number = 11; +} + +message CMsgMatchTips { + message SingleTip { + optional uint32 source_account_id = 1; + optional uint32 target_account_id = 2; + optional uint32 tip_amount = 3; + optional .EEvent event_id = 4 [default = EVENT_ID_NONE]; + } + + repeated .CMsgMatchTips.SingleTip tips = 2; +} + +message CMsgDOTAMatchMinimal { + message Player { + optional uint32 account_id = 1; + optional int32 hero_id = 2; + optional uint32 kills = 3; + optional uint32 deaths = 4; + optional uint32 assists = 5; + repeated int32 items = 6; + optional uint32 player_slot = 7; + optional string pro_name = 8; + optional uint32 level = 9; + optional .DOTA_GC_TEAM team_number = 10 [default = DOTA_GC_TEAM_GOOD_GUYS]; + } + + message Tourney { + optional uint32 league_id = 1; + optional uint32 series_type = 8; + optional uint32 series_game = 9; + optional uint32 weekend_tourney_tournament_id = 10; + optional uint32 weekend_tourney_season_trophy_id = 11; + optional uint32 weekend_tourney_division = 12; + optional uint32 weekend_tourney_skill_level = 13; + optional uint32 radiant_team_id = 2; + optional string radiant_team_name = 3; + optional fixed64 radiant_team_logo = 4; + optional string radiant_team_logo_url = 14; + optional uint32 dire_team_id = 5; + optional string dire_team_name = 6; + optional fixed64 dire_team_logo = 7; + optional string dire_team_logo_url = 15; + } + + optional uint64 match_id = 1; + optional fixed32 start_time = 2; + optional uint32 duration = 3; + optional .DOTA_GameMode game_mode = 4 [default = DOTA_GAMEMODE_NONE]; + repeated .CMsgDOTAMatchMinimal.Player players = 6; + optional .CMsgDOTAMatchMinimal.Tourney tourney = 7; + optional .EMatchOutcome match_outcome = 8 [default = k_EMatchOutcome_Unknown]; + optional uint32 radiant_score = 9; + optional uint32 dire_score = 10; + optional uint32 lobby_type = 11; +} + +message CMsgConsumableUsage { + optional uint32 item_def = 1; + optional int32 quantity_change = 2; +} + +message CMsgMatchConsumableUsage { + message PlayerUsage { + optional uint32 account_id = 1; + repeated .CMsgConsumableUsage consumables_used = 2; + } + + repeated .CMsgMatchConsumableUsage.PlayerUsage player_consumables_used = 1; +} + +message CMsgMatchEventActionGrants { + message PlayerGrants { + optional uint32 account_id = 1; + repeated .CMsgPendingEventAward actions_granted = 3; + } + + repeated .CMsgMatchEventActionGrants.PlayerGrants player_grants = 1; +} + +message CMsgCustomGameWhitelist { + optional uint32 version = 1; + repeated uint64 custom_games_whitelist = 2; + optional bool disable_whitelist = 3; +} + +message CMsgCustomGameWhitelistForEdit { + message WhitelistEntry { + optional uint64 custom_game_id = 1; + optional .ECustomGameWhitelistState whitelist_state = 2 [default = CUSTOM_GAME_WHITELIST_STATE_UNKNOWN]; + } + + repeated .CMsgCustomGameWhitelistForEdit.WhitelistEntry whitelist_entries = 1; +} + +message CMsgPlayerRecentMatchInfo { + optional uint64 match_id = 1; + optional uint32 timestamp = 2; + optional uint32 duration = 3; + optional bool win = 4; + optional int32 hero_id = 5; + optional uint32 kills = 6; + optional uint32 deaths = 7; + optional uint32 assists = 8; +} + +message CMsgPlayerMatchRecord { + optional uint32 wins = 1; + optional uint32 losses = 2; +} + +message CMsgPlayerRecentMatchOutcomes { + optional uint32 outcomes = 1; + optional uint32 match_count = 2; +} + +message CMsgPlayerRecentCommends { + optional uint32 commends = 1; + optional uint32 match_count = 2; +} + +message CMsgPlayerRecentAccomplishments { + optional .CMsgPlayerRecentMatchOutcomes recent_outcomes = 1; + optional .CMsgPlayerMatchRecord total_record = 2; + optional uint32 prediction_streak = 3; + optional uint32 plus_prediction_streak = 4; + optional .CMsgPlayerRecentCommends recent_commends = 5; + optional uint32 first_match_timestamp = 6; + optional .CMsgPlayerRecentMatchInfo last_match = 7; + optional .CMsgPlayerRecentMatchOutcomes recent_mvps = 8; +} + +message CMsgPlayerHeroRecentAccomplishments { + optional .CMsgPlayerRecentMatchOutcomes recent_outcomes = 1; + optional .CMsgPlayerMatchRecord total_record = 2; + optional .CMsgPlayerRecentMatchInfo last_match = 3; +} + +message CMsgRecentAccomplishments { + optional .CMsgPlayerRecentAccomplishments player_accomplishments = 1; + optional .CMsgPlayerHeroRecentAccomplishments hero_accomplishments = 2; +} + +message CMsgServerToGCRequestPlayerRecentAccomplishments { + optional uint32 account_id = 1; + optional int32 hero_id = 2; +} + +message CMsgServerToGCRequestPlayerRecentAccomplishmentsResponse { + enum EResponse { + k_eInternalError = 0; + k_eSuccess = 1; + k_eTooBusy = 2; + k_eDisabled = 3; + } + + optional .CMsgServerToGCRequestPlayerRecentAccomplishmentsResponse.EResponse result = 1 [default = k_eInternalError]; + optional .CMsgRecentAccomplishments player_accomplishments = 2; +} + +message CMsgArcanaVoteMatchVotes { + optional uint32 match_id = 1; + optional int32 hero_id = 2; + optional uint32 vote_count = 3; +} + +message CMsgGCtoGCAssociatedExploiterAccountInfo { + optional uint32 account_id = 1; + optional uint32 num_matches_to_search = 2; + optional uint32 min_shared_match_count = 3; + optional uint32 num_additional_players = 4; +} + +message CMsgGCtoGCAssociatedExploiterAccountInfoResponse { + message Account { + optional uint32 account_id = 1; + optional uint32 num_common_matches = 2; + optional uint32 earliest_common_match = 3; + optional uint32 latest_common_match = 4; + optional uint32 generation = 5; + optional string persona = 6; + optional bool already_banned = 7; + } + + repeated .CMsgGCtoGCAssociatedExploiterAccountInfoResponse.Account accounts = 1; +} + +message CMsgPullTabsData { + message Slot { + optional uint32 event_id = 1; + optional uint32 board_id = 2; + optional int32 hero_id = 3; + optional uint32 action_id = 4; + optional bool redeemed = 5; + } + + message Jackpot { + optional uint32 board_id = 1; + optional uint32 action_id = 2; + optional int32 hero_id = 3; + } + + repeated .CMsgPullTabsData.Slot slots = 1; + repeated .CMsgPullTabsData.Jackpot jackpots = 2; + optional uint32 last_board = 3; +} + +message CMsgUnderDraftData { + message BenchSlot { + optional uint32 slot_id = 1; + optional int32 hero_id = 2; + optional uint32 stars = 3; + } + + message ShopSlot { + optional uint32 slot_id = 1; + optional int32 hero_id = 2; + optional bool is_special_reward = 3; + } + + repeated .CMsgUnderDraftData.BenchSlot bench_slots = 1; + repeated .CMsgUnderDraftData.ShopSlot shop_slots = 2; + optional uint32 gold = 3; + optional uint32 total_gold = 4; + optional bool not_restorable = 5; +} + +message CMsgPlayerTitleData { + repeated uint32 title = 1; + repeated uint32 event_id = 2; + optional uint32 active = 3; +} + +message CMsgDOTATriviaQuestion { + optional uint32 question_id = 1; + optional .EDOTATriviaQuestionCategory category = 2 [default = k_EDOTATriviaQuestionCategory_AbilityIcon]; + optional uint32 timestamp = 3; + optional string question_value = 4; + repeated string answer_values = 5; + optional uint32 correct_answer_index = 6; +} + +message CMsgDOTATriviaQuestionAnswersSummary { + optional bool summary_available = 1; + repeated uint32 picked_count = 2; +} + +message CMsgGameDataSpecialValueBonus { + optional string name = 1; + optional float value = 2; + optional uint32 operation = 3; +} + +message CMsgGameDataSpecialValues { + optional string name = 1; + repeated float values_float = 2; + optional bool is_percentage = 4; + optional string heading_loc = 5; + repeated .CMsgGameDataSpecialValueBonus bonuses = 6; + repeated float values_shard = 7; + repeated float values_scepter = 8; + optional .CMsgGameDataFacetAbilityBonus facet_bonus = 9; + optional string required_facet = 10; +} + +message CMsgGameDataFacetAbilityBonus { + optional string name = 1; + repeated float values = 2; + optional uint32 operation = 3; +} + +message CMsgGameDataAbilityOrItem { + optional int32 id = 1 [default = -1]; + optional string name = 2; + optional string name_loc = 5; + optional string desc_loc = 6; + optional string lore_loc = 7; + repeated string notes_loc = 8; + optional string shard_loc = 9; + optional string scepter_loc = 10; + repeated string facets_loc = 11; + optional uint32 type = 20; + optional uint64 behavior = 21; + optional uint32 target_team = 22; + optional uint32 target_type = 23; + optional uint32 flags = 24; + optional uint32 damage = 25; + optional uint32 immunity = 26; + optional uint32 dispellable = 27; + optional uint32 max_level = 28; + repeated uint32 cast_ranges = 30; + repeated float cast_points = 31; + repeated float channel_times = 32; + repeated float cooldowns = 33; + repeated float durations = 34; + repeated uint32 damages = 35; + repeated uint32 mana_costs = 36; + repeated uint32 gold_costs = 37; + repeated uint32 health_costs = 38; + repeated .CMsgGameDataSpecialValues special_values = 40; + optional bool is_item = 50; + optional bool ability_has_scepter = 60; + optional bool ability_has_shard = 61; + optional bool ability_is_granted_by_scepter = 62; + optional bool ability_is_granted_by_shard = 63; + optional bool ability_is_innate = 64; + optional uint32 item_cost = 70; + optional uint32 item_initial_charges = 71; + optional uint32 item_neutral_tier = 72; + optional uint32 item_stock_max = 73; + optional float item_stock_time = 74; + optional uint32 item_quality = 85; +} + +message CMsgGameDataAbilityOrItemList { + repeated .CMsgGameDataAbilityOrItem abilities = 1; +} + +message CMsgGameDataHero { + message Facet { + optional uint32 color = 1; + optional string title_loc = 2; + optional string description_loc = 3; + optional string name = 4; + optional string icon = 5; + optional int32 gradient_id = 6; + } + + optional int32 id = 1; + optional string name = 2; + optional uint32 order_id = 3; + optional string name_loc = 5; + optional string bio_loc = 6; + optional string hype_loc = 7; + optional string npe_desc_loc = 8; + repeated .CMsgGameDataHero.Facet facets = 43; + optional uint32 str_base = 10; + optional float str_gain = 11; + optional uint32 agi_base = 12; + optional float agi_gain = 13; + optional uint32 int_base = 14; + optional float int_gain = 15; + optional uint32 primary_attr = 20; + optional uint32 complexity = 21; + optional uint32 attack_capability = 22; + repeated uint32 role_levels = 23; + optional int32 damage_min = 24; + optional int32 damage_max = 25; + optional float attack_rate = 26; + optional uint32 attack_range = 27; + optional uint32 projectile_speed = 28; + optional float armor = 29; + optional uint32 magic_resistance = 30; + optional uint32 movement_speed = 31; + optional float turn_rate = 32; + optional uint32 sight_range_day = 33; + optional uint32 sight_range_night = 34; + optional uint32 max_health = 35; + optional float health_regen = 36; + optional uint32 max_mana = 37; + optional float mana_regen = 38; + repeated .CMsgGameDataAbilityOrItem abilities = 40; + repeated .CMsgGameDataAbilityOrItem talents = 41; + repeated .CMsgGameDataAbilityOrItemList facet_abilities = 42; +} + +message CMsgGameDataAbilities { + repeated .CMsgGameDataAbilityOrItem abilities = 1; +} + +message CMsgGameDataItems { + repeated .CMsgGameDataAbilityOrItem items = 1; +} + +message CMsgGameDataHeroes { + repeated .CMsgGameDataHero heroes = 1; +} + +message CMsgGameDataHeroList { + message HeroInfo { + optional int32 id = 1; + optional string name = 2; + optional string name_loc = 3; + optional string name_english_loc = 4; + optional uint32 primary_attr = 5; + optional uint32 complexity = 6; + } + + repeated .CMsgGameDataHeroList.HeroInfo heroes = 1; +} + +message CMsgGameDataItemAbilityList { + message ItemAbilityInfo { + message Recipe { + repeated int32 items = 1; + } + + optional int32 id = 1 [default = -1]; + optional string name = 2; + optional string name_loc = 3; + optional string name_english_loc = 4; + optional int32 neutral_item_tier = 5; + optional bool is_pregame_suggested = 6; + optional bool is_earlygame_suggested = 7; + optional bool is_lategame_suggested = 8; + repeated .CMsgGameDataItemAbilityList.ItemAbilityInfo.Recipe recipes = 9; + } + + repeated .CMsgGameDataItemAbilityList.ItemAbilityInfo itemabilities = 1; +} + +message CMsgLobbyAbilityDraftData { + optional bool shuffle_draft_order = 1; +} + +message CSOEconItemDropRateBonus { + optional uint32 account_id = 1 [(key_field) = true]; + optional fixed32 expiration_date = 2; + optional float bonus = 3 [(key_field) = true]; + optional uint32 bonus_count = 4; + optional uint64 item_id = 5; + optional uint32 def_index = 6; + optional uint32 seconds_left = 7; + optional uint32 booster_type = 8 [(key_field) = true]; +} + +message CSOEconItemTournamentPassport { + optional uint32 account_id = 1; + optional uint32 league_id = 2; + optional uint64 item_id = 3; + optional uint32 original_purchaser_id = 4; + optional uint32 passports_bought = 5; + optional uint32 version = 6; + optional uint32 def_index = 7; + optional uint32 reward_flags = 8; +} + +message CMsgStickerbookSticker { + optional uint32 item_def_id = 1; + optional uint32 sticker_num = 2; + optional uint32 quality = 3; + optional float position_x = 4; + optional float position_y = 5; + optional float position_z = 8; + optional float rotation = 6; + optional float scale = 7; + optional uint64 source_item_id = 9; + optional uint32 depth_bias = 10; +} + +message CMsgStickerbookPage { + optional uint32 page_num = 1; + optional .EEvent event_id = 2 [default = EVENT_ID_NONE]; + optional uint32 team_id = 3; + repeated .CMsgStickerbookSticker stickers = 4; + optional .EStickerbookPageType page_type = 5 [default = STICKER_PAGE_GENERIC]; +} + +message CMsgStickerbookTeamPageOrderSequence { + repeated uint32 page_numbers = 1; +} + +message CMsgStickerbook { + repeated .CMsgStickerbookPage pages = 1; + optional .CMsgStickerbookTeamPageOrderSequence team_page_order_sequence = 2; + optional uint32 favorite_page_num = 3; +} + +message CMsgStickerHero { + optional int32 hero_id = 1; + optional uint32 item_def_id = 2; + optional uint32 quality = 3; + optional uint64 source_item_id = 4; +} + +message CMsgStickerHeroes { + repeated .CMsgStickerHero heroes = 1; +} + +message CMsgHeroRoleStats { + optional uint32 lane_selection_flags = 1; + optional uint32 match_count = 2; + optional uint32 win_count = 3; +} + +message CMsgHeroRoleHeroStats { + optional int32 hero_id = 1; + repeated .CMsgHeroRoleStats role_stats = 2; +} + +message CMsgHeroRoleRankStats { + optional uint32 rank_tier = 1; + repeated .CMsgHeroRoleHeroStats hero_stats = 2; +} + +message CMsgHeroRoleAllRanksStats { + optional uint32 start_timestamp = 1; + optional uint32 end_timestamp = 2; + repeated .CMsgHeroRoleRankStats rank_stats = 3; +} + +message CMsgMapStatsSnapshot { + optional uint32 timestamp = 1; + optional uint64 lotuses_gained = 2; + optional uint64 wisdom_runes_gained = 3; + optional uint64 roshan_kills_day = 4; + optional uint64 roshan_kills_night = 5; + optional uint64 portals_used = 6; + optional uint64 watchers_taken = 7; + optional uint64 tormentor_kills = 8; + optional uint64 outposts_captured = 9; + optional uint64 shield_runes_gained = 10; +} + +message CMsgGlobalMapStats { + optional .CMsgMapStatsSnapshot current = 1; + optional .CMsgMapStatsSnapshot window_start = 2; + optional .CMsgMapStatsSnapshot window_end = 3; +} + +message CMsgTrackedStat { + optional uint32 tracked_stat_id = 1; + optional int32 tracked_stat_value = 2; +} + +message CMsgDOTAClaimEventActionResponse { + message MysteryItemRewardData { + optional uint32 item_def = 1; + optional uint32 item_category = 2; + } + + message LootListRewardData { + repeated uint32 item_def = 1; + } + + message ActionListRewardData { + optional uint32 action_id = 1; + optional bytes result_reward_data = 2; + } + + message OverworldTokenRewardData { + message TokenQuantity { + optional uint32 token_id = 1; + optional uint32 token_count = 2; + } + + repeated .CMsgDOTAClaimEventActionResponse.OverworldTokenRewardData.TokenQuantity tokens = 1; + } + + message GrantedRewardData { + optional uint32 grant_index = 1; + optional uint32 score_index = 2; + optional uint32 reward_index = 3; + optional bytes reward_data = 4; + optional uint32 action_id = 5; + } + + enum ResultCode { + Success = 0; + InvalidEvent = 1; + EventNotActive = 2; + InvalidAction = 3; + ServerError = 4; + InsufficientPoints = 5; + InsufficentLevel = 6; + AlreadyClaimed = 7; + SDOLockFailure = 8; + SDOLoadFailure = 9; + EventNotOwned = 10; + Timeout = 11; + RequiresPlusSubscription = 12; + InvalidItem = 13; + AsyncRewards = 14; + } + + optional .CMsgDOTAClaimEventActionResponse.ResultCode result = 1 [default = Success]; + repeated .CMsgDOTAClaimEventActionResponse.GrantedRewardData reward_results = 2; + optional uint32 action_id = 3; +} + +message CMsgClientToGCDotaLabsFeedback { + optional uint32 language = 1; + optional uint32 feedback_item = 2; + optional string feedback = 3; +} + +message CMsgClientToGCDotaLabsFeedbackResponse { + enum EResponse { + k_eInternalError = 0; + k_eSuccess = 1; + k_eTooBusy = 2; + k_eDisabled = 3; + k_eTimeout = 4; + k_eNotAllowed = 5; + k_eInvalidItem = 6; + } + + optional .CMsgClientToGCDotaLabsFeedbackResponse.EResponse response = 1 [default = k_eInternalError]; +} + +message CDotaMsg_PredictionResult { + message Prediction { + enum EResult { + k_eResult_ItemGranted = 1; + k_eResult_Destroyed = 2; + } + + optional uint32 item_def = 1; + optional uint32 num_correct = 2; + optional uint32 num_fails = 3; + optional .CDotaMsg_PredictionResult.Prediction.EResult result = 4 [default = k_eResult_ItemGranted]; + repeated uint32 granted_item_defs = 6; + } + + optional uint32 account_id = 1; + optional uint64 match_id = 2; + optional bool correct = 3; + repeated .CDotaMsg_PredictionResult.Prediction predictions = 4; +} diff --git a/Protobufs/dota2/dota_gcmessages_common_bot_script.proto b/Protobufs/dota2/dota_gcmessages_common_bot_script.proto new file mode 100644 index 0000000..7727fdd --- /dev/null +++ b/Protobufs/dota2/dota_gcmessages_common_bot_script.proto @@ -0,0 +1,294 @@ +import "valveextensions.proto"; + +message CMsgBotWorldState { + message Vector { + optional float x = 1; + optional float y = 2; + optional float z = 3; + } + + message Player { + optional int32 player_id = 1 [(valve_map_key) = true]; + optional int32 hero_id = 2; + optional bool is_alive = 3; + optional float respawn_time = 4; + optional uint32 kills = 5; + optional uint32 deaths = 6; + optional uint32 assists = 7; + optional uint32 team_id = 8; + optional uint32 primary_unit_handle = 9 [default = 4294967295]; + optional int32 mmr = 10; + optional .CMsgBotWorldState.Vector location = 11; + } + + message Ability { + optional uint32 handle = 1 [(valve_map_key) = true]; + optional int32 ability_id = 2 [default = -1]; + optional uint32 slot = 3; + optional uint32 caster_handle = 5 [default = 4294967295]; + optional uint32 level = 6; + optional uint32 cast_range = 10; + optional float channel_time = 11; + optional float cooldown_remaining = 12 [default = 0]; + optional bool is_activated = 20; + optional bool is_toggled = 21; + optional bool is_in_ability_phase = 22; + optional bool is_channeling = 23; + optional bool is_stolen = 24; + optional bool is_fully_castable = 25; + optional uint32 charges = 30; + optional uint32 secondary_charges = 31; + optional bool is_combined_locked = 40; + optional int32 power_treads_stat = 50 [default = -1]; + } + + message DroppedItem { + optional int32 item_id = 1 [default = -1]; + optional .CMsgBotWorldState.Vector location = 2; + } + + message RuneInfo { + optional int32 type = 1; + optional .CMsgBotWorldState.Vector location = 2; + optional uint32 status = 3; + optional float time_since_seen = 4; + } + + message TeleportInfo { + optional int32 player_id = 1; + optional .CMsgBotWorldState.Vector location = 2; + optional float time_remaining = 3; + } + + message Modifier { + optional uint32 handle = 7 [(valve_map_key) = true]; + optional string name = 1; + optional uint32 stack_count = 2; + optional uint32 ability_handle = 3 [default = 4294967295]; + optional int32 ability_id = 4 [default = -1]; + optional float remaining_duration = 5; + repeated uint32 auxiliary_units_handles = 6; + } + + message LinearProjectile { + optional uint32 handle = 1 [(valve_map_key) = true]; + optional uint32 caster_handle = 2 [default = 4294967295]; + optional .CMsgBotWorldState.UnitType caster_unit_type = 9 [default = INVALID]; + optional int32 caster_player_id = 3; + optional uint32 ability_handle = 4 [default = 4294967295]; + optional int32 ability_id = 5 [default = -1]; + optional .CMsgBotWorldState.Vector location = 6; + optional .CMsgBotWorldState.Vector velocity = 7; + optional uint32 radius = 8; + } + + message TrackingProjectile { + optional uint32 handle = 10 [(valve_map_key) = true]; + optional uint32 caster_handle = 1 [default = 4294967295]; + optional .CMsgBotWorldState.UnitType caster_unit_type = 9 [default = INVALID]; + optional int32 caster_player_id = 2; + optional uint32 ability_handle = 3 [default = 4294967295]; + optional int32 ability_id = 4 [default = -1]; + optional .CMsgBotWorldState.Vector location = 5; + optional uint32 velocity = 6; + optional bool is_dodgeable = 7; + optional bool is_attack = 8; + } + + message AvoidanceZone { + optional .CMsgBotWorldState.Vector location = 1; + optional uint32 caster_handle = 2 [default = 4294967295]; + optional .CMsgBotWorldState.UnitType caster_unit_type = 7 [default = INVALID]; + optional int32 caster_player_id = 3; + optional uint32 ability_handle = 4 [default = 4294967295]; + optional int32 ability_id = 5 [default = -1]; + optional uint32 radius = 6; + } + + message Courier { + optional uint32 handle = 1 [(valve_map_key) = true]; + optional .CMsgBotWorldState.CourierState state = 2 [default = COURIER_STATE_INIT]; + optional int32 player_id = 3; + } + + message EventAbility { + optional int32 ability_id = 1 [default = -1]; + optional int32 player_id = 2; + optional uint32 unit_handle = 3 [default = 4294967295]; + optional .CMsgBotWorldState.Vector location = 4; + optional bool is_channel_start = 5; + } + + message EventDamage { + optional uint32 damage = 1; + optional int32 victim_player_id = 2; + optional uint32 victim_unit_handle = 3 [default = 4294967295]; + optional int32 attacker_player_id = 4; + optional uint32 attacker_unit_handle = 5 [default = 4294967295]; + optional int32 ability_id = 6 [default = -1]; + } + + message EventCourierKilled { + optional uint32 team_id = 1; + optional uint32 courier_unit_handle = 2 [default = 4294967295]; + optional int32 killer_player_id = 3; + optional uint32 killer_unit_handle = 4 [default = 4294967295]; + } + + message EventRoshanKilled { + optional int32 killer_player_id = 1; + optional uint32 killer_unit_handle = 2 [default = 4294967295]; + } + + message EventTree { + optional uint32 tree_id = 1; + optional bool destroyed = 2; + optional bool respawned = 3; + optional .CMsgBotWorldState.Vector location = 4; + optional bool delayed = 5; + } + + message Unit { + optional uint32 handle = 1 [(valve_map_key) = true]; + optional .CMsgBotWorldState.UnitType unit_type = 2 [default = INVALID]; + optional string name = 3; + optional uint32 team_id = 4; + optional uint32 level = 5; + optional .CMsgBotWorldState.Vector location = 6; + optional bool is_alive = 7; + optional int32 player_id = 8; + optional int32 bounding_radius = 10; + optional int32 facing = 11; + optional uint32 ground_height = 12; + optional uint32 vision_range_daytime = 15; + optional uint32 vision_range_nighttime = 16; + optional int32 health = 20; + optional int32 health_max = 21; + optional float health_regen = 22; + optional int32 mana = 25; + optional int32 mana_max = 26; + optional float mana_regen = 27; + optional int32 base_movement_speed = 30; + optional int32 current_movement_speed = 31; + optional int32 anim_activity = 35; + optional float anim_cycle = 36; + optional int32 base_damage = 40; + optional int32 base_damage_variance = 41; + optional int32 bonus_damage = 42; + optional int32 attack_damage = 43; + optional int32 attack_range = 44; + optional float attack_speed = 45; + optional float attack_anim_point = 46; + optional int32 attack_acquisition_range = 47; + optional int32 attack_projectile_speed = 48; + optional uint32 attack_target_handle = 49 [default = 4294967295]; + optional string attack_target_name = 52; + optional int32 attacks_per_second = 50 [default = -1]; + optional float last_attack_time = 51 [default = -1]; + optional uint32 bounty_xp = 60; + optional uint32 bounty_gold_min = 61; + optional uint32 bounty_gold_max = 62; + optional bool is_channeling = 65; + optional uint32 active_ability_handle = 66 [default = 4294967295]; + optional bool is_attack_immune = 70; + optional bool is_blind = 71; + optional bool is_block_disabled = 72; + optional bool is_disarmed = 73; + optional bool is_dominated = 74; + optional bool is_evade_disabled = 75; + optional bool is_hexed = 76; + optional bool is_invisible = 77; + optional bool is_invulnerable = 78; + optional bool is_magic_immune = 79; + optional bool is_muted = 80; + optional bool is_nightmared = 82; + optional bool is_rooted = 83; + optional bool is_silenced = 84; + optional bool is_specially_deniable = 85; + optional bool is_stunned = 86; + optional bool is_unable_to_miss = 87; + optional bool has_scepter = 88; + optional bool is_specially_undeniable = 94; + repeated .CMsgBotWorldState.Ability abilities = 90 [(valve_map_field) = true]; + repeated .CMsgBotWorldState.Ability items = 91 [(valve_map_field) = true]; + repeated .CMsgBotWorldState.Modifier modifiers = 92 [(valve_map_field) = true]; + repeated .CMsgBotWorldState.TrackingProjectile incoming_tracking_projectiles = 93 [(valve_map_field) = true]; + optional uint32 action_type = 100; + optional uint32 ability_target_handle = 101 [default = 4294967295]; + optional string ability_target_name = 103; + optional bool is_using_ability = 102; + optional uint32 primary_attribute = 110; + optional bool is_illusion = 111; + optional float respawn_time = 112; + optional uint32 buyback_cost = 113; + optional float buyback_cooldown = 114; + optional float spell_amplification = 115; + optional float armor = 116; + optional float magic_resist = 117; + optional float evasion = 118; + optional uint32 xp_needed_to_level = 120; + optional uint32 ability_points = 121; + optional int32 reliable_gold = 122 [default = -1]; + optional int32 unreliable_gold = 123 [default = -1]; + optional uint32 last_hits = 124; + optional uint32 denies = 125; + optional uint32 net_worth = 126; + optional uint32 strength = 127; + optional uint32 agility = 128; + optional uint32 intelligence = 129; + optional float remaining_lifespan = 130; + optional bool flying_courier = 140; + optional float shrine_cooldown = 150; + optional bool is_shrine_healing = 151; + } + + enum UnitType { + INVALID = 0; + HERO = 1; + CREEP_HERO = 2; + LANE_CREEP = 3; + JUNGLE_CREEP = 4; + ROSHAN = 5; + TOWER = 6; + BARRACKS = 7; + SHRINE = 8; + FORT = 9; + BUILDING = 10; + COURIER = 11; + WARD = 12; + } + + enum CourierState { + COURIER_STATE_INIT = -1; + COURIER_STATE_IDLE = 0; + COURIER_STATE_AT_BASE = 1; + COURIER_STATE_MOVING = 2; + COURIER_STATE_DELIVERING_ITEMS = 3; + COURIER_STATE_RETURNING_TO_BASE = 4; + COURIER_STATE_DEAD = 5; + } + + optional uint32 team_id = 1; + optional float game_time = 2; + optional float dota_time = 3; + optional uint32 game_state = 4; + optional uint32 hero_pick_state = 5; + optional float time_of_day = 6; + optional float glyph_cooldown = 7; + optional float glyph_cooldown_enemy = 8; + repeated .CMsgBotWorldState.Player players = 10 [(valve_map_field) = true]; + repeated .CMsgBotWorldState.Unit units = 11 [(valve_map_field) = true]; + repeated .CMsgBotWorldState.DroppedItem dropped_items = 12 [(diff_encode_field) = 112]; + repeated int32 dropped_items_deltas = 112; + repeated .CMsgBotWorldState.RuneInfo rune_infos = 13 [(diff_encode_field) = 113]; + repeated int32 rune_infos_deltas = 113; + repeated .CMsgBotWorldState.TeleportInfo incoming_teleports = 14; + repeated .CMsgBotWorldState.LinearProjectile linear_projectiles = 15 [(valve_map_field) = true]; + repeated .CMsgBotWorldState.AvoidanceZone avoidance_zones = 16; + repeated .CMsgBotWorldState.Courier couriers = 17 [(valve_map_field) = true]; + repeated .CMsgBotWorldState.EventAbility ability_events = 20; + repeated .CMsgBotWorldState.EventDamage damage_events = 21; + repeated .CMsgBotWorldState.EventCourierKilled courier_killed_events = 22; + repeated .CMsgBotWorldState.EventRoshanKilled roshan_killed_events = 23; + repeated .CMsgBotWorldState.EventTree tree_events = 24; +} diff --git a/Protobufs/dota2/dota_gcmessages_common_fighting_game.proto b/Protobufs/dota2/dota_gcmessages_common_fighting_game.proto new file mode 100644 index 0000000..ab62e1a --- /dev/null +++ b/Protobufs/dota2/dota_gcmessages_common_fighting_game.proto @@ -0,0 +1,58 @@ +import "steammessages.proto"; +import "dota_shared_enums.proto"; +import "dota_gcmessages_common.proto"; +import "gcsdk_gcmessages.proto"; + +message CMsgClientToGCFightingGameChallengeFriend { + optional uint32 friend_account_id = 1; +} + +message CMsgClientToGCFightingGameChallengeFriendResponse { + enum EResponse { + k_eInternalError = 0; + k_eSuccess = 1; + k_eTooBusy = 2; + k_eDisabled = 3; + k_eTimeout = 4; + k_eInvalidAccountID = 5; + k_eStillWaitingOnAnotherChallenge = 6; + } + + optional .CMsgClientToGCFightingGameChallengeFriendResponse.EResponse response = 1 [default = k_eInternalError]; +} + +message CMsgClientToGCFightingGameCancelChallengeFriend { + optional uint32 friend_account_id = 1; +} + +message CMsgClientToGCFightingGameAnswerChallenge { + optional uint32 challenger_account_id = 1; + optional bool accept = 2; +} + +message CMsgClientToGCFightingGameAnswerChallengeResponse { + enum EResponse { + k_eInternalError = 0; + k_eSuccess = 1; + k_eTooBusy = 2; + k_eDisabled = 3; + k_eTimeout = 4; + k_eInvalidChallenge = 5; + } + + optional .CMsgClientToGCFightingGameAnswerChallengeResponse.EResponse response = 1 [default = k_eInternalError]; +} + +message CMsgGCToClientFightingGameChallenge { + optional uint32 challenger_account_id = 1; +} + +message CMsgGCToClientFightingGameChallengeCanceled { + optional uint32 challenger_account_id = 1; + optional uint32 responder_account_id = 2; +} + +message CMsgGCToClientFightingGameStartMatch { + optional uint32 challenger_account_id = 1; + optional uint32 responder_account_id = 2; +} diff --git a/Protobufs/dota2/dota_gcmessages_common_league.proto b/Protobufs/dota2/dota_gcmessages_common_league.proto new file mode 100644 index 0000000..975072e --- /dev/null +++ b/Protobufs/dota2/dota_gcmessages_common_league.proto @@ -0,0 +1,351 @@ +import "dota_shared_enums.proto"; + +enum ELeagueNodeGroupType { + INVALID_GROUP_TYPE = 0; + ORGANIZATIONAL = 1; + ROUND_ROBIN = 2; + SWISS = 3; + BRACKET_SINGLE = 4; + BRACKET_DOUBLE_SEED_LOSER = 5; + BRACKET_DOUBLE_ALL_WINNER = 6; + SHOWMATCH = 7; + GSL = 8; + PLACEMENT = 9; +} + +enum ELeagueNodeType { + INVALID_NODE_TYPE = 0; + BEST_OF_ONE = 1; + BEST_OF_THREE = 2; + BEST_OF_FIVE = 3; + BEST_OF_TWO = 4; +} + +message CMsgDOTALeagueNode { + message MatchDetails { + optional uint64 match_id = 1; + optional uint32 winning_team_id = 2; + } + + message VOD { + optional uint32 series_game = 1; + optional uint32 stream_id = 2; + optional string url = 3; + } + + optional string name = 1; + optional uint32 node_id = 2; + optional uint32 node_group_id = 3; + optional uint32 winning_node_id = 4; + optional uint32 losing_node_id = 5; + optional uint32 incoming_node_id_1 = 6; + optional uint32 incoming_node_id_2 = 7; + optional .ELeagueNodeType node_type = 8 [default = INVALID_NODE_TYPE]; + optional uint32 scheduled_time = 9; + optional uint32 actual_time = 19; + optional uint32 series_id = 10; + optional uint32 team_id_1 = 11; + optional uint32 team_id_2 = 12; + repeated .CMsgDOTALeagueNode.MatchDetails matches = 13; + optional uint32 team_1_wins = 14; + optional uint32 team_2_wins = 15; + optional bool has_started = 16; + optional bool is_completed = 17; + repeated uint32 stream_ids = 18; + repeated .CMsgDOTALeagueNode.VOD vods = 20; +} + +message CMsgDOTALeagueNodeGroup { + message TeamStanding { + optional uint32 standing = 1; + optional uint32 team_id = 2; + optional string team_name = 3; + optional string team_tag = 4; + optional uint64 team_logo = 5; + optional string team_logo_url = 6; + optional uint32 wins = 7; + optional uint32 losses = 8; + optional int64 score = 9; + optional string team_abbreviation = 10; + optional int64 score_tiebreak_group = 11; + optional int64 score_tiebreak_below = 12; + optional int64 score_tiebreak_random = 13; + optional bool is_pro = 14; + } + + optional string name = 1; + optional uint32 node_group_id = 2; + optional uint32 parent_node_group_id = 3; + repeated uint32 incoming_node_group_ids = 4; + optional uint32 advancing_node_group_id = 5; + optional uint32 advancing_team_count = 6; + optional uint32 team_count = 7; + optional .ELeagueNodeGroupType node_group_type = 8 [default = INVALID_GROUP_TYPE]; + optional .ELeagueNodeType default_node_type = 9 [default = INVALID_NODE_TYPE]; + optional uint32 round = 10; + optional uint32 max_rounds = 11; + optional bool is_tiebreaker = 12; + optional bool is_final_group = 13; + optional bool is_completed = 14; + optional .ELeaguePhase phase = 18 [default = LEAGUE_PHASE_UNSET]; + optional .ELeagueRegion region = 19 [default = LEAGUE_REGION_UNSET]; + optional uint32 start_time = 20; + optional uint32 end_time = 21; + optional uint32 secondary_advancing_node_group_id = 22; + optional uint32 secondary_advancing_team_count = 23; + optional uint32 tertiary_advancing_node_group_id = 24; + optional uint32 tertiary_advancing_team_count = 25; + optional uint32 elimination_dpc_points = 26; + repeated .CMsgDOTALeagueNodeGroup.TeamStanding team_standings = 15; + repeated .CMsgDOTALeagueNode nodes = 16; + repeated .CMsgDOTALeagueNodeGroup node_groups = 17; +} + +message CMsgDOTALeague { + message Info { + optional uint32 league_id = 1; + optional string name = 2; + optional .ELeagueTier tier = 3 [default = LEAGUE_TIER_UNSET]; + optional .ELeagueRegion region = 4 [default = LEAGUE_REGION_UNSET]; + optional string url = 5; + optional string description = 6; + optional string notes = 7; + optional uint32 start_timestamp = 8; + optional uint32 end_timestamp = 9; + optional uint32 pro_circuit_points = 10; + optional uint32 image_bits = 11; + optional .ELeagueStatus status = 12 [default = LEAGUE_STATUS_UNSET]; + optional uint32 most_recent_activity = 13; + optional uint32 registration_period = 14; + } + + message Admin { + optional uint32 account_id = 1; + optional bool is_primary = 2; + optional string email_address = 3; + } + + message PrizePoolItem { + optional uint32 item_def = 1; + optional uint32 sales_stop_timestamp = 2; + optional uint32 revenue_pct = 3; + optional uint32 revenue_cents_per_sale = 4; + } + + message PrizePool { + optional uint32 base_prize_pool = 1; + optional uint32 total_prize_pool = 2; + repeated uint32 prize_split_pct_x100 = 3; + repeated .CMsgDOTALeague.PrizePoolItem prize_pool_items = 4; + } + + message Stream { + optional uint32 stream_id = 1; + optional uint32 language = 2; + optional string name = 3; + optional .ELeagueBroadcastProvider broadcast_provider = 4 [default = LEAGUE_BROADCAST_UNKNOWN]; + optional string stream_url = 5; + optional string vod_url = 6; + } + + message SeriesInfo { + optional uint32 series_id = 1; + optional uint32 series_type = 2; + optional uint32 start_time = 3; + repeated uint64 match_ids = 4; + optional uint32 team_id_1 = 5; + optional uint32 team_id_2 = 6; + } + + message Player { + optional uint32 account_id = 1; + optional string name = 2; + optional uint32 team_id = 3; + } + + optional .CMsgDOTALeague.Info info = 1; + optional .CMsgDOTALeague.PrizePool prize_pool = 2; + repeated .CMsgDOTALeague.Admin admins = 3; + repeated .CMsgDOTALeague.Stream streams = 4; + repeated .CMsgDOTALeagueNodeGroup node_groups = 5; + repeated .CMsgDOTALeague.SeriesInfo series_infos = 6; + repeated .CMsgDOTALeague.Player registered_players = 7; +} + +message CMsgDOTALeagueList { + repeated .CMsgDOTALeague leagues = 1; +} + +message CMsgDOTALeagueInfo { + optional uint32 league_id = 1; + optional string name = 2; + optional .ELeagueTier tier = 3 [default = LEAGUE_TIER_UNSET]; + optional .ELeagueRegion region = 4 [default = LEAGUE_REGION_UNSET]; + optional uint32 most_recent_activity = 5; + optional uint32 total_prize_pool = 6; + optional uint32 start_timestamp = 7; + optional uint32 end_timestamp = 8; + optional uint32 status = 9; +} + +message CMsgDOTALeagueInfoList { + repeated .CMsgDOTALeagueInfo infos = 1; +} + +message CMsgDOTALeagueLiveGames { + message LiveGame { + optional uint32 league_id = 1; + optional uint64 server_steam_id = 2; + optional string radiant_name = 3; + optional uint64 radiant_logo = 4; + optional uint32 radiant_team_id = 9; + optional string dire_name = 5; + optional uint64 dire_logo = 6; + optional uint32 dire_team_id = 10; + optional uint32 time = 7; + optional uint32 spectators = 8; + optional uint32 league_node_id = 11; + optional uint32 series_id = 12; + optional uint64 match_id = 13; + } + + repeated .CMsgDOTALeagueLiveGames.LiveGame games = 1; +} + +message CMsgDOTALeagueMessages { + message Message { + optional uint32 author_account_id = 1; + optional uint32 timestamp = 2; + optional string message = 3; + } + + repeated .CMsgDOTALeagueMessages.Message messages = 1; +} + +message CMsgDOTALeaguePrizePool { + optional uint32 prize_pool = 1; + optional float increment_per_second = 2; +} + +message CMsgDOTALeagueInfoListAdminsRequest { +} + +message CMsgDOTALeagueAvailableLobbyNodesRequest { + optional uint32 league_id = 1; +} + +message CMsgDOTALeagueAvailableLobbyNodes { + message NodeInfo { + optional uint32 node_id = 1; + optional string node_name = 2; + optional string node_group_name = 3; + optional uint32 team_id_1 = 4; + optional uint32 team_id_2 = 5; + } + + repeated .CMsgDOTALeagueAvailableLobbyNodes.NodeInfo node_infos = 1; +} + +message CMsgDOTALeagueNodeResults { + message Result { + optional uint32 node_id = 1; + optional uint32 winning_node_id = 2; + optional uint32 losing_node_id = 3; + optional uint32 incoming_node_id_1 = 4; + optional uint32 incoming_node_id_2 = 5; + optional uint32 team_id_1 = 6; + optional uint32 team_id_2 = 7; + optional string team_1_name = 8; + optional string team_2_name = 9; + optional uint32 team_1_wins = 10; + optional uint32 team_2_wins = 11; + optional uint32 winning_team_id = 12; + optional uint32 losing_team_id = 13; + optional bool has_started = 14; + optional bool is_completed = 15; + optional uint32 scheduled_time = 16; + repeated uint64 match_ids = 17; + } + + repeated .CMsgDOTALeagueNodeResults.Result node_results = 1; +} + +message CMsgDOTADPCLeagueResults { + message Result { + optional uint32 standing = 1; + optional uint32 team_id = 2; + optional string team_name = 3; + optional uint64 team_logo = 4; + optional string team_logo_url = 5; + optional uint32 points = 6; + optional uint32 earnings = 7; + optional uint32 timestamp = 8; + optional .ELeaguePhase phase = 9 [default = LEAGUE_PHASE_UNSET]; + optional string team_abbreviation = 10; + } + + repeated .CMsgDOTADPCLeagueResults.Result results = 1; + repeated uint32 points = 2; + repeated uint32 dollars = 3; +} + +message CMsgDOTADPCTeamResults { + message Result { + optional uint32 league_id = 1; + optional uint32 standing = 2; + optional uint32 points = 3; + optional uint32 earnings = 4; + optional uint32 timestamp = 5; + } + + repeated .CMsgDOTADPCTeamResults.Result results = 1; +} + +message CMsgDOTADPCSeasonResults { + message TeamLeagueResult { + optional uint32 timestamp = 1; + optional uint32 league_id = 2; + optional uint32 standing = 3; + optional uint32 points = 4; + optional uint32 earnings = 5; + optional uint32 audit_action = 6; + optional uint32 audit_data = 7; + } + + message TeamResult { + optional uint32 team_id = 1; + optional string team_name = 2; + optional string team_abbreviation = 8; + optional uint64 team_logo = 3; + optional string team_logo_url = 4; + optional uint32 total_points = 5; + optional uint32 total_earnings = 6; + repeated .CMsgDOTADPCSeasonResults.TeamLeagueResult league_results = 7; + } + + message StandingEntry { + optional uint32 team_id = 1; + optional uint32 wins = 2; + optional uint32 losses = 3; + optional string team_url = 4; + optional string team_name = 5; + optional string team_abbreviation = 6; + } + + message Standing { + optional .ELeagueRegion region = 1 [default = LEAGUE_REGION_UNSET]; + optional .ELeagueDivision division = 2 [default = LEAGUE_DIVISION_UNSET]; + repeated .CMsgDOTADPCSeasonResults.StandingEntry entries = 3; + } + + repeated .CMsgDOTADPCSeasonResults.TeamResult results = 1; + repeated .CMsgDOTADPCSeasonResults.Standing standings = 2; + repeated .CMsgDOTADPCSeasonResults.StandingEntry major_wildcard_standings = 3; + repeated .CMsgDOTADPCSeasonResults.StandingEntry major_group_standings = 4; + repeated .CMsgDOTADPCSeasonResults.StandingEntry major_playoff_standings = 5; +} + +message CMsgDOTADPCSeasonSpoilerResults { + optional uint32 time_last_updated = 1; + optional .CMsgDOTADPCSeasonResults saved_results = 2; +} diff --git a/Protobufs/dota2/dota_gcmessages_common_lobby.proto b/Protobufs/dota2/dota_gcmessages_common_lobby.proto new file mode 100644 index 0000000..f3e7459 --- /dev/null +++ b/Protobufs/dota2/dota_gcmessages_common_lobby.proto @@ -0,0 +1,389 @@ +import "steammessages.proto"; +import "dota_shared_enums.proto"; +import "gcsdk_gcmessages.proto"; + +enum ELobbyMemberCoachRequestState { + k_eLobbyMemberCoachRequestState_None = 0; + k_eLobbyMemberCoachRequestState_Accepted = 1; + k_eLobbyMemberCoachRequestState_Rejected = 2; +} + +enum LobbyDotaTVDelay { + LobbyDotaTV_10 = 0; + LobbyDotaTV_120 = 1; + LobbyDotaTV_300 = 2; + LobbyDotaTV_900 = 3; +} + +enum LobbyDotaPauseSetting { + LobbyDotaPauseSetting_Unlimited = 0; + LobbyDotaPauseSetting_Limited = 1; + LobbyDotaPauseSetting_Disabled = 2; +} + +message CMsgLobbyCoachFriendRequest { + optional uint32 coach_account_id = 1; + optional uint32 player_account_id = 2; + optional .ELobbyMemberCoachRequestState request_state = 3 [default = k_eLobbyMemberCoachRequestState_None]; +} + +message CMsgLobbyPlayerPlusSubscriptionData { + message HeroBadge { + optional int32 hero_id = 1; + optional uint32 hero_badge_xp = 2; + } + + repeated .CMsgLobbyPlayerPlusSubscriptionData.HeroBadge hero_badges = 1; +} + +message CMsgEventActionData { + optional uint32 action_id = 1; + optional uint32 action_score = 2; +} + +message CMsgPeriodicResourceData { + optional uint32 periodic_resource_id = 1; + optional uint32 remaining = 2; + optional uint32 max = 3; +} + +message CMsgLobbyEventPoints { + message AccountPoints { + optional uint32 account_id = 1; + optional uint32 normal_points = 2; + optional uint32 premium_points = 3; + optional bool owned = 4; + optional uint32 event_level = 7; + optional uint64 active_effects_mask = 12; + optional uint32 wager_streak = 23; + repeated .CMsgEventActionData event_game_custom_actions = 25; + optional uint32 tip_amount_index = 26; + optional uint32 active_event_season_id = 27; + optional uint32 teleport_fx_level = 28; + repeated .CMsgEventActionData networked_event_actions = 30; + repeated .CMsgPeriodicResourceData periodic_resources = 31; + repeated .CExtraMsgBlock extra_event_messages = 32; + } + + optional uint32 event_id = 1; + repeated .CMsgLobbyEventPoints.AccountPoints account_points = 2; +} + +message CMsgLobbyEventGameData { + optional uint32 game_seed = 1; + optional uint32 event_window_start_time = 2; +} + +message CSODOTALobbyInvite { + message LobbyMember { + optional string name = 1; + optional fixed64 steam_id = 2; + } + + optional uint64 group_id = 1 [(key_field) = true]; + optional fixed64 sender_id = 2; + optional string sender_name = 3; + repeated .CSODOTALobbyInvite.LobbyMember members = 4; + optional uint64 custom_game_id = 5; + optional fixed64 invite_gid = 6; + optional fixed64 custom_game_crc = 7; + optional fixed32 custom_game_timestamp = 8; +} + +message CSODOTALobbyMember { + optional fixed64 id = 1 [(key_field) = true]; + optional int32 hero_id = 2; + optional .DOTA_GC_TEAM team = 3 [default = DOTA_GC_TEAM_GOOD_GUYS]; + optional uint32 slot = 7; + optional .DOTALeaverStatus_t leaver_status = 16 [default = DOTA_LEAVER_NONE]; + optional uint32 leaver_actions = 28; + optional .DOTA_GC_TEAM coach_team = 23 [default = DOTA_GC_TEAM_NOTEAM]; + repeated uint32 custom_game_product_ids = 31; + optional .DOTA_GC_TEAM live_spectator_team = 40 [default = DOTA_GC_TEAM_NOTEAM]; + repeated .CMsgPendingEventAward pending_awards = 44; + repeated .CMsgPendingEventAward pending_awards_on_victory = 45; + optional uint32 reports_available = 52; + optional uint32 live_spectator_account_id = 55; + optional uint32 comms_reports_available = 56; +} + +message CSODOTAServerLobbyMember { +} + +message CSODOTAStaticLobbyMember { + optional string name = 1; + optional uint64 party_id = 2; + optional uint32 channel = 3 [default = 6]; + optional bool cameraman = 4; +} + +message CSODOTAServerStaticLobbyMember { + optional fixed64 steam_id = 1; + optional int32 rank_tier = 3; + optional int32 leaderboard_rank = 4 [default = -1]; + optional int32 lane_selection_flags = 5; + optional .EDOTAMMRBoostType rank_mmr_boost_type = 6 [default = k_EDOTAMMRBoostType_None]; + optional int32 coach_rating = 7; + repeated uint32 coached_account_ids = 8; + optional bool was_mvp_last_game = 9; + optional bool can_earn_rewards = 10; + optional bool is_plus_subscriber = 11; + optional uint64 favorite_team_packed = 12; + optional bool is_steam_china = 13; + optional uint32 title = 14; + optional uint32 guild_id = 15; + repeated fixed32 disabled_random_hero_bits = 16; + repeated int32 disabled_hero_id = 17; + repeated int32 enabled_hero_id = 18; + repeated int32 banned_hero_ids = 19; +} + +message CLobbyTeamDetails { + optional string team_name = 1; + optional string team_tag = 3; + optional uint32 team_id = 4; + optional uint64 team_logo = 5; + optional uint64 team_base_logo = 6; + optional uint64 team_banner_logo = 7; + optional bool team_complete = 8; + optional uint32 rank = 15; + optional sint32 rank_change = 16; + optional bool is_home_team = 17; + optional bool is_challenge_match = 18; + optional uint64 challenge_match_token_account = 19; + optional string team_logo_url = 20; + optional string team_abbreviation = 21; +} + +message CLobbyGuildDetails { + optional uint32 guild_id = 1; + optional uint32 guild_primary_color = 2; + optional uint32 guild_secondary_color = 3; + optional uint32 guild_pattern = 4; + optional uint64 guild_logo = 5; + optional uint32 guild_points = 6; + optional uint32 guild_event = 7; + optional uint32 guild_flags = 8; + optional .DOTA_GC_TEAM team_for_guild = 9 [default = DOTA_GC_TEAM_GOOD_GUYS]; + optional string guild_tag = 10; + optional uint32 guild_weekly_percentile = 11; +} + +message CLobbyTimedRewardDetails { + optional uint32 item_def_index = 2; + optional bool is_supply_crate = 3; + optional bool is_timed_drop = 4; + optional uint32 account_id = 5; + optional uint32 origin = 6; +} + +message CLobbyBroadcastChannelInfo { + optional uint32 channel_id = 1; + optional string country_code = 2; + optional string description = 3; + optional string language_code = 4; +} + +message CLobbyGuildChallenge { + optional uint32 guild_id = 1; + optional .EEvent event_id = 2 [default = EVENT_ID_NONE]; + optional uint32 challenge_instance_id = 3; + optional uint32 challenge_parameter = 4; + optional uint32 challenge_timestamp = 5; + optional uint32 challenge_period_serial = 6; + optional uint32 challenge_progress_at_start = 7; + repeated uint32 eligible_account_ids = 8; +} + +message CDOTALobbyMatchQualityData { + optional uint32 overall_quality = 1; + optional uint32 team_balance = 2; + optional uint32 match_skill_range = 3; + optional uint32 match_behavior = 4; +} + +message CSODOTALobby { + message CExtraMsg { + optional uint32 id = 1; + optional bytes contents = 2; + } + + enum State { + UI = 0; + READYUP = 4; + SERVERSETUP = 1; + RUN = 2; + POSTGAME = 3; + NOTREADY = 5; + SERVERASSIGN = 6; + } + + enum LobbyType { + INVALID = -1; + CASUAL_MATCH = 0; + PRACTICE = 1; + COOP_BOT_MATCH = 4; + COMPETITIVE_MATCH = 7; + WEEKEND_TOURNEY = 9; + LOCAL_BOT_MATCH = 10; + SPECTATOR = 11; + EVENT_MATCH = 12; + NEW_PLAYER_POOL = 14; + FEATURED_GAMEMODE = 15; + } + + optional uint64 lobby_id = 1 [(key_field) = true]; + repeated .CSODOTALobbyMember all_members = 120; + repeated uint32 member_indices = 121; + repeated uint32 left_member_indices = 122; + repeated uint32 free_member_indices = 123; + optional fixed64 leader_id = 11; + optional fixed64 server_id = 6 [default = 0]; + optional uint32 game_mode = 3; + repeated fixed64 pending_invites = 10; + optional .CSODOTALobby.State state = 4 [default = UI]; + optional string connect = 5; + optional .CSODOTALobby.LobbyType lobby_type = 12 [default = INVALID]; + optional bool allow_cheats = 13; + optional bool fill_with_bots = 14; + optional string game_name = 16; + repeated .CLobbyTeamDetails team_details = 17; + optional uint32 tournament_id = 19; + optional uint32 tournament_game_id = 20; + optional uint32 server_region = 21 [default = 0]; + optional .DOTA_GameState game_state = 22 [default = DOTA_GAMERULES_STATE_INIT]; + optional uint32 num_spectators = 23; + optional uint32 matchgroup = 25; + optional .DOTA_CM_PICK cm_pick = 28 [default = DOTA_CM_RANDOM]; + optional uint64 match_id = 30; + optional bool allow_spectating = 31 [default = true]; + optional .DOTABotDifficulty bot_difficulty_radiant = 36 [default = BOT_DIFFICULTY_HARD]; + optional string pass_key = 39; + optional uint32 leagueid = 42; + optional uint32 penalty_level_radiant = 43 [default = 0]; + optional uint32 penalty_level_dire = 44 [default = 0]; + optional uint32 series_type = 46; + optional uint32 radiant_series_wins = 47; + optional uint32 dire_series_wins = 48; + optional bool allchat = 51 [default = false]; + optional .LobbyDotaTVDelay dota_tv_delay = 53 [default = LobbyDotaTV_10]; + optional string custom_game_mode = 54; + optional string custom_map_name = 55; + optional uint32 custom_difficulty = 56; + optional bool lan = 57; + repeated .CLobbyBroadcastChannelInfo broadcast_channel_info = 58; + optional uint32 first_leaver_accountid = 59; + optional uint32 series_id = 60; + optional bool low_priority = 61; + repeated .CSODOTALobby.CExtraMsg extra_messages = 62; + optional bool first_blood_happened = 65; + optional .EMatchOutcome match_outcome = 70 [default = k_EMatchOutcome_Unknown]; + optional bool mass_disconnect = 67; + optional uint64 custom_game_id = 68; + optional uint32 custom_min_players = 71; + optional uint32 custom_max_players = 72; + optional .DOTALobbyVisibility visibility = 75 [default = DOTALobbyVisibility_Public]; + optional fixed64 custom_game_crc = 76; + optional bool custom_game_auto_created_lobby = 77; + optional fixed32 custom_game_timestamp = 80; + repeated uint64 previous_series_matches = 81; + optional uint64 previous_match_override = 82; + optional uint32 game_start_time = 87; + optional .LobbyDotaPauseSetting pause_setting = 88 [default = LobbyDotaPauseSetting_Unlimited]; + optional uint32 weekend_tourney_division_id = 90; + optional uint32 weekend_tourney_skill_level = 91; + optional uint32 weekend_tourney_bracket_round = 92; + optional .DOTABotDifficulty bot_difficulty_dire = 93 [default = BOT_DIFFICULTY_HARD]; + optional uint64 bot_radiant = 94; + optional uint64 bot_dire = 95; + repeated .EEvent event_progression_enabled = 96; + optional .DOTASelectionPriorityRules selection_priority_rules = 97 [default = k_DOTASelectionPriorityRules_Manual]; + optional uint32 series_previous_selection_priority_team_id = 98; + optional uint32 series_current_selection_priority_team_id = 99; + optional .DOTASelectionPriorityChoice series_current_priority_team_choice = 100 [default = k_DOTASelectionPriorityChoice_Invalid]; + optional .DOTASelectionPriorityChoice series_current_non_priority_team_choice = 101 [default = k_DOTASelectionPriorityChoice_Invalid]; + optional bool series_current_selection_priority_used_coin_toss = 102; + optional .EEvent current_primary_event = 103 [default = EVENT_ID_NONE]; + repeated int32 emergency_disabled_hero_ids = 105; + optional fixed64 custom_game_private_key = 106; + optional bool custom_game_penalties = 107; + optional string lan_host_ping_location = 109; + optional uint32 league_node_id = 110; + optional uint32 match_duration = 111; + optional uint32 league_phase = 113; + optional bool experimental_gameplay_enabled = 116; + repeated .CLobbyGuildChallenge guild_challenges = 117; + repeated .CLobbyGuildDetails guild_details = 118; + repeated int32 requested_hero_ids = 124; + repeated .CMsgLobbyCoachFriendRequest coach_friend_requests = 125; + optional bool is_in_steam_china = 126; + optional bool with_scenario_save = 127; + optional uint32 lobby_creation_time = 128; + optional string event_game_definition = 129; + optional .CDOTALobbyMatchQualityData match_quality_data = 131; +} + +message CSODOTAServerLobby { + repeated .CSODOTAServerLobbyMember all_members = 1; + repeated .CSODOTALobby.CExtraMsg extra_startup_messages = 2; +} + +message CSODOTAStaticLobby { + repeated .CSODOTAStaticLobbyMember all_members = 1; + optional bool is_player_draft = 2; + optional bool is_last_match_in_series = 3; +} + +message CSODOTAServerStaticLobby { + repeated .CSODOTAServerStaticLobbyMember all_members = 1; + optional float post_patch_strategy_time_buffer = 2; + repeated .CMsgLobbyEventPoints lobby_event_points = 3; +} + +message CMsgAdditionalLobbyStartupAccountData { + message ChatWheelMessageRange { + optional uint32 message_id_start = 1 [default = 4294967295]; + optional uint32 message_id_end = 2 [default = 4294967295]; + } + + message PingWheelMessageRange { + optional uint32 message_id_start = 1 [default = 4294967295]; + optional uint32 message_id_end = 2 [default = 4294967295]; + } + + optional uint32 account_id = 1; + optional .CMsgLobbyPlayerPlusSubscriptionData plus_data = 2; + repeated .CMsgAdditionalLobbyStartupAccountData.ChatWheelMessageRange unlocked_chat_wheel_message_ranges = 3; + repeated .CMsgAdditionalLobbyStartupAccountData.PingWheelMessageRange unlocked_ping_wheel_message_ranges = 4; +} + +message CMsgLobbyInitializationComplete { +} + +message CMsgLobbyPlaytestDetails { + optional string json = 1; +} + +message CMsgLocalServerGuildData { + optional uint32 guild_id = 1; + optional .EEvent event_id = 2 [default = EVENT_ID_NONE]; + optional uint32 guild_points = 3; + optional uint64 guild_logo = 4; + optional uint32 guild_primary_color = 5; + optional uint32 guild_secondary_color = 6; + optional uint32 guild_pattern = 7; + optional uint32 guild_flags = 8; + optional uint32 guild_weekly_percentile = 9; +} + +message CMsgLocalServerFakeLobbyData { + optional uint32 account_id = 1; + repeated .CMsgLobbyEventPoints event_points = 2; + optional bool is_plus_subscriber = 3; + optional uint32 primary_event_id = 4; + optional uint32 favorite_team = 5; + optional uint32 favorite_team_quality = 6; + optional .CMsgLocalServerGuildData guild_info = 7; + optional uint32 teleport_fx_level = 8; + optional .CMsgAdditionalLobbyStartupAccountData additional_data = 9; +} diff --git a/Protobufs/dota2/dota_gcmessages_common_match_management.proto b/Protobufs/dota2/dota_gcmessages_common_match_management.proto new file mode 100644 index 0000000..e2ffd1e --- /dev/null +++ b/Protobufs/dota2/dota_gcmessages_common_match_management.proto @@ -0,0 +1,494 @@ +import "steammessages.proto"; +import "gcsdk_gcmessages.proto"; +import "dota_shared_enums.proto"; + +enum ELaneSelection { + k_ELaneSelection_SAFELANE = 0; + k_ELaneSelection_OFFLANE = 1; + k_ELaneSelection_MIDLANE = 2; + k_ELaneSelection_SUPPORT = 3; + k_ELaneSelection_HARDSUPPORT = 4; +} + +enum ELaneSelectionFlags { + k_ELaneSelectionFlags_SAFELANE = 1; + k_ELaneSelectionFlags_OFFLANE = 2; + k_ELaneSelectionFlags_MIDLANE = 4; + k_ELaneSelectionFlags_SUPPORT = 8; + k_ELaneSelectionFlags_HARDSUPPORT = 16; + k_ELaneSelectionFlagGroup_None = 0; + k_ELaneSelectionFlagGroup_CORE = 7; + k_ELaneSelectionFlagGroup_SUPPORT = 24; + k_ELaneSelectionFlagGroup_ALL = 31; +} + +enum EPartyMatchmakingFlags { + k_EPartyMatchmakingFlags_None = 0; + k_EPartyMatchmakingFlags_LargeRankSpread = 1; +} + +enum EHighPriorityMMState { + k_EHighPriorityMM_Unknown = 0; + k_EHighPriorityMM_MissingMMData = 1; + k_EHighPriorityMM_ResourceMissing = 2; + k_EHighPriorityMM_ManuallyDisabled = 3; + k_EHighPriorityMM_Min_Enabled = 64; + k_EHighPriorityMM_AllRolesSelected = 65; + k_EHighPriorityMM_UsingResource = 66; + k_EHighPriorityMM_FiveStack = 67; + k_EHighPriorityMM_HighDemand = 68; +} + +enum EReadyCheckStatus { + k_EReadyCheckStatus_Unknown = 0; + k_EReadyCheckStatus_NotReady = 1; + k_EReadyCheckStatus_Ready = 2; +} + +enum EReadyCheckRequestResult { + k_EReadyCheckRequestResult_Success = 0; + k_EReadyCheckRequestResult_AlreadyInProgress = 1; + k_EReadyCheckRequestResult_NotInParty = 2; + k_EReadyCheckRequestResult_SendError = 3; + k_EReadyCheckRequestResult_UnknownError = 4; +} + +enum EMatchBehaviorScoreVariance { + k_EMatchBehaviorScoreVariance_Invalid = 0; + k_EMatchBehaviorScoreVariance_Low = 1; + k_EMatchBehaviorScoreVariance_Medium = 2; + k_EMatchBehaviorScoreVariance_High = 3; +} + +message CSODOTAPartyMember { + optional bool is_coach = 2; + repeated uint32 region_ping_codes = 4 [packed = true]; + repeated uint32 region_ping_times = 5 [packed = true]; + optional uint32 region_ping_failed_bitmask = 6; + optional bool is_plus_subscriber = 10; + optional uint32 tourney_skill_level = 7; + optional uint32 tourney_buyin = 8; + optional uint32 tourney_prevent_until = 9; + optional bool mm_data_valid = 13; + optional uint32 lane_selection_flags = 11; + optional bool high_priority_disabled = 14; + optional bool has_hp_resource = 15; + optional bool joined_from_partyfinder = 12; + optional bool is_steam_china = 16; + repeated int32 banned_hero_ids = 17; +} + +message CSODOTAParty { + enum State { + UI = 0; + FINDING_MATCH = 1; + IN_MATCH = 2; + } + + optional uint64 party_id = 1 [(key_field) = true]; + optional fixed64 leader_id = 2; + repeated fixed64 member_ids = 3; + optional uint32 game_modes = 4; + optional .CSODOTAParty.State state = 6 [default = UI]; + optional uint32 effective_started_matchmaking_time = 7; + optional uint32 raw_started_matchmaking_time = 32; + optional uint32 attempt_start_time = 33; + optional uint32 attempt_num = 34; + optional uint32 matchgroups = 11; + optional uint32 low_priority_account_id = 19; + optional .MatchType match_type = 21 [default = MATCH_TYPE_CASUAL]; + optional uint32 team_id = 23; + optional string team_name = 51; + optional uint64 team_ui_logo = 52; + optional uint64 team_base_logo = 53; + optional uint32 match_disabled_until_date = 24; + optional uint32 match_disabled_account_id = 25; + optional uint32 matchmaking_max_range_minutes = 26; + optional uint32 matchlanguages = 27; + repeated .CSODOTAPartyMember members = 29; + optional uint32 low_priority_games_remaining = 35; + optional bool open_for_join_requests = 40; + repeated .CSODOTAPartyInvite sent_invites = 41; + repeated .CSODOTAPartyInvite recv_invites = 42; + optional uint32 account_flags = 43; + optional uint32 region_select_flags = 44; + optional uint32 exclusive_tournament_id = 45; + optional uint32 tourney_division_id = 47; + optional uint32 tourney_schedule_time = 48; + optional uint32 tourney_skill_level = 49; + optional uint32 tourney_bracket_round = 50; + optional uint32 tourney_queue_deadline_time = 54; + optional .ETourneyQueueDeadlineState tourney_queue_deadline_state = 55 [default = k_ETourneyQueueDeadlineState_Normal]; + optional uint32 party_builder_slots_to_fill = 56; + optional uint32 party_builder_match_groups = 57; + optional uint32 party_builder_start_time = 58; + optional bool solo_queue = 59; + optional uint32 steam_clan_account_id = 61; + optional .CMsgReadyCheckStatus ready_check = 62; + optional uint32 custom_game_disabled_until_date = 63; + optional uint32 custom_game_disabled_account_id = 64; + optional bool is_challenge_match = 65; + optional bool party_search_beacon_active = 66; + optional uint32 matchmaking_flags = 67; + optional .EHighPriorityMMState high_priority_state = 68 [default = k_EHighPriorityMM_Unknown]; + optional bool lane_selections_enabled = 69; + optional uint32 custom_game_difficulty_mask = 70; + optional bool is_steam_china = 71; + optional uint32 bot_difficulty_mask = 72; + optional uint32 bot_script_index_mask = 73; + optional bool restricted_from_ranked = 74; + optional uint32 restricted_from_ranked_account_id = 75; + optional uint32 rank_spread_likert_scale = 76; + optional uint32 behavior_score_likert_scale = 77; +} + +message CSODOTAPartyInvite { + message PartyMember { + optional string name = 1; + optional fixed64 steam_id = 2; + optional bool is_coach = 4; + } + + optional uint64 group_id = 1 [(key_field) = true]; + optional fixed64 sender_id = 2; + optional string sender_name = 3; + repeated .CSODOTAPartyInvite.PartyMember members = 4; + optional uint32 team_id = 5; + optional bool low_priority_status = 6; + optional bool as_coach = 7; + optional fixed64 invite_gid = 8; +} + +message CMsgLeaverState { + optional uint32 lobby_state = 1; + optional .DOTA_GameState game_state = 2 [default = DOTA_GAMERULES_STATE_INIT]; + optional bool leaver_detected = 3; + optional bool first_blood_happened = 4; + optional bool discard_match_results = 5; + optional bool mass_disconnect = 6; +} + +message CMsgReadyCheckStatus { + message ReadyMember { + optional uint32 account_id = 1; + optional .EReadyCheckStatus ready_status = 2 [default = k_EReadyCheckStatus_Unknown]; + } + + optional uint32 start_timestamp = 1; + optional uint32 finish_timestamp = 2; + optional uint32 initiator_account_id = 3; + repeated .CMsgReadyCheckStatus.ReadyMember ready_members = 4; +} + +message CMsgPartyReadyCheckRequest { +} + +message CMsgPartyReadyCheckResponse { + optional .EReadyCheckRequestResult result = 1 [default = k_EReadyCheckRequestResult_Success]; +} + +message CMsgPartyReadyCheckAcknowledge { + optional .EReadyCheckStatus ready_status = 1 [default = k_EReadyCheckStatus_Unknown]; +} + +message CMsgLobbyEventGameDetails { + optional bytes kv_data = 1; +} + +message CMsgMatchMatchmakingStats { + optional uint32 average_queue_time = 1; + optional uint32 maximum_queue_time = 2; + optional .EMatchBehaviorScoreVariance behavior_score_variance = 3 [default = k_EMatchBehaviorScoreVariance_Invalid]; +} + +message CMvpData { + message MvpDatum { + message MvpAccolade { + enum MvpAccoladeType { + kills = 1; + deaths = 2; + assists = 3; + net_worth = 5; + item_value = 6; + support_gold_spent = 7; + wards_placed = 8; + dewards = 9; + camps_stacked = 10; + last_hits = 11; + denies = 12; + kKillEaterEvent_Killing_Sprees = 13; + kKillEaterEvent_Godlike = 14; + kKillEaterEvent_Towers_Destroyed = 15; + kKillEaterEventType_Invoker_SunstrikeKills = 16; + kKillEaterEventType_Axe_Culls = 17; + kKillEaterEventType_Axe_BattleHungerKills = 18; + kKillEaterEventType_LowHealthKills = 19; + kKillEaterEventType_Invoker_TornadoKills = 20; + kKillEaterEventType_Sven_DoubleStuns = 21; + kKillEaterEventType_Sven_WarcryAssists = 22; + kKillEaterEventType_Sven_CleaveDoubleKills = 23; + kKillEaterEventType_Sven_TeleportInterrupts = 24; + kKillEaterEventType_Faceless_MultiChrono = 25; + kKillEaterEventType_Faceless_ChronoKills = 26; + kKillEaterEventType_Ursa_MultiShocks = 27; + kKillEaterEventType_RoshanKills = 28; + kKillEaterEventType_Lion_FingerKills = 29; + kKillEaterEventType_Riki_SmokedHeroKills = 32; + kKillEaterEventType_HeroesRevealedWithDust = 33; + kKillEaterEventType_SkeletonKing_ReincarnationKills = 34; + kKillEaterEventType_Skywrath_FlareKills = 35; + kKillEaterEventType_Leshrac_SplitEarthStuns = 36; + kKillEaterEventType_Mirana_MaxStunArrows = 37; + kKillEaterEventType_PhantomAssassin_CoupdeGraceCrits = 38; + kKillEaterEventType_PhantomAssassin_DaggerCrits = 39; + kKillEaterEventType_Meepo_Earthbinds = 40; + kKillEaterEventType_Bloodseeker_RuptureKills = 41; + kKillEaterEventType_Slark_LeashedEnemies = 42; + kKillEaterEventType_Disruptor_FountainGlimpses = 43; + kKillEaterEventType_Rubick_SpellsStolen = 44; + kKillEaterEventType_Rubick_UltimatesStolen = 45; + kKillEaterEventType_Doom_EnemiesDoomed = 46; + kKillEaterEventType_Omniknight_Purifications = 47; + kKillEaterEventType_Omniknight_AlliesRepelled = 48; + kKillEaterEventType_Omniknight_EnemiesRepelled = 49; + kKillEaterEventType_Warlock_FiveHeroFatalBonds = 50; + kKillEaterEventType_CrystalMaiden_FrostbittenEnemies = 51; + kKillEaterEventType_CrystalMaiden_CrystalNovas = 52; + kKillEaterEventType_Kunkka_DoubleHeroTorrents = 53; + kKillEaterEventType_Kunkka_TripleHeroGhostShips = 54; + kKillEaterEventType_NagaSiren_EnemiesEnsnared = 55; + kKillEaterEventType_NagaSiren_TripleHeroRipTides = 56; + kKillEaterEventType_Lycan_KillsDuringShapeshift = 57; + kKillEaterEventType_Pudge_DismemberKills = 58; + kKillEaterEventType_Pudge_EnemyHeroesHooked = 59; + kKillEaterEventType_Pudge_HookKills = 60; + kKillEaterEventType_Pudge_UnseenEnemyHeroesHooked = 61; + kKillEaterEventType_DrowRanger_EnemiesSilenced = 62; + kKillEaterEventType_DrowRanger_MultiHeroSilences = 63; + kKillEaterEventType_DrowRanger_SilencedKills = 64; + kKillEaterEventType_DrowRanger_FrostArrowKills = 65; + kKillEaterEventType_DragonKnight_KillsInDragonForm = 66; + kKillEaterEventType_DragonKnight_BreatheFireKills = 67; + kKillEaterEventType_DragonKnight_SplashKills = 68; + kKillEaterEventType_WitchDoctor_CaskStuns = 69; + kKillEaterEventType_WitchDoctor_MaledictKills = 70; + kKillEaterEventType_WitchDoctor_MultiHeroMaledicts = 71; + kKillEaterEventType_WitchDoctor_DeathWardKills = 72; + kKillEaterEventType_Disruptor_ThunderStrikeKills = 73; + kKillEaterEventType_Disruptor_HeroesGlimpsed = 74; + kKillEaterEventType_CrystalMaiden_FreezingFieldKills = 75; + kKillEaterEventType_Medusa_EnemiesPetrified = 77; + kKillEaterEventType_Warlock_FatalBondsKills = 78; + kKillEaterEventType_Warlock_GolemKills = 79; + kKillEaterEventType_Tusk_WalrusPunches = 80; + kKillEaterEventType_Tusk_SnowballStuns = 81; + kKillEaterEventType_Earthshaker_FissureStuns = 82; + kKillEaterEventType_Earthshaker_3HeroEchoslams = 83; + kKillEaterEventType_SandKing_BurrowstrikeStuns = 84; + kKillEaterEventType_SandKing_EpicenterKills = 85; + kKillEaterEventType_SkywrathMage_AncientSealKills = 86; + kKillEaterEventType_SkywrathMage_ConcussiveShotKills = 87; + kKillEaterEventType_Luna_LucentBeamKills = 88; + kKillEaterEventType_Luna_EclipseKills = 89; + kKillEaterEventType_KeeperOfTheLight_IlluminateKills = 90; + kKillEaterEventType_KeeperOfTheLight_ManaLeakStuns = 91; + kKillEaterEventType_KeeperOfTheLight_TeammatesRecalled = 92; + kKillEaterEventType_LegionCommander_DuelsWon = 93; + kKillEaterEventType_Beastmaster_RoarKills = 94; + kKillEaterEventType_Beastmaster_RoarMultiKills = 95; + kKillEaterEventType_Windrunner_FocusFireBuildings = 96; + kKillEaterEventType_Windrunner_PowershotKills = 97; + kKillEaterEventType_PhantomAssassin_DaggerLastHits = 98; + kKillEaterEventType_PhantomAssassin_PhantomStrikeKills = 99; + kKillEaterEventType_DeathProphet_CryptSwarmKills = 100; + kKillEaterEventType_DeathProphet_ExorcismBuildingKills = 101; + kKillEaterEventType_DeathProphet_ExorcismSpiritsSummoned = 102; + kKillEaterEventType_DeathProphet_MultiHeroSilences = 103; + kKillEaterEventType_Abaddon_MistCoilKills = 104; + kKillEaterEventType_Abaddon_MistCoilHealed = 105; + kKillEaterEventType_Abaddon_AphoticShieldKills = 106; + kKillEaterEventType_Lich_ChainFrostTripleKills = 107; + kKillEaterEventType_Lich_ChainFrostMultiKills = 108; + kKillEaterEventType_Lich_ChainFrostBounces = 109; + kKillEaterEventType_Ursa_EnragedKills = 110; + kKillEaterEventType_Ursa_EarthshockKills = 111; + kKillEaterEventType_Lina_LagunaBladeKills = 112; + kKillEaterEventType_Lina_DragonSlaveKills = 113; + kKillEaterEventType_Lina_LightStrikeArrayStuns = 114; + kKillEaterEvent_Barracks_Destroyed = 115; + kKillEaterEvent_TemplarAssassin_MeldKills = 116; + kKillEaterEvent_TemplarAssassin_HeroesSlowed = 117; + kKillEaterEvent_Sniper_AssassinationKills = 118; + kKillEaterEvent_Sniper_HeadshotStuns = 119; + kKillEaterEvent_EarthSpirit_SmashStuns = 120; + kKillEaterEvent_EarthSpirit_GripSilences = 121; + kKillEaterEvent_ShadowShaman_ShackleKills = 122; + kKillEaterEvent_ShadowShaman_HexKills = 123; + kKillEaterEvent_Centaur_EnemiesStomped = 124; + kKillEaterEvent_Centaur_DoubleEdgeKills = 125; + kKillEaterEvent_Centaur_ReturnKills = 126; + kKillEaterEvent_EmberSpirit_EnemiesChained = 127; + kKillEaterEvent_EmberSpirit_SleightOfFistMultiKills = 128; + kKillEaterEvent_Puck_OrbKills = 129; + kKillEaterEvent_VengefulSpirit_EnemiesStunned = 130; + kKillEaterEvent_Lifestealer_RageKills = 131; + kKillEaterEvent_Lifestealer_OpenWoundsKills = 132; + kKillEaterEvent_Lifestealer_InfestKills = 133; + kKillEaterEvent_ElderTitan_SpiritKills = 134; + kKillEaterEvent_ElderTitan_GoodStomps = 135; + kKillEaterEvent_Clockwerk_RocketKills = 136; + kKillEaterEvent_Clockwerk_BlindRocketKills = 137; + kKillEaterEvent_StormSpirit_BallKills = 138; + kKillEaterEvent_StormSpirit_DoubleRemnantKills = 139; + kKillEaterEvent_StormSpirit_VortexKills = 140; + kKillEaterEvent_Tinker_DoubleMissileKills = 141; + kKillEaterEvent_Tinker_LaserKills = 142; + kKillEaterEvent_Techies_SuicideKills = 143; + kKillEaterEvent_Techies_LandMineKills = 144; + kKillEaterEvent_Techies_StatisTrapStuns = 145; + kKillEaterEvent_Techies_RemoteMineKills = 146; + kKillEaterEvent_ShadowFiend_TripleRazeKills = 147; + kKillEaterEvent_ShadowFiend_RequiemMultiKills = 148; + kKillEaterEvent_ShadowFiend_QRazeKills = 149; + kKillEaterEvent_ShadowFiend_WRazeKills = 150; + kKillEaterEvent_ShadowFiend_ERazeKills = 151; + kKillEaterEvent_Oracle_FatesEdictKills = 152; + kKillEaterEvent_Oracle_FalsePromiseSaves = 153; + kKillEaterEvent_Juggernaut_OmnislashKills = 154; + kKillEaterEventType_SkeletonKing_SkeletonHeroKills = 157; + kKillEaterEventType_DarkWillow_CursedCrownTripleStuns = 158; + kKillEaterEventType_Dazzle_ShallowGraveSaves = 159; + kKillEaterEventType_Dazzle_PoisonTouchKills = 160; + kKillEaterEventType_ThreeManMeks = 161; + kKillEaterEventType_Viper_PoisonAttackKills = 162; + kKillEaterEventType_Viper_CorrosiveSkinKills = 163; + kKillEaterEventType_ThreeHeroVeils = 164; + kKillEaterEventType_Viper_KillsDuringViperStrike = 165; + kKillEaterEventType_SolarCrestKills = 166; + kKillEaterEventType_Tiny_TreeThrowKills = 167; + kKillEaterEventType_Riki_BackstabKills = 168; + kKillEaterEventType_Phoenix_ThreeHeroSupernovaStuns = 169; + kKillEaterEventType_Terrorblade_MetamorphosisKills = 170; + kKillEaterEventType_Lion_GreatFingerKills = 171; + kKillEaterEventType_Antimage_SpellsBlockedWithAghanims = 172; + kKillEaterEventType_Antimage_ThreeManManaVoids = 173; + kKillEaterEventType_ArcWarden_TempestDoubleKills = 174; + kKillEaterEventType_ArcWarden_SparkWraithKills = 175; + kKillEaterEventType_Bane_BrainSapKills = 176; + kKillEaterEventType_Bane_FiendsGripKills = 177; + kKillEaterEventType_Batrider_TripleHeroFlamebreaks = 178; + kKillEaterEventType_Batrider_DoubleHeroLassoes = 179; + kKillEaterEventType_Brewmaster_KillsDuringPrimalSplit = 180; + kKillEaterEventType_Bristleback_KillsUnderFourQuillStacks = 181; + kKillEaterEventType_Bristleback_TripleHeroNasalGoo = 182; + kKillEaterEventType_Broodmother_SpiderlingHeroKills = 183; + kKillEaterEventType_Broodmother_KillsInsideWeb = 184; + kKillEaterEventType_Centaur_ThreeHeroStampede = 185; + kKillEaterEventType_ChaosKnight_RealityRiftKills = 186; + kKillEaterEventType_Chen_KillsWithPenitence = 187; + kKillEaterEventType_CrystalMaiden_TwoHeroCrystalNovas = 188; + kKillEaterEventType_CrystalMaiden_ThreeHeroFreezingFields = 189; + kKillEaterEventType_Dazzle_ShadowWaveKills = 190; + kKillEaterEventType_DeathProphet_SiphonKills = 191; + kKillEaterEventType_DeathProphet_ExorcismKillsDuringEuls = 192; + kKillEaterEventType_Disruptor_ThreeHeroKineticFieldStaticStorm = 193; + kKillEaterEventType_Doom_InfernalBladeBurnKills = 194; + kKillEaterEventType_DrowRanger_PrecisionAuraCreepTowerKills = 195; + kKillEaterEventType_EmberSpirit_RemnantKills = 196; + kKillEaterEventType_EmberSpirit_SleightOfFistKills = 197; + kKillEaterEventType_Enigma_MidnightPulseBlackHoleCombos = 198; + kKillEaterEventType_Enigma_ThreeManBlackHoles = 199; + kKillEaterEventType_FacelessVoid_MultiHeroTimeDilation = 200; + kKillEaterEventType_Gyrocopter_ThreeHeroFlakCannon = 201; + kKillEaterEventType_Gyrocopter_HomingMissileKills = 202; + kKillEaterEventType_Gyrocopter_RocketBarrageKills = 203; + kKillEaterEventType_Huskar_KillsDuringLifeBreak = 204; + kKillEaterEventType_Huskar_BurningSpearKills = 205; + kKillEaterEventType_Invoker_MultiHeroIceWall = 206; + kKillEaterEventType_Invoker_ThreeHeroEMP = 207; + kKillEaterEventType_Invoker_ThreeHeroDeafeningBlast = 208; + kKillEaterEventType_Invoker_MultiHeroChaosMeteor = 209; + kKillEaterEventType_Jakiro_MultiHeroDualBreath = 210; + kKillEaterEventType_Jakiro_IcePathMacropyreCombos = 211; + kKillEaterEventType_Leshrac_PulseNovaKills = 212; + kKillEaterEventType_Leshrac_ThreeHeroLightningStorm = 213; + kKillEaterEventType_Lion_ThreeHeroFingerOfDeath = 214; + kKillEaterEventType_Meepo_PoofKills = 215; + kKillEaterEventType_Meepo_MultiHeroEarthbinds = 216; + kKillEaterEventType_NightStalker_NighttimeKills = 217; + kKillEaterEventType_Morphling_KillsDuringReplicate = 218; + kKillEaterEventType_OgreMagi_FireblastKills = 219; + kKillEaterEventType_OgreMagi_IgniteKills = 220; + kKillEaterEventType_DominatingKillStreaks = 221; + kKillEaterEventType_MegaKillStreaks = 222; + kKillEaterEventType_Alchemist_AghanimsGiven = 223; + kKillEaterEventType_VeilsLeadingToKills = 224; + kKillEaterEventType_DustLeadingToKills = 225; + kKillEaterEventType_WitchDoctor_MultiHeroCaskStuns = 226; + kKillEaterEventType_Weaver_ShukuchiKills = 227; + kKillEaterEventType_Windrunner_ShackleFocusFireKills = 228; + kKillEaterEventType_VengefulSpirit_VengeanceAuraIllusionKills = 229; + kKillEaterEventType_Tusk_WalrusPunchKills = 230; + kKillEaterEventType_Tinker_MultiHeroLasers = 231; + kKillEaterEventType_TemplarAssassin_MultiHeroPsiBlades = 232; + kKillEaterEventType_Sven_KillsDuringGodsStrength = 233; + kKillEaterEventType_Sniper_ThreeHeroShrapnels = 234; + kKillEaterEventType_Slark_KillsDuringShadowDance = 235; + kKillEaterEventType_ShadowShaman_MultiHeroEtherShocks = 236; + kKillEaterEventType_ShadowShaman_SerpentWardShackleKills = 237; + kKillEaterEventType_Riki_ThreeHeroTricksOfTheTrade = 238; + kKillEaterEventType_Razor_EyeOfTheStormKills = 239; + kKillEaterEventType_Pugna_LifeDrainKills = 240; + kKillEaterEventType_ObsidianDestroyer_SanitysEclipseKills = 241; + kKillEaterEventType_Oracle_MultiHeroFortunesEnd = 242; + kKillEaterEventType_Omniknight_PurificationKills = 243; + kKillEaterEventType_NightStalker_EnemyMissesUnderCripplingFear = 244; + kKillEaterEventType_Warlock_ThreeHeroFatalBonds = 245; + kKillEaterEventType_Riki_TricksOfTheTradeKills = 246; + kKillEaterEventType_Earthshaker_AftershockHits10 = 247; + kKillEaterEventType_Earthshaker_5HeroEchoslams = 248; + kKillEaterEventType_Lina_LagunaBladeHeroKills = 249; + kKillEaterEventType_Lina_LightStrikeHeroStuns = 250; + kKillEaterEventType_Earthshaker_FissureMultiStuns = 251; + kKillEaterEventType_Earthshaker_TotemKills = 252; + kKillEaterEventType_Pangolier_SwashbuckleKills = 253; + kKillEaterEventType_Furion_EnemyHeroesTrapped = 254; + kKillEaterEventType_Pangolier_HeartpiercerKills = 255; + kKillEaterEventType_Medusa_MultiHeroStoneGaze = 256; + kKillEaterEventType_Medusa_SplitShotKills = 257; + kKillEaterEventType_Mirana_MultiHeroStarstorm = 258; + kKillEaterEventType_Mirana_KillsFromMoonlightShadow = 259; + kKillEaterEventType_Magnus_MultiHeroSkewers = 260; + kKillEaterEventType_Magnus_MultiHeroReversePolarity = 261; + kKillEaterEventType_Magnus_HeroesSlowedWithShockwave = 262; + kKillEaterEventType_NagaSiren_MultiHeroSong = 263; + kKillEaterEventType_NagaSiren_AlliesHealedBySong = 264; + kKillEaterEventType_LoneDruid_MultiHeroRoar = 265; + kKillEaterEventType_LoneDruid_BattleCryKills = 266; + kKillEaterEventType_WinterWyvern_ThreeHeroCurses = 267; + kKillEaterEventType_Antimage_SpellsBlockedWithCounterspell = 268; + kKillEaterEventType_Mars_EnemiesKilledInArena = 269; + kKillEaterEventType_Mars_MultiHeroGodsRebuke = 270; + kKillEaterEventType_Mars_GodsRebukeKills = 271; + kKillEaterEventType_Snapfire_LizardBlobsKills = 272; + kKillEaterEventType_Snapfire_TwoHeroCookieStuns = 273; + Custom_KillStreak = 274; + kKillEaterEventType_Muerta_DeadShotKills = 275; + kKillEaterEventType_Muerta_PierceTheVeilKills = 276; + kKillEaterEventType_Muerta_MultiHeroDeadShot = 277; + kKillEaterEventType_Muerta_DeadShotsIntoTheCalling = 278; + kKillEaterEventType_Ringmaster_LongRangeDaggerHits = 279; + kKillEaterEventType_Ringmaster_MultiHeroWhips = 280; + kKillEaterEventType_Ringmaster_MultiHeroMesmerizes = 281; + } + + optional .CMvpData.MvpDatum.MvpAccolade.MvpAccoladeType type = 1 [default = kills]; + optional float detail_value = 2; + } + + optional uint32 player_slot = 1; + repeated .CMvpData.MvpDatum.MvpAccolade accolades = 2; + } + + repeated .CMvpData.MvpDatum mvps = 1; +} diff --git a/Protobufs/dota2/dota_gcmessages_common_overworld.proto b/Protobufs/dota2/dota_gcmessages_common_overworld.proto new file mode 100644 index 0000000..9f1480b --- /dev/null +++ b/Protobufs/dota2/dota_gcmessages_common_overworld.proto @@ -0,0 +1,406 @@ +import "steammessages.proto"; +import "dota_shared_enums.proto"; +import "dota_gcmessages_common.proto"; +import "gcsdk_gcmessages.proto"; + +enum EOverworldNodeState { + k_eOverworldNodeState_Invalid = 0; + k_eOverworldNodeState_Locked = 1; + k_eOverworldNodeState_Unlocked = 2; +} + +enum EOverworldAuditAction { + k_eOverworldAuditAction_Invalid = 0; + k_eOverworldAuditAction_DevModifyTokens = 1; + k_eOverworldAuditAction_DevClearInventory = 2; + k_eOverworldAuditAction_DevGrantTokens = 3; + k_eOverworldAuditAction_CompletePath = 4; + k_eOverworldAuditAction_ClaimEncounterReward = 5; + k_eOverworldAuditAction_DevResetNode = 6; + k_eOverworldAuditAction_DevResetPath = 7; + k_eOverworldAuditAction_MatchRewardsFull = 8; + k_eOverworldAuditAction_MatchRewardsHalf = 9; + k_eOverworldAuditAction_EventActionTokenGrant = 10; + k_eOverworldAuditAction_TokenTraderLost = 11; + k_eOverworldAuditAction_TokenTraderGained = 12; + k_eOverworldAuditAction_EncounterRewardTokenCost = 13; + k_eOverworldAuditAction_EncounterRewardTokenReward = 14; + k_eOverworldAuditAction_SupportGrantTokens = 16; + k_eOverworldAuditAction_TokenGiftSent = 17; +} + +message CMsgOverworldTokenCount { + optional uint32 token_id = 1; + optional uint32 token_count = 2; +} + +message CMsgOverworldTokenQuantity { + repeated .CMsgOverworldTokenCount token_counts = 1; +} + +message CMsgOverworldEncounterTokenTreasureData { + message RewardOption { + optional uint32 reward_data = 1; + optional .CMsgOverworldTokenQuantity token_cost = 2; + optional .CMsgOverworldTokenQuantity token_reward = 3; + } + + repeated .CMsgOverworldEncounterTokenTreasureData.RewardOption reward_options = 1; +} + +message CMsgOverworldEncounterTokenQuestData { + message Quest { + optional uint32 reward_data = 1; + optional .CMsgOverworldTokenQuantity token_cost = 2; + optional .CMsgOverworldTokenQuantity token_reward = 3; + } + + repeated .CMsgOverworldEncounterTokenQuestData.Quest quests = 1; +} + +message CMsgOverworldHeroList { + repeated int32 hero_ids = 1; +} + +message CMsgOverworldEncounterChooseHeroData { + optional .CMsgOverworldHeroList hero_list = 1; + optional bool additive = 2; +} + +message CMsgOverworldEncounterProgressData { + optional int32 choice = 1; + optional int32 progress = 2; + optional int32 max_progress = 3; + optional bool visited = 4; +} + +message CMsgOverworldEncounterData { + repeated .CExtraMsgBlock extra_encounter_data = 1; +} + +message CMsgOverworldNode { + optional uint32 node_id = 1; + optional .EOverworldNodeState node_state = 2 [default = k_eOverworldNodeState_Invalid]; + optional .CMsgOverworldEncounterData node_encounter_data = 3; +} + +message CMsgOverworldPath { + optional uint32 path_id = 1; + optional .CMsgOverworldTokenQuantity path_cost = 2; +} + +message CMsgOverworldUserData { + optional .CMsgOverworldTokenQuantity token_inventory = 1; + repeated .CMsgOverworldNode overworld_nodes = 2; + repeated .CMsgOverworldPath overworld_paths = 3; + optional uint32 current_node_id = 4; +} + +message CMsgOverworldMatchRewards { + message Player { + optional uint32 player_slot = 1; + optional .CMsgOverworldTokenQuantity tokens = 2; + optional uint32 overworld_id = 3; + } + + repeated .CMsgOverworldMatchRewards.Player players = 1; +} + +message CMsgClientToGCOverworldGetUserData { + optional uint32 overworld_id = 1; +} + +message CMsgClientToGCOverworldGetUserDataResponse { + enum EResponse { + k_eInternalError = 0; + k_eSuccess = 1; + k_eTooBusy = 2; + k_eDisabled = 3; + k_eTimeout = 4; + k_eInvalidOverworld = 5; + } + + optional .CMsgClientToGCOverworldGetUserDataResponse.EResponse response = 1 [default = k_eInternalError]; + optional .CMsgOverworldUserData user_data = 2; +} + +message CMsgGCToClientOverworldUserDataUpdated { + optional uint32 overworld_id = 1; + optional .CMsgOverworldUserData user_data = 2; +} + +message CMsgClientToGCOverworldCompletePath { + optional uint32 overworld_id = 1; + optional uint32 path_id = 2; +} + +message CMsgClientToGCOverworldCompletePathResponse { + enum EResponse { + k_eInternalError = 0; + k_eSuccess = 1; + k_eTooBusy = 2; + k_eDisabled = 3; + k_eTimeout = 4; + k_eInvalidOverworld = 5; + k_eInvalidPath = 6; + k_eNotEnoughTokens = 7; + k_ePathIsLocked = 8; + k_ePathAlreadyUnlocked = 9; + } + + optional .CMsgClientToGCOverworldCompletePathResponse.EResponse response = 1 [default = k_eInternalError]; + optional .CMsgDOTAClaimEventActionResponse claim_response = 2; +} + +message CMsgOverworldEncounterPitFighterRewardData { + optional uint32 token_id = 1; + optional uint32 choice = 2; +} + +message CMsgClientToGCOverworldClaimEncounterReward { + optional uint32 overworld_id = 1; + optional uint32 node_id = 2; + optional uint32 reward_data = 3; + optional uint32 periodic_resource_id = 4; + optional .CMsgOverworldEncounterData extra_reward_data = 5; +} + +message CMsgClientToGCOverworldClaimEncounterRewardResponse { + enum EResponse { + k_eInternalError = 0; + k_eSuccess = 1; + k_eTooBusy = 2; + k_eDisabled = 3; + k_eTimeout = 4; + k_eInvalidOverworld = 5; + k_eInvalidNode = 6; + k_eNodeLocked = 7; + k_eRewardAlreadyClaimed = 8; + k_eNodeNotEncounter = 9; + k_eEncounterMissingRewards = 10; + k_eInvalidEncounterRewardStyle = 11; + k_eInvalidEncounterData = 12; + k_eNotEnoughTokensForReward = 13; + k_eNotEnoughResourceForReward = 14; + } + + optional .CMsgClientToGCOverworldClaimEncounterRewardResponse.EResponse response = 1 [default = k_eInternalError]; + optional .CMsgDOTAClaimEventActionResponse claim_response = 2; + optional .CMsgOverworldTokenQuantity tokens_received = 3; +} + +message CMsgClientToGCOverworldVisitEncounter { + optional uint32 overworld_id = 1; + optional uint32 node_id = 2; +} + +message CMsgClientToGCOverworldVisitEncounterResponse { + enum EResponse { + k_eInternalError = 0; + k_eSuccess = 1; + k_eTooBusy = 2; + k_eDisabled = 3; + k_eTimeout = 4; + k_eInvalidOverworld = 5; + k_eInvalidNode = 6; + k_eNodeLocked = 7; + k_eNodeNotEncounter = 8; + k_eAlreadyVisited = 9; + } + + optional .CMsgClientToGCOverworldVisitEncounterResponse.EResponse response = 1 [default = k_eInternalError]; +} + +message CMsgClientToGCOverworldMoveToNode { + optional uint32 overworld_id = 1; + optional uint32 node_id = 2; +} + +message CMsgClientToGCOverworldMoveToNodeResponse { + enum EResponse { + k_eInternalError = 0; + k_eSuccess = 1; + k_eTooBusy = 2; + k_eDisabled = 3; + k_eTimeout = 4; + k_eInvalidOverworld = 5; + k_eInvalidNode = 6; + k_eNodeLocked = 7; + } + + optional .CMsgClientToGCOverworldMoveToNodeResponse.EResponse response = 1 [default = k_eInternalError]; +} + +message CMsgClientToGCOverworldTradeTokens { + optional uint32 overworld_id = 1; + optional .CMsgOverworldTokenQuantity token_offer = 2; + optional .CMsgOverworldTokenQuantity token_request = 3; + optional uint32 recipe = 4; + optional uint32 encounter_id = 5; +} + +message CMsgClientToGCOverworldTradeTokensResponse { + enum EResponse { + k_eInternalError = 0; + k_eSuccess = 1; + k_eTooBusy = 2; + k_eDisabled = 3; + k_eTimeout = 4; + k_eNotAllowed = 5; + k_eNodeLocked = 6; + k_eInvalidOverworld = 7; + k_eInvalidOffer = 8; + k_eNotEnoughTokens = 9; + k_eInvalidNode = 10; + k_eInvalidEncounter = 11; + k_eRewardDoesNotMatchRecipe = 12; + } + + optional .CMsgClientToGCOverworldTradeTokensResponse.EResponse response = 1 [default = k_eInternalError]; + optional .CMsgOverworldTokenQuantity tokens_received = 2; +} + +message CMsgClientToGCOverworldGiftTokens { + optional uint32 overworld_id = 1; + optional .CMsgOverworldTokenCount token_gift = 2; + optional uint32 recipient_account_id = 3; + optional uint32 periodic_resource_id = 4; +} + +message CMsgClientToGCOverworldGiftTokensResponse { + enum EResponse { + k_eInternalError = 0; + k_eSuccess = 1; + k_eTooBusy = 2; + k_eDisabled = 3; + k_eTimeout = 4; + k_eNotAllowed = 5; + k_eNodeLocked = 6; + k_eInvalidOverworld = 7; + k_eInvalidGift = 8; + k_eNotEnoughTokens = 9; + k_eInvalidRecipient = 10; + k_eNotEnoughPeriodicResource = 11; + } + + optional .CMsgClientToGCOverworldGiftTokensResponse.EResponse response = 1 [default = k_eInternalError]; +} + +message CMsgClientToGCOverworldDevResetAll { + optional uint32 overworld_id = 1; +} + +message CMsgClientToGCOverworldDevResetAllResponse { + enum EResponse { + k_eInternalError = 0; + k_eSuccess = 1; + k_eTooBusy = 2; + k_eDisabled = 3; + k_eTimeout = 4; + k_eNotAllowed = 5; + k_eInvalidOverworld = 6; + } + + optional .CMsgClientToGCOverworldDevResetAllResponse.EResponse response = 1 [default = k_eInternalError]; +} + +message CMsgClientToGCOverworldDevResetNode { + optional uint32 overworld_id = 1; + optional uint32 node_id = 2; +} + +message CMsgClientToGCOverworldDevResetNodeResponse { + enum EResponse { + k_eInternalError = 0; + k_eSuccess = 1; + k_eTooBusy = 2; + k_eDisabled = 3; + k_eTimeout = 4; + k_eNotAllowed = 5; + k_eInvalidOverworld = 6; + k_eInvalidNode = 7; + } + + optional .CMsgClientToGCOverworldDevResetNodeResponse.EResponse response = 1 [default = k_eInternalError]; +} + +message CMsgClientToGCOverworldDevGrantTokens { + optional uint32 overworld_id = 1; + optional .CMsgOverworldTokenQuantity token_quantity = 2; +} + +message CMsgClientToGCOverworldDevGrantTokensResponse { + enum EResponse { + k_eInternalError = 0; + k_eSuccess = 1; + k_eTooBusy = 2; + k_eDisabled = 3; + k_eTimeout = 4; + k_eNotAllowed = 5; + k_eInvalidOverworld = 6; + } + + optional .CMsgClientToGCOverworldDevGrantTokensResponse.EResponse response = 1 [default = k_eInternalError]; +} + +message CMsgClientToGCOverworldDevClearInventory { + optional uint32 overworld_id = 1; +} + +message CMsgClientToGCOverworldDevClearInventoryResponse { + enum EResponse { + k_eInternalError = 0; + k_eSuccess = 1; + k_eTooBusy = 2; + k_eDisabled = 3; + k_eTimeout = 4; + k_eNotAllowed = 5; + k_eInvalidOverworld = 6; + } + + optional .CMsgClientToGCOverworldDevClearInventoryResponse.EResponse response = 1 [default = k_eInternalError]; +} + +message CMsgClientToGCOverworldFeedback { + optional uint32 language = 1; + optional uint32 overworld_id = 2; + optional string feedback = 3; +} + +message CMsgClientToGCOverworldFeedbackResponse { + enum EResponse { + k_eInternalError = 0; + k_eSuccess = 1; + k_eTooBusy = 2; + k_eDisabled = 3; + k_eTimeout = 4; + k_eNotAllowed = 5; + k_eInvalidOverworld = 6; + } + + optional .CMsgClientToGCOverworldFeedbackResponse.EResponse response = 1 [default = k_eInternalError]; +} + +message CMsgClientToGCOverworldGetDynamicImage { + optional uint32 magic = 1; + optional uint32 image_id = 2; + optional uint32 language = 3; +} + +message CMsgClientToGCOverworldGetDynamicImageResponse { + message Image { + optional uint32 width = 1; + optional uint32 height = 2; + optional .CMsgClientToGCOverworldGetDynamicImageResponse.EDynamicImageFormat format = 3 [default = k_eUnknown]; + optional bytes image_bytes = 4; + } + + enum EDynamicImageFormat { + k_eUnknown = 0; + k_ePNG = 1; + k_eData = 2; + } + + optional uint32 image_id = 1; + repeated .CMsgClientToGCOverworldGetDynamicImageResponse.Image images = 2; +} diff --git a/Protobufs/dota2/dota_gcmessages_msgid.proto b/Protobufs/dota2/dota_gcmessages_msgid.proto new file mode 100644 index 0000000..d601b3f --- /dev/null +++ b/Protobufs/dota2/dota_gcmessages_msgid.proto @@ -0,0 +1,947 @@ +enum EDOTAGCMsg { + k_EMsgGCDOTABase = 7000; + k_EMsgGCGameMatchSignOut = 7004; + k_EMsgGCGameMatchSignOutResponse = 7005; + k_EMsgGCJoinChatChannel = 7009; + k_EMsgGCJoinChatChannelResponse = 7010; + k_EMsgGCOtherJoinedChannel = 7013; + k_EMsgGCOtherLeftChannel = 7014; + k_EMsgServerToGCRequestStatus = 7026; + k_EMsgGCStartFindingMatch = 7033; + k_EMsgGCConnectedPlayers = 7034; + k_EMsgGCAbandonCurrentGame = 7035; + k_EMsgGCStopFindingMatch = 7036; + k_EMsgGCPracticeLobbyCreate = 7038; + k_EMsgGCPracticeLobbyLeave = 7040; + k_EMsgGCPracticeLobbyLaunch = 7041; + k_EMsgGCPracticeLobbyList = 7042; + k_EMsgGCPracticeLobbyListResponse = 7043; + k_EMsgGCPracticeLobbyJoin = 7044; + k_EMsgGCPracticeLobbySetDetails = 7046; + k_EMsgGCPracticeLobbySetTeamSlot = 7047; + k_EMsgGCInitialQuestionnaireResponse = 7049; + k_EMsgGCPracticeLobbyResponse = 7055; + k_EMsgGCBroadcastNotification = 7056; + k_EMsgGCLiveScoreboardUpdate = 7057; + k_EMsgGCRequestChatChannelList = 7060; + k_EMsgGCRequestChatChannelListResponse = 7061; + k_EMsgGCReadyUp = 7070; + k_EMsgGCKickedFromMatchmakingQueue = 7071; + k_EMsgGCLeaverDetected = 7072; + k_EMsgGCSpectateFriendGame = 7073; + k_EMsgGCSpectateFriendGameResponse = 7074; + k_EMsgGCReportsRemainingRequest = 7076; + k_EMsgGCReportsRemainingResponse = 7077; + k_EMsgGCSubmitPlayerReport = 7078; + k_EMsgGCSubmitPlayerReportResponse = 7079; + k_EMsgGCPracticeLobbyKick = 7081; + k_EMsgGCSubmitPlayerReportV2 = 7082; + k_EMsgGCSubmitPlayerReportResponseV2 = 7083; + k_EMsgGCRequestSaveGames = 7084; + k_EMsgGCRequestSaveGamesServer = 7085; + k_EMsgGCRequestSaveGamesResponse = 7086; + k_EMsgGCLeaverDetectedResponse = 7087; + k_EMsgGCPlayerFailedToConnect = 7088; + k_EMsgGCGCToRelayConnect = 7089; + k_EMsgGCGCToRelayConnectresponse = 7090; + k_EMsgGCWatchGame = 7091; + k_EMsgGCWatchGameResponse = 7092; + k_EMsgGCBanStatusRequest = 7093; + k_EMsgGCBanStatusResponse = 7094; + k_EMsgGCMatchDetailsRequest = 7095; + k_EMsgGCMatchDetailsResponse = 7096; + k_EMsgGCCancelWatchGame = 7097; + k_EMsgGCPopup = 7102; + k_EMsgGCFriendPracticeLobbyListRequest = 7111; + k_EMsgGCFriendPracticeLobbyListResponse = 7112; + k_EMsgGCPracticeLobbyJoinResponse = 7113; + k_EMsgGCCreateTeam = 7115; + k_EMsgGCCreateTeamResponse = 7116; + k_EMsgGCTeamInvite_InviterToGC = 7122; + k_EMsgGCTeamInvite_GCImmediateResponseToInviter = 7123; + k_EMsgGCTeamInvite_GCRequestToInvitee = 7124; + k_EMsgGCTeamInvite_InviteeResponseToGC = 7125; + k_EMsgGCTeamInvite_GCResponseToInviter = 7126; + k_EMsgGCTeamInvite_GCResponseToInvitee = 7127; + k_EMsgGCKickTeamMember = 7128; + k_EMsgGCKickTeamMemberResponse = 7129; + k_EMsgGCLeaveTeam = 7130; + k_EMsgGCLeaveTeamResponse = 7131; + k_EMsgGCApplyTeamToPracticeLobby = 7142; + k_EMsgGCTransferTeamAdmin = 7144; + k_EMsgGCPracticeLobbyJoinBroadcastChannel = 7149; + k_EMsgGC_TournamentItemEvent = 7150; + k_EMsgGC_TournamentItemEventResponse = 7151; + k_EMsgTeamFanfare = 7156; + k_EMsgResponseTeamFanfare = 7157; + k_EMsgGCEditTeamDetails = 7166; + k_EMsgGCEditTeamDetailsResponse = 7167; + k_EMsgGCReadyUpStatus = 7170; + k_EMsgGCToGCMatchCompleted = 7186; + k_EMsgGCBalancedShuffleLobby = 7188; + k_EMsgGCMatchmakingStatsRequest = 7197; + k_EMsgGCMatchmakingStatsResponse = 7198; + k_EMsgGCBotGameCreate = 7199; + k_EMsgGCSetMatchHistoryAccess = 7200; + k_EMsgGCSetMatchHistoryAccessResponse = 7201; + k_EMsgUpgradeLeagueItem = 7203; + k_EMsgUpgradeLeagueItemResponse = 7204; + k_EMsgGCWatchDownloadedReplay = 7206; + k_EMsgClientsRejoinChatChannels = 7217; + k_EMsgGCToGCGetUserChatInfo = 7218; + k_EMsgGCToGCGetUserChatInfoResponse = 7219; + k_EMsgGCToGCLeaveAllChatChannels = 7220; + k_EMsgGCToGCUpdateAccountChatBan = 7221; + k_EMsgGCToGCCanInviteUserToTeam = 7234; + k_EMsgGCToGCCanInviteUserToTeamResponse = 7235; + k_EMsgGCToGCGetUserRank = 7236; + k_EMsgGCToGCGetUserRankResponse = 7237; + k_EMsgGCToGCAdjustUserRank = 7238; + k_EMsgGCToGCAdjustUserRankResponse = 7239; + k_EMsgGCToGCUpdateTeamStats = 7240; + k_EMsgGCToGCValidateTeam = 7241; + k_EMsgGCToGCValidateTeamResponse = 7242; + k_EMsgGCToGCGetLeagueAdmin = 7255; + k_EMsgGCToGCGetLeagueAdminResponse = 7256; + k_EMsgGCLeaveChatChannel = 7272; + k_EMsgGCChatMessage = 7273; + k_EMsgGCGetHeroStandings = 7274; + k_EMsgGCGetHeroStandingsResponse = 7275; + k_EMsgGCItemEditorReservationsRequest = 7283; + k_EMsgGCItemEditorReservationsResponse = 7284; + k_EMsgGCItemEditorReserveItemDef = 7285; + k_EMsgGCItemEditorReserveItemDefResponse = 7286; + k_EMsgGCItemEditorReleaseReservation = 7287; + k_EMsgGCItemEditorReleaseReservationResponse = 7288; + k_EMsgGCFantasyLivePlayerStats = 7308; + k_EMsgGCFantasyFinalPlayerStats = 7309; + k_EMsgGCFlipLobbyTeams = 7320; + k_EMsgGCToGCEvaluateReportedPlayer = 7322; + k_EMsgGCToGCEvaluateReportedPlayerResponse = 7323; + k_EMsgGCToGCProcessPlayerReportForTarget = 7324; + k_EMsgGCToGCProcessReportSuccess = 7325; + k_EMsgGCNotifyAccountFlagsChange = 7326; + k_EMsgGCSetProfilePrivacy = 7327; + k_EMsgGCSetProfilePrivacyResponse = 7328; + k_EMsgGCClientSuspended = 7342; + k_EMsgGCPartyMemberSetCoach = 7343; + k_EMsgGCPracticeLobbySetCoach = 7346; + k_EMsgGCChatModeratorBan = 7359; + k_EMsgGCLobbyUpdateBroadcastChannelInfo = 7367; + k_EMsgGCToGCGrantTournamentItem = 7372; + k_EMsgGCToGCUpgradeTwitchViewerItems = 7375; + k_EMsgGCToGCGetLiveMatchAffiliates = 7376; + k_EMsgGCToGCGetLiveMatchAffiliatesResponse = 7377; + k_EMsgGCToGCUpdatePlayerPennantCounts = 7378; + k_EMsgGCToGCGetPlayerPennantCounts = 7379; + k_EMsgGCToGCGetPlayerPennantCountsResponse = 7380; + k_EMsgGCGameMatchSignOutPermissionRequest = 7381; + k_EMsgGCGameMatchSignOutPermissionResponse = 7382; + k_EMsgDOTAAwardEventPoints = 7384; + k_EMsgDOTAGetEventPoints = 7387; + k_EMsgDOTAGetEventPointsResponse = 7388; + k_EMsgGCPartyLeaderWatchGamePrompt = 7397; + k_EMsgGCCompendiumSetSelection = 7405; + k_EMsgGCCompendiumDataRequest = 7406; + k_EMsgGCCompendiumDataResponse = 7407; + k_EMsgDOTAGetPlayerMatchHistory = 7408; + k_EMsgDOTAGetPlayerMatchHistoryResponse = 7409; + k_EMsgGCToGCMatchmakingAddParty = 7410; + k_EMsgGCToGCMatchmakingRemoveParty = 7411; + k_EMsgGCToGCMatchmakingRemoveAllParties = 7412; + k_EMsgGCToGCMatchmakingMatchFound = 7413; + k_EMsgGCToGCUpdateMatchManagementStats = 7414; + k_EMsgGCToGCUpdateMatchmakingStats = 7415; + k_EMsgGCToServerPingRequest = 7416; + k_EMsgGCToServerPingResponse = 7417; + k_EMsgGCToServerEvaluateToxicChat = 7418; + k_EMsgServerToGCEvaluateToxicChat = 7419; + k_EMsgServerToGCEvaluateToxicChatResponse = 7420; + k_EMsgGCToGCProcessMatchLeaver = 7426; + k_EMsgGCNotificationsRequest = 7427; + k_EMsgGCNotificationsResponse = 7428; + k_EMsgGCToGCModifyNotification = 7429; + k_EMsgGCLeagueAdminList = 7434; + k_EMsgGCNotificationsMarkReadRequest = 7435; + k_EMsgServerToGCRequestBatchPlayerResources = 7450; + k_EMsgServerToGCRequestBatchPlayerResourcesResponse = 7451; + k_EMsgGCCompendiumSetSelectionResponse = 7453; + k_EMsgGCPlayerInfoSubmit = 7456; + k_EMsgGCPlayerInfoSubmitResponse = 7457; + k_EMsgGCToGCGetAccountLevel = 7458; + k_EMsgGCToGCGetAccountLevelResponse = 7459; + k_EMsgDOTAGetWeekendTourneySchedule = 7464; + k_EMsgDOTAWeekendTourneySchedule = 7465; + k_EMsgGCJoinableCustomGameModesRequest = 7466; + k_EMsgGCJoinableCustomGameModesResponse = 7467; + k_EMsgGCJoinableCustomLobbiesRequest = 7468; + k_EMsgGCJoinableCustomLobbiesResponse = 7469; + k_EMsgGCQuickJoinCustomLobby = 7470; + k_EMsgGCQuickJoinCustomLobbyResponse = 7471; + k_EMsgGCToGCGrantEventPointAction = 7472; + k_EMsgGCToGCSetCompendiumSelection = 7478; + k_EMsgGCHasItemQuery = 7484; + k_EMsgGCHasItemResponse = 7485; + k_EMsgGCToGCGrantEventPointActionMsg = 7488; + k_EMsgGCToGCGetCompendiumSelections = 7492; + k_EMsgGCToGCGetCompendiumSelectionsResponse = 7493; + k_EMsgServerToGCMatchConnectionStats = 7494; + k_EMsgGCToClientTournamentItemDrop = 7495; + k_EMsgSQLDelayedGrantLeagueDrop = 7496; + k_EMsgServerGCUpdateSpectatorCount = 7497; + k_EMsgGCToGCEmoticonUnlock = 7501; + k_EMsgSignOutDraftInfo = 7502; + k_EMsgClientToGCEmoticonDataRequest = 7503; + k_EMsgGCToClientEmoticonData = 7504; + k_EMsgGCPracticeLobbyToggleBroadcastChannelCameramanStatus = 7505; + k_EMsgDOTARedeemItem = 7518; + k_EMsgDOTARedeemItemResponse = 7519; + k_EMsgClientToGCGetAllHeroProgress = 7521; + k_EMsgClientToGCGetAllHeroProgressResponse = 7522; + k_EMsgGCToGCGetServerForClient = 7523; + k_EMsgGCToGCGetServerForClientResponse = 7524; + k_EMsgSQLProcessTournamentGameOutcome = 7525; + k_EMsgSQLGrantTrophyToAccount = 7526; + k_EMsgClientToGCGetTrophyList = 7527; + k_EMsgClientToGCGetTrophyListResponse = 7528; + k_EMsgGCToClientTrophyAwarded = 7529; + k_EMsgGCGameBotMatchSignOut = 7530; + k_EMsgGCGameBotMatchSignOutPermissionRequest = 7531; + k_EMsgSignOutBotInfo = 7532; + k_EMsgGCToGCUpdateProfileCards = 7533; + k_EMsgClientToGCGetProfileCard = 7534; + k_EMsgClientToGCGetProfileCardResponse = 7535; + k_EMsgClientToGCGetBattleReport = 7536; + k_EMsgClientToGCGetBattleReportResponse = 7537; + k_EMsgClientToGCSetProfileCardSlots = 7538; + k_EMsgGCToClientProfileCardUpdated = 7539; + k_EMsgServerToGCVictoryPredictions = 7540; + k_EMsgClientToGCGetBattleReportAggregateStats = 7541; + k_EMsgClientToGCGetBattleReportAggregateStatsResponse = 7542; + k_EMsgClientToGCGetBattleReportInfo = 7543; + k_EMsgClientToGCGetBattleReportInfoResponse = 7544; + k_EMsgSignOutCommunicationSummary = 7545; + k_EMsgServerToGCRequestStatus_Response = 7546; + k_EMsgClientToGCCreateHeroStatue = 7547; + k_EMsgGCToClientHeroStatueCreateResult = 7548; + k_EMsgGCGCToLANServerRelayConnect = 7549; + k_EMsgClientToGCAcknowledgeBattleReport = 7550; + k_EMsgClientToGCAcknowledgeBattleReportResponse = 7551; + k_EMsgClientToGCGetBattleReportMatchHistory = 7552; + k_EMsgClientToGCGetBattleReportMatchHistoryResponse = 7553; + k_EMsgServerToGCReportKillSummaries = 7554; + k_EMsgGCToGCUpdatePlayerPredictions = 7561; + k_EMsgGCToServerPredictionResult = 7562; + k_EMsgGCToGCReplayMonitorValidateReplay = 7569; + k_EMsgLobbyEventPoints = 7572; + k_EMsgGCToGCGetCustomGameTickets = 7573; + k_EMsgGCToGCGetCustomGameTicketsResponse = 7574; + k_EMsgGCToGCCustomGamePlayed = 7576; + k_EMsgGCToGCGrantEventPointsToUser = 7577; + k_EMsgGameserverCrashReport = 7579; + k_EMsgGameserverCrashReportResponse = 7580; + k_EMsgGCToClientSteamDatagramTicket = 7581; + k_EMsgGCToGCSendAccountsEventPoints = 7583; + k_EMsgClientToGCRerollPlayerChallenge = 7584; + k_EMsgServerToGCRerollPlayerChallenge = 7585; + k_EMsgGCRerollPlayerChallengeResponse = 7586; + k_EMsgSignOutUpdatePlayerChallenge = 7587; + k_EMsgClientToGCSetPartyLeader = 7588; + k_EMsgClientToGCCancelPartyInvites = 7589; + k_EMsgSQLGrantLeagueMatchToTicketHolders = 7592; + k_EMsgGCToGCEmoticonUnlockNoRollback = 7594; + k_EMsgClientToGCApplyGemCombiner = 7603; + k_EMsgClientToGCGetAllHeroOrder = 7606; + k_EMsgClientToGCGetAllHeroOrderResponse = 7607; + k_EMsgSQLGCToGCGrantBadgePoints = 7608; + k_EMsgGCToGCCheckOwnsEntireEmoticonRange = 7611; + k_EMsgGCToGCCheckOwnsEntireEmoticonRangeResponse = 7612; + k_EMsgGCToClientRequestLaneSelection = 7623; + k_EMsgGCToClientRequestLaneSelectionResponse = 7624; + k_EMsgServerToGCCavernCrawlIsHeroActive = 7625; + k_EMsgServerToGCCavernCrawlIsHeroActiveResponse = 7626; + k_EMsgClientToGCPlayerCardSpecificPurchaseRequest = 7627; + k_EMsgClientToGCPlayerCardSpecificPurchaseResponse = 7628; + k_EMsgSQLSetIsLeagueAdmin = 7630; + k_EMsgGCToGCGetLiveLeagueMatches = 7631; + k_EMsgGCToGCGetLiveLeagueMatchesResponse = 7632; + k_EMsgDOTALeagueInfoListAdminsRequest = 7633; + k_EMsgDOTALeagueInfoListAdminsReponse = 7634; + k_EMsgGCToGCLeagueMatchStarted = 7645; + k_EMsgGCToGCLeagueMatchCompleted = 7646; + k_EMsgGCToGCLeagueMatchStartedResponse = 7647; + k_EMsgDOTALeagueAvailableLobbyNodesRequest = 7650; + k_EMsgDOTALeagueAvailableLobbyNodes = 7651; + k_EMsgGCToGCLeagueRequest = 7652; + k_EMsgGCToGCLeagueResponse = 7653; + k_EMsgGCToGCLeagueNodeGroupRequest = 7654; + k_EMsgGCToGCLeagueNodeGroupResponse = 7655; + k_EMsgGCToGCLeagueNodeRequest = 7656; + k_EMsgGCToGCLeagueNodeResponse = 7657; + k_EMsgGCToGCRealtimeStatsTerseRequest = 7658; + k_EMsgGCToGCRealtimeStatsTerseResponse = 7659; + k_EMsgGCToGCGetTopMatchesRequest = 7660; + k_EMsgGCToGCGetTopMatchesResponse = 7661; + k_EMsgClientToGCGetFilteredPlayers = 7662; + k_EMsgGCToClientGetFilteredPlayersResponse = 7663; + k_EMsgClientToGCRemoveFilteredPlayer = 7664; + k_EMsgGCToClientRemoveFilteredPlayerResponse = 7665; + k_EMsgGCToClientPlayerBeaconState = 7666; + k_EMsgGCToClientPartyBeaconUpdate = 7667; + k_EMsgGCToClientPartySearchInvite = 7668; + k_EMsgClientToGCUpdatePartyBeacon = 7669; + k_EMsgClientToGCRequestActiveBeaconParties = 7670; + k_EMsgGCToClientRequestActiveBeaconPartiesResponse = 7671; + k_EMsgClientToGCManageFavorites = 7672; + k_EMsgGCToClientManageFavoritesResponse = 7673; + k_EMsgClientToGCJoinPartyFromBeacon = 7674; + k_EMsgGCToClientJoinPartyFromBeaconResponse = 7675; + k_EMsgClientToGCGetFavoritePlayers = 7676; + k_EMsgGCToClientGetFavoritePlayersResponse = 7677; + k_EMsgClientToGCVerifyFavoritePlayers = 7678; + k_EMsgGCToClientVerifyFavoritePlayersResponse = 7679; + k_EMsgGCToClientPartySearchInvites = 7680; + k_EMsgGCToClientRequestMMInfo = 7681; + k_EMsgClientToGCMMInfo = 7682; + k_EMsgSignOutTextMuteInfo = 7683; + k_EMsgClientToGCPurchaseLabyrinthBlessings = 7684; + k_EMsgClientToGCPurchaseLabyrinthBlessingsResponse = 7685; + k_EMsgClientToGCPurchaseFilteredPlayerSlot = 7686; + k_EMsgGCToClientPurchaseFilteredPlayerSlotResponse = 7687; + k_EMsgClientToGCUpdateFilteredPlayerNote = 7688; + k_EMsgGCToClientUpdateFilteredPlayerNoteResponse = 7689; + k_EMsgClientToGCClaimSwag = 7690; + k_EMsgGCToClientClaimSwagResponse = 7691; + k_EMsgServerToGCLockCharmTrading = 8004; + k_EMsgClientToGCPlayerStatsRequest = 8006; + k_EMsgGCToClientPlayerStatsResponse = 8007; + k_EMsgGCClearPracticeLobbyTeam = 8008; + k_EMsgClientToGCFindTopSourceTVGames = 8009; + k_EMsgGCToClientFindTopSourceTVGamesResponse = 8010; + k_EMsgGCLobbyList = 8011; + k_EMsgGCLobbyListResponse = 8012; + k_EMsgGCPlayerStatsMatchSignOut = 8013; + k_EMsgClientToGCSocialFeedPostCommentRequest = 8016; + k_EMsgGCToClientSocialFeedPostCommentResponse = 8017; + k_EMsgClientToGCCustomGamesFriendsPlayedRequest = 8018; + k_EMsgGCToClientCustomGamesFriendsPlayedResponse = 8019; + k_EMsgClientToGCFriendsPlayedCustomGameRequest = 8020; + k_EMsgGCToClientFriendsPlayedCustomGameResponse = 8021; + k_EMsgGCTopCustomGamesList = 8024; + k_EMsgClientToGCSetPartyOpen = 8029; + k_EMsgClientToGCMergePartyInvite = 8030; + k_EMsgGCToClientMergeGroupInviteReply = 8031; + k_EMsgClientToGCMergePartyResponse = 8032; + k_EMsgGCToClientMergePartyResponseReply = 8033; + k_EMsgClientToGCGetProfileCardStats = 8034; + k_EMsgClientToGCGetProfileCardStatsResponse = 8035; + k_EMsgClientToGCTopLeagueMatchesRequest = 8036; + k_EMsgClientToGCTopFriendMatchesRequest = 8037; + k_EMsgGCToClientProfileCardStatsUpdated = 8040; + k_EMsgServerToGCRealtimeStats = 8041; + k_EMsgGCToServerRealtimeStatsStartStop = 8042; + k_EMsgGCToGCGetServersForClients = 8045; + k_EMsgGCToGCGetServersForClientsResponse = 8046; + k_EMsgGCPracticeLobbyKickFromTeam = 8047; + k_EMsgDOTAChatGetMemberCount = 8048; + k_EMsgDOTAChatGetMemberCountResponse = 8049; + k_EMsgClientToGCSocialFeedPostMessageRequest = 8050; + k_EMsgGCToClientSocialFeedPostMessageResponse = 8051; + k_EMsgCustomGameListenServerStartedLoading = 8052; + k_EMsgCustomGameClientFinishedLoading = 8053; + k_EMsgGCPracticeLobbyCloseBroadcastChannel = 8054; + k_EMsgGCStartFindingMatchResponse = 8055; + k_EMsgSQLGCToGCGrantAccountFlag = 8057; + k_EMsgGCToClientTopLeagueMatchesResponse = 8061; + k_EMsgGCToClientTopFriendMatchesResponse = 8062; + k_EMsgClientToGCMatchesMinimalRequest = 8063; + k_EMsgClientToGCMatchesMinimalResponse = 8064; + k_EMsgGCToClientChatRegionsEnabled = 8067; + k_EMsgClientToGCPingData = 8068; + k_EMsgGCToGCEnsureAccountInParty = 8071; + k_EMsgGCToGCEnsureAccountInPartyResponse = 8072; + k_EMsgClientToGCGetProfileTickets = 8073; + k_EMsgClientToGCGetProfileTicketsResponse = 8074; + k_EMsgGCToClientMatchGroupsVersion = 8075; + k_EMsgClientToGCH264Unsupported = 8076; + k_EMsgClientToGCGetQuestProgress = 8078; + k_EMsgClientToGCGetQuestProgressResponse = 8079; + k_EMsgSignOutXPCoins = 8080; + k_EMsgGCToClientMatchSignedOut = 8081; + k_EMsgGCGetHeroStatsHistory = 8082; + k_EMsgGCGetHeroStatsHistoryResponse = 8083; + k_EMsgClientToGCPrivateChatInvite = 8084; + k_EMsgClientToGCPrivateChatKick = 8088; + k_EMsgClientToGCPrivateChatPromote = 8089; + k_EMsgClientToGCPrivateChatDemote = 8090; + k_EMsgGCToClientPrivateChatResponse = 8091; + k_EMsgClientToGCLatestConductScorecardRequest = 8095; + k_EMsgClientToGCLatestConductScorecard = 8096; + k_EMsgClientToGCWageringRequest = 8099; + k_EMsgGCToClientWageringResponse = 8100; + k_EMsgClientToGCEventGoalsRequest = 8103; + k_EMsgClientToGCEventGoalsResponse = 8104; + k_EMsgGCToGCLeaguePredictionsUpdate = 8108; + k_EMsgGCToGCAddUserToPostGameChat = 8110; + k_EMsgClientToGCHasPlayerVotedForMVP = 8111; + k_EMsgClientToGCHasPlayerVotedForMVPResponse = 8112; + k_EMsgClientToGCVoteForMVP = 8113; + k_EMsgClientToGCVoteForMVPResponse = 8114; + k_EMsgGCToGCGetEventParticipation = 8115; + k_EMsgGCToGCGetEventParticipationResponse = 8116; + k_EMsgGCToClientAutomatedTournamentStateChange = 8117; + k_EMsgClientToGCWeekendTourneyOpts = 8118; + k_EMsgClientToGCWeekendTourneyOptsResponse = 8119; + k_EMsgClientToGCWeekendTourneyLeave = 8120; + k_EMsgClientToGCWeekendTourneyLeaveResponse = 8121; + k_EMsgClientToGCTeammateStatsRequest = 8124; + k_EMsgClientToGCTeammateStatsResponse = 8125; + k_EMsgClientToGCGetGiftPermissions = 8126; + k_EMsgClientToGCGetGiftPermissionsResponse = 8127; + k_EMsgClientToGCVoteForArcana = 8128; + k_EMsgClientToGCVoteForArcanaResponse = 8129; + k_EMsgClientToGCRequestArcanaVotesRemaining = 8130; + k_EMsgClientToGCRequestArcanaVotesRemainingResponse = 8131; + k_EMsgGCTransferTeamAdminResponse = 8132; + k_EMsgGCToClientTeamInfo = 8135; + k_EMsgGCToClientTeamsInfo = 8136; + k_EMsgClientToGCMyTeamInfoRequest = 8137; + k_EMsgClientToGCPublishUserStat = 8140; + k_EMsgGCToGCSignoutSpendWager = 8141; + k_EMsgGCSubmitLobbyMVPVote = 8144; + k_EMsgGCSubmitLobbyMVPVoteResponse = 8145; + k_EMsgSignOutCommunityGoalProgress = 8150; + k_EMsgGCToClientLobbyMVPAwarded = 8152; + k_EMsgGCToClientQuestProgressUpdated = 8153; + k_EMsgGCToClientWageringUpdate = 8154; + k_EMsgGCToClientArcanaVotesUpdate = 8155; + k_EMsgClientToGCSetSpectatorLobbyDetails = 8157; + k_EMsgClientToGCSetSpectatorLobbyDetailsResponse = 8158; + k_EMsgClientToGCCreateSpectatorLobby = 8159; + k_EMsgClientToGCCreateSpectatorLobbyResponse = 8160; + k_EMsgClientToGCSpectatorLobbyList = 8161; + k_EMsgClientToGCSpectatorLobbyListResponse = 8162; + k_EMsgSpectatorLobbyGameDetails = 8163; + k_EMsgServerToGCCompendiumInGamePredictionResults = 8166; + k_EMsgServerToGCCloseCompendiumInGamePredictionVoting = 8167; + k_EMsgClientToGCOpenPlayerCardPack = 8168; + k_EMsgClientToGCOpenPlayerCardPackResponse = 8169; + k_EMsgClientToGCSelectCompendiumInGamePrediction = 8170; + k_EMsgClientToGCSelectCompendiumInGamePredictionResponse = 8171; + k_EMsgClientToGCWeekendTourneyGetPlayerStats = 8172; + k_EMsgClientToGCWeekendTourneyGetPlayerStatsResponse = 8173; + k_EMsgClientToGCRecyclePlayerCard = 8174; + k_EMsgClientToGCRecyclePlayerCardResponse = 8175; + k_EMsgClientToGCCreatePlayerCardPack = 8176; + k_EMsgClientToGCCreatePlayerCardPackResponse = 8177; + k_EMsgClientToGCGetPlayerCardRosterRequest = 8178; + k_EMsgClientToGCGetPlayerCardRosterResponse = 8179; + k_EMsgClientToGCSetPlayerCardRosterRequest = 8180; + k_EMsgClientToGCSetPlayerCardRosterResponse = 8181; + k_EMsgServerToGCCloseCompendiumInGamePredictionVotingResponse = 8183; + k_EMsgLobbyBattleCupVictory = 8186; + k_EMsgGCGetPlayerCardItemInfo = 8187; + k_EMsgGCGetPlayerCardItemInfoResponse = 8188; + k_EMsgClientToGCRequestSteamDatagramTicket = 8189; + k_EMsgClientToGCRequestSteamDatagramTicketResponse = 8190; + k_EMsgGCToClientBattlePassRollupRequest = 8191; + k_EMsgGCToClientBattlePassRollupResponse = 8192; + k_EMsgClientToGCTransferSeasonalMMRRequest = 8193; + k_EMsgClientToGCTransferSeasonalMMRResponse = 8194; + k_EMsgGCToGCPublicChatCommunicationBan = 8195; + k_EMsgGCToGCUpdateAccountInfo = 8196; + k_EMsgGCChatReportPublicSpam = 8197; + k_EMsgClientToGCSetPartyBuilderOptions = 8198; + k_EMsgClientToGCSetPartyBuilderOptionsResponse = 8199; + k_EMsgGCToClientPlaytestStatus = 8200; + k_EMsgClientToGCJoinPlaytest = 8201; + k_EMsgClientToGCJoinPlaytestResponse = 8202; + k_EMsgLobbyPlaytestDetails = 8203; + k_EMsgDOTASetFavoriteTeam = 8204; + k_EMsgGCToClientBattlePassRollupListRequest = 8205; + k_EMsgGCToClientBattlePassRollupListResponse = 8206; + k_EMsgDOTAClaimEventAction = 8209; + k_EMsgDOTAClaimEventActionResponse = 8210; + k_EMsgDOTAGetPeriodicResource = 8211; + k_EMsgDOTAGetPeriodicResourceResponse = 8212; + k_EMsgDOTAPeriodicResourceUpdated = 8213; + k_EMsgServerToGCSpendWager = 8214; + k_EMsgGCToGCSignoutSpendWagerToken = 8215; + k_EMsgSubmitTriviaQuestionAnswer = 8216; + k_EMsgSubmitTriviaQuestionAnswerResponse = 8217; + k_EMsgClientToGCGiveTip = 8218; + k_EMsgClientToGCGiveTipResponse = 8219; + k_EMsgStartTriviaSession = 8220; + k_EMsgStartTriviaSessionResponse = 8221; + k_EMsgAnchorPhoneNumberRequest = 8222; + k_EMsgAnchorPhoneNumberResponse = 8223; + k_EMsgUnanchorPhoneNumberRequest = 8224; + k_EMsgUnanchorPhoneNumberResponse = 8225; + k_EMsgGCToGCSignoutSpendRankWager = 8229; + k_EMsgGCToGCGetFavoriteTeam = 8230; + k_EMsgGCToGCGetFavoriteTeamResponse = 8231; + k_EMsgSignOutEventGameData = 8232; + k_EMsgClientToGCQuickStatsRequest = 8238; + k_EMsgClientToGCQuickStatsResponse = 8239; + k_EMsgGCToGCSubtractEventPointsFromUser = 8240; + k_EMsgSelectionPriorityChoiceRequest = 8241; + k_EMsgSelectionPriorityChoiceResponse = 8242; + k_EMsgGCToGCCompendiumInGamePredictionResults = 8243; + k_EMsgGameAutographReward = 8244; + k_EMsgGameAutographRewardResponse = 8245; + k_EMsgDestroyLobbyRequest = 8246; + k_EMsgDestroyLobbyResponse = 8247; + k_EMsgPurchaseItemWithEventPoints = 8248; + k_EMsgPurchaseItemWithEventPointsResponse = 8249; + k_EMsgServerToGCMatchPlayerItemPurchaseHistory = 8250; + k_EMsgGCToGCGrantPlusHeroMatchResults = 8251; + k_EMsgServerToGCMatchStateHistory = 8255; + k_EMsgPurchaseHeroRandomRelic = 8258; + k_EMsgPurchaseHeroRandomRelicResponse = 8259; + k_EMsgClientToGCClaimEventActionUsingItem = 8260; + k_EMsgClientToGCClaimEventActionUsingItemResponse = 8261; + k_EMsgPartyReadyCheckRequest = 8262; + k_EMsgPartyReadyCheckResponse = 8263; + k_EMsgPartyReadyCheckAcknowledge = 8264; + k_EMsgGetRecentPlayTimeFriendsRequest = 8265; + k_EMsgGetRecentPlayTimeFriendsResponse = 8266; + k_EMsgGCToClientCommendNotification = 8267; + k_EMsgProfileRequest = 8268; + k_EMsgProfileResponse = 8269; + k_EMsgProfileUpdate = 8270; + k_EMsgProfileUpdateResponse = 8271; + k_EMsgHeroGlobalDataRequest = 8274; + k_EMsgHeroGlobalDataResponse = 8275; + k_EMsgClientToGCRequestPlusWeeklyChallengeResult = 8276; + k_EMsgClientToGCRequestPlusWeeklyChallengeResultResponse = 8277; + k_EMsgGCToGCGrantPlusPrepaidTime = 8278; + k_EMsgPrivateMetadataKeyRequest = 8279; + k_EMsgPrivateMetadataKeyResponse = 8280; + k_EMsgGCToGCReconcilePlusStatus = 8281; + k_EMsgGCToGCCheckPlusStatus = 8282; + k_EMsgGCToGCCheckPlusStatusResponse = 8283; + k_EMsgGCToGCReconcilePlusAutoGrantItems = 8284; + k_EMsgGCToGCReconcilePlusStatusUnreliable = 8285; + k_EMsgGCToClientCavernCrawlMapPathCompleted = 8288; + k_EMsgClientToGCCavernCrawlClaimRoom = 8289; + k_EMsgClientToGCCavernCrawlClaimRoomResponse = 8290; + k_EMsgClientToGCCavernCrawlUseItemOnRoom = 8291; + k_EMsgClientToGCCavernCrawlUseItemOnRoomResponse = 8292; + k_EMsgClientToGCCavernCrawlUseItemOnPath = 8293; + k_EMsgClientToGCCavernCrawlUseItemOnPathResponse = 8294; + k_EMsgClientToGCCavernCrawlRequestMapState = 8295; + k_EMsgClientToGCCavernCrawlRequestMapStateResponse = 8296; + k_EMsgSignOutTips = 8297; + k_EMsgClientToGCRequestEventPointLogV2 = 8298; + k_EMsgClientToGCRequestEventPointLogResponseV2 = 8299; + k_EMsgClientToGCRequestEventTipsSummary = 8300; + k_EMsgClientToGCRequestEventTipsSummaryResponse = 8301; + k_EMsgClientToGCRequestSocialFeed = 8303; + k_EMsgClientToGCRequestSocialFeedResponse = 8304; + k_EMsgClientToGCRequestSocialFeedComments = 8305; + k_EMsgClientToGCRequestSocialFeedCommentsResponse = 8306; + k_EMsgClientToGCCavernCrawlGetClaimedRoomCount = 8308; + k_EMsgClientToGCCavernCrawlGetClaimedRoomCountResponse = 8309; + k_EMsgGCToGCReconcilePlusAutoGrantItemsUnreliable = 8310; + k_EMsgServerToGCAddBroadcastTimelineEvent = 8311; + k_EMsgGCToServerUpdateSteamBroadcasting = 8312; + k_EMsgClientToGCRecordContestVote = 8313; + k_EMsgGCToClientRecordContestVoteResponse = 8314; + k_EMsgGCToGCGrantAutograph = 8315; + k_EMsgGCToGCGrantAutographResponse = 8316; + k_EMsgSignOutConsumableUsage = 8317; + k_EMsgLobbyEventGameDetails = 8318; + k_EMsgDevGrantEventPoints = 8319; + k_EMsgDevGrantEventPointsResponse = 8320; + k_EMsgDevGrantEventAction = 8321; + k_EMsgDevGrantEventActionResponse = 8322; + k_EMsgDevResetEventState = 8323; + k_EMsgDevResetEventStateResponse = 8324; + k_EMsgGCToGCReconcileEventOwnership = 8325; + k_EMsgConsumeEventSupportGrantItem = 8326; + k_EMsgConsumeEventSupportGrantItemResponse = 8327; + k_EMsgGCToClientClaimEventActionUsingItemCompleted = 8328; + k_EMsgGCToClientCavernCrawlMapUpdated = 8329; + k_EMsgServerToGCRequestPlayerRecentAccomplishments = 8330; + k_EMsgServerToGCRequestPlayerRecentAccomplishmentsResponse = 8331; + k_EMsgClientToGCRequestPlayerRecentAccomplishments = 8332; + k_EMsgClientToGCRequestPlayerRecentAccomplishmentsResponse = 8333; + k_EMsgClientToGCRequestPlayerHeroRecentAccomplishments = 8334; + k_EMsgClientToGCRequestPlayerHeroRecentAccomplishmentsResponse = 8335; + k_EMsgSignOutEventActionGrants = 8336; + k_EMsgClientToGCRequestPlayerCoachMatches = 8337; + k_EMsgClientToGCRequestPlayerCoachMatchesResponse = 8338; + k_EMsgClientToGCSubmitCoachTeammateRating = 8341; + k_EMsgClientToGCSubmitCoachTeammateRatingResponse = 8342; + k_EMsgGCToClientCoachTeammateRatingsChanged = 8343; + k_EMsgClientToGCRequestPlayerCoachMatch = 8345; + k_EMsgClientToGCRequestPlayerCoachMatchResponse = 8346; + k_EMsgClientToGCRequestContestVotes = 8347; + k_EMsgClientToGCRequestContestVotesResponse = 8348; + k_EMsgClientToGCMVPVoteTimeout = 8349; + k_EMsgClientToGCMVPVoteTimeoutResponse = 8350; + k_EMsgMatchMatchmakingStats = 8360; + k_EMsgClientToGCSubmitPlayerMatchSurvey = 8361; + k_EMsgClientToGCSubmitPlayerMatchSurveyResponse = 8362; + k_EMsgSQLGCToGCGrantAllHeroProgressAccount = 8363; + k_EMsgSQLGCToGCGrantAllHeroProgressVictory = 8364; + k_EMsgDevDeleteEventActions = 8365; + k_EMsgDevDeleteEventActionsResponse = 8366; + k_EMsgGCToGCGetAllHeroCurrent = 8635; + k_EMsgGCToGCGetAllHeroCurrentResponse = 8636; + k_EMsgGCSubmitPlayerAvoidRequest = 8637; + k_EMsgGCSubmitPlayerAvoidRequestResponse = 8638; + k_EMsgGCToClientNotificationsUpdated = 8639; + k_EMsgGCtoGCAssociatedExploiterAccountInfo = 8640; + k_EMsgGCtoGCAssociatedExploiterAccountInfoResponse = 8641; + k_EMsgGCtoGCRequestRecalibrationCheck = 8642; + k_EMsgGCToClientVACReminder = 8643; + k_EMsgClientToGCUnderDraftBuy = 8644; + k_EMsgClientToGCUnderDraftBuyResponse = 8645; + k_EMsgClientToGCUnderDraftReroll = 8646; + k_EMsgClientToGCUnderDraftRerollResponse = 8647; + k_EMsgNeutralItemStats = 8648; + k_EMsgClientToGCCreateGuild = 8649; + k_EMsgClientToGCCreateGuildResponse = 8650; + k_EMsgClientToGCSetGuildInfo = 8651; + k_EMsgClientToGCSetGuildInfoResponse = 8652; + k_EMsgClientToGCAddGuildRole = 8653; + k_EMsgClientToGCAddGuildRoleResponse = 8654; + k_EMsgClientToGCModifyGuildRole = 8655; + k_EMsgClientToGCModifyGuildRoleResponse = 8656; + k_EMsgClientToGCRemoveGuildRole = 8657; + k_EMsgClientToGCRemoveGuildRoleResponse = 8658; + k_EMsgClientToGCJoinGuild = 8659; + k_EMsgClientToGCJoinGuildResponse = 8660; + k_EMsgClientToGCLeaveGuild = 8661; + k_EMsgClientToGCLeaveGuildResponse = 8662; + k_EMsgClientToGCInviteToGuild = 8663; + k_EMsgClientToGCInviteToGuildResponse = 8664; + k_EMsgClientToGCDeclineInviteToGuild = 8665; + k_EMsgClientToGCDeclineInviteToGuildResponse = 8666; + k_EMsgClientToGCCancelInviteToGuild = 8667; + k_EMsgClientToGCCancelInviteToGuildResponse = 8668; + k_EMsgClientToGCKickGuildMember = 8669; + k_EMsgClientToGCKickGuildMemberResponse = 8670; + k_EMsgClientToGCSetGuildMemberRole = 8671; + k_EMsgClientToGCSetGuildMemberRoleResponse = 8672; + k_EMsgClientToGCRequestGuildData = 8673; + k_EMsgClientToGCRequestGuildDataResponse = 8674; + k_EMsgGCToClientGuildDataUpdated = 8675; + k_EMsgClientToGCRequestGuildMembership = 8676; + k_EMsgClientToGCRequestGuildMembershipResponse = 8677; + k_EMsgGCToClientGuildMembershipUpdated = 8678; + k_EMsgClientToGCAcceptInviteToGuild = 8681; + k_EMsgClientToGCAcceptInviteToGuildResponse = 8682; + k_EMsgClientToGCSetGuildRoleOrder = 8683; + k_EMsgClientToGCSetGuildRoleOrderResponse = 8684; + k_EMsgClientToGCRequestGuildFeed = 8685; + k_EMsgClientToGCRequestGuildFeedResponse = 8686; + k_EMsgClientToGCRequestAccountGuildEventData = 8687; + k_EMsgClientToGCRequestAccountGuildEventDataResponse = 8688; + k_EMsgGCToClientAccountGuildEventDataUpdated = 8689; + k_EMsgClientToGCRequestActiveGuildContracts = 8690; + k_EMsgClientToGCRequestActiveGuildContractsResponse = 8691; + k_EMsgGCToClientActiveGuildContractsUpdated = 8692; + k_EMsgGCToClientGuildFeedUpdated = 8693; + k_EMsgClientToGCSelectGuildContract = 8694; + k_EMsgClientToGCSelectGuildContractResponse = 8695; + k_EMsgGCToGCCompleteGuildContracts = 8696; + k_EMsgClientToGCAddPlayerToGuildChat = 8698; + k_EMsgClientToGCAddPlayerToGuildChatResponse = 8699; + k_EMsgClientToGCUnderDraftSell = 8700; + k_EMsgClientToGCUnderDraftSellResponse = 8701; + k_EMsgClientToGCUnderDraftRequest = 8702; + k_EMsgClientToGCUnderDraftResponse = 8703; + k_EMsgClientToGCUnderDraftRedeemReward = 8704; + k_EMsgClientToGCUnderDraftRedeemRewardResponse = 8705; + k_EMsgGCToServerLobbyHeroBanRates = 8708; + k_EMsgSignOutGuildContractProgress = 8711; + k_EMsgSignOutMVPStats = 8712; + k_EMsgClientToGCRequestActiveGuildChallenge = 8713; + k_EMsgClientToGCRequestActiveGuildChallengeResponse = 8714; + k_EMsgGCToClientActiveGuildChallengeUpdated = 8715; + k_EMsgClientToGCRequestReporterUpdates = 8716; + k_EMsgClientToGCRequestReporterUpdatesResponse = 8717; + k_EMsgClientToGCAcknowledgeReporterUpdates = 8718; + k_EMsgSignOutGuildChallengeProgress = 8720; + k_EMsgClientToGCRequestGuildEventMembers = 8721; + k_EMsgClientToGCRequestGuildEventMembersResponse = 8722; + k_EMsgClientToGCReportGuildContent = 8725; + k_EMsgClientToGCReportGuildContentResponse = 8726; + k_EMsgClientToGCRequestAccountGuildPersonaInfo = 8727; + k_EMsgClientToGCRequestAccountGuildPersonaInfoResponse = 8728; + k_EMsgClientToGCRequestAccountGuildPersonaInfoBatch = 8729; + k_EMsgClientToGCRequestAccountGuildPersonaInfoBatchResponse = 8730; + k_EMsgGCToClientUnderDraftGoldUpdated = 8731; + k_EMsgGCToServerRecordTrainingData = 8732; + k_EMsgSignOutBounties = 8733; + k_EMsgLobbyFeaturedGamemodeProgress = 8734; + k_EMsgLobbyGauntletProgress = 8735; + k_EMsgClientToGCSubmitDraftTriviaMatchAnswer = 8736; + k_EMsgClientToGCSubmitDraftTriviaMatchAnswerResponse = 8737; + k_EMsgGCToGCSignoutSpendBounty = 8738; + k_EMsgClientToGCApplyGauntletTicket = 8739; + k_EMsgClientToGCUnderDraftRollBackBench = 8740; + k_EMsgClientToGCUnderDraftRollBackBenchResponse = 8741; + k_EMsgGCToGCGetEventActionScore = 8742; + k_EMsgGCToGCGetEventActionScoreResponse = 8743; + k_EMsgServerToGCGetGuildContracts = 8744; + k_EMsgServerToGCGetGuildContractsResponse = 8745; + k_EMsgLobbyEventGameData = 8746; + k_EMsgGCToClientGuildMembersDataUpdated = 8747; + k_EMsgSignOutReportActivityMarkers = 8748; + k_EMsgSignOutDiretideCandy = 8749; + k_EMsgGCToClientPostGameItemAwardNotification = 8750; + k_EMsgClientToGCGetOWMatchDetails = 8751; + k_EMsgClientToGCGetOWMatchDetailsResponse = 8752; + k_EMsgClientToGCSubmitOWConviction = 8753; + k_EMsgClientToGCSubmitOWConvictionResponse = 8754; + k_EMsgGCToGCGetAccountSteamChina = 8755; + k_EMsgGCToGCGetAccountSteamChinaResponse = 8756; + k_EMsgClientToGCClaimLeaderboardRewards = 8757; + k_EMsgClientToGCClaimLeaderboardRewardsResponse = 8758; + k_EMsgClientToGCRecalibrateMMR = 8759; + k_EMsgClientToGCRecalibrateMMRResponse = 8760; + k_EMsgGCToGCGrantEventPointActionList = 8761; + k_EMsgClientToGCChinaSSAURLRequest = 8764; + k_EMsgClientToGCChinaSSAURLResponse = 8765; + k_EMsgClientToGCChinaSSAAcceptedRequest = 8766; + k_EMsgClientToGCChinaSSAAcceptedResponse = 8767; + k_EMsgSignOutOverwatchSuspicion = 8768; + k_EMsgServerToGCGetSuspicionConfig = 8769; + k_EMsgServerToGCGetSuspicionConfigResponse = 8770; + k_EMsgGCToGCGrantPlusHeroChallengeMatchResults = 8771; + k_EMsgGCToClientOverwatchCasesAvailable = 8772; + k_EMsgServerToGCAccountCheck = 8773; + k_EMsgClientToGCStartWatchingOverwatch = 8774; + k_EMsgClientToGCStopWatchingOverwatch = 8775; + k_EMsgSignOutPerfData = 8776; + k_EMsgClientToGCGetDPCFavorites = 8777; + k_EMsgClientToGCGetDPCFavoritesResponse = 8778; + k_EMsgClientToGCSetDPCFavoriteState = 8779; + k_EMsgClientToGCSetDPCFavoriteStateResponse = 8780; + k_EMsgClientToGCOverwatchReplayError = 8781; + k_EMsgServerToGCPlayerChallengeHistory = 8782; + k_EMsgSignOutBanData = 8783; + k_EMsgWebapiDPCSeasonResults = 8784; + k_EMsgClientToGCCoachFriend = 8785; + k_EMsgClientToGCCoachFriendResponse = 8786; + k_EMsgClientToGCRequestPrivateCoachingSession = 8787; + k_EMsgClientToGCRequestPrivateCoachingSessionResponse = 8788; + k_EMsgClientToGCAcceptPrivateCoachingSession = 8789; + k_EMsgClientToGCAcceptPrivateCoachingSessionResponse = 8790; + k_EMsgClientToGCLeavePrivateCoachingSession = 8791; + k_EMsgClientToGCLeavePrivateCoachingSessionResponse = 8792; + k_EMsgClientToGCGetCurrentPrivateCoachingSession = 8793; + k_EMsgClientToGCGetCurrentPrivateCoachingSessionResponse = 8794; + k_EMsgGCToClientPrivateCoachingSessionUpdated = 8795; + k_EMsgClientToGCSubmitPrivateCoachingSessionRating = 8796; + k_EMsgClientToGCSubmitPrivateCoachingSessionRatingResponse = 8797; + k_EMsgClientToGCGetAvailablePrivateCoachingSessions = 8798; + k_EMsgClientToGCGetAvailablePrivateCoachingSessionsResponse = 8799; + k_EMsgClientToGCGetAvailablePrivateCoachingSessionsSummary = 8800; + k_EMsgClientToGCGetAvailablePrivateCoachingSessionsSummaryResponse = 8801; + k_EMsgClientToGCJoinPrivateCoachingSessionLobby = 8802; + k_EMsgClientToGCJoinPrivateCoachingSessionLobbyResponse = 8803; + k_EMsgClientToGCRespondToCoachFriendRequest = 8804; + k_EMsgClientToGCRespondToCoachFriendRequestResponse = 8805; + k_EMsgClientToGCSetEventActiveSeasonID = 8806; + k_EMsgClientToGCSetEventActiveSeasonIDResponse = 8807; + k_EMsgServerToGCMatchPlayerNeutralItemEquipHistory = 8808; + k_EMsgServerToGCCompendiumChosenInGamePredictions = 8809; + k_EMsgClientToGCCreateTeamPlayerCardPack = 8810; + k_EMsgClientToGCCreateTeamPlayerCardPackResponse = 8811; + k_EMsgGCToServerSubmitCheerData = 8812; + k_EMsgGCToServerCheerConfig = 8813; + k_EMsgServerToGCGetCheerConfig = 8814; + k_EMsgServerToGCGetCheerConfigResponse = 8815; + k_EMsgGCToGCGrantAutographByID = 8816; + k_EMsgGCToServerCheerScalesOverride = 8817; + k_EMsgGCToServerGetCheerState = 8818; + k_EMsgServerToGCReportCheerState = 8819; + k_EMsgGCToServerScenarioSave = 8820; + k_EMsgGCToServerAbilityDraftLobbyData = 8821; + k_EMsgSignOutReportCommunications = 8822; + k_EMsgClientToGCBatchGetPlayerCardRosterRequest = 8823; + k_EMsgClientToGCBatchGetPlayerCardRosterResponse = 8824; + k_EMsgClientToGCGetStickerbookRequest = 8825; + k_EMsgClientToGCGetStickerbookResponse = 8826; + k_EMsgClientToGCCreateStickerbookPageRequest = 8827; + k_EMsgClientToGCCreateStickerbookPageResponse = 8828; + k_EMsgClientToGCDeleteStickerbookPageRequest = 8829; + k_EMsgClientToGCDeleteStickerbookPageResponse = 8830; + k_EMsgClientToGCPlaceStickersRequest = 8831; + k_EMsgClientToGCPlaceStickersResponse = 8832; + k_EMsgClientToGCPlaceCollectionStickersRequest = 8833; + k_EMsgClientToGCPlaceCollectionStickersResponse = 8834; + k_EMsgClientToGCOrderStickerbookTeamPageRequest = 8835; + k_EMsgClientToGCOrderStickerbookTeamPageResponse = 8836; + k_EMsgServerToGCGetStickerHeroes = 8837; + k_EMsgServerToGCGetStickerHeroesResponse = 8838; + k_EMsgClientToGCCandyShopGetUserData = 8840; + k_EMsgClientToGCCandyShopGetUserDataResponse = 8841; + k_EMsgGCToClientCandyShopUserDataUpdated = 8842; + k_EMsgClientToGCCandyShopPurchaseReward = 8843; + k_EMsgClientToGCCandyShopPurchaseRewardResponse = 8844; + k_EMsgClientToGCCandyShopDoExchange = 8845; + k_EMsgClientToGCCandyShopDoExchangeResponse = 8846; + k_EMsgClientToGCCandyShopDoVariableExchange = 8847; + k_EMsgClientToGCCandyShopDoVariableExchangeResponse = 8848; + k_EMsgClientToGCCandyShopRerollRewards = 8849; + k_EMsgClientToGCCandyShopRerollRewardsResponse = 8850; + k_EMsgClientToGCSetHeroSticker = 8851; + k_EMsgClientToGCSetHeroStickerResponse = 8852; + k_EMsgClientToGCGetHeroStickers = 8853; + k_EMsgClientToGCGetHeroStickersResponse = 8854; + k_EMsgClientToGCSetFavoritePage = 8855; + k_EMsgClientToGCSetFavoritePageResponse = 8856; + k_EMsgClientToGCCandyShopDevGrantCandy = 8857; + k_EMsgClientToGCCandyShopDevGrantCandyResponse = 8858; + k_EMsgClientToGCCandyShopDevClearInventory = 8859; + k_EMsgClientToGCCandyShopDevClearInventoryResponse = 8860; + k_EMsgClientToGCCandyShopOpenBags = 8861; + k_EMsgClientToGCCandyShopOpenBagsResponse = 8862; + k_EMsgClientToGCCandyShopDevGrantCandyBags = 8863; + k_EMsgClientToGCCandyShopDevGrantCandyBagsResponse = 8864; + k_EMsgClientToGCCandyShopDevShuffleExchange = 8865; + k_EMsgClientToGCCandyShopDevShuffleExchangeResponse = 8866; + k_EMsgClientToGCCandyShopDevGrantRerollCharges = 8867; + k_EMsgClientToGCCandyShopDevGrantRerollChargesResponse = 8868; + k_EMsgLobbyAdditionalAccountData = 8869; + k_EMsgServerToGCLobbyInitialized = 8870; + k_EMsgClientToGCCollectorsCacheAvailableDataRequest = 8871; + k_EMsgGCToClientCollectorsCacheAvailableDataResponse = 8872; + k_EMsgClientToGCUploadMatchClip = 8873; + k_EMsgGCToClientUploadMatchClipResponse = 8874; + k_EMsgGCToServerSteamLearnAccessTokensChanged = 8876; + k_EMsgSignOutMuertaMinigame = 8877; + k_EMsgGCToServerLobbyHeroRoleStats = 8878; + k_EMsgClientToGCRankRequest = 8879; + k_EMsgGCToClientRankResponse = 8880; + k_EMsgGCToClientRankUpdate = 8881; + k_EMsgSignOutMapStats = 8882; + k_EMsgClientToGCMapStatsRequest = 8883; + k_EMsgGCToClientMapStatsResponse = 8884; + k_EMsgClientToGCShowcaseGetUserData = 8886; + k_EMsgClientToGCShowcaseGetUserDataResponse = 8887; + k_EMsgClientToGCShowcaseSetUserData = 8888; + k_EMsgClientToGCShowcaseSetUserDataResponse = 8889; + k_EMsgClientToGCFantasyCraftingGetData = 8890; + k_EMsgClientToGCFantasyCraftingGetDataResponse = 8891; + k_EMsgClientToGCFantasyCraftingPerformOperation = 8892; + k_EMsgClientToGCFantasyCraftingPerformOperationResponse = 8893; + k_EMsgGCToClientFantasyCraftingGetDataUpdated = 8894; + k_EMsgClientToGCFantasyCraftingDevModifyTablet = 8895; + k_EMsgClientToGCFantasyCraftingDevModifyTabletResponse = 8896; + k_EMsgClientToGCRoadToTIGetQuests = 8897; + k_EMsgClientToGCRoadToTIGetQuestsResponse = 8898; + k_EMsgClientToGCRoadToTIGetActiveQuest = 8899; + k_EMsgClientToGCRoadToTIGetActiveQuestResponse = 8900; + k_EMsgClientToGCBingoGetUserData = 8901; + k_EMsgClientToGCBingoGetUserDataResponse = 8902; + k_EMsgClientToGCBingoClaimRow = 8903; + k_EMsgClientToGCBingoClaimRowResponse = 8904; + k_EMsgClientToGCBingoDevRerollCard = 8905; + k_EMsgClientToGCBingoDevRerollCardResponse = 8906; + k_EMsgClientToGCBingoGetStatsData = 8907; + k_EMsgClientToGCBingoGetStatsDataResponse = 8908; + k_EMsgGCToClientBingoUserDataUpdated = 8909; + k_EMsgGCToClientRoadToTIQuestDataUpdated = 8910; + k_EMsgClientToGCRoadToTIUseItem = 8911; + k_EMsgClientToGCRoadToTIUseItemResponse = 8912; + k_EMsgClientToGCShowcaseSubmitReport = 8913; + k_EMsgClientToGCShowcaseSubmitReportResponse = 8914; + k_EMsgClientToGCShowcaseAdminGetReportsRollupList = 8915; + k_EMsgClientToGCShowcaseAdminGetReportsRollupListResponse = 8916; + k_EMsgClientToGCShowcaseAdminGetReportsRollup = 8917; + k_EMsgClientToGCShowcaseAdminGetReportsRollupResponse = 8918; + k_EMsgClientToGCShowcaseAdminGetUserDetails = 8919; + k_EMsgClientToGCShowcaseAdminGetUserDetailsResponse = 8920; + k_EMsgClientToGCShowcaseAdminConvict = 8921; + k_EMsgClientToGCShowcaseAdminConvictResponse = 8922; + k_EMsgClientToGCShowcaseAdminExonerate = 8923; + k_EMsgClientToGCShowcaseAdminExonerateResponse = 8924; + k_EMsgClientToGCShowcaseAdminReset = 8925; + k_EMsgClientToGCShowcaseAdminResetResponse = 8926; + k_EMsgClientToGCShowcaseAdminLockAccount = 8927; + k_EMsgClientToGCShowcaseAdminLockAccountResponse = 8928; + k_EMsgClientToGCFantasyCraftingSelectPlayer = 8929; + k_EMsgClientToGCFantasyCraftingSelectPlayerResponse = 8930; + k_EMsgClientToGCFantasyCraftingGenerateTablets = 8931; + k_EMsgClientToGCFantasyCraftingGenerateTabletsResponse = 8932; + k_EMsgClientToGcFantasyCraftingUpgradeTablets = 8933; + k_EMsgClientToGcFantasyCraftingUpgradeTabletsResponse = 8934; + k_EMsgClientToGCFantasyCraftingRerollOptions = 8936; + k_EMsgClientToGCFantasyCraftingRerollOptionsResponse = 8937; + k_EMsgClientToGCRoadToTIDevForceQuest = 8935; + k_EMsgLobbyRoadToTIMatchQuestData = 8939; + k_EMsgClientToGCShowcaseModerationGetQueue = 8940; + k_EMsgClientToGCShowcaseModerationGetQueueResponse = 8941; + k_EMsgClientToGCShowcaseModerationApplyModeration = 8942; + k_EMsgClientToGCShowcaseModerationApplyModerationResponse = 8943; + k_EMsgClientToGCOverworldGetUserData = 8944; + k_EMsgClientToGCOverworldGetUserDataResponse = 8945; + k_EMsgClientToGCOverworldCompletePath = 8946; + k_EMsgClientToGCOverworldCompletePathResponse = 8947; + k_EMsgClientToGCOverworldClaimEncounterReward = 8948; + k_EMsgClientToGCOverworldClaimEncounterRewardResponse = 8949; + k_EMsgClientToGCOverworldDevResetAll = 8950; + k_EMsgClientToGCOverworldDevResetAllResponse = 8951; + k_EMsgClientToGCOverworldDevResetNode = 8952; + k_EMsgClientToGCOverworldDevResetNodeResponse = 8953; + k_EMsgClientToGCOverworldDevResetPath = 8954; + k_EMsgClientToGCOverworldDevResetPathResponse = 8955; + k_EMsgClientToGCOverworldDevGrantTokens = 8956; + k_EMsgClientToGCOverworldDevGrantTokensResponse = 8957; + k_EMsgClientToGCOverworldDevClearInventory = 8958; + k_EMsgClientToGCOverworldDevClearInventoryResponse = 8959; + k_EMsgServerToGCNewBloomGift = 8960; + k_EMsgServerToGCNewBloomGiftResponse = 8961; + k_EMsgGCToClientOverworldUserDataUpdated = 8962; + k_EMsgClientToGCOverworldMoveToNode = 8963; + k_EMsgClientToGCOverworldMoveToNodeResponse = 8964; + k_EMsgClientToGCNewBloomGift = 8965; + k_EMsgClientToGCNewBloomGiftResponse = 8966; + k_EMsgSignOutOverworld = 8967; + k_EMsgClientToGCSetBannedHeroes = 8969; + k_EMsgClientToGCOverworldTradeTokens = 8970; + k_EMsgClientToGCOverworldTradeTokensResponse = 8971; + k_EMsgOverworldEncounterTokenTreasureData = 8972; + k_EMsgOverworldEncounterTokenQuestData = 8973; + k_EMsgOverworldEncounterChooseHeroData = 8974; + k_EMsgClientToGCUpdateComicBookStats = 8975; + k_EMsgClientToGCCandyShopDevResetShop = 8976; + k_EMsgClientToGCCandyShopDevResetShopResponse = 8977; + k_EMsgOverworldEncounterProgressData = 8978; + k_EMsgClientToGCOverworldFeedback = 8979; + k_EMsgClientToGCOverworldFeedbackResponse = 8980; + k_EMsgClientToGCOverworldVisitEncounter = 8981; + k_EMsgClientToGCOverworldVisitEncounterResponse = 8982; + k_EMsgClientToGCOverworldGiftTokens = 8983; + k_EMsgClientToGCOverworldGiftTokensResponse = 8984; + k_EMsgClientToGCDotaLabsFeedback = 8985; + k_EMsgClientToGCDotaLabsFeedbackResponse = 8986; + k_EMsgOverworldEncounterPitFighterRewardData = 8987; + k_EMsgClientToGCOverworldGetDynamicImage = 8988; + k_EMsgClientToGCOverworldGetDynamicImageResponse = 8989; + k_EMsgClientToGCFightingGameChallengeFriend = 8990; + k_EMsgClientToGCFightingGameChallengeFriendResponse = 8991; + k_EMsgClientToGCFightingGameCancelChallengeFriend = 8992; + k_EMsgClientToGCFightingGameAnswerChallenge = 8993; + k_EMsgClientToGCFightingGameAnswerChallengeResponse = 8994; + k_EMsgGCToClientFightingGameChallenge = 8995; + k_EMsgGCToClientFightingGameStartMatch = 8996; + k_EMsgGCToClientFightingGameChallengeCanceled = 8997; + k_EMsgGCToServerSteamLearnUseHTTP = 8998; + k_EMsgClientToGCBingoShuffleCard = 8999; + k_EMsgClientToGCBingoShuffleCardResponse = 9000; + k_EMsgClientToGCBingoModifySquare = 9001; + k_EMsgClientToGCBingoModifySquareResponse = 9002; + k_EMsgClientToGCBingoDevAddTokens = 9003; + k_EMsgClientToGCBingoDevAddTokensResponse = 9004; + k_EMsgClientToGCBingoDevClearInventory = 9005; + k_EMsgClientToGCBingoDevClearInventoryResponse = 9006; + k_EMsgGCCompendiumRemoveAllSelections = 9007; + k_EMsgGCCompendiumRemoveAllSelectionsResponse = 9008; +} diff --git a/Protobufs/dota2/dota_gcmessages_server.proto b/Protobufs/dota2/dota_gcmessages_server.proto new file mode 100644 index 0000000..f2960bf --- /dev/null +++ b/Protobufs/dota2/dota_gcmessages_server.proto @@ -0,0 +1,1497 @@ +import "steammessages.proto"; +import "valveextensions.proto"; +import "dota_shared_enums.proto"; +import "dota_gcmessages_common.proto"; +import "econ_gcmessages.proto"; +import "network_connection.proto"; +import "dota_gcmessages_common_lobby.proto"; +import "dota_gcmessages_common_match_management.proto"; +import "dota_gcmessages_common_overworld.proto"; +import "gcsdk_gcmessages.proto"; +import "steammessages_steamlearn.steamworkssdk.proto"; + +enum EPoorNetworkConditionsType { + k_EPoorNetworkConditions_None = 0; + k_EPoorNetworkConditions_Unknown = 1; + k_EPoorNetworkConditions_MassDisconnect = 2; + k_EPoorNetworkConditions_ExcessBadQosIntervals = 3; +} + +message CMsgPoorNetworkConditions { + message Player { + optional uint32 account_id = 1; + optional .ENetworkDisconnectionReason disconnect_reason = 2 [default = NETWORK_DISCONNECT_INVALID]; + optional uint32 num_bad_intervals = 3; + optional uint32 peak_loss_pct = 4; + } + + optional .EPoorNetworkConditionsType detection_type = 1 [default = k_EPoorNetworkConditions_None]; + repeated .CMsgPoorNetworkConditions.Player players = 2; +} + +message CMsgGameserverCrash { + optional uint64 match_id = 1; + optional fixed64 lobby_id = 2; + optional .DOTA_GameState game_state = 3 [default = DOTA_GAMERULES_STATE_INIT]; + optional fixed32 sentinel_save_time = 4; + optional fixed64 custom_game_id = 11; + optional uint32 tournament_id = 12; + optional fixed64 server_steam_id = 5; + optional fixed32 server_public_ip_addr = 6; + optional uint32 server_port = 7; + optional uint32 server_cluster = 8; + optional uint32 pid = 9; + optional uint32 engine = 10; +} + +message CMsgConnectedPlayers { + message Player { + optional fixed64 steam_id = 1; + optional int32 hero_id = 2; + optional .CMsgLeaverState leaver_state = 3; + optional .ENetworkDisconnectionReason disconnect_reason = 4 [default = NETWORK_DISCONNECT_INVALID]; + } + + message PlayerDraft { + optional fixed64 steam_id = 1; + optional .DOTA_GC_TEAM team = 2 [default = DOTA_GC_TEAM_GOOD_GUYS]; + optional int32 team_slot = 3; + } + + enum SendReason { + INVALID = 0; + HEARTBEAT = 1; + GAME_STATE = 2; + FIRST_BLOOD = 3; + PLAYER_CONNECTED = 4; + PLAYER_HERO = 5; + PLAYER_DISCONNECTED_CONSEQUENCES = 6; + PLAYER_DISCONNECTED_NOCONSEQUENCES = 7; + GAMESTATE_TIMEOUT = 10; + MASS_DISCONNECT = 11; + KILLS = 13; + BUILDING_STATE = 14; + } + + repeated .CMsgConnectedPlayers.Player connected_players = 1; + repeated .CMsgConnectedPlayers.Player disconnected_players = 7; + optional .DOTA_GameState game_state = 2 [default = DOTA_GAMERULES_STATE_INIT]; + optional bool first_blood_happened = 6; + optional .CMsgPoorNetworkConditions poor_network_conditions = 10; + optional .CMsgConnectedPlayers.SendReason send_reason = 8 [default = INVALID]; + optional uint32 radiant_kills = 11; + optional uint32 dire_kills = 12; + optional int32 radiant_lead = 14; + optional uint32 building_state = 15; + repeated .CMsgConnectedPlayers.PlayerDraft player_draft = 16; +} + +message CMsgGameServerInfo { + enum ServerType { + UNSPECIFIED = 0; + GAME = 1; + PROXY = 2; + DOTA_ONLY = 4; + CUSTOM_GAME_ONLY = 5; + EVENT_GAME_ONLY = 6; + } + + enum CustomGames { + BOTH = 0; + NONE = 1; + ONLY = 2; + EVENT = 3; + } + + optional fixed32 server_public_ip_addr = 1; + optional fixed32 server_private_ip_addr = 2; + optional uint32 server_port = 3; + optional uint32 server_tv_port = 4; + optional uint32 assigned_server_tv_port = 22; + optional bytes legacy_server_steamdatagram_address = 27; + optional string server_key = 5; + optional bool server_hibernation = 6; + optional .CMsgGameServerInfo.ServerType server_type = 7 [default = UNSPECIFIED]; + optional uint32 server_region = 8; + optional float server_loadavg = 9; + optional float server_tv_broadcast_time = 10; + optional float server_game_time = 11; + optional fixed64 server_relay_connected_steam_id = 12; + optional uint32 relay_slots_max = 13; + optional int32 relays_connected = 14; + optional int32 relay_clients_connected = 15; + optional fixed64 relayed_game_server_steam_id = 16; + optional uint32 parent_relay_count = 17; + optional fixed64 tv_secret_code = 18; + optional uint32 server_version = 19; + optional uint32 server_cluster = 20; + optional .CMsgGameServerInfo.CustomGames allow_custom_games = 23 [default = BOTH]; + optional uint32 build_version = 24; + optional uint32 srcds_instance = 26; + optional bool dev_force_server_type = 28; + optional bool is_recording_match_training_data = 29; +} + +message CMsgLeaverDetected { + optional fixed64 steam_id = 1; + optional .DOTALeaverStatus_t leaver_status = 2 [default = DOTA_LEAVER_NONE]; + optional .CMsgLeaverState leaver_state = 4; + optional uint32 server_cluster = 5; + optional .ENetworkDisconnectionReason disconnect_reason = 6 [default = NETWORK_DISCONNECT_INVALID]; + optional .CMsgPoorNetworkConditions poor_network_conditions = 7; +} + +message CMsgLeaverDetectedResponse { + optional uint32 result = 1; +} + +message CMsgDOTAFantasyFinalPlayerStats { + repeated .CMsgDOTAFantasyPlayerStats stats = 2; +} + +message CMsgDOTAFantasyLivePlayerStats { + repeated .CMsgDOTAFantasyPlayerStats stats = 2; +} + +message CMsgServerToGCRealtimeStats { + optional .CMsgDOTARealtimeGameStatsTerse delayed = 1; +} + +message CMsgGCToServerRealtimeStatsStartStop { + optional bool delayed = 1; +} + +message CMsgGCToServerUpdateSteamBroadcasting { + optional bool active = 1; +} + +message CMsgSignOutGameplayStats { + message CPlayer { + optional fixed64 steam_id = 1; + optional uint32 player_slot = 2; + optional int32 hero_id = 3; + repeated .CMatchPlayerTimedStats timed_player_stats = 4; + } + + message CTeam { + optional bool is_winning_team = 1; + optional bool is_radiant_team = 2; + repeated .CMatchTeamTimedStats timed_team_stats = 3; + repeated .CMsgSignOutGameplayStats.CPlayer players = 4; + } + + repeated .CMsgSignOutGameplayStats.CTeam teams = 1; +} + +message CMsgGameMatchSignOut { + message CTeam { + message CPlayer { + message CCustomGameData { + optional uint32 dota_team = 1; + optional bool winner = 2; + } + + message HeroDamageReceived { + optional uint32 pre_reduction = 1; + optional uint32 post_reduction = 2; + optional .CMsgGameMatchSignOut.CTeam.CPlayer.HeroDamageType damage_type = 3 [default = HERO_DAMAGE_PHYSICAL]; + } + + enum HeroDamageType { + HERO_DAMAGE_PHYSICAL = 0; + HERO_DAMAGE_MAGICAL = 1; + HERO_DAMAGE_PURE = 2; + } + + optional fixed64 steam_id = 1; + optional int32 hero_id = 3; + repeated int32 items = 4; + repeated uint32 item_purchase_times = 63; + optional uint32 gold = 5; + optional uint32 kills = 6; + optional uint32 deaths = 7; + optional uint32 assists = 8; + optional uint32 leaver_status = 9; + optional uint32 last_hits = 10; + optional uint32 denies = 11; + optional uint32 gold_per_min = 12; + optional uint32 xp_per_minute = 13; + optional uint32 gold_spent = 14; + optional uint32 level = 15; + optional uint32 scaled_hero_damage = 16; + optional uint32 scaled_tower_damage = 17; + optional uint32 scaled_hero_healing = 18; + optional uint32 time_last_seen = 19; + optional uint32 support_ability_value = 20; + optional uint64 party_id = 21; + optional uint32 claimed_farm_gold = 27; + optional uint32 support_gold = 28; + optional uint32 claimed_denies = 29; + optional uint32 claimed_misses = 30; + optional uint32 misses = 31; + optional uint32 net_worth = 34; + optional uint32 hero_damage = 37; + optional uint32 tower_damage = 38; + optional uint32 hero_healing = 39; + repeated .CMatchPlayerAbilityUpgrade ability_upgrades = 32; + repeated .CMatchAdditionalUnitInventory additional_units_inventory = 33; + repeated .CMatchPlayerPermanentBuff permanent_buffs = 40; + optional .CMsgGameMatchSignOut.CTeam.CPlayer.CCustomGameData custom_game_data = 35; + optional uint32 match_player_flags = 36; + repeated int32 talent_ability_ids = 41; + optional uint32 hero_pick_order = 42; + optional bool hero_was_randomed = 43; + optional bool hero_was_dota_plus_suggestion = 50; + optional uint32 lane = 45; + optional bool is_using_plus_guide = 47; + repeated .CMsgGameMatchSignOut.CTeam.CPlayer.HeroDamageReceived hero_damage_received = 48; + repeated .CMsgGameMatchSignOut.CTeam.CPlayer.HeroDamageReceived hero_damage_dealt = 64; + optional uint32 seconds_dead = 51; + optional uint32 gold_lost_to_death = 52; + optional uint32 command_count = 53; + optional uint32 mouse_click_cast_command_count = 54; + optional uint32 teleports_used = 55; + optional uint32 cavern_crawl_preferred_map_variant = 56 [default = 255]; + optional uint32 bounty_runes = 57; + optional uint32 outposts_captured = 58; + optional uint32 dewards = 59; + optional uint32 wards_placed = 60; + optional uint32 camps_stacked = 61; + optional uint32 player_slot = 62; + optional uint32 predicted_position = 66; + optional uint32 lane_outcomes = 67 [default = 255]; + optional uint32 friendly_t1_destroyed_time = 68; + optional uint32 enemy_t1_destroyed_time = 69; + optional uint32 friendly_roshan_kills = 70; + optional uint32 enemy_roshan_kills = 71; + optional uint32 power_runes = 72; + optional uint32 water_runes = 73; + optional float stun_duration = 74; + optional .DOTA_GC_TEAM team_number = 75 [default = DOTA_GC_TEAM_GOOD_GUYS]; + optional uint32 team_slot = 76; + optional uint32 time_purchased_shard = 77; + optional uint32 time_purchased_aghs = 78; + repeated int32 ability_draft_abilities = 79; + repeated .CMsgTrackedStat player_tracked_stats = 80; + optional uint32 predicted_rank = 81; + optional uint32 selected_facet = 82; + } + + repeated .CMsgGameMatchSignOut.CTeam.CPlayer players = 1; + repeated .CMsgTrackedStat team_tracked_stats = 2; + } + + message CAdditionalSignoutMsg { + optional uint32 id = 1; + optional bytes contents = 2; + } + + message CSocialFeedMatchEvent { + optional uint32 account_id = 1; + optional uint32 timestamp = 2; + optional uint32 event_type = 3; + optional int32 game_time = 4; + optional uint32 replay_time = 5; + } + + message CCustomGameData { + optional uint32 publish_timestamp = 1; + } + + message EventGameLeaderboardEntry { + optional string name_suffix = 1; + optional int32 score = 2; + optional uint32 extra_data_1 = 3; + optional uint32 extra_data_2 = 4; + optional uint32 extra_data_3 = 5; + optional uint32 extra_data_4 = 6; + optional uint32 extra_data_5 = 7; + } + + message WardPlacement { + optional int32 player_id = 1 [default = -1]; + optional uint32 team_id = 2; + optional uint32 placed_time = 3; + optional uint32 building_state = 4; + optional uint32 creep_state = 5; + optional bool roshan_alive = 6; + optional uint32 position_x = 7; + optional uint32 position_y = 8; + } + + optional uint64 match_id = 1 [(key_field) = true]; + optional uint32 duration = 2; + optional bool good_guys_win = 3; + optional fixed32 date = 4; + repeated .CMsgGameMatchSignOut.CTeam teams = 6; + repeated uint32 tower_status = 8; + repeated uint32 barracks_status = 9; + optional uint32 cluster = 10; + optional string server_addr = 11; + optional uint32 first_blood_time = 12; + optional uint32 event_score = 14; + repeated .CMsgDOTAFantasyPlayerStats fantasy_stats = 41; + repeated .CMsgEconPlayerStrangeCountAdjustment player_strange_count_adjustments = 17; + optional bool automatic_surrender = 18; + optional uint32 server_version = 19; + optional .CMsgPoorNetworkConditions poor_network_conditions = 35; + repeated .CMsgGameMatchSignOut.CAdditionalSignoutMsg additional_msgs = 20; + repeated .CMsgGameMatchSignOut.CSocialFeedMatchEvent social_feed_events = 36; + optional sint32 average_networth_delta = 22; + optional .CMsgGameMatchSignOut.CCustomGameData custom_game_data = 37; + optional uint32 match_flags = 38; + repeated uint32 team_scores = 39; + optional uint32 pre_game_duration = 40; + repeated .CMsgGameMatchSignOut.EventGameLeaderboardEntry event_game_leaderboard_entries = 42; + repeated .CMsgGameMatchSignOut.WardPlacement ward_placements = 43; + optional .CMsgSignOutGameplayStats gameplay_stats = 44; + repeated .CExtraMsgBlock extra_messages = 54; + optional bool training_data_recorded = 55; + optional .DOTA_GC_TEAM winning_team = 56 [default = DOTA_GC_TEAM_GOOD_GUYS]; + optional float normalized_win_probability_diff = 57; + repeated .CMsgTrackedStat match_tracked_stats = 58; +} + +message CMsgSignOutDraftInfo { + optional uint32 radiant_captain_account_id = 1; + optional uint32 dire_captain_account_id = 2; + repeated .CMatchHeroSelectEvent picks_bans = 3; +} + +message CMsgSignOutBotInfo { + optional bool allow_cheats = 1; + optional .DOTABotDifficulty bot_difficulty_radiant = 2 [default = BOT_DIFFICULTY_PASSIVE]; + optional bool created_lobby = 3; + optional .DOTABotDifficulty bot_difficulty_dire = 5 [default = BOT_DIFFICULTY_PASSIVE]; +} + +message CMsgSignOutTextMuteInfo { + message TextMuteMessage { + optional uint32 region = 1; + optional bool caused_text_mute = 2; + optional string chat_message = 3; + } + + repeated .CMsgSignOutTextMuteInfo.TextMuteMessage text_mute_messages = 1; +} + +message CMsgSignOutPlayerStats { + optional int32 account_id = 1; + optional uint64 match_id = 2; + optional uint32 rank = 3; + optional int32 hero_id = 4; + optional uint32 rampages = 5; + optional uint32 triple_kills = 6; + optional uint32 first_blood_claimed = 7; + optional uint32 first_blood_given = 8; + optional uint32 couriers_killed = 9; + optional uint32 aegises_snatched = 10; + optional uint32 cheeses_eaten = 11; + optional uint32 creeps_stacked = 12; + optional float fight_score = 13; + optional float farm_score = 14; + optional float support_score = 15; + optional float push_score = 16; + optional uint32 kills = 17; + optional uint32 deaths = 18; + optional uint32 assists = 19; + optional uint32 last_hits = 20; + optional uint32 denies = 21; + optional float gpm = 22; + optional float xppm = 23; + optional float net_worth = 24; + optional float damage = 25; + optional float heals = 26; + optional uint32 rapiers_purchased = 27; + optional uint32 observer_wards_placed = 28; + optional uint32 wards_destroyed = 29; + optional uint32 lobby_type = 30; +} + +message CMsgSignOutCommunicationSummary { + message PlayerCommunication { + message PingDetail { + optional uint32 type = 1 [default = 4294967295]; + optional uint32 count = 2; + } + + optional uint32 account_id = 1; + optional uint32 pings = 2; + optional uint32 max_pings_per_interval = 3; + optional uint32 teammate_pings = 4; + optional uint32 max_teammate_pings_per_interval = 5; + optional uint32 team_chat_messages = 6; + optional uint32 all_chat_messages = 7; + optional uint32 chat_wheel_messages = 8; + optional uint32 pauses = 9; + optional uint32 unpauses = 10; + optional uint32 lines_drawn = 11; + optional uint32 voice_chat_seconds = 12; + optional uint32 chat_mutes = 13; + optional uint32 voice_mutes = 14; + repeated .CMsgSignOutCommunicationSummary.PlayerCommunication.PingDetail ping_details = 15; + optional uint32 comms_blocks_solo = 16; + optional uint32 comms_blocks_mass = 17; + repeated string chat_log = 18; + } + + repeated .CMsgSignOutCommunicationSummary.PlayerCommunication players = 1; +} + +message CMsgGameMatchSignoutResponse { + message PlayerMetadata { + optional int32 hero_id = 1; + optional uint32 avg_kills_x16 = 2; + optional uint32 avg_deaths_x16 = 3; + optional uint32 avg_assists_x16 = 4; + optional uint32 avg_gpm_x16 = 5; + optional uint32 avg_xpm_x16 = 6; + optional uint32 best_kills_x16 = 7; + optional uint32 best_assists_x16 = 8; + optional uint32 best_gpm_x16 = 9; + optional uint32 best_xpm_x16 = 10; + optional uint32 win_streak = 11; + optional uint32 best_win_streak = 12; + optional uint32 games_played = 13; + } + + optional uint64 match_id = 1; + optional fixed32 replay_salt = 2; + optional uint32 leagueid = 5; + optional fixed32 metadata_private_key = 7; + optional .CMsgDOTAMatch match_details = 8; + repeated .CMsgGameMatchSignoutResponse.PlayerMetadata players_metadata = 9; + optional .CMvpData mvp_data = 10; + optional fixed64 ow_private_key = 11; + optional fixed32 ow_salt = 12; + optional uint64 ow_replay_id = 13; + optional .CMsgOverworldMatchRewards overworld_rewards = 14; +} + +message CMsgGameMatchSignOutPermissionRequest { + optional uint32 server_version = 1; + optional uint32 local_attempt = 2; + optional uint32 total_attempt = 3; + optional uint32 seconds_waited = 4; +} + +message CMsgGameMatchSignOutPermissionResponse { + optional bool permission_granted = 1 [default = false]; + optional bool abandon_signout = 2 [default = false]; + optional uint32 retry_delay_seconds = 3 [default = 0]; +} + +message CMsgGameMatchSignOutEventGameData { + optional .EEvent event_id = 1 [default = EVENT_ID_NONE]; + optional string game_name = 2; + optional string map_name = 3; + optional bytes event_game_data = 4; + optional uint32 start_time = 5; +} + +message CMsgGameMatchSignOutPerfData { + repeated float average_frame_time = 1; + repeated float max_frame_time = 2; + optional float server_average_frame_time = 3; + optional float server_max_frame_time = 4; + repeated float average_compute_time = 5; + repeated float max_compute_time = 6; + repeated float average_client_tick_time = 7; + repeated float max_client_tick_time = 8; + repeated float average_client_simulate_time = 9; + repeated float max_client_simulate_time = 10; + repeated float average_output_time = 11; + repeated float max_output_time = 12; + repeated float average_wait_for_rendering_to_complete_time = 13; + repeated float max_wait_for_rendering_to_complete_time = 14; + repeated float average_swap_time = 15; + repeated float max_swap_time = 16; + repeated float average_frame_update_time = 17; + repeated float max_frame_update_time = 18; + repeated float average_idle_time = 19; + repeated float max_idle_time = 20; + repeated float average_input_processing_time = 21; + repeated float max_input_processing_time = 22; +} + +message CMsgGameMatchSignOutBanData { + repeated int32 hero_bans = 1; + repeated int32 hero_ban_votes = 2; +} + +message CMsgDOTALiveScoreboardUpdate { + message Team { + message Player { + message HeroAbility { + optional int32 ability_id = 1 [default = -1]; + optional uint32 ability_level = 2; + } + + enum DOTAUltimateState { + k_EDOTAUltimateStateNotLearned = 0; + k_EDOTAUltimateStateCooldown = 1; + k_EDOTAUltimateStateNeedsMana = 2; + k_EDOTAUltimateStateReady = 3; + } + + optional uint32 player_slot = 1; + optional string player_name = 2; + optional string hero_name = 3; + optional int32 hero_id = 4; + optional uint32 kills = 5; + optional uint32 deaths = 6; + optional uint32 assists = 7; + optional uint32 last_hits = 8; + optional uint32 denies = 9; + optional uint32 gold = 10; + optional uint32 level = 11; + optional float gold_per_min = 12; + optional float xp_per_min = 13; + optional .CMsgDOTALiveScoreboardUpdate.Team.Player.DOTAUltimateState ultimate_state = 14 [default = k_EDOTAUltimateStateNotLearned]; + optional float ultimate_cooldown = 15; + optional int32 item0 = 16 [default = -1]; + optional int32 item1 = 17 [default = -1]; + optional int32 item2 = 18 [default = -1]; + optional int32 item3 = 19 [default = -1]; + optional int32 item4 = 20 [default = -1]; + optional int32 item5 = 21 [default = -1]; + optional uint32 respawn_timer = 22; + optional uint32 account_id = 23; + optional float position_x = 24; + optional float position_y = 25; + optional uint32 net_worth = 26; + repeated .CMsgDOTALiveScoreboardUpdate.Team.Player.HeroAbility abilities = 27; + } + + repeated .CMsgDOTALiveScoreboardUpdate.Team.Player players = 1; + optional uint32 score = 2; + optional uint32 tower_state = 3; + optional uint32 barracks_state = 4; + repeated int32 hero_picks = 5; + repeated int32 hero_bans = 6; + } + + optional uint32 tournament_id = 1; + optional uint32 tournament_game_id = 2; + optional float duration = 3; + optional int32 hltv_delay = 4; + optional .CMsgDOTALiveScoreboardUpdate.Team team_good = 5; + optional .CMsgDOTALiveScoreboardUpdate.Team team_bad = 6; + optional uint32 roshan_respawn_timer = 7; + optional uint32 league_id = 8; + optional uint64 match_id = 9; +} + +message CMsgServerToGCRequestBatchPlayerResources { + repeated uint32 account_ids = 1 [packed = true]; + repeated uint32 rank_types = 4 [packed = true]; + optional int32 lobby_type = 5; +} + +message CMsgServerToGCRequestBatchPlayerResourcesResponse { + message Result { + optional uint32 account_id = 1; + optional uint32 rank = 4; + optional bool rank_calibrated = 5; + optional bool low_priority = 6; + optional bool is_new_player = 7; + optional bool is_guide_player = 8; + optional int32 comm_level = 9; + optional int32 behavior_level = 10; + optional int32 wins = 11; + optional int32 losses = 12; + optional int32 smurf_category = 13; + } + + repeated .CMsgServerToGCRequestBatchPlayerResourcesResponse.Result results = 6; +} + +message CMsgDOTAPlayerFailedToConnect { + repeated fixed64 failed_loaders = 1; + repeated fixed64 abandoned_loaders = 2; +} + +message CMsgGCToRelayConnect { + optional uint32 source_tv_public_addr = 1; + optional uint32 source_tv_private_addr = 2; + optional uint32 source_tv_port = 3; + optional uint64 game_server_steam_id = 4; + optional uint32 parent_count = 5; + optional fixed64 tv_unique_secret_code = 6; + optional fixed64 source_tv_steamid = 7; +} + +message CMsgGCGCToLANServerRelayConnect { + optional fixed64 relay_steamid = 1; +} + +message CMsgGCBanStatusRequest { + optional uint32 account_id = 1; +} + +message CMsgGCBanStatusResponse { + optional uint32 result = 1; + optional bool low_priority = 2; + optional bool text_chat_banned = 3; + optional bool voice_chat_banned = 4; +} + +message CMsgTournamentItemEvent { + optional fixed32 killer_account_id = 1; + optional fixed32 victim_account_id = 2; + optional .DOTA_TournamentEvents event_type = 3 [default = TE_FIRST_BLOOD]; + optional int32 tv_delay = 4; + optional int32 dota_time = 5; + optional float replay_time = 6; + optional string loot_list = 7; + optional uint32 event_team = 8; + optional uint32 multi_kill_count = 9; + optional uint32 winner_score = 10; + optional uint32 loser_score = 11; + repeated .CProtoItemHeroStatue hero_statues = 12; +} + +message CMsgTournamentItemEventResponse { + optional .DOTA_TournamentEvents event_type = 1 [default = TE_FIRST_BLOOD]; + optional uint32 viewers_granted = 6; +} + +message CMsgTeamFanfare { + optional uint64 match_id = 1; +} + +message CMsgResponseTeamFanfare { + optional uint32 fanfare_goodguys = 1; + optional uint32 fanfare_badguys = 2; +} + +message CMsgDOTAAwardEventPoints { + message AwardPoints { + optional uint32 account_id = 1; + optional int32 points = 2; + optional int32 premium_points = 3; + optional uint32 trade_ban_time = 5; + optional bool eligible_for_periodic_adjustment = 6 [default = false]; + optional uint32 point_cap_periodic_resource_id = 7; + } + + repeated .CMsgDOTAAwardEventPoints.AwardPoints award_points = 1; + optional uint64 match_id = 2; + optional .EEvent event_id = 4 [default = EVENT_ID_NONE]; + optional uint32 timestamp = 5; + optional uint32 audit_action = 6; +} + +message CMsgGCToServerPingRequest { + optional fixed64 request_id = 1; + optional uint64 request_time = 2; +} + +message CMsgGCToServerPingResponse { + optional fixed64 request_id = 1; + optional uint64 request_time = 2; + optional uint32 cluster = 3; +} + +message CMsgServerToGCMatchConnectionStats { + message Player { + optional uint32 account_id = 1; + optional fixed32 ip = 2; + optional uint32 avg_ping_ms = 3; + optional float packet_loss = 5; + optional float ping_deviation = 6; + optional uint32 full_resends = 7; + } + + optional uint64 match_id = 1; + optional uint32 region_id = 2; + optional uint32 league_id = 3; + repeated .CMsgServerToGCMatchConnectionStats.Player players = 4; + optional uint32 cluster_id = 5; +} + +message CMsgServerGCUpdateSpectatorCount { + optional uint32 spectator_count = 1; +} + +message CSerializedCombatLog { + message Dictionary { + message DictString { + required uint32 id = 1; + required string value = 2; + } + + repeated .CSerializedCombatLog.Dictionary.DictString strings = 1; + } + + optional uint32 version = 1; + optional .CSerializedCombatLog.Dictionary dictionary = 2; + repeated .CMsgDOTACombatLogEntry entries = 3; +} + +message CMsgServerToGCVictoryPredictions { + message PredictionItem { + optional uint64 item_id = 1; + optional uint32 item_def = 2; + } + + message Record { + optional uint32 account_id = 1; + repeated uint64 item_ids = 5; + repeated .CMsgServerToGCVictoryPredictions.PredictionItem prediction_items = 6; + } + + repeated .CMsgServerToGCVictoryPredictions.Record records = 1; +} + +message CMsgServerToGCRequestStatus { +} + +message CMsgServerToGCRequestStatus_Response { + optional uint32 response = 1; +} + +message CMsgGCToServerEvaluateToxicChat { + optional uint32 target_account_id = 1; + optional uint32 reporter_account_id = 2; +} + +message CMsgServerToGCEvaluateToxicChat { + optional uint32 target_account_id = 1; + optional uint32 reporter_account_id = 2; + optional fixed64 match_id = 3; + repeated uint32 timestamp = 4; + repeated string line = 5; +} + +message CMsgServerToGCEvaluateToxicChatResponse { + optional uint32 target_account_id = 1; + optional uint32 reporter_account_id = 2; + optional uint32 ban_reason = 3; + optional uint32 ban_duration = 4; + optional float toxicity_score = 5; +} + +message CMsgSignOutAssassinMiniGameInfo { + repeated fixed64 winning_players = 1; + repeated fixed64 losing_players = 2; + repeated fixed64 arcana_owners = 3; + optional bool assassin_won = 4; + optional int32 target_hero_id = 5; + optional bool contract_completed = 6; + optional float contract_complete_time = 7; + optional bool pa_is_radiant = 8; +} + +message CMsgServerToGCKillSummaries { + message KillSummary { + optional uint32 killer_hero_id = 1; + optional uint32 victim_hero_id = 2; + optional uint32 kill_count = 3; + } + + optional uint32 ingameevent_id = 1; + repeated .CMsgServerToGCKillSummaries.KillSummary summaries = 2; +} + +message CMsgServerToGCLockCharmTrading { + optional uint32 account_id = 1; + optional uint64 item_id = 2; +} + +message CMsgSignOutUpdatePlayerChallenge { + message Challenge { + optional .EEvent event_id = 1 [default = EVENT_ID_NONE]; + optional uint32 slot_id = 2; + optional uint32 sequence_id = 3; + optional uint32 progress = 4; + optional uint32 challenge_rank = 5; + } + + optional uint32 account_id = 1; + repeated .CMsgSignOutUpdatePlayerChallenge.Challenge completed = 2; + repeated .CMsgSignOutUpdatePlayerChallenge.Challenge rerolled = 3; + optional uint64 match_id = 4; + optional int32 hero_id = 5; +} + +message CMsgServerToGCRerollPlayerChallenge { + optional uint32 account_id = 1; + optional .CMsgClientToGCRerollPlayerChallenge reroll_msg = 2; +} + +message CMsgSpendWager { + message Player { + optional uint32 account_id = 1; + optional uint32 wager = 2; + optional uint64 wager_token_item_id = 3; + } + + repeated .CMsgSpendWager.Player players = 1; + optional .EEvent event_id = 2 [default = EVENT_ID_NONE]; + optional uint32 timestamp = 3; + optional uint64 match_id = 4; + optional uint64 server_steam_id = 5; +} + +message CMsgSignOutXPCoins { + message Player { + optional uint32 account_id = 1; + optional uint32 xp_gained = 2; + optional uint32 coins_spent = 3; + optional uint64 wager_token_item_id = 4; + optional uint32 rank_wager = 5; + optional uint32 wager_streak = 6; + } + + repeated .CMsgSignOutXPCoins.Player players = 1; + optional .EEvent event_id = 2 [default = EVENT_ID_NONE]; + optional uint64 match_id = 3; + optional uint32 timestamp = 4; +} + +message CMsgSignOutBounties { + message Bounty { + optional uint32 issuer_account_id = 1; + optional uint32 completer_account_id = 2; + optional uint32 target_account_id = 3; + } + + repeated .CMsgSignOutBounties.Bounty bounties = 1; + optional .EEvent event_id = 2 [default = EVENT_ID_NONE]; + optional uint64 match_id = 3; + optional uint32 timestamp = 4; +} + +message CMsgSignOutCommunityGoalProgress { + message EventGoalIncrement { + optional uint32 event_goal_id = 1; + optional uint32 increment_amount = 2; + } + + optional .EEvent event_id = 1 [default = EVENT_ID_NONE]; + repeated .CMsgSignOutCommunityGoalProgress.EventGoalIncrement event_increments = 2; +} + +message CMsgServerToGCCloseCompendiumInGamePredictionVoting { + optional uint64 match_id = 1; + optional uint32 hltv_delay = 2; + optional uint32 league_id = 3; +} + +message CMsgServerToGCCloseCompendiumInGamePredictionVotingResponse { + optional bool result = 1; +} + +message CMsgServerToGCCompendiumInGamePredictionResults { + message PredictionResult { + optional uint32 prediction_id = 1; + optional uint32 prediction_value = 2; + optional bool prediction_value_is_mask = 3; + } + + optional uint64 match_id = 1; + repeated .CMsgServerToGCCompendiumInGamePredictionResults.PredictionResult results = 2; + optional uint32 league_id = 3; + optional uint32 league_node_id = 4; +} + +message CMsgServerToGCCompendiumChosenInGamePredictions { + message Prediction { + optional uint32 prediction_id = 1; + } + + optional uint64 match_id = 1; + repeated .CMsgServerToGCCompendiumChosenInGamePredictions.Prediction predictions_chosen = 2; + optional uint32 league_id = 3; +} + +message CMsgGCToGCCompendiumInGamePredictionResults { + optional .CMsgServerToGCCompendiumInGamePredictionResults results = 1; +} + +message CMsgServerToGCMatchPlayerItemPurchaseHistory { + message ItemPurchase { + optional int32 item = 1 [default = -1]; + optional uint32 gold = 2; + optional uint32 net_worth = 3; + optional uint32 game_time = 4; + repeated int32 inventory_items = 5; + repeated bool talents_skilled = 7; + } + + message Player { + optional uint32 player_slot = 1; + optional uint32 account_id = 2; + optional int32 hero_id = 3; + repeated int32 allied_hero_ids = 4; + repeated int32 enemy_hero_ids = 5; + repeated .CMsgServerToGCMatchPlayerItemPurchaseHistory.ItemPurchase item_purchases = 6; + optional uint32 lane = 7; + optional bool is_winner = 8; + } + + optional uint64 match_id = 1; + optional uint32 mmr = 2; + repeated .CMsgServerToGCMatchPlayerItemPurchaseHistory.Player players = 3; +} + +message CMsgServerToGCMatchPlayerNeutralItemEquipHistory { + message ItemEquip { + optional int32 item = 1 [default = -1]; + optional uint32 game_time = 2; + repeated int32 inventory_items = 3; + repeated bool talents_skilled = 4; + repeated int32 available_neutral_items = 5; + } + + message Player { + optional uint32 account_id = 1; + repeated int32 allied_hero_ids = 2; + repeated int32 enemy_hero_ids = 3; + repeated .CMsgServerToGCMatchPlayerNeutralItemEquipHistory.ItemEquip item_equips = 4; + optional bool is_winner = 5; + } + + optional uint64 match_id = 1; + repeated .CMsgServerToGCMatchPlayerNeutralItemEquipHistory.Player players = 2; +} + +message CMsgServerToGCMatchStateHistory { + message PlayerState { + optional int32 hero_id = 1; + optional uint32 net_worth = 2; + optional uint32 level = 3; + optional uint32 deaths = 4; + optional uint32 respawn_time = 5; + optional bool has_buyback = 6; + optional bool has_aegis = 7; + optional bool has_rapier = 8; + optional uint32 distance = 9; + } + + message TeamState { + optional uint32 team = 1; + repeated .CMsgServerToGCMatchStateHistory.PlayerState player_states = 2 [(steamml_max_entries) = 5]; + repeated uint32 tower_health_pct = 3 [(steamml_max_entries) = 11]; + repeated uint32 barracks_health_pct = 4 [(steamml_max_entries) = 3]; + optional uint32 ancient_health_pct = 5; + optional uint32 glyph_cooldown = 6; + optional uint32 kills = 7; + optional uint32 creep_distance_safe = 8; + optional uint32 creep_distance_mid = 9; + optional uint32 creep_distance_off = 10; + } + + message MatchState { + optional uint32 game_time = 1; + optional .CMsgServerToGCMatchStateHistory.TeamState radiant_state = 2; + optional .CMsgServerToGCMatchStateHistory.TeamState dire_state = 3; + } + + optional uint64 match_id = 1; + optional bool radiant_won = 2; + optional uint32 mmr = 3; + repeated .CMsgServerToGCMatchStateHistory.MatchState match_states = 4; +} + +message CMsgMatchStateSteamMLEntry { + optional .CMsgServerToGCMatchStateHistory.MatchState match_state = 1; + optional uint32 mmr = 2; + optional bool radiant_won = 3; +} + +message CMsgLaneSelectionSteamMLEntry { + repeated int32 hero_ids = 1 [(steamml_max_entries) = 10]; + repeated uint32 lanes = 2 [(steamml_max_entries) = 6]; +} + +message CMsgAbilitySelectionSteamMLEntry { + optional uint32 mmr = 1; + optional int32 hero_id = 2; + repeated int32 enemy_hero_ids = 3 [(steamml_max_entries) = 4]; + optional uint32 lane = 4; + repeated int32 abilities = 5 [(steamml_max_entries) = 25]; + optional int32 selected_ability = 6 [default = -1]; +} + +message CMsgItemPurchasePregameSteamMLEntry { + optional uint32 mmr = 1; + optional uint32 lane = 2; + optional float balance = 3; + optional int32 hero_id = 4; + repeated int32 allied_hero_ids = 5 [(steamml_max_entries) = 4]; + repeated int32 enemy_hero_ids = 6 [(steamml_max_entries) = 5]; + repeated int32 items = 7 [(steamml_max_entries) = 9]; +} + +message CMsgItemPurchaseSteamMLEntry { + optional uint32 mmr = 1; + optional uint32 lane = 2; + optional int32 hero_id = 3; + repeated int32 allied_hero_ids = 4 [(steamml_max_entries) = 4]; + repeated int32 enemy_hero_ids = 5 [(steamml_max_entries) = 5]; + repeated int32 items = 6 [(steamml_max_entries) = 20]; + repeated int32 items_to_be_purchased = 7 [(steamml_max_entries) = 20]; +} + +message CMsgItemPurchaseSequenceSteamMLEntry { + optional uint32 mmr = 1; + optional uint32 lane = 2; + optional int32 hero_id = 3; + repeated int32 allied_hero_ids = 4 [(steamml_max_entries) = 4]; + repeated int32 enemy_hero_ids = 5 [(steamml_max_entries) = 5]; + repeated int32 items = 6 [(steamml_max_entries) = 20]; + optional int32 item_to_be_purchased = 7 [default = -1]; +} + +message CMsgServerToGCCavernCrawlIsHeroActive { + optional uint32 event_id = 1; + optional uint32 account_id = 2; + optional uint32 preferred_map_variant = 3 [default = 255]; + optional int32 hero_id = 4; + optional bool turbo_mode = 5; +} + +message CMsgServerToGCPlayerChallengeHistory { + message PlayerChallenge { + optional uint32 account_id = 1; + optional .EPlayerChallengeHistoryType challenge_type = 2 [default = k_EPlayerChallengeHistoryType_Invalid]; + optional uint32 challenge_id1 = 3; + optional uint32 challenge_id2 = 4; + optional uint32 progress_value_start = 5; + optional uint32 progress_value_end = 6; + optional bool team_won = 7; + optional uint64 audit_data = 8; + optional int32 hero_id = 9; + optional uint32 rank_completed = 10; + } + + optional uint64 match_id = 1; + optional uint32 average_rank = 2; + repeated .CMsgServerToGCPlayerChallengeHistory.PlayerChallenge challenge_records = 3; +} + +message CMsgServerToGCCavernCrawlIsHeroActiveResponse { + message MapResults { + optional uint32 path_id_completed = 1 [default = 255]; + optional uint32 room_id_claimed = 2 [default = 255]; + } + + optional bool result = 1; + optional uint32 map_variant = 5 [default = 255]; + optional uint32 potential_winnings = 2; + repeated .CMsgServerToGCCavernCrawlIsHeroActiveResponse.MapResults map_results = 3; + optional uint32 potential_plus_shard_winnings = 4; +} + +message CMsgNeutralItemStats { + message NeutralItem { + optional int32 item_id = 1 [default = -1]; + optional uint32 time_dropped = 2; + optional uint32 team = 3; + optional uint32 time_last_equipped = 4; + optional uint32 time_last_unequipped = 5; + optional uint32 duration_equipped = 6; + } + + repeated .CMsgNeutralItemStats.NeutralItem neutral_items = 1; +} + +message CMsgGCToServerLobbyHeroBanRates { + message HeroBanEntry { + optional int32 hero_id = 1; + optional uint32 ban_count = 2; + optional uint32 pick_count = 3; + } + + repeated .CMsgGCToServerLobbyHeroBanRates.HeroBanEntry ban_data = 1; +} + +message CMsgSignOutGuildContractProgress { + message CompletedGuildEventContracts { + optional uint32 guild_id = 1; + optional uint32 event_id = 2; + repeated uint64 contracts = 3; + } + + message PlayerContract { + optional uint32 account_id = 1; + repeated .CMsgSignOutGuildContractProgress.CompletedGuildEventContracts completed_contracts = 2; + } + + repeated .CMsgSignOutGuildContractProgress.PlayerContract player_contracts = 1; +} + +message CMsgSignOutGuildChallengeProgress { + message ChallengeProgress { + optional uint32 guild_id = 1; + optional uint32 event_id = 2; + optional uint32 challenge_instance_id = 3; + optional uint32 challenge_instance_timestamp = 4; + optional uint32 challenge_period_serial = 5; + optional uint32 progress = 6; + optional uint32 challenge_parameter = 7; + } + + repeated .CMsgSignOutGuildChallengeProgress.ChallengeProgress guild_challenges_progresses = 1; +} + +message CMsgSignOutMVPStats { + message Player { + message KillEaterEvent { + required uint32 event_type = 1; + required uint32 amount = 2; + } + + optional uint32 team_id = 1; + optional uint32 team_networth_rank = 2; + optional uint32 account_id = 3; + optional uint32 player_slot = 32; + optional uint32 rank = 33; + optional int32 hero_id = 4; + optional uint32 role = 5; + optional int32 kills = 6; + optional int32 deaths = 7; + optional int32 assists = 8; + optional int32 xp = 9; + optional int32 net_worth = 10; + optional int32 support_gold_spent = 12; + optional int32 wards_placed = 13; + optional int32 wards_spotted_for_dewarding = 14; + optional int32 camps_stacked = 15; + optional int32 last_hits = 16; + optional int32 denies = 17; + optional int32 building_damage = 19; + optional int32 other_damage = 20; + optional int32 triple_kills = 26; + optional int32 rampages = 28; + optional int32 first_blood = 31; + repeated .CMsgSignOutMVPStats.Player.KillEaterEvent kill_eater_events = 34; + optional uint32 highest_killstreak = 35; + } + + optional uint64 match_id = 1; + optional uint32 game_mode = 2; + optional uint32 winning_team = 3; + optional float game_time = 4; + repeated .CMsgSignOutMVPStats.Player players = 5; +} + +message CMsgGCToServerRecordTrainingData { + optional bool enable = 1; +} + +message CMsgServerToGCGetGuildContracts { + repeated uint32 account_ids = 1; +} + +message CMsgServerToGCGetGuildContractsResponse { + message ContractDetails { + optional uint64 contract_id = 1; + optional uint32 challenge_instance_id = 2; + optional uint32 challenge_parameter = 3; + optional uint32 contract_stars = 4; + optional uint32 contract_slot = 5; + } + + message Player { + optional uint32 account_id = 1; + optional uint32 guild_id = 2; + optional .EEvent event_id = 3 [default = EVENT_ID_NONE]; + repeated .CMsgServerToGCGetGuildContractsResponse.ContractDetails contracts = 4; + } + + repeated .CMsgServerToGCGetGuildContractsResponse.Player player_contracts = 1; +} + +message CMsgMatchDiretideCandy { + message CandyDetails { + optional uint32 amount = 1; + optional uint32 audit = 2; + } + + message PlayerCandy { + optional uint32 account_id = 1; + optional uint32 candy_amount = 3; + optional bool consumes_periodic_resource = 4; + repeated .CMsgMatchDiretideCandy.CandyDetails candy_breakdown = 5; + } + + repeated .CMsgMatchDiretideCandy.PlayerCandy player_candy_data = 1; + optional .EEvent event_id = 2 [default = EVENT_ID_NONE]; +} + +message CMsgGCToServerCheerData { + message CheerTypeCount { + optional uint32 cheer_type = 1; + optional uint32 cheer_count = 2; + } + + repeated .CMsgGCToServerCheerData.CheerTypeCount cheer_types = 1; +} + +message CMsgCheerConfig { + optional bool cheers_enabled = 1; + optional bool is_valid_league_id = 2; + optional float window_duration = 3; + optional uint32 window_bucket_count = 4; + optional float crowd_level_push_time = 6; + optional uint32 crowd_level_low = 10; + optional uint32 crowd_level_medium = 11; + optional uint32 crowd_level_high = 12; + optional float cheer_scale_start = 13; + optional float cheer_scale_speed = 14; + optional uint32 cheer_scale_push_mark = 15; + optional uint32 cheer_scale_pull_mark = 16; + optional float cheer_scale_pct_of_max_cps_clamp = 17; + optional float cheer_scale_dampener_value = 21; + optional uint32 cheer_scale_dampener_lerp_time = 22; + optional float cheer_factor_bronze = 18; + optional float cheer_factor_silver = 19; + optional float cheer_factor_gold = 20; +} + +message CMsgGCToServerCheerConfig { + optional .CMsgCheerConfig cheer_config = 1; +} + +message CMsgServerToGCGetCheerConfig { + optional uint32 league_id = 1; +} + +message CMsgServerToGCGetCheerConfigResponse { + optional .CMsgCheerConfig cheer_config = 2; +} + +message CMsgGCToServerCheerScalesOverride { + repeated float scales = 1; +} + +message CMsgGCToServerGetCheerState { +} + +message CMsgCheerTypeState { + repeated uint32 cheer_counts = 1; + optional float max_per_second = 2; + optional float cheer_scale = 3; + optional float override_scale = 4; +} + +message CMsgCheerState { + repeated .CMsgCheerTypeState cheer_types = 1; + optional uint32 radiant_crowd_level = 2; + optional uint32 dire_crowd_level = 3; +} + +message CMsgServerToGCReportCheerState { + optional .CMsgCheerConfig cheer_config = 1; + optional .CMsgCheerState cheer_state = 2; +} + +message CMsgServerToGCGetStickerHeroes { + repeated uint32 account_ids = 1; +} + +message CMsgServerToGCGetStickerHeroesResponse { + message Player { + optional uint32 account_id = 1; + optional .CMsgStickerHeroes stickers = 2; + } + + repeated .CMsgServerToGCGetStickerHeroesResponse.Player players = 1; +} + +message CMsgGCToServerSteamLearnAccessTokensChanged { + optional .CMsgSteamLearnAccessTokens access_tokens = 1; +} + +message CMsgGCToServerSteamLearnUseHTTP { + optional bool use_http = 1; +} + +message CMsgSteamLearnMatchInfo { + optional uint32 average_mmr = 1; + optional bool radiant_won = 2; + optional uint32 duration = 3; + optional uint32 game_mode = 4; + optional uint32 lobby_type = 5; +} + +message CMsgSteamLearnMatchInfoPlayer { + optional uint32 average_mmr = 1; + optional bool team_won = 2; + optional uint32 duration = 3; + optional uint32 game_mode = 4; + optional uint32 lobby_type = 5; + optional uint32 player_mmr = 6; +} + +message CMsgSteamLearnMatchHeroesV3 { + repeated int32 radiant_hero_ids = 1 [(steamlearn_count) = 5]; + repeated int32 dire_hero_ids = 2 [(steamlearn_count) = 5]; + repeated uint32 radiant_lanes = 3 [(steamlearn_count) = 5]; + repeated uint32 dire_lanes = 4 [(steamlearn_count) = 5]; + repeated uint32 radiant_hero_facets = 5 [(steamlearn_count) = 5]; + repeated uint32 dire_hero_facets = 6 [(steamlearn_count) = 5]; + repeated uint32 radiant_positions = 7 [(steamlearn_count) = 5]; + repeated uint32 dire_positions = 8 [(steamlearn_count) = 5]; +} + +message CMsgSteamLearnMatchHeroV3 { + optional int32 hero_id = 1; + optional uint32 lane = 2; + optional uint32 position = 8; + repeated int32 allied_hero_ids = 3 [(steamlearn_count) = 4]; + repeated int32 enemy_hero_ids = 4 [(steamlearn_count) = 5]; + optional uint32 hero_facet = 5; + repeated uint32 allied_hero_facets = 6 [(steamlearn_count) = 4]; + repeated uint32 enemy_herofacets = 7 [(steamlearn_count) = 5]; +} + +message CMsgSteamLearnPlayerTimedStats { + message StatBucket { + optional float game_time = 1; + optional uint32 kills = 2; + optional uint32 deaths = 3; + optional uint32 assists = 4; + optional uint32 experience = 5; + optional uint32 last_hits = 6; + optional uint32 denies = 7; + optional uint32 net_worth = 8; + optional float idle_time = 9; + optional uint32 commands_issued = 10; + optional uint32 sentry_wards_placed = 11; + optional uint32 observer_wards_placed = 12; + } + + repeated .CMsgSteamLearnPlayerTimedStats.StatBucket stat_buckets = 1 [(steamlearn_count) = 90]; +} + +message CMsgSteamLearnMatchStateV5 { + message PlayerState { + optional int32 hero_id = 1; + optional uint32 net_worth = 2; + optional uint32 level = 3; + optional uint32 deaths = 4; + optional uint32 respawn_time = 5; + optional bool has_buyback = 6; + optional bool has_aegis = 7; + optional bool has_rapier = 8; + optional uint32 distance = 9; + optional uint32 hero_facet = 10; + } + + message TeamState { + optional uint32 team = 1; + repeated .CMsgSteamLearnMatchStateV5.PlayerState player_states = 2 [(steamlearn_count) = 5]; + repeated uint32 tower_health_pct = 3 [(steamlearn_count) = 11]; + repeated uint32 barracks_health_pct = 4 [(steamlearn_count) = 6]; + optional uint32 ancient_health_pct = 5; + optional uint32 glyph_cooldown = 6; + optional uint32 kills = 7; + optional uint32 creep_distance_safe = 8; + optional uint32 creep_distance_mid = 9; + optional uint32 creep_distance_off = 10; + } + + optional float game_time = 1; + optional .CMsgSteamLearnMatchStateV5.TeamState radiant_state = 2; + optional .CMsgSteamLearnMatchStateV5.TeamState dire_state = 3; +} + +message CMsgSteamLearnItemPurchase { + optional int32 item_id = 1 [default = -1]; + repeated int32 inventory_items = 2 [(steamlearn_count) = 20]; + repeated int32 purchase_history = 3 [(steamlearn_count) = 20]; + optional uint32 gold = 4; + optional uint32 net_worth = 5; + optional uint32 is_radiant_team = 6; + optional float game_time = 7; + optional bool is_using_dota_plus = 8; +} + +message CMsgSteamLearnPreGameItemPurchases { + repeated int32 item_ids = 1 [(steamlearn_count) = 10]; + optional uint32 is_radiant_team = 2; + optional bool is_using_dota_plus = 3; +} + +message CMsgSteamLearnNeutralItemPurchase { + optional int32 item_id = 1 [default = -1]; + optional uint32 tier = 2; + optional uint32 is_radiant_team = 3; + optional bool is_using_dota_plus = 4; +} + +message CMsgSteamLearnAbilitySkill { + optional int32 ability_id = 1 [default = -1]; + repeated int32 skilled_abilities = 2 [(steamlearn_count) = 30]; + optional float game_time = 3; + optional bool is_using_dota_plus = 4; +} + +message CMsgSteamLearnEarlyGameItemPurchases { + repeated int32 item_ids = 1 [(steamlearn_count) = 10]; +} + +message CMsgSteamLearnEarlyGameItemPurchasesV2 { + repeated int32 item_ids = 1 [(steamlearn_count) = 10]; + repeated int32 other_item_ids = 2 [(steamlearn_count) = 30]; +} + +message CMsgSteamLearnLateGameItemPurchases { + repeated int32 item_ids = 1 [(steamlearn_count) = 10]; +} + +message CMsgSteamLearnLateGameItemPurchasesV2 { + repeated int32 item_ids = 1 [(steamlearn_count) = 10]; + repeated int32 other_item_ids = 2 [(steamlearn_count) = 30]; +} + +message CMsgSteamLearnWardPlacement { + message Location { + optional float x = 1; + optional float y = 2; + } + + optional .CMsgSteamLearnWardPlacement.Location ward_loc = 1; + repeated .CMsgSteamLearnWardPlacement.Location existing_ward_locs = 2 [(steamlearn_count) = 6]; + optional uint32 team = 3; +} + +message CMsgSignOutMuertaMinigame { + optional bytes event_game_data = 1; +} + +message CMsgSignOutMapStats { + message Player { + optional uint32 account_id = 1; + optional .CMsgMapStatsSnapshot personal_stats = 2; + } + + repeated .CMsgSignOutMapStats.Player players = 1; + optional .CMsgMapStatsSnapshot global_stats = 2; +} + +message CMsgServerToGCNewBloomGift { + optional uint32 defindex = 1; + optional uint32 gifter_account_id = 2; + repeated uint32 target_account_ids = 3; +} + +message CMsgServerToGCNewBloomGiftResponse { + optional .ENewBloomGiftingResponse result = 1 [default = kENewBloomGifting_UnknownFailure]; + repeated uint32 received_account_ids = 2; +} + +message CMsgSignOutOverworld { + message Player { + optional uint32 account_id = 1; + optional uint32 overworld_id = 2; + repeated uint32 desired_token_rewards = 3; + } + + repeated .CMsgSignOutOverworld.Player players = 1; + optional .EEvent event_id = 2 [default = EVENT_ID_NONE]; +} diff --git a/Protobufs/dota2/dota_gcmessages_webapi.proto b/Protobufs/dota2/dota_gcmessages_webapi.proto new file mode 100644 index 0000000..48e35cf --- /dev/null +++ b/Protobufs/dota2/dota_gcmessages_webapi.proto @@ -0,0 +1,426 @@ +import "steammessages.proto"; +import "gcsdk_gcmessages.proto"; +import "dota_shared_enums.proto"; +import "dota_gcmessages_common.proto"; +import "dota_match_metadata.proto"; + +enum ETeamFanContentStatus { + TEAM_FAN_CONTENT_STATUS_INVALID = 0; + TEAM_FAN_CONTENT_STATUS_PENDING = 1; + TEAM_FAN_CONTENT_STATUS_EVALUATED = 2; +} + +enum ETeamFanContentAssetType { + k_eFanContentAssetType_LogoPNG = 1; + k_eFanContentAssetType_LogoSVG = 2; + k_eFanContentAssetType_Logo3D = 3; + k_eFanContentAssetType_Players = 4; + k_eFanContentAssetType_Sprays = 5; + k_eFanContentAssetType_Wallpapers = 6; + k_eFanContentAssetType_Emoticons = 7; + k_eFanContentAssetType_VoiceLines = 8; + k_eFanContentAssetType_Localization = 9; +} + +enum ETeamFanContentAssetStatus { + k_eFanContentAssetStatus_None = 0; + k_eFanContentAssetStatus_Approved = 1; + k_eFanContentAssetStatus_Rejected = 2; +} + +enum ETalentContentStatus { + TALENT_CONTENT_STATUS_INVALID = 0; + TALENT_CONTENT_STATUS_PENDING = 1; + TALENT_CONTENT_STATUS_EVALUATED = 2; +} + +enum ETalentContentAssetType { + k_eTalentContentAssetType_Photo = 1; + k_eTalentContentAssetType_Autograph = 2; + k_eTalentContentAssetType_Voicelines = 3; +} + +enum ETalentContentAssetStatus { + k_eTalentContentAssetStatus_None = 0; + k_eTalentContentAssetStatus_Approved = 1; + k_eTalentContentAssetStatus_Rejected = 2; +} + +message CMsgArcanaVotes { + message Match { + optional uint32 match_id = 1; + optional int32 hero_id_0 = 2; + optional int32 hero_id_1 = 3; + optional uint32 hero_seeding_0 = 4; + optional uint32 hero_seeding_1 = 5; + optional uint32 vote_count_0 = 6; + optional uint32 vote_count_1 = 7; + optional uint32 voting_state = 8; + optional uint32 round_number = 9; + optional bool is_votes_hidden = 10; + optional uint32 calibration_time_remaining = 11; + } + + enum VotingState { + FINISHED = 0; + IN_PROGRESS = 1; + IN_FUTURE = 2; + } + + repeated .CMsgArcanaVotes.Match matches = 1; + optional uint32 round_time_remaining = 2; + optional uint32 round_number = 3; + optional uint32 voting_state = 4; + optional bool is_current_round_calibrating = 5; + optional uint32 closest_active_match_id = 6; + optional uint32 event_id = 7; + optional uint32 voting_start_time = 8; +} + +message CMsgDOTADPCFeed { + message Element { + optional .CMsgDOTADPCFeed.EFeedElementType type = 1 [default = FEED_SERIES_RESULT]; + optional uint32 timestamp = 2; + optional uint32 series_id = 3; + optional uint64 match_id = 4; + optional uint32 team_id = 5; + optional uint32 account_id = 6; + optional uint32 league_id = 7; + optional uint32 node_id = 8; + optional uint64 server_steam_id = 13; + optional uint32 data_1 = 9; + optional uint32 data_2 = 10; + optional uint32 data_3 = 11; + optional uint32 data_4 = 12; + } + + enum EFeedElementType { + FEED_SERIES_RESULT = 1; + FEED_MATCH_POPULAR = 2; + FEED_TEAM_UPCOMING_MATCH = 3; + FEED_TEAM_LEAGUE_RESULT = 4; + FEED_TEAM_ADD_PLAYER = 5; + FEED_TEAM_REMOVE_PLAYER = 6; + FEED_TEAM_DISBAND = 7; + FEED_LEAGUE_UPCOMING = 8; + FEED_LEAGUE_CONCLUDED = 9; + FEED_DPC_STANDINGS = 10; + FEED_ALERT_PREDICTIONS = 11; + FEED_ALERT_FANTASY = 12; + FEED_LEAGUE_LIVE_MATCH = 13; + FEED_LEAGUE_INPROGRESS_SERIES = 14; + } + + repeated .CMsgDOTADPCFeed.Element elements = 1; +} + +message CMsgDOTADPCUserInfo { + optional bool is_plus_subscriber = 1; +} + +message CMsgDraftTrivia { + message DraftTriviaHeroInfo { + optional int32 hero_id = 1; + optional uint32 role = 2; + } + + message DraftTriviaMatchInfo { + repeated .CMsgDraftTrivia.DraftTriviaHeroInfo radiant_heroes = 1; + repeated .CMsgDraftTrivia.DraftTriviaHeroInfo dire_heroes = 2; + } + + message PreviousResult { + optional bool voted_correctly = 1; + optional bool voted_radiant = 2; + optional .CMsgDraftTrivia.DraftTriviaMatchInfo match_hero_info = 3; + optional uint32 match_rank_tier = 4; + optional uint32 end_time = 5; + optional uint64 match_id = 6; + } + + optional bool has_valid_match = 1; + optional .CMsgDraftTrivia.DraftTriviaMatchInfo match_hero_info = 2; + optional uint32 match_rank_tier = 3; + optional uint32 end_time = 4; + optional uint32 event_id = 5; + optional bool current_match_voted_radiant = 6; + optional .CMsgDraftTrivia.PreviousResult previous_result = 7; + optional uint32 current_streak = 8; +} + +message CMsgTeamFanContentAssetStatus { + optional .ETeamFanContentAssetType asset_type = 1 [default = k_eFanContentAssetType_LogoPNG]; + optional uint32 asset_index = 2; + optional .ETeamFanContentAssetStatus asset_status = 3 [default = k_eFanContentAssetStatus_None]; + optional uint32 crc = 4; +} + +message CMsgTeamFanContentAssetStatusResponse { + enum EResult { + k_eSuccess = 0; + k_eInternalError = 1; + } + + optional .CMsgTeamFanContentAssetStatusResponse.EResult result = 1 [default = k_eSuccess]; +} + +message CMsgTeamFanContentStatus { + message TeamStatus { + optional string name = 1; + optional uint32 team_id = 2; + optional string logo_url = 3; + optional .ETeamFanContentStatus status = 4 [default = TEAM_FAN_CONTENT_STATUS_INVALID]; + optional uint32 timestamp = 5; + optional uint64 ugc_logo = 7; + optional uint32 workshop_account_id = 8; + optional string abbreviation = 9; + optional uint32 voiceline_count = 10; + optional uint32 spray_count = 11; + optional uint32 emoticon_count = 12; + optional uint32 wallpaper_count = 13; + optional string comment = 14; + optional uint32 comment_timestamp = 15; + repeated .CMsgTeamFanContentAssetStatus asset_status = 16; + optional uint32 email_timestamp = 17; + optional uint32 email_tier = 18; + optional string languages = 19; + } + + repeated .CMsgTeamFanContentStatus.TeamStatus team_status_list = 1; +} + +message CMsgTeamFanContentAutographStatus { + message AutographStatus { + optional string pro_name = 1; + optional uint32 account_id = 2; + optional uint32 timestamp = 3; + optional string file = 4; + } + + message TeamStatus { + optional string name = 1; + optional uint32 team_id = 2; + repeated .CMsgTeamFanContentAutographStatus.AutographStatus autographs = 3; + optional uint32 workshop_account_id = 4; + } + + repeated .CMsgTeamFanContentAutographStatus.TeamStatus team_autographs = 1; +} + +message CMsgTalentContentAssetStatus { + optional .ETalentContentAssetType asset_type = 1 [default = k_eTalentContentAssetType_Photo]; + optional uint32 asset_index = 2; + optional .ETalentContentAssetStatus asset_status = 3 [default = k_eTalentContentAssetStatus_None]; +} + +message CMsgTalentContentStatus { + message TalentDetails { + optional uint32 account_id = 1; + optional string full_name = 2; + optional string nickname = 3; + optional uint32 workshop_item_id = 4; + optional string zip_file = 5; + optional .ETalentContentStatus status = 6 [default = TALENT_CONTENT_STATUS_INVALID]; + repeated .CMsgTalentContentAssetStatus asset_status = 7; + optional uint32 broadcast_language = 8; + } + + repeated .CMsgTalentContentStatus.TalentDetails talent_status = 1; +} + +message CMsgSetTalentContentResponse { + enum EResult { + k_eSuccess = 0; + k_eInternalError = 1; + } + + optional .CMsgSetTalentContentResponse.EResult result = 1 [default = k_eSuccess]; +} + +message CMsgDPCEvent { + message PhaseInfo { + optional .CMsgDPCEvent.ELeagueEventPhase phase = 1 [default = PHASE_INVALID]; + optional uint32 node_group_id = 2; + } + + message League { + optional .ELeagueRegion region = 1 [default = LEAGUE_REGION_UNSET]; + optional .ELeagueDivision division = 2 [default = LEAGUE_DIVISION_UNSET]; + optional uint32 league_id = 3; + repeated .CMsgDPCEvent.PhaseInfo phases = 4; + } + + enum ELeagueEvent { + EVENT_INVALID = 0; + SPRING_2021_LEAGUE = 1; + SPRING_2021_MAJOR = 2; + INTERNATIONAL_2021_QUALIFIERS = 3; + INTERNATIONAL_2021 = 4; + WINTER_2021_LEAGUE = 5; + WINTER_2021_LEAGUE_FINALS = 6; + SPRING_2022_LEAGUE = 7; + SPRING_2022_MAJOR = 8; + SUMMER_2022_LEAGUE = 9; + SUMMER_2022_MAJOR = 10; + INTERNATIONAL_2022 = 11; + CHINA_REGIONAL_FINALS = 12; + INTERNATIONAL_2022_REGIONAL_QUALIFIERS = 13; + INTERNATIONAL_2022_LAST_CHANCE_QUALIFIERS = 14; + WINTER_2023_LEAGUE = 15; + WINTER_2023_MAJOR = 16; + SPRING_2023_LEAGUE = 17; + SPRING_2023_MAJOR = 18; + SUMMER_2023_LEAGUE = 19; + SUMMER_2023_MAJOR = 20; + INTERNATIONAL_2023 = 21; + INTERNATIONAL_2024 = 23; + } + + enum ELeagueEventPhase { + PHASE_INVALID = 0; + WILD_CARD = 1; + GROUP_STAGE = 2; + GROUP_A = 3; + GROUP_B = 4; + OVERALL = 5; + PLAYOFF = 6; + RESULTS = 7; + DPC_POINT_STANDINGS = 8; + GROUP_C = 9; + GROUP_D = 10; + PLACEMENT = 11; + } + + enum ELeagueEventType { + UNKNOWN = 0; + LEAGUE = 1; + MAJOR = 2; + INTERNATIONAL_QUALIFIERS = 3; + INTERNATIONAL = 4; + LEAGUE_FINALS = 5; + EXTERNAL = 6; + } + + enum ETour { + TOUR_NONE = 0; + TOUR_1 = 1; + TOUR_2 = 2; + TOUR_3 = 3; + } + + optional .CMsgDPCEvent.ELeagueEvent event = 1 [default = EVENT_INVALID]; + optional .CMsgDPCEvent.ELeagueEventType event_type = 2 [default = UNKNOWN]; + repeated .CMsgDPCEvent.League leagues = 3; + optional uint32 registration_period = 4; + optional bool is_event_upcoming = 5; + optional bool is_event_completed = 6; + optional string event_name = 7; + optional uint32 multicast_league_id = 8; + repeated uint32 multicast_streams = 9; + optional .CMsgDPCEvent.ETour tour = 10 [default = TOUR_NONE]; + optional uint32 timestamp_drop_lock = 12; + optional uint32 timestamp_add_lock = 13; + optional uint32 timestamp_content_deadline = 14; + optional bool is_fantasy_enabled = 15; + optional uint32 timestamp_content_review_deadline = 16; +} + +message CMsgDPCEventList { + repeated .CMsgDPCEvent events = 1; +} + +message CMsgDOTAFantasyCardLineup { + message CardBonus { + optional uint32 bonus_stat = 1; + optional uint32 bonus_value = 2; + } + + message Card { + optional uint32 player_account_id = 1; + optional string player_name = 2; + optional uint32 team_id = 3; + optional string team_name = 4; + optional uint32 role = 5; + repeated .CMsgDOTAFantasyCardLineup.CardBonus bonuses = 6; + optional float score = 7; + optional bool finalized = 8; + optional uint64 item_id = 9; + } + + message League { + optional uint32 league_id = 1; + repeated .CMsgDOTAFantasyCardLineup.Card cards = 2; + optional float score = 3; + } + + message Period { + optional uint32 fantasy_period = 1 [default = 4294967295]; + optional uint32 timestamp_start = 2; + optional uint32 timestamp_end = 3; + repeated .CMsgDOTAFantasyCardLineup.League leagues = 4; + } + + repeated .CMsgDOTAFantasyCardLineup.Period periods = 1; +} + +message CMsgDOTAFantasyCardList { + message CardBonus { + optional uint32 bonus_stat = 1; + optional uint32 bonus_value = 2; + } + + message Card { + optional uint32 player_account_id = 1; + optional string player_name = 2; + optional uint32 team_id = 3; + optional string team_name = 4; + optional uint32 role = 5; + repeated .CMsgDOTAFantasyCardList.CardBonus bonuses = 6; + optional uint64 item_id = 8; + } + + repeated .CMsgDOTAFantasyCardList.Card cards = 1; +} + +message CMsgChatToxicityToxicPlayerMatchesReport { + message IndividualRow { + optional uint32 player_account_id = 1; + optional uint32 num_matches_seen = 2; + optional uint32 num_messages = 3; + optional uint32 num_messages_toxic = 4; + optional uint64 first_match_seen = 5; + optional uint64 last_match_seen = 6; + } + + repeated .CMsgChatToxicityToxicPlayerMatchesReport.IndividualRow rows = 1; +} + +message CMsgChatToxicityReport { + optional uint32 num_matches_seen = 1; + optional uint32 num_messages = 2; + optional uint32 num_messages_ml_thinks_toxic = 4; + optional string status = 5; + optional uint32 result = 6; + optional string message = 7; +} + +message CMsgGetTeamAuditInformation { + message Action { + optional uint32 registration_period = 1; + optional uint32 account_id = 2; + optional uint32 action = 3; + optional uint32 timestamp = 4; + optional string player_name = 5; + optional string player_real_name = 6; + } + + optional uint32 team_id = 1; + optional string team_name = 2; + repeated .CMsgGetTeamAuditInformation.Action actions = 3; + optional uint32 last_updated = 4; +} + +message CMsgDOTADPCMatch { + optional .CMsgDOTAMatch match = 1; + optional .CDOTAMatchMetadata metadata = 2; +} diff --git a/Protobufs/dota2/dota_hud_types.proto b/Protobufs/dota2/dota_hud_types.proto new file mode 100644 index 0000000..6b9ff69 --- /dev/null +++ b/Protobufs/dota2/dota_hud_types.proto @@ -0,0 +1,33 @@ +import "google/protobuf/descriptor.proto"; + +extend .google.protobuf.EnumValueOptions { + optional string hud_localize_token = 51501; +} + +enum EHeroSelectionText { + k_EHeroSelectionText_Invalid = -1; + k_EHeroSelectionText_None = 0; + k_EHeroSelectionText_ChooseHero = 1 [(hud_localize_token) = "#DOTA_Hero_Selection_ChooseHero"]; + k_EHeroSelectionText_AllDraft_Planning_YouFirst = 2 [(hud_localize_token) = "#DOTA_Hero_Selection_AllDraft_Planning_YouFirst"]; + k_EHeroSelectionText_AllDraft_Planning_TheyFirst = 3 [(hud_localize_token) = "#DOTA_Hero_Selection_AllDraft_Planning_TheyFirst"]; + k_EHeroSelectionText_AllDraft_Banning = 4 [(hud_localize_token) = "#DOTA_Hero_Selection_AllPick_Banning_Nominate"]; + k_EHeroSelectionText_AllDraft_Ban_Waiting = 5 [(hud_localize_token) = "#DOTA_Hero_Selection_AllPick_Banning_Nominated"]; + k_EHeroSelectionText_AllDraft_PickTwo = 6 [(hud_localize_token) = "#DOTA_Hero_Selection_AllPick_PickPhase_PickTwo"]; + k_EHeroSelectionText_AllDraft_PickOneMore = 7 [(hud_localize_token) = "#DOTA_Hero_Selection_AllPick_PickPhase_PickOneMore"]; + k_EHeroSelectionText_AllDraft_PickOne = 8 [(hud_localize_token) = "#DOTA_Hero_Selection_AllPick_PickPhase_PickOne"]; + k_EHeroSelectionText_AllDraft_WaitingRadiant = 9 [(hud_localize_token) = "#DOTA_Hero_Selection_AllPick_PickPhase_WaitingRadiant"]; + k_EHeroSelectionText_AllDraft_WaitingDire = 10 [(hud_localize_token) = "#DOTA_Hero_Selection_AllPick_PickPhase_WaitingDire"]; + k_EHeroSelectionText_AllDraft_TeammateRandomed = 11 [(hud_localize_token) = "#DOTA_Hero_Selection_AllDraft_TeammateRandomed_Panorama"]; + k_EHeroSelectionText_AllDraft_YouPicking_LosingGold = 12 [(hud_localize_token) = "#DOTA_Hero_Selection_AllDraft_YouPicking_LosingGold"]; + k_EHeroSelectionText_AllDraft_TheyPicking_LosingGold = 13 [(hud_localize_token) = "#DOTA_Hero_Selection_AllDraft_TheyPicking_LosingGold"]; + k_EHeroSelectionText_CaptainsMode_ChooseCaptain = 14 [(hud_localize_token) = "#DOTA_Hero_Selection_CaptainsMode_ChooseCaptain"]; + k_EHeroSelectionText_CaptainsMode_WaitingForChooseCaptain = 15 [(hud_localize_token) = "#DOTA_Hero_Selection_CaptainsMode_WaitingForChooseCaptain"]; + k_EHeroSelectionText_CaptainsMode_YouSelect = 16 [(hud_localize_token) = "#DOTA_Hero_Selection_CaptainsMode_YouSelect"]; + k_EHeroSelectionText_CaptainsMode_TheySelect = 17 [(hud_localize_token) = "#DOTA_Hero_Selection_CaptainsMode_TheySelect"]; + k_EHeroSelectionText_CaptainsMode_YouBan = 18 [(hud_localize_token) = "#DOTA_Hero_Selection_CaptainsMode_YouBan"]; + k_EHeroSelectionText_CaptainsMode_TheyBan = 19 [(hud_localize_token) = "#DOTA_Hero_Selection_CaptainsMode_TheyBan"]; + k_EHeroSelectionText_RandomDraft_HeroReview = 20 [(hud_localize_token) = "#DOTA_Hero_Selection_RandomDraft_HeroReview"]; + k_EHeroSelectionText_RandomDraft_RoundDisplay = 21 [(hud_localize_token) = "#DOTA_Hero_Selection_AllDraft_RoundDisplay"]; + k_EHeroSelectionText_RandomDraft_Waiting = 22 [(hud_localize_token) = "#DOTA_Hero_Selection_AllDraft_Waiting"]; + k_EHeroSelectionText_EventGame_BanPhase = 23 [(hud_localize_token) = "#DOTA_Hero_Selection_EventGame_BanPhase"]; +} diff --git a/Protobufs/dota2/dota_match_metadata.proto b/Protobufs/dota2/dota_match_metadata.proto new file mode 100644 index 0000000..fc5703b --- /dev/null +++ b/Protobufs/dota2/dota_match_metadata.proto @@ -0,0 +1,353 @@ +import "base_gcmessages.proto"; +import "dota_gcmessages_common_match_management.proto"; +import "dota_gcmessages_common_lobby.proto"; +import "dota_gcmessages_common_overworld.proto"; +import "dota_gcmessages_common.proto"; +import "dota_shared_enums.proto"; +import "gcsdk_gcmessages.proto"; + +message CDOTAMatchMetadataFile { + required int32 version = 1; + required uint64 match_id = 2; + optional .CDOTAMatchMetadata metadata = 3; + optional bytes private_metadata = 5; +} + +message CDOTAMatchMetadata { + message EconItem { + optional uint32 def_index = 1; + optional uint32 quality = 2 [default = 4]; + repeated .CSOEconItemAttribute attribute = 3; + optional uint32 style = 4 [default = 0]; + repeated .CSOEconItemEquipped equipped_state = 5; + } + + message Team { + message PlayerKill { + optional uint32 victim_slot = 1; + optional uint32 count = 2; + } + + message ItemPurchase { + optional int32 item_id = 1 [default = -1]; + optional int32 purchase_time = 2; + } + + message InventorySnapshot { + repeated int32 item_id = 1; + optional int32 game_time = 2; + optional uint32 kills = 3; + optional uint32 deaths = 4; + optional uint32 assists = 5; + optional uint32 level = 6; + repeated int32 backpack_item_id = 7; + optional int32 neutral_item_id = 8 [default = -1]; + } + + message AutoStyleCriteria { + optional uint32 name_token = 1; + optional float value = 2; + } + + message StrangeGemProgress { + optional uint32 kill_eater_type = 1; + optional uint32 gem_item_def_index = 2; + optional int32 required_hero_id = 3; + optional uint32 starting_value = 4; + optional uint32 ending_value = 5; + optional uint32 owner_item_def_index = 6; + optional uint64 owner_item_id = 7; + } + + message VictoryPrediction { + optional uint64 item_id = 1; + optional uint32 item_def_index = 2; + optional uint32 starting_value = 3; + optional bool is_victory = 4; + } + + message SubChallenge { + optional uint32 slot_id = 1; + optional uint32 start_value = 2; + optional uint32 end_value = 3; + optional bool completed = 4; + } + + message CavernChallengeResult { + optional uint32 completed_path_id = 1 [default = 255]; + optional uint32 claimed_room_id = 2 [default = 255]; + } + + message ActionGrant { + optional uint32 action_id = 1; + optional uint32 quantity = 2; + optional uint32 audit = 3; + optional uint64 audit_data = 5; + } + + message CandyGrant { + optional uint32 points = 1; + optional uint32 reason = 2; + } + + message PeriodicResourceData { + optional uint32 periodic_resource_id = 1; + optional uint32 remaining = 2; + optional uint32 max = 3; + } + + message EventData { + optional uint32 event_id = 1; + optional uint32 event_points = 2; + optional uint32 challenge_instance_id = 3; + optional uint32 challenge_quest_id = 4; + optional uint32 challenge_quest_challenge_id = 5; + optional bool challenge_completed = 6; + optional uint32 challenge_rank_completed = 7; + optional uint32 challenge_rank_previously_completed = 8; + optional bool event_owned = 9; + repeated .CDOTAMatchMetadata.Team.SubChallenge sub_challenges_with_progress = 10; + optional uint32 wager_winnings = 11; + optional bool cavern_challenge_active = 12; + optional uint32 cavern_challenge_winnings = 13; + optional uint32 amount_wagered = 14; + optional uint32 periodic_point_adjustments = 16; + repeated .CDOTAMatchMetadata.Team.CavernChallengeResult cavern_challenge_map_results = 17; + optional uint32 cavern_challenge_plus_shard_winnings = 18; + repeated .CDOTAMatchMetadata.Team.ActionGrant actions_granted = 19; + optional uint32 cavern_crawl_map_variant = 20 [default = 255]; + optional uint32 team_wager_bonus_pct = 21; + optional uint32 wager_streak_pct = 22; + repeated .CDOTAMatchMetadata.Team.CandyGrant candy_points_granted = 23; + optional uint32 active_season_id = 24; + optional bool cavern_crawl_half_credit = 25; + repeated .CDOTAMatchMetadata.Team.PeriodicResourceData periodic_resources = 26; + repeated .CExtraMsgBlock extra_event_messages = 27; + } + + message FeaturedGamemodeProgress { + optional uint32 start_value = 1; + optional uint32 end_value = 2; + optional uint32 max_value = 3; + } + + message Player { + message ContractProgress { + optional uint32 guild_id = 1; + optional uint32 event_id = 2; + optional uint32 challenge_instance_id = 3; + optional uint32 challenge_parameter = 4; + optional uint32 contract_stars = 5; + optional uint32 contract_slot = 6; + optional bool completed = 7; + } + + message OverworldRewards { + optional uint32 overworld_id = 1; + optional .CMsgOverworldTokenQuantity tokens = 2; + } + + repeated int32 ability_upgrades = 2; + optional uint32 player_slot = 3; + repeated .CDOTAMatchMetadata.Team.PlayerKill kills = 5; + repeated .CDOTAMatchMetadata.Team.ItemPurchase items = 6; + optional uint32 avg_kills_x16 = 7; + optional uint32 avg_deaths_x16 = 8; + optional uint32 avg_assists_x16 = 9; + optional uint32 avg_gpm_x16 = 10; + optional uint32 avg_xpm_x16 = 11; + optional uint32 best_kills_x16 = 12; + optional uint32 best_assists_x16 = 13; + optional uint32 best_gpm_x16 = 14; + optional uint32 best_xpm_x16 = 15; + optional uint32 win_streak = 16; + optional uint32 best_win_streak = 17; + optional float fight_score = 18; + optional float farm_score = 19; + optional float support_score = 20; + optional float push_score = 21; + repeated uint32 level_up_times = 22; + repeated float graph_net_worth = 23; + repeated .CDOTAMatchMetadata.Team.InventorySnapshot inventory_snapshot = 24; + optional bool avg_stats_calibrated = 25; + repeated .CDOTAMatchMetadata.Team.AutoStyleCriteria auto_style_criteria = 26; + repeated .CDOTAMatchMetadata.Team.EventData event_data = 29; + repeated .CDOTAMatchMetadata.Team.StrangeGemProgress strange_gem_progress = 30; + optional uint32 hero_xp = 31; + optional uint32 camps_stacked = 32; + repeated .CDOTAMatchMetadata.Team.VictoryPrediction victory_prediction = 33; + optional uint32 lane_selection_flags = 34; + optional uint32 rampages = 35; + optional uint32 triple_kills = 36; + optional uint32 aegis_snatched = 37; + optional uint32 rapiers_purchased = 38; + optional uint32 couriers_killed = 39; + optional uint32 net_worth_rank = 40; + optional uint32 support_gold_spent = 41; + optional uint32 observer_wards_placed = 42; + optional uint32 sentry_wards_placed = 43; + optional uint32 wards_dewarded = 44; + optional float stun_duration = 45; + optional .EDOTAMMRBoostType rank_mmr_boost_type = 46 [default = k_EDOTAMMRBoostType_None]; + repeated .CDOTAMatchMetadata.Team.Player.ContractProgress contract_progress = 48; + repeated uint32 guild_ids = 49; + repeated float graph_hero_damage = 50; + optional .DOTA_GC_TEAM team_number = 51 [default = DOTA_GC_TEAM_GOOD_GUYS]; + optional uint32 team_slot = 52; + optional .CDOTAMatchMetadata.Team.FeaturedGamemodeProgress featured_gamemode_progress = 53; + optional uint32 featured_hero_sticker_index = 54; + optional uint32 featured_hero_sticker_quality = 55; + repeated .CDOTAMatchMetadata.EconItem equipped_econ_items = 56; + optional int32 game_player_id = 57 [default = -1]; + repeated .CMsgTrackedStat player_tracked_stats = 58; + optional .CDOTAMatchMetadata.Team.Player.OverworldRewards overworld_rewards = 59; + } + + optional uint32 dota_team = 1; + repeated .CDOTAMatchMetadata.Team.Player players = 2; + repeated float graph_experience = 3; + repeated float graph_gold_earned = 4; + repeated float graph_net_worth = 5; + optional bool cm_first_pick = 6; + optional int32 cm_captain_player_id = 7 [default = -1]; + optional uint32 cm_penalty = 10; + repeated .CMsgTrackedStat team_tracked_stats = 11; + } + + message GuildChallengeProgress { + message IndividualProgress { + optional uint32 progress = 2; + optional uint32 player_slot = 3; + } + + optional uint32 guild_id = 1; + optional .EEvent event_id = 2 [default = EVENT_ID_NONE]; + optional uint32 challenge_instance_id = 3; + optional uint32 challenge_parameter = 4; + optional uint32 challenge_timestamp = 5; + optional uint32 challenge_progress_at_start = 6; + optional uint32 challenge_progress_accumulated = 7; + repeated .CDOTAMatchMetadata.GuildChallengeProgress.IndividualProgress individual_progress = 8; + } + + message Tip { + optional uint32 source_player_slot = 1; + optional uint32 target_player_slot = 2; + optional uint32 tip_amount = 3; + optional .EEvent event_id = 4 [default = EVENT_ID_NONE]; + } + + repeated .CDOTAMatchMetadata.Team teams = 1; + optional fixed64 lobby_id = 3; + optional fixed64 report_until_time = 4; + optional bytes event_game_custom_table = 5; + optional uint32 primary_event_id = 6; + optional .CMsgMatchMatchmakingStats matchmaking_stats = 8; + optional .CMvpData mvp_data = 9; + repeated .CDOTAMatchMetadata.GuildChallengeProgress guild_challenge_progress = 10; + optional bytes custom_post_game_table = 11; + repeated .CDOTAMatchMetadata.Tip match_tips = 12; + repeated .CMsgTrackedStat match_tracked_stats = 13; +} + +message CDOTAMatchPrivateMetadata { + message StringName { + optional uint32 id = 1; + optional string name = 2; + } + + message Team { + message Player { + message CombatSegment { + message DamageByAbility { + message ByHeroTarget { + optional int32 hero_id = 1; + optional uint32 damage = 2; + } + + optional uint32 source_unit_index = 3; + optional int32 ability_id = 1 [default = -1]; + repeated .CDOTAMatchPrivateMetadata.Team.Player.CombatSegment.DamageByAbility.ByHeroTarget by_hero_targets = 2; + } + + message HealingByAbility { + message ByHeroTarget { + optional int32 hero_id = 1; + optional uint32 healing = 2; + } + + optional uint32 source_unit_index = 3; + optional int32 ability_id = 1 [default = -1]; + repeated .CDOTAMatchPrivateMetadata.Team.Player.CombatSegment.HealingByAbility.ByHeroTarget by_hero_targets = 2; + } + + optional int32 game_time = 1; + repeated .CDOTAMatchPrivateMetadata.Team.Player.CombatSegment.DamageByAbility damage_by_ability = 2; + repeated .CDOTAMatchPrivateMetadata.Team.Player.CombatSegment.HealingByAbility healing_by_ability = 3; + } + + message BuffRecord { + message ByHeroTarget { + optional int32 hero_id = 1; + optional float elapsed_duration = 2; + optional bool is_hidden = 3; + } + + optional int32 buff_ability_id = 1 [default = -1]; + optional string buff_modifier_name = 3; + repeated .CDOTAMatchPrivateMetadata.Team.Player.BuffRecord.ByHeroTarget by_hero_targets = 2; + } + + message GoldReceived { + optional uint32 creep = 1; + optional uint32 heroes = 2; + optional uint32 bounty_runes = 3; + optional uint32 passive = 4; + optional uint32 buildings = 5; + optional uint32 abilities = 6; + optional uint32 wards = 7; + optional uint32 other = 8; + } + + message XPReceived { + optional uint32 creep = 1; + optional uint32 heroes = 2; + optional uint32 roshan = 3; + optional uint32 tome_of_knowledge = 4; + optional uint32 outpost = 5; + optional uint32 other = 6; + optional uint32 abilities = 7; + } + + optional uint32 player_slot = 2; + optional bytes position_stream = 3; + repeated .CDOTAMatchPrivateMetadata.Team.Player.CombatSegment combat_segments = 4; + repeated string damage_unit_names = 5; + repeated .CDOTAMatchPrivateMetadata.Team.Player.BuffRecord buff_records = 6; + repeated float graph_kills = 7; + repeated float graph_deaths = 8; + repeated float graph_assists = 9; + repeated float graph_lasthits = 10; + repeated float graph_denies = 11; + optional .CDOTAMatchPrivateMetadata.Team.Player.GoldReceived gold_received = 12; + optional .CDOTAMatchPrivateMetadata.Team.Player.XPReceived xp_received = 13; + optional .DOTA_GC_TEAM team_number = 14 [default = DOTA_GC_TEAM_GOOD_GUYS]; + optional uint32 team_slot = 15; + } + + message Building { + optional string unit_name = 1; + optional uint32 position_quant_x = 2; + optional uint32 position_quant_y = 3; + optional float death_time = 4; + } + + optional uint32 dota_team = 1; + repeated .CDOTAMatchPrivateMetadata.Team.Player players = 2; + repeated .CDOTAMatchPrivateMetadata.Team.Building buildings = 3; + } + + repeated .CDOTAMatchPrivateMetadata.Team teams = 1; + repeated float graph_win_probability = 2; + repeated .CDOTAMatchPrivateMetadata.StringName string_names = 3; +} diff --git a/Protobufs/dota2/dota_messages_mlbot.proto b/Protobufs/dota2/dota_messages_mlbot.proto new file mode 100644 index 0000000..8d42250 --- /dev/null +++ b/Protobufs/dota2/dota_messages_mlbot.proto @@ -0,0 +1,62 @@ +import "dota_gcmessages_common_bot_script.proto"; +import "dota_commonmessages.proto"; +import "dota_shared_enums.proto"; + +enum MLBot_MessageId { + mlbot_MatchMetadata = 1; + mlbot_TickBoundary = 2; + mlbot_TeamState_Radiant = 3; + mlbot_TeamState_Radiant_Delta = 4; + mlbot_TeamState_Dire = 5; + mlbot_TeamState_Dire_Delta = 6; + mlbot_PlayerCommand = 7; + mlbot_PlayerOrder = 8; +} + +message CMsgMLBotMatchMetadata { + message Player { + optional int32 player_id = 1 [default = -1]; + optional int32 team_id = 2; + optional int32 hero_id = 3; + optional int32 rank = 4; + } + + optional uint64 match_id = 1; + optional uint64 lobby_id = 2; + optional int32 lobby_type = 3 [default = -1]; + optional uint32 game_mode = 4; + repeated .CMsgMLBotMatchMetadata.Player players = 5; +} + +message CMsgMLBotTickBoundary { + optional uint32 tick_number = 1; +} + +message CMsgMLBot_PlayerOrder { + optional int32 player_id = 1 [default = -1]; + optional int32 team_id = 2; + optional int32 order_type = 3; + repeated uint32 selected_unit_handles = 4; + optional int32 target_index = 5 [default = -1]; + optional uint32 target_handle = 6 [default = 4294967295]; + optional int32 ability_index = 7 [default = -1]; + optional uint32 ability_handle = 8 [default = 4294967295]; + optional float pos_x = 9; + optional float pos_y = 10; + optional float pos_z = 11; + optional bool queue = 12; +} + +message CMsgMLBot_TeamInference { + optional int32 team_id = 1; + repeated int32 bot_player_ids = 2; + optional .CMsgBotWorldState world_state = 3; +} + +message CMsgMLBot_TeamInferenceResponse { + repeated .CMsgMLBot_PlayerOrder orders = 1; +} + +message CMsgMLBot_TeamInferenceList { + repeated .CMsgMLBot_TeamInference messages = 1; +} diff --git a/Protobufs/dota2/dota_modifiers.proto b/Protobufs/dota2/dota_modifiers.proto new file mode 100644 index 0000000..b866659 --- /dev/null +++ b/Protobufs/dota2/dota_modifiers.proto @@ -0,0 +1,53 @@ +import "networkbasetypes.proto"; + +enum DOTA_MODIFIER_ENTRY_TYPE { + DOTA_MODIFIER_ENTRY_TYPE_ACTIVE = 1; + DOTA_MODIFIER_ENTRY_TYPE_REMOVED = 2; +} + +message CDOTAModifierBuffTableEntry { + required .DOTA_MODIFIER_ENTRY_TYPE entry_type = 1 [default = DOTA_MODIFIER_ENTRY_TYPE_ACTIVE]; + required uint32 parent = 2 [default = 16777215]; + required int32 index = 3; + required int32 serial_num = 4; + optional int32 modifier_class = 5; + optional int32 ability_level = 6; + optional int32 stack_count = 7; + optional float creation_time = 8; + optional float duration = 9 [default = -1]; + optional uint32 caster = 10 [default = 16777215]; + optional uint32 ability = 11 [default = 16777215]; + optional int32 armor = 12; + optional float fade_time = 13; + optional bool subtle = 14; + optional float channel_time = 15; + optional .CMsgVector v_start = 16; + optional .CMsgVector v_end = 17; + optional string portal_loop_appear = 18; + optional string portal_loop_disappear = 19; + optional string hero_loop_appear = 20; + optional string hero_loop_disappear = 21; + optional int32 movement_speed = 22; + optional bool aura = 23; + optional int32 activity = 24; + optional int32 damage = 25; + optional int32 range = 26; + optional int32 dd_modifier_index = 27; + optional int32 dd_ability_id = 28 [default = -1]; + optional string illusion_label = 29; + optional bool active = 30; + optional string player_ids = 31; + optional string lua_name = 32; + optional int32 attack_speed = 33; + optional uint32 aura_owner = 34 [default = 16777215]; + optional int32 bonus_all_stats = 35; + optional int32 bonus_health = 36; + optional int32 bonus_mana = 37; + optional uint32 custom_entity = 38 [default = 16777215]; + optional bool aura_within_range = 39; +} + +message CDOTALuaModifierEntry { + required int32 modifier_type = 1; + required string modifier_filename = 2; +} diff --git a/Protobufs/dota2/dota_scenariomessages.proto b/Protobufs/dota2/dota_scenariomessages.proto new file mode 100644 index 0000000..26bb177 --- /dev/null +++ b/Protobufs/dota2/dota_scenariomessages.proto @@ -0,0 +1,227 @@ +import "dota_shared_enums.proto"; + +message CScenario_Position { + optional float x = 1; + optional float y = 2; +} + +message CScenarioGame_RoshanSpawner { + optional int32 kill_count = 1; + optional int32 state = 2; + optional float cooldown = 3; + optional int32 killer_team = 4; +} + +message CScenarioEnt_Courier { + optional int32 team_number = 1; + optional int32 owner_player_id = 2 [default = -1]; + optional float cooldown = 3 [default = -1]; +} + +message CScenarioEnt_NPC { + optional .CScenario_Position position = 1; + optional string unit_name = 2; + optional int32 team_number = 3; + optional float health_frac = 4 [default = 1]; + optional string owning_camp = 10; + optional .CScenario_Position owning_camp_position = 11; + optional string invade_goal = 20; +} + +message CScenarioEnt_SpiritBear { + optional int32 owner_id = 1 [default = -1]; + optional int32 team_id = 2; +} + +message CScenarioEnt_DroppedItem { + optional .CScenario_Position position = 1; +} + +message CMsgDotaScenario { + message EntityRef { + optional int32 player_id = 1 [default = -1]; + optional int32 neutral_stash_id = 2 [default = -1]; + optional int32 entity_idx = 3 [default = -1]; + optional bool roshan = 4 [default = false]; + optional string ability_name = 10; + } + + message Game { + optional uint64 match_id = 1; + optional int32 game_mode = 2; + optional float clock_time = 3; + optional float internal_time = 4; + optional .CScenarioGame_RoshanSpawner roshan = 5; + } + + message TeamNeutralItem { + optional string name = 1; + optional bool consumed = 2; + optional int32 tier = 3; + } + + message Team { + optional int32 team_number = 1; + repeated .CMsgDotaScenario.TeamNeutralItem neutral_items = 2; + optional int32 hero_kills = 3; + optional int32 tower_kills = 4; + optional int32 barracks_kills = 5; + optional float glyph_cooldown = 6; + optional float radar_cooldown = 7; + } + + message HeroHeroInt { + optional int32 player_id = 1 [default = -1]; + optional int32 value = 2; + } + + message HeroHeroFloat { + optional int32 player_id = 1 [default = -1]; + optional float value = 2; + } + + message DamageStatsByType { + optional int32 damage_type = 1; + optional int32 received_pre_reduction = 2; + optional int32 received_post_reduction = 3; + optional int32 outgoing_pre_reduction = 4; + optional int32 outgoing_post_reduction = 5; + } + + message HeroAbility { + optional string name = 1; + optional int32 level = 2; + } + + message Hero { + optional fixed64 steam_id = 1; + optional int32 player_id = 2 [default = -1]; + optional int32 team_id = 3; + optional string hero = 4; + optional int32 total_xp = 5; + optional int32 bkb_charges_used = 6; + optional int32 aeon_charges_used = 7; + optional int32 reliable_gold = 8; + optional int32 unreliable_gold = 9; + optional int32 total_earned_gold = 10; + optional int32 shared_gold = 11; + optional int32 hero_kill_gold = 12; + optional int32 creep_kill_gold = 13; + optional int32 neutral_kill_gold = 14; + optional int32 courier_gold = 15; + optional int32 bounty_gold = 16; + optional int32 roshan_gold = 17; + optional int32 building_gold = 18; + optional int32 other_gold = 19; + optional int32 income_gold = 26; + optional int32 ward_kill_gold = 27; + optional int32 ability_gold = 28; + optional int32 denies = 29; + optional int32 last_hits = 30; + optional int32 last_hit_streak = 31; + optional int32 last_hit_multikill = 32; + optional int32 nearby_creep_death_count = 33; + optional int32 claimed_deny_count = 34; + optional int32 claimed_miss_count = 35; + optional int32 miss_count = 36; + optional float buyback_cooldown_time = 40; + optional float buyback_gold_limit_time = 41; + optional float stun_duration = 44; + optional float healing = 45; + optional int32 tower_kills = 46; + optional int32 roshan_kills = 47; + optional int32 observer_wards_placed = 48; + optional int32 sentry_wards_placed = 49; + optional int32 creeps_stacked = 50; + optional int32 camps_stacked = 51; + optional int32 rune_pickups = 52; + optional int32 gold_spent_on_support = 53; + optional int32 hero_damage = 54; + optional int32 wards_purchased = 55; + optional int32 wards_destroyed = 56; + optional int32 gold_spent_on_consumables = 58; + optional int32 gold_spent_on_items = 59; + optional int32 gold_spent_on_buybacks = 60; + optional int32 gold_lost_to_death = 61; + optional int32 kills = 62; + optional int32 assists = 63; + optional int32 deaths = 64; + optional int32 kill_streak = 65; + optional int32 respawn_seconds = 68 [default = -1]; + optional int32 last_buyback_time = 69; + optional bool first_blood_claimed = 71; + optional bool first_blood_given = 72; + optional int32 bounty_runes = 73; + optional int32 outposts_captured = 74; + optional .CScenario_Position position = 75; + repeated .CMsgDotaScenario.HeroHeroInt enemy_kills = 150; + repeated .CMsgDotaScenario.DamageStatsByType damage_stats = 151; + repeated .CMsgDotaScenario.HeroAbility abilities = 152; + optional uint32 hero_facet = 153; + } + + message Stock { + optional string name = 1; + optional int32 team_number = 2 [default = -1]; + optional int32 player_id = 3 [default = -1]; + optional int32 current_stock = 4; + optional float cooldown = 5; + optional int32 bonus_stock = 6; + } + + message Building { + optional string entity_name = 1; + optional string entity_class = 2; + optional int32 team_id = 3; + optional bool is_destroyed = 4; + optional float health_frac = 5 [default = 1]; + } + + message Entity { + optional .CScenarioEnt_Courier courier = 1; + optional .CScenarioEnt_NPC npc = 2; + optional .CScenarioEnt_SpiritBear spirit_bear = 3; + optional .CScenarioEnt_DroppedItem dropped_item = 4; + } + + message Item { + optional string name = 1; + optional .CMsgDotaScenario.EntityRef location = 2; + optional int32 owner_id = 3 [default = -1]; + optional int32 item_slot = 4; + optional int32 neutral_drop_team = 5; + optional int32 charges = 6; + optional int32 secondary_charges = 7; + optional float lifetime = 8 [default = -1]; + optional int32 stored_rune_type = 9 [default = -1]; + } + + message Modifier { + optional string name = 1; + optional .CMsgDotaScenario.EntityRef parent = 2; + optional .CMsgDotaScenario.EntityRef caster = 3; + optional .CMsgDotaScenario.EntityRef ability = 4; + optional float duration = 5 [default = -1]; + optional float lifetime_remaining = 6 [default = 0]; + optional int32 stack_count = 7; + optional bool create_even_if_existing = 8; + optional bool create_without_caster = 9; + optional bool create_without_ability = 10; + optional int32 moonshard_consumed_bonus = 100; + optional int32 moonshard_consumed_bonus_night_vision = 101; + optional int32 wardtruesight_range = 110; + optional int32 ultimate_scepter_consumed_alchemist_bonus_all_stats = 120; + optional int32 ultimate_scepter_consumed_alchemist_bonus_health = 121; + optional int32 ultimate_scepter_consumed_alchemist_bonus_mana = 122; + } + + optional uint64 lobby_id = 1; + optional .CMsgDotaScenario.Game game = 2; + repeated .CMsgDotaScenario.Team teams = 3; + repeated .CMsgDotaScenario.Hero heroes = 4; + repeated .CMsgDotaScenario.Stock stock = 5; + repeated .CMsgDotaScenario.Building buildings = 6; + repeated .CMsgDotaScenario.Entity entities = 7; + repeated .CMsgDotaScenario.Item items = 8; + repeated .CMsgDotaScenario.Modifier modifiers = 9; +} diff --git a/Protobufs/dota2/dota_shared_enums.proto b/Protobufs/dota2/dota_shared_enums.proto new file mode 100644 index 0000000..1d8d927 --- /dev/null +++ b/Protobufs/dota2/dota_shared_enums.proto @@ -0,0 +1,835 @@ +enum DOTA_GameMode { + DOTA_GAMEMODE_NONE = 0; + DOTA_GAMEMODE_AP = 1; + DOTA_GAMEMODE_CM = 2; + DOTA_GAMEMODE_RD = 3; + DOTA_GAMEMODE_SD = 4; + DOTA_GAMEMODE_AR = 5; + DOTA_GAMEMODE_INTRO = 6; + DOTA_GAMEMODE_HW = 7; + DOTA_GAMEMODE_REVERSE_CM = 8; + DOTA_GAMEMODE_XMAS = 9; + DOTA_GAMEMODE_TUTORIAL = 10; + DOTA_GAMEMODE_MO = 11; + DOTA_GAMEMODE_LP = 12; + DOTA_GAMEMODE_POOL1 = 13; + DOTA_GAMEMODE_FH = 14; + DOTA_GAMEMODE_CUSTOM = 15; + DOTA_GAMEMODE_CD = 16; + DOTA_GAMEMODE_BD = 17; + DOTA_GAMEMODE_ABILITY_DRAFT = 18; + DOTA_GAMEMODE_EVENT = 19; + DOTA_GAMEMODE_ARDM = 20; + DOTA_GAMEMODE_1V1MID = 21; + DOTA_GAMEMODE_ALL_DRAFT = 22; + DOTA_GAMEMODE_TURBO = 23; + DOTA_GAMEMODE_MUTATION = 24; + DOTA_GAMEMODE_COACHES_CHALLENGE = 25; +} + +enum DOTA_GameState { + DOTA_GAMERULES_STATE_INIT = 0; + DOTA_GAMERULES_STATE_WAIT_FOR_PLAYERS_TO_LOAD = 1; + DOTA_GAMERULES_STATE_HERO_SELECTION = 2; + DOTA_GAMERULES_STATE_STRATEGY_TIME = 3; + DOTA_GAMERULES_STATE_PRE_GAME = 4; + DOTA_GAMERULES_STATE_GAME_IN_PROGRESS = 5; + DOTA_GAMERULES_STATE_POST_GAME = 6; + DOTA_GAMERULES_STATE_DISCONNECT = 7; + DOTA_GAMERULES_STATE_TEAM_SHOWCASE = 8; + DOTA_GAMERULES_STATE_CUSTOM_GAME_SETUP = 9; + DOTA_GAMERULES_STATE_WAIT_FOR_MAP_TO_LOAD = 10; + DOTA_GAMERULES_STATE_SCENARIO_SETUP = 11; + DOTA_GAMERULES_STATE_PLAYER_DRAFT = 12; + DOTA_GAMERULES_STATE_LAST = 13; +} + +enum DOTA_GC_TEAM { + DOTA_GC_TEAM_GOOD_GUYS = 0; + DOTA_GC_TEAM_BAD_GUYS = 1; + DOTA_GC_TEAM_BROADCASTER = 2; + DOTA_GC_TEAM_SPECTATOR = 3; + DOTA_GC_TEAM_PLAYER_POOL = 4; + DOTA_GC_TEAM_NOTEAM = 5; + DOTA_GC_TEAM_CUSTOM_1 = 6; + DOTA_GC_TEAM_CUSTOM_2 = 7; + DOTA_GC_TEAM_CUSTOM_3 = 8; + DOTA_GC_TEAM_CUSTOM_4 = 9; + DOTA_GC_TEAM_CUSTOM_5 = 10; + DOTA_GC_TEAM_CUSTOM_6 = 11; + DOTA_GC_TEAM_CUSTOM_7 = 12; + DOTA_GC_TEAM_CUSTOM_8 = 13; + DOTA_GC_TEAM_NEUTRALS = 14; +} + +enum EEvent { + EVENT_ID_NONE = 0; + EVENT_ID_DIRETIDE = 1; + EVENT_ID_SPRING_FESTIVAL = 2; + EVENT_ID_FROSTIVUS_2013 = 3; + EVENT_ID_COMPENDIUM_2014 = 4; + EVENT_ID_NEXON_PC_BANG = 5; + EVENT_ID_PWRD_DAC_2015 = 6; + EVENT_ID_NEW_BLOOM_2015 = 7; + EVENT_ID_INTERNATIONAL_2015 = 8; + EVENT_ID_FALL_MAJOR_2015 = 9; + EVENT_ID_ORACLE_PA = 10; + EVENT_ID_NEW_BLOOM_2015_PREBEAST = 11; + EVENT_ID_FROSTIVUS = 12; + EVENT_ID_WINTER_MAJOR_2016 = 13; + EVENT_ID_INTERNATIONAL_2016 = 14; + EVENT_ID_FALL_MAJOR_2016 = 15; + EVENT_ID_WINTER_MAJOR_2017 = 16; + EVENT_ID_NEW_BLOOM_2017 = 17; + EVENT_ID_INTERNATIONAL_2017 = 18; + EVENT_ID_PLUS_SUBSCRIPTION = 19; + EVENT_ID_SINGLES_DAY_2017 = 20; + EVENT_ID_FROSTIVUS_2017 = 21; + EVENT_ID_INTERNATIONAL_2018 = 22; + EVENT_ID_FROSTIVUS_2018 = 23; + EVENT_ID_NEW_BLOOM_2019 = 24; + EVENT_ID_INTERNATIONAL_2019 = 25; + EVENT_ID_NEW_PLAYER_EXPERIENCE = 26; + EVENT_ID_FROSTIVUS_2019 = 27; + EVENT_ID_NEW_BLOOM_2020 = 28; + EVENT_ID_INTERNATIONAL_2020 = 29; + EVENT_ID_TEAM_FANDOM = 30; + EVENT_ID_DIRETIDE_2020 = 31; + EVENT_ID_SPRING_2021 = 32; + EVENT_ID_FALL_2021 = 33; + EVENT_ID_TEAM_FANDOM_FALL_2021 = 34; + EVENT_ID_TEAM_2021_2022_TOUR2 = 35; + EVENT_ID_INTERNATIONAL_2022 = 36; + EVENT_ID_TEAM_2021_2022_TOUR3 = 37; + EVENT_ID_TEAM_INTERNATIONAL_2022 = 38; + EVENT_ID_PERMANENT_GRANTS = 39; + EVENT_ID_MUERTA_RELEASE_SPRING2023 = 40; + EVENT_ID_TEAM_2023_TOUR1 = 41; + EVENT_ID_TEAM_2023_TOUR2 = 42; + EVENT_ID_TEAM_2023_TOUR3 = 43; + EVENT_ID_INTERNATIONAL_2023 = 45; + EVENT_ID_10TH_ANNIVERSARY = 46; + EVENT_ID_CROWNFALL = 47; + EVENT_ID_FROSTIVUS_2023 = 48; + EVENT_ID_INTERNATIONAL_2024 = 49; +} + +enum ERankType { + k_ERankType_Invalid = 0; + k_ERankType_Casual = 1; + k_ERankType_Ranked = 2; + k_ERankType_CasualLegacy = 3; + k_ERankType_RankedLegacy = 4; + k_ERankType_CasualGlicko = 5; + k_ERankType_RankedGlicko = 6; + k_ERankType_RankMax = 7; + k_ERankType_BehaviorPrivate = 100; + k_ERankType_BehaviorPublic = 101; + k_ERankType_Max = 102; +} + +enum DOTALeaverStatus_t { + DOTA_LEAVER_NONE = 0; + DOTA_LEAVER_DISCONNECTED = 1; + DOTA_LEAVER_DISCONNECTED_TOO_LONG = 2; + DOTA_LEAVER_ABANDONED = 3; + DOTA_LEAVER_AFK = 4; + DOTA_LEAVER_NEVER_CONNECTED = 5; + DOTA_LEAVER_NEVER_CONNECTED_TOO_LONG = 6; + DOTA_LEAVER_FAILED_TO_READY_UP = 7; + DOTA_LEAVER_DECLINED = 8; + DOTA_LEAVER_DECLINED_REQUEUE = 9; +} + +enum DOTAConnectionState_t { + DOTA_CONNECTION_STATE_UNKNOWN = 0; + DOTA_CONNECTION_STATE_NOT_YET_CONNECTED = 1; + DOTA_CONNECTION_STATE_CONNECTED = 2; + DOTA_CONNECTION_STATE_DISCONNECTED = 3; + DOTA_CONNECTION_STATE_ABANDONED = 4; + DOTA_CONNECTION_STATE_LOADING = 5; + DOTA_CONNECTION_STATE_FAILED = 6; +} + +enum Fantasy_Roles { + FANTASY_ROLE_UNDEFINED = 0; + FANTASY_ROLE_CORE = 1; + FANTASY_ROLE_SUPPORT = 2; + FANTASY_ROLE_OFFLANE = 3; + FANTASY_ROLE_MID = 4; +} + +enum Fantasy_Scoring { + FANTASY_SCORING_KILLS = 0; + FANTASY_SCORING_DEATHS = 1; + FANTASY_SCORING_CS = 2; + FANTASY_SCORING_GPM = 3; + FANTASY_SCORING_TOWER_KILLS = 4; + FANTASY_SCORING_ROSHAN_KILLS = 5; + FANTASY_SCORING_TEAMFIGHT_PARTICIPATION = 6; + FANTASY_SCORING_WARDS_PLANTED = 7; + FANTASY_SCORING_CAMPS_STACKED = 8; + FANTASY_SCORING_RUNES_GRABBED = 9; + FANTASY_SCORING_FIRST_BLOOD = 10; + FANTASY_SCORING_STUNS = 11; + FANTASY_SCORING_SMOKES_USED = 12; + FANTASY_SCORING_NEUTRAL_TOKENS_FOUND = 13; + FANTASY_SCORING_WATCHERS_TAKEN = 14; + FANTASY_SCORING_LOTUSES_GAINED = 15; + FANTASY_SCORING_TORMENTOR_KILLS = 16; + FANTASY_SCORING_COURIER_KILLS = 17; + FANTASY_SCORING_TYPES = 18; + FANTASY_SCORING_INVALID = 19; +} + +enum Fantasy_Team_Slots { + FANTASY_SLOT_NONE = 0; + FANTASY_SLOT_CORE = 1; + FANTASY_SLOT_SUPPORT = 2; + FANTASY_SLOT_ANY = 3; + FANTASY_SLOT_BENCH = 4; +} + +enum Fantasy_Selection_Mode { + FANTASY_SELECTION_INVALID = 0; + FANTASY_SELECTION_LOCKED = 1; + FANTASY_SELECTION_SHUFFLE = 2; + FANTASY_SELECTION_FREE_PICK = 3; + FANTASY_SELECTION_ENDED = 4; + FANTASY_SELECTION_PRE_SEASON = 5; + FANTASY_SELECTION_PRE_DRAFT = 6; + FANTASY_SELECTION_DRAFTING = 7; + FANTASY_SELECTION_REGULAR_SEASON = 8; + FANTASY_SELECTION_CARD_BASED = 9; +} + +enum Fantasy_Gem_Type { + FANTASY_GEM_TYPE_RUBY = 0; + FANTASY_GEM_TYPE_SAPPHIRE = 1; + FANTASY_GEM_TYPE_EMERALD = 2; +} + +enum DOTAChatChannelType_t { + DOTAChannelType_Regional = 0; + DOTAChannelType_Custom = 1; + DOTAChannelType_Party = 2; + DOTAChannelType_Lobby = 3; + DOTAChannelType_Team = 4; + DOTAChannelType_Guild = 5; + DOTAChannelType_Fantasy = 6; + DOTAChannelType_Whisper = 7; + DOTAChannelType_Console = 8; + DOTAChannelType_Tab = 9; + DOTAChannelType_Invalid = 10; + DOTAChannelType_GameAll = 11; + DOTAChannelType_GameAllies = 12; + DOTAChannelType_GameSpectator = 13; + DOTAChannelType_GameCoaching = 14; + DOTAChannelType_Cafe = 15; + DOTAChannelType_CustomGame = 16; + DOTAChannelType_Private = 17; + DOTAChannelType_PostGame = 18; + DOTAChannelType_BattleCup = 19; + DOTAChannelType_HLTVSpectator = 20; + DOTAChannelType_GameEvents = 21; + DOTAChannelType_Trivia = 22; + DOTAChannelType_NewPlayer = 23; + DOTAChannelType_PrivateCoaching = 24; +} + +enum EChatSpecialPrivileges { + k_EChatSpecialPrivileges_None = 0; + k_EChatSpecialPrivileges_Moderator = 1; + k_EChatSpecialPrivileges_SuperModerator = 2; +} + +enum DOTACommType_t { + DOTA_COMM_TYPE_NONE = 0; + DOTA_COMM_TYPE_PING = 1; + DOTA_COMM_TYPE_CHATWHEEL = 2; + DOTA_COMM_TYPE_TIP = 3; + DOTA_COMM_TYPE_TEXT = 4; + DOTA_COMM_TYPE_SHOWCASE = 5; + DOTA_COMM_TYPE_VOICE = 6; + DOTA_COMM_TYPE_ALLY_ABILITY = 7; + DOTA_COMM_TYPE_PAUSE = 8; + DOTA_COMM_TYPE_COACHING = 9; + DOTA_COMM_TYPE_NOCOOLDOWN = 10; + DOTA_COMM_TYPE_RANKEDMATCHMAKE = 11; + DOTA_COMM_TYPE_DROPS = 12; + DOTA_COMM_TYPE_NEWPLAYER_EXPERT = 13; + DOTA_COMM_TYPE_COACHED = 14; + DOTA_COMM_TYPE_MAPDRAWING = 15; +} + +enum DOTACommLevel_t { + DOTA_COMM_LEVEL_NONE = 0; + DOTA_COMM_LEVEL_COOLDOWN = 1; + DOTA_COMM_LEVEL_PINGS = 2; + DOTA_COMM_LEVEL_MAPDRAWING = 3; + DOTA_COMM_LEVEL_CHAT = 4; + DOTA_COMM_LEVEL_TIPPING = 5; + DOTA_COMM_LEVEL_VOICE = 6; + DOTA_COMM_LEVEL_ALLIED_ABILITY = 7; +} + +enum DOTABehaviorLevel_t { + DOTA_BEHAVIOR_LEVEL_NONE = 0; + DOTA_BEHAVIOR_LEVEL_RANKED_ALLOWED = 1; + DOTA_BEHAVIOR_LEVEL_PAUSING = 2; + DOTA_BEHAVIOR_LEVEL_DROPS = 3; + DOTA_BEHAVIOR_LEVEL_COACHING = 4; +} + +enum EProfileCardSlotType { + k_EProfileCardSlotType_Empty = 0; + k_EProfileCardSlotType_Stat = 1; + k_EProfileCardSlotType_Trophy = 2; + k_EProfileCardSlotType_Item = 3; + k_EProfileCardSlotType_Hero = 4; + k_EProfileCardSlotType_Emoticon = 5; + k_EProfileCardSlotType_Team = 6; +} + +enum EMatchGroupServerStatus { + k_EMatchGroupServerStatus_OK = 0; + k_EMatchGroupServerStatus_LimitedAvailability = 1; + k_EMatchGroupServerStatus_Offline = 2; +} + +enum DOTA_CM_PICK { + DOTA_CM_RANDOM = 0; + DOTA_CM_GOOD_GUYS = 1; + DOTA_CM_BAD_GUYS = 2; +} + +enum DOTALowPriorityBanType { + DOTA_LOW_PRIORITY_BAN_ABANDON = 0; + DOTA_LOW_PRIORITY_BAN_REPORTS = 1; + DOTA_LOW_PRIORITY_BAN_SECONDARY_ABANDON = 2; + DOTA_LOW_PRIORITY_BAN_PRE_GAME_ROLE = 3; +} + +enum DOTALobbyReadyState { + DOTALobbyReadyState_UNDECLARED = 0; + DOTALobbyReadyState_ACCEPTED = 1; + DOTALobbyReadyState_DECLINED = 2; + DOTALobbyReadyState_DECLINED_REQUEUE = 3; +} + +enum DOTAJoinLobbyResult { + DOTA_JOIN_RESULT_SUCCESS = 0; + DOTA_JOIN_RESULT_ALREADY_IN_GAME = 1; + DOTA_JOIN_RESULT_INVALID_LOBBY = 2; + DOTA_JOIN_RESULT_INCORRECT_PASSWORD = 3; + DOTA_JOIN_RESULT_ACCESS_DENIED = 4; + DOTA_JOIN_RESULT_GENERIC_ERROR = 5; + DOTA_JOIN_RESULT_INCORRECT_VERSION = 6; + DOTA_JOIN_RESULT_IN_TEAM_PARTY = 7; + DOTA_JOIN_RESULT_NO_LOBBY_FOUND = 8; + DOTA_JOIN_RESULT_LOBBY_FULL = 9; + DOTA_JOIN_RESULT_CUSTOM_GAME_INCORRECT_VERSION = 10; + DOTA_JOIN_RESULT_TIMEOUT = 11; + DOTA_JOIN_RESULT_CUSTOM_GAME_COOLDOWN = 12; + DOTA_JOIN_RESULT_BUSY = 13; + DOTA_JOIN_RESULT_NO_PLAYTIME = 14; +} + +enum DOTASelectionPriorityRules { + k_DOTASelectionPriorityRules_Manual = 0; + k_DOTASelectionPriorityRules_Automatic = 1; +} + +enum DOTASelectionPriorityChoice { + k_DOTASelectionPriorityChoice_Invalid = 0; + k_DOTASelectionPriorityChoice_FirstPick = 1; + k_DOTASelectionPriorityChoice_SecondPick = 2; + k_DOTASelectionPriorityChoice_Radiant = 3; + k_DOTASelectionPriorityChoice_Dire = 4; +} + +enum DOTAMatchVote { + DOTAMatchVote_INVALID = 0; + DOTAMatchVote_POSITIVE = 1; + DOTAMatchVote_NEGATIVE = 2; +} + +enum DOTALobbyVisibility { + DOTALobbyVisibility_Public = 0; + DOTALobbyVisibility_Friends = 1; + DOTALobbyVisibility_Unlisted = 2; +} + +enum EDOTAPlayerMMRType { + k_EDOTAPlayerMMRType_Invalid = 0; + k_EDOTAPlayerMMRType_GeneralHidden = 1; + k_EDOTAPlayerMMRType_GeneralCompetitive = 3; +} + +enum EDOTAMMRBoostType { + k_EDOTAMMRBoostType_None = 0; + k_EDOTAMMRBoostType_Leader = 1; + k_EDOTAMMRBoostType_Follower = 2; +} + +enum MatchType { + MATCH_TYPE_CASUAL = 0; + MATCH_TYPE_COOP_BOTS = 1; + MATCH_TYPE_COMPETITIVE = 4; + MATCH_TYPE_WEEKEND_TOURNEY = 5; + MATCH_TYPE_EVENT = 7; + MATCH_TYPE_COACHES_CHALLENGE = 12; + MATCH_TYPE_NEW_PLAYER_POOL = 14; +} + +enum DOTABotDifficulty { + BOT_DIFFICULTY_PASSIVE = 0; + BOT_DIFFICULTY_EASY = 1; + BOT_DIFFICULTY_MEDIUM = 2; + BOT_DIFFICULTY_HARD = 3; + BOT_DIFFICULTY_UNFAIR = 4; + BOT_DIFFICULTY_INVALID = 5; + BOT_DIFFICULTY_EXTRA1 = 6; + BOT_DIFFICULTY_EXTRA2 = 7; + BOT_DIFFICULTY_EXTRA3 = 8; + BOT_DIFFICULTY_NPX = 9; +} + +enum DOTA_BOT_MODE { + DOTA_BOT_MODE_NONE = 0; + DOTA_BOT_MODE_LANING = 1; + DOTA_BOT_MODE_ATTACK = 2; + DOTA_BOT_MODE_ROAM = 3; + DOTA_BOT_MODE_RETREAT = 4; + DOTA_BOT_MODE_SECRET_SHOP = 5; + DOTA_BOT_MODE_SIDE_SHOP = 6; + DOTA_BOT_MODE_RUNE = 7; + DOTA_BOT_MODE_PUSH_TOWER_TOP = 8; + DOTA_BOT_MODE_PUSH_TOWER_MID = 9; + DOTA_BOT_MODE_PUSH_TOWER_BOT = 10; + DOTA_BOT_MODE_DEFEND_TOWER_TOP = 11; + DOTA_BOT_MODE_DEFEND_TOWER_MID = 12; + DOTA_BOT_MODE_DEFEND_TOWER_BOT = 13; + DOTA_BOT_MODE_ASSEMBLE = 14; + DOTA_BOT_MODE_ASSEMBLE_WITH_HUMANS = 15; + DOTA_BOT_MODE_TEAM_ROAM = 16; + DOTA_BOT_MODE_FARM = 17; + DOTA_BOT_MODE_DEFEND_ALLY = 18; + DOTA_BOT_MODE_EVASIVE_MANEUVERS = 19; + DOTA_BOT_MODE_ROSHAN = 20; + DOTA_BOT_MODE_ITEM = 21; + DOTA_BOT_MODE_WARD = 22; + DOTA_BOT_MODE_COMPANION = 23; + DOTA_BOT_MODE_TUTORIAL_BOSS = 24; + DOTA_BOT_MODE_MINION = 25; + DOTA_BOT_MODE_OUTPOST = 26; +} + +enum MatchLanguages { + MATCH_LANGUAGE_INVALID = 0; + MATCH_LANGUAGE_ENGLISH = 1; + MATCH_LANGUAGE_RUSSIAN = 2; + MATCH_LANGUAGE_CHINESE = 3; + MATCH_LANGUAGE_KOREAN = 4; + MATCH_LANGUAGE_SPANISH = 5; + MATCH_LANGUAGE_PORTUGUESE = 6; + MATCH_LANGUAGE_ENGLISH2 = 7; +} + +enum ETourneyQueueDeadlineState { + k_ETourneyQueueDeadlineState_Normal = 0; + k_ETourneyQueueDeadlineState_Missed = 1; + k_ETourneyQueueDeadlineState_ExpiredOK = 2; + k_ETourneyQueueDeadlineState_SeekingBye = 3; + k_ETourneyQueueDeadlineState_EligibleForRefund = 4; + k_ETourneyQueueDeadlineState_NA = -1; + k_ETourneyQueueDeadlineState_ExpiringSoon = 101; +} + +enum EMatchOutcome { + k_EMatchOutcome_Unknown = 0; + k_EMatchOutcome_RadVictory = 2; + k_EMatchOutcome_DireVictory = 3; + k_EMatchOutcome_NeutralVictory = 4; + k_EMatchOutcome_NoTeamWinner = 5; + k_EMatchOutcome_Custom1Victory = 6; + k_EMatchOutcome_Custom2Victory = 7; + k_EMatchOutcome_Custom3Victory = 8; + k_EMatchOutcome_Custom4Victory = 9; + k_EMatchOutcome_Custom5Victory = 10; + k_EMatchOutcome_Custom6Victory = 11; + k_EMatchOutcome_Custom7Victory = 12; + k_EMatchOutcome_Custom8Victory = 13; + k_EMatchOutcome_NotScored_PoorNetworkConditions = 64; + k_EMatchOutcome_NotScored_Leaver = 65; + k_EMatchOutcome_NotScored_ServerCrash = 66; + k_EMatchOutcome_NotScored_NeverStarted = 67; + k_EMatchOutcome_NotScored_Canceled = 68; + k_EMatchOutcome_NotScored_Suspicious = 69; +} + +enum ELaneType { + LANE_TYPE_UNKNOWN = 0; + LANE_TYPE_SAFE = 1; + LANE_TYPE_OFF = 2; + LANE_TYPE_MID = 3; + LANE_TYPE_JUNGLE = 4; + LANE_TYPE_ROAM = 5; +} + +enum EBadgeType { + k_EBadgeType_Invalid = 0; + k_EBadgeType_TI7_Midweek = 1; + k_EBadgeType_TI7_Finals = 2; + k_EBadgeType_TI7_AllEvent = 3; + k_EBadgeType_TI8_Midweek = 4; + k_EBadgeType_TI8_Finals = 5; + k_EBadgeType_TI8_AllEvent = 6; + k_EBadgeType_TI10 = 7; + k_EBadgeType_TI11_PlayoffsDay1 = 8; + k_EBadgeType_TI11_PlayoffsDay2 = 9; + k_EBadgeType_TI11_PlayoffsDay3 = 10; + k_EBadgeType_TI11_PlayoffsDay4 = 11; + k_EBadgeType_TI11_FinalsWeekend = 12; + k_EBadgeType_TI12_PlayoffsDay1 = 13; + k_EBadgeType_TI12_PlayoffsDay2 = 14; + k_EBadgeType_TI12_PlayoffsDay3 = 15; + k_EBadgeType_TI12_FinalsWeekend = 16; + k_EBadgeType_TI12_Special = 17; + k_EBadgeType_TI13_FinalsDay1 = 18; + k_EBadgeType_TI13_FinalsDay2 = 19; + k_EBadgeType_TI13_FinalsDay3 = 20; + k_EBadgeType_TI13_Special = 21; +} + +enum ELeagueStatus { + LEAGUE_STATUS_UNSET = 0; + LEAGUE_STATUS_UNSUBMITTED = 1; + LEAGUE_STATUS_SUBMITTED = 2; + LEAGUE_STATUS_ACCEPTED = 3; + LEAGUE_STATUS_REJECTED = 4; + LEAGUE_STATUS_CONCLUDED = 5; + LEAGUE_STATUS_DELETED = 6; +} + +enum ELeagueRegion { + LEAGUE_REGION_UNSET = 0; + LEAGUE_REGION_NA = 1; + LEAGUE_REGION_SA = 2; + LEAGUE_REGION_WEU = 3; + LEAGUE_REGION_EEU = 4; + LEAGUE_REGION_CHINA = 5; + LEAGUE_REGION_SEA = 6; +} + +enum ELeagueTier { + LEAGUE_TIER_UNSET = 0; + LEAGUE_TIER_AMATEUR = 1; + LEAGUE_TIER_PROFESSIONAL = 2; + LEAGUE_TIER_MINOR = 3; + LEAGUE_TIER_MAJOR = 4; + LEAGUE_TIER_INTERNATIONAL = 5; + LEAGUE_TIER_DPC_QUALIFIER = 6; + LEAGUE_TIER_DPC_LEAGUE_QUALIFIER = 7; + LEAGUE_TIER_DPC_LEAGUE = 8; + LEAGUE_TIER_DPC_LEAGUE_FINALS = 9; +} + +enum ELeagueTierCategory { + LEAGUE_TIER_CATEGORY_AMATEUR = 1; + LEAGUE_TIER_CATEGORY_PROFESSIONAL = 2; + LEAGUE_TIER_CATEGORY_DPC = 3; +} + +enum ELeagueDivision { + LEAGUE_DIVISION_UNSET = 0; + LEAGUE_DIVISION_I = 1; + LEAGUE_DIVISION_II = 2; +} + +enum ELeagueBroadcastProvider { + LEAGUE_BROADCAST_UNKNOWN = 0; + LEAGUE_BROADCAST_STEAM = 1; + LEAGUE_BROADCAST_TWITCH = 2; + LEAGUE_BROADCAST_YOUTUBE = 3; + LEAGUE_BROADCAST_OTHER = 100; +} + +enum ELeaguePhase { + LEAGUE_PHASE_UNSET = 0; + LEAGUE_PHASE_REGIONAL_QUALIFIER = 1; + LEAGUE_PHASE_GROUP_STAGE = 2; + LEAGUE_PHASE_MAIN_EVENT = 3; +} + +enum ELeagueAuditAction { + LEAGUE_AUDIT_ACTION_INVALID = 0; + LEAGUE_AUDIT_ACTION_LEAGUE_CREATE = 1; + LEAGUE_AUDIT_ACTION_LEAGUE_EDIT = 2; + LEAGUE_AUDIT_ACTION_LEAGUE_DELETE = 3; + LEAGUE_AUDIT_ACTION_LEAGUE_ADMIN_ADD = 4; + LEAGUE_AUDIT_ACTION_LEAGUE_ADMIN_REVOKE = 5; + LEAGUE_AUDIT_ACTION_LEAGUE_ADMIN_PROMOTE = 6; + LEAGUE_AUDIT_ACTION_LEAGUE_STREAM_ADD = 7; + LEAGUE_AUDIT_ACTION_LEAGUE_STREAM_REMOVE = 8; + LEAGUE_AUDIT_ACTION_LEAGUE_IMAGE_UPDATED = 9; + LEAGUE_AUDIT_ACTION_LEAGUE_MESSAGE_ADDED = 10; + LEAGUE_AUDIT_ACTION_LEAGUE_SUBMITTED = 11; + LEAGUE_AUDIT_ACTION_LEAGUE_SET_PRIZE_POOL = 12; + LEAGUE_AUDIT_ACTION_LEAGUE_ADD_PRIZE_POOL_ITEM = 13; + LEAGUE_AUDIT_ACTION_LEAGUE_REMOVE_PRIZE_POOL_ITEM = 14; + LEAGUE_AUDIT_ACTION_LEAGUE_MATCH_START = 15; + LEAGUE_AUDIT_ACTION_LEAGUE_MATCH_END = 16; + LEAGUE_AUDIT_ACTION_LEAGUE_ADD_INVITED_TEAM = 17; + LEAGUE_AUDIT_ACTION_LEAGUE_REMOVE_INVITED_TEAM = 18; + LEAGUE_AUDIT_ACTION_LEAGUE_STATUS_CHANGED = 19; + LEAGUE_AUDIT_ACTION_LEAGUE_STREAM_EDIT = 20; + LEAGUE_AUDIT_ACTION_LEAGUE_TEAM_SWAP = 21; + LEAGUE_AUDIT_ACTION_NODEGROUP_CREATE = 100; + LEAGUE_AUDIT_ACTION_NODEGROUP_DESTROY = 101; + LEAGUE_AUDIT_ACTION_NODEGROUP_ADD_TEAM = 102; + LEAGUE_AUDIT_ACTION_NODEGROUP_REMOVE_TEAM = 103; + LEAGUE_AUDIT_ACTION_NODEGROUP_SET_ADVANCING = 104; + LEAGUE_AUDIT_ACTION_NODEGROUP_EDIT = 105; + LEAGUE_AUDIT_ACTION_NODEGROUP_POPULATE = 106; + LEAGUE_AUDIT_ACTION_NODEGROUP_COMPLETED = 107; + LEAGUE_AUDIT_ACTION_NODEGROUP_SET_SECONDARY_ADVANCING = 108; + LEAGUE_AUDIT_ACTION_NODEGROUP_SET_TERTIARY_ADVANCING = 109; + LEAGUE_AUDIT_ACTION_NODE_CREATE = 200; + LEAGUE_AUDIT_ACTION_NODE_DESTROY = 201; + LEAGUE_AUDIT_ACTION_NODE_AUTOCREATE = 202; + LEAGUE_AUDIT_ACTION_NODE_SET_TEAM = 203; + LEAGUE_AUDIT_ACTION_NODE_SET_SERIES_ID = 204; + LEAGUE_AUDIT_ACTION_NODE_SET_ADVANCING = 205; + LEAGUE_AUDIT_ACTION_NODE_SET_TIME = 206; + LEAGUE_AUDIT_ACTION_NODE_MATCH_COMPLETED = 207; + LEAGUE_AUDIT_ACTION_NODE_COMPLETED = 208; + LEAGUE_AUDIT_ACTION_NODE_EDIT = 209; +} + +enum DOTA_COMBATLOG_TYPES { + DOTA_COMBATLOG_INVALID = -1; + DOTA_COMBATLOG_DAMAGE = 0; + DOTA_COMBATLOG_HEAL = 1; + DOTA_COMBATLOG_MODIFIER_ADD = 2; + DOTA_COMBATLOG_MODIFIER_REMOVE = 3; + DOTA_COMBATLOG_DEATH = 4; + DOTA_COMBATLOG_ABILITY = 5; + DOTA_COMBATLOG_ITEM = 6; + DOTA_COMBATLOG_LOCATION = 7; + DOTA_COMBATLOG_GOLD = 8; + DOTA_COMBATLOG_GAME_STATE = 9; + DOTA_COMBATLOG_XP = 10; + DOTA_COMBATLOG_PURCHASE = 11; + DOTA_COMBATLOG_BUYBACK = 12; + DOTA_COMBATLOG_ABILITY_TRIGGER = 13; + DOTA_COMBATLOG_PLAYERSTATS = 14; + DOTA_COMBATLOG_MULTIKILL = 15; + DOTA_COMBATLOG_KILLSTREAK = 16; + DOTA_COMBATLOG_TEAM_BUILDING_KILL = 17; + DOTA_COMBATLOG_FIRST_BLOOD = 18; + DOTA_COMBATLOG_MODIFIER_STACK_EVENT = 19; + DOTA_COMBATLOG_NEUTRAL_CAMP_STACK = 20; + DOTA_COMBATLOG_PICKUP_RUNE = 21; + DOTA_COMBATLOG_REVEALED_INVISIBLE = 22; + DOTA_COMBATLOG_HERO_SAVED = 23; + DOTA_COMBATLOG_MANA_RESTORED = 24; + DOTA_COMBATLOG_HERO_LEVELUP = 25; + DOTA_COMBATLOG_BOTTLE_HEAL_ALLY = 26; + DOTA_COMBATLOG_ENDGAME_STATS = 27; + DOTA_COMBATLOG_INTERRUPT_CHANNEL = 28; + DOTA_COMBATLOG_ALLIED_GOLD = 29; + DOTA_COMBATLOG_AEGIS_TAKEN = 30; + DOTA_COMBATLOG_MANA_DAMAGE = 31; + DOTA_COMBATLOG_PHYSICAL_DAMAGE_PREVENTED = 32; + DOTA_COMBATLOG_UNIT_SUMMONED = 33; + DOTA_COMBATLOG_ATTACK_EVADE = 34; + DOTA_COMBATLOG_TREE_CUT = 35; + DOTA_COMBATLOG_SUCCESSFUL_SCAN = 36; + DOTA_COMBATLOG_END_KILLSTREAK = 37; + DOTA_COMBATLOG_BLOODSTONE_CHARGE = 38; + DOTA_COMBATLOG_CRITICAL_DAMAGE = 39; + DOTA_COMBATLOG_SPELL_ABSORB = 40; + DOTA_COMBATLOG_UNIT_TELEPORTED = 41; + DOTA_COMBATLOG_KILL_EATER_EVENT = 42; + DOTA_COMBATLOG_NEUTRAL_ITEM_EARNED = 43; +} + +enum EDPCFavoriteType { + FAVORITE_TYPE_ALL = 0; + FAVORITE_TYPE_PLAYER = 1; + FAVORITE_TYPE_TEAM = 2; + FAVORITE_TYPE_LEAGUE = 3; +} + +enum EDPCPushNotification { + DPC_PUSH_NOTIFICATION_MATCH_STARTING = 1; + DPC_PUSH_NOTIFICATION_PLAYER_LEFT_TEAM = 10; + DPC_PUSH_NOTIFICATION_PLAYER_JOINED_TEAM = 11; + DPC_PUSH_NOTIFICATION_PLAYER_JOINED_TEAM_AS_COACH = 12; + DPC_PUSH_NOTIFICATION_PLAYER_LEFT_TEAM_AS_COACH = 13; + DPC_PUSH_NOTIFICATION_LEAGUE_RESULT = 20; + DPC_PUSH_NOTIFICATION_PREDICTION_MATCHES_AVAILABLE = 30; + DPC_PUSH_NOTIFICATION_PREDICTION_RESULT = 31; + DPC_PUSH_NOTIFICATION_FANTASY_PLAYER_CLEARED = 40; + DPC_PUSH_NOTIFICATION_FANTASY_DAILY_SUMMARY = 41; + DPC_PUSH_NOTIFICATION_FANTASY_FINAL_RESULTS = 42; +} + +enum EEventActionScoreMode { + k_eEventActionScoreMode_Add = 0; + k_eEventActionScoreMode_Min = 1; +} + +enum EPlayerChallengeHistoryType { + k_EPlayerChallengeHistoryType_Invalid = 0; + k_EPlayerChallengeHistoryType_KillEater = 1; + k_EPlayerChallengeHistoryType_DotaPlusRelic = 2; + k_EPlayerChallengeHistoryType_DotaPlusHeroPlayerChallenge = 3; + k_EPlayerChallengeHistoryType_InGameEventChallenge = 4; + k_EPlayerChallengeHistoryType_GuildContract = 5; +} + +enum EOverwatchReportReason { + k_EOverwatchReportReason_Unknown = 0; + k_EOverwatchReportReason_Cheating = 1; + k_EOverwatchReportReason_Feeding = 2; + k_EOverwatchReportReason_Griefing = 3; + k_EOverwatchReportReason_Suspicious = 4; + k_EOverwatchReportReason_AbilityAbuse = 5; +} + +enum ECandyShopUpgrade { + k_ECandyShopUpgradeInvalid = -1; + k_ECandyShopUpgrade_InventorySize = 0; + k_ECandyShopUpgrade_RewardShelf = 1; + k_ECandyShopUpgrade_ExtraExchangeRecipe = 2; +} + +message CDOTAClientHardwareSpecs { + optional uint32 logical_processors = 1; + optional fixed64 cpu_cycles_per_second = 2; + optional fixed64 total_physical_memory = 3; + optional bool is_64_bit_os = 4; + optional uint64 upload_measurement = 5; + optional bool prefer_not_host = 6; + repeated uint32 crc = 7; +} + +message CDOTASaveGame { + message Player { + optional .DOTA_GC_TEAM team = 1 [default = DOTA_GC_TEAM_GOOD_GUYS]; + optional string name = 2; + optional string hero = 3; + } + + message SaveInstance { + message PlayerPositions { + optional float x = 1; + optional float y = 2; + } + + optional uint32 game_time = 2; + optional uint32 team1_score = 3; + optional uint32 team2_score = 4; + repeated .CDOTASaveGame.SaveInstance.PlayerPositions player_positions = 5; + optional uint32 save_id = 6; + optional uint32 save_time = 7; + } + + optional uint64 match_id = 5; + optional uint32 save_time = 2; + repeated .CDOTASaveGame.Player players = 3; + repeated .CDOTASaveGame.SaveInstance save_instances = 4; +} + +message CMsgDOTACombatLogEntry { + optional .DOTA_COMBATLOG_TYPES type = 1 [default = DOTA_COMBATLOG_INVALID]; + optional uint32 target_name = 2; + optional uint32 target_source_name = 3; + optional uint32 attacker_name = 4; + optional uint32 damage_source_name = 5; + optional uint32 inflictor_name = 6; + optional bool is_attacker_illusion = 7; + optional bool is_attacker_hero = 8; + optional bool is_target_illusion = 9; + optional bool is_target_hero = 10; + optional bool is_visible_radiant = 11; + optional bool is_visible_dire = 12; + optional uint32 value = 13; + optional int32 health = 14; + optional float timestamp = 15; + optional float stun_duration = 16; + optional float slow_duration = 17; + optional bool is_ability_toggle_on = 18; + optional bool is_ability_toggle_off = 19; + optional uint32 ability_level = 20; + optional float location_x = 21; + optional float location_y = 22; + optional uint32 gold_reason = 23; + optional float timestamp_raw = 24; + optional float modifier_duration = 25; + optional uint32 xp_reason = 26; + optional uint32 last_hits = 27; + optional uint32 attacker_team = 28; + optional uint32 target_team = 29; + optional uint32 obs_wards_placed = 30; + optional uint32 assist_player0 = 31; + optional uint32 assist_player1 = 32; + optional uint32 assist_player2 = 33; + optional uint32 assist_player3 = 34; + optional uint32 stack_count = 35; + optional bool hidden_modifier = 36; + optional bool is_target_building = 37; + optional uint32 neutral_camp_type = 38; + optional uint32 rune_type = 39; + repeated int32 assist_players = 40; + optional bool is_heal_save = 41; + optional bool is_ultimate_ability = 42; + optional uint32 attacker_hero_level = 43; + optional uint32 target_hero_level = 44; + optional uint32 xpm = 45; + optional uint32 gpm = 46; + optional uint32 event_location = 47; + optional bool target_is_self = 48; + optional uint32 damage_type = 49; + optional bool invisibility_modifier = 50; + optional uint32 damage_category = 51; + optional uint32 networth = 52; + optional uint32 building_type = 53; + optional float modifier_elapsed_duration = 54; + optional bool silence_modifier = 55; + optional bool heal_from_lifesteal = 56; + optional bool modifier_purged = 57; + optional bool spell_evaded = 58; + optional bool motion_controller_modifier = 59; + optional bool long_range_kill = 60; + optional uint32 modifier_purge_ability = 61; + optional uint32 modifier_purge_npc = 62; + optional bool root_modifier = 63; + optional uint32 total_unit_death_count = 64; + optional bool aura_modifier = 65; + optional bool armor_debuff_modifier = 66; + optional bool no_physical_damage_modifier = 67; + optional uint32 modifier_ability = 68; + optional bool modifier_hidden = 69; + optional bool inflictor_is_stolen_ability = 70; + optional uint32 kill_eater_event = 71; + optional uint32 unit_status_label = 72; + optional bool spell_generated_attack = 73; + optional bool at_night_time = 74; + optional bool attacker_has_scepter = 75; + optional uint32 neutral_camp_team = 76; + optional float regenerated_health = 77; + optional bool will_reincarnate = 78; + optional bool uses_charges = 79; +} + +message CMsgPendingEventAward { + optional .EEvent event_id = 1 [default = EVENT_ID_NONE]; + optional uint32 action_id = 2; + optional uint32 num_to_grant = 3; + optional .EEventActionScoreMode score_mode = 4 [default = k_eEventActionScoreMode_Add]; + optional uint32 audit_action = 5; + optional uint64 audit_data = 6; +} diff --git a/Protobufs/dota2/dota_usercmd.proto b/Protobufs/dota2/dota_usercmd.proto new file mode 100644 index 0000000..c0cb984 --- /dev/null +++ b/Protobufs/dota2/dota_usercmd.proto @@ -0,0 +1,15 @@ +import "networkbasetypes.proto"; +import "usercmd.proto"; + +message CDota2UserCmdPB { + optional .CBaseUserCmdPB base = 1; + optional int32 spectator_query_unit_entindex = 2; + optional .CMsgVector crosshairtrace = 3; + optional int32 cameraposition_x = 4; + optional int32 cameraposition_y = 5; + optional uint32 clickbehavior = 6; + optional uint32 statspanel = 7; + optional uint32 shoppanel = 8; + optional uint32 stats_dropdown = 9; + optional uint32 stats_dropdown_sort = 10; +} diff --git a/Protobufs/dota2/dota_usermessages.proto b/Protobufs/dota2/dota_usermessages.proto new file mode 100644 index 0000000..2601ebf --- /dev/null +++ b/Protobufs/dota2/dota_usermessages.proto @@ -0,0 +1,1668 @@ +import "networkbasetypes.proto"; +import "dota_shared_enums.proto"; +import "dota_commonmessages.proto"; + +enum EDotaUserMessages { + DOTA_UM_AddUnitToSelection = 464; + DOTA_UM_AIDebugLine = 465; + DOTA_UM_ChatEvent = 466; + DOTA_UM_CombatHeroPositions = 467; + DOTA_UM_CombatLogData = 468; + DOTA_UM_CombatLogBulkData = 470; + DOTA_UM_CreateLinearProjectile = 471; + DOTA_UM_DestroyLinearProjectile = 472; + DOTA_UM_DodgeTrackingProjectiles = 473; + DOTA_UM_GlobalLightColor = 474; + DOTA_UM_GlobalLightDirection = 475; + DOTA_UM_InvalidCommand = 476; + DOTA_UM_LocationPing = 477; + DOTA_UM_MapLine = 478; + DOTA_UM_MiniKillCamInfo = 479; + DOTA_UM_MinimapDebugPoint = 480; + DOTA_UM_MinimapEvent = 481; + DOTA_UM_NevermoreRequiem = 482; + DOTA_UM_OverheadEvent = 483; + DOTA_UM_SetNextAutobuyItem = 484; + DOTA_UM_SharedCooldown = 485; + DOTA_UM_SpectatorPlayerClick = 486; + DOTA_UM_TutorialTipInfo = 487; + DOTA_UM_UnitEvent = 488; + DOTA_UM_ParticleManager = 489; + DOTA_UM_BotChat = 490; + DOTA_UM_HudError = 491; + DOTA_UM_ItemPurchased = 492; + DOTA_UM_Ping = 493; + DOTA_UM_ItemFound = 494; + DOTA_UM_CharacterSpeakConcept = 495; + DOTA_UM_SwapVerify = 496; + DOTA_UM_WorldLine = 497; + DOTA_UM_TournamentDrop = 498; + DOTA_UM_ItemAlert = 499; + DOTA_UM_HalloweenDrops = 500; + DOTA_UM_ChatWheel = 501; + DOTA_UM_ReceivedXmasGift = 502; + DOTA_UM_UpdateSharedContent = 503; + DOTA_UM_TutorialRequestExp = 504; + DOTA_UM_TutorialPingMinimap = 505; + DOTA_UM_GamerulesStateChanged = 506; + DOTA_UM_ShowSurvey = 507; + DOTA_UM_TutorialFade = 508; + DOTA_UM_AddQuestLogEntry = 509; + DOTA_UM_SendStatPopup = 510; + DOTA_UM_TutorialFinish = 511; + DOTA_UM_SendRoshanPopup = 512; + DOTA_UM_SendGenericToolTip = 513; + DOTA_UM_SendFinalGold = 514; + DOTA_UM_CustomMsg = 515; + DOTA_UM_CoachHUDPing = 516; + DOTA_UM_ClientLoadGridNav = 517; + DOTA_UM_TE_Projectile = 518; + DOTA_UM_TE_ProjectileLoc = 519; + DOTA_UM_TE_DotaBloodImpact = 520; + DOTA_UM_TE_UnitAnimation = 521; + DOTA_UM_TE_UnitAnimationEnd = 522; + DOTA_UM_AbilityPing = 523; + DOTA_UM_ShowGenericPopup = 524; + DOTA_UM_VoteStart = 525; + DOTA_UM_VoteUpdate = 526; + DOTA_UM_VoteEnd = 527; + DOTA_UM_BoosterState = 528; + DOTA_UM_WillPurchaseAlert = 529; + DOTA_UM_TutorialMinimapPosition = 530; + DOTA_UM_AbilitySteal = 532; + DOTA_UM_CourierKilledAlert = 533; + DOTA_UM_EnemyItemAlert = 534; + DOTA_UM_StatsMatchDetails = 535; + DOTA_UM_MiniTaunt = 536; + DOTA_UM_BuyBackStateAlert = 537; + DOTA_UM_SpeechBubble = 538; + DOTA_UM_CustomHeaderMessage = 539; + DOTA_UM_QuickBuyAlert = 540; + DOTA_UM_StatsHeroDetails = 541; + DOTA_UM_PredictionResult = 542; + DOTA_UM_ModifierAlert = 543; + DOTA_UM_HPManaAlert = 544; + DOTA_UM_GlyphAlert = 545; + DOTA_UM_BeastChat = 546; + DOTA_UM_SpectatorPlayerUnitOrders = 547; + DOTA_UM_CustomHudElement_Create = 548; + DOTA_UM_CustomHudElement_Modify = 549; + DOTA_UM_CustomHudElement_Destroy = 550; + DOTA_UM_CompendiumState = 551; + DOTA_UM_ProjectionAbility = 552; + DOTA_UM_ProjectionEvent = 553; + DOTA_UM_CombatLogDataHLTV = 554; + DOTA_UM_XPAlert = 555; + DOTA_UM_UpdateQuestProgress = 556; + DOTA_UM_MatchMetadata = 557; + DOTA_UM_MatchDetails = 558; + DOTA_UM_QuestStatus = 559; + DOTA_UM_SuggestHeroPick = 560; + DOTA_UM_SuggestHeroRole = 561; + DOTA_UM_KillcamDamageTaken = 562; + DOTA_UM_SelectPenaltyGold = 563; + DOTA_UM_RollDiceResult = 564; + DOTA_UM_FlipCoinResult = 565; + DOTA_UM_RequestItemSuggestions = 566; + DOTA_UM_TeamCaptainChanged = 567; + DOTA_UM_SendRoshanSpectatorPhase = 568; + DOTA_UM_ChatWheelCooldown = 569; + DOTA_UM_DismissAllStatPopups = 570; + DOTA_UM_TE_DestroyProjectile = 571; + DOTA_UM_HeroRelicProgress = 572; + DOTA_UM_AbilityDraftRequestAbility = 573; + DOTA_UM_ItemSold = 574; + DOTA_UM_DamageReport = 575; + DOTA_UM_SalutePlayer = 576; + DOTA_UM_TipAlert = 577; + DOTA_UM_ReplaceQueryUnit = 578; + DOTA_UM_EmptyTeleportAlert = 579; + DOTA_UM_MarsArenaOfBloodAttack = 580; + DOTA_UM_ESArcanaCombo = 581; + DOTA_UM_ESArcanaComboSummary = 582; + DOTA_UM_HighFiveLeftHanging = 583; + DOTA_UM_HighFiveCompleted = 584; + DOTA_UM_ShovelUnearth = 585; + DOTA_EM_InvokerSpellCast = 586; + DOTA_UM_RadarAlert = 587; + DOTA_UM_AllStarEvent = 588; + DOTA_UM_TalentTreeAlert = 589; + DOTA_UM_QueuedOrderRemoved = 590; + DOTA_UM_DebugChallenge = 591; + DOTA_UM_OMArcanaCombo = 592; + DOTA_UM_FoundNeutralItem = 593; + DOTA_UM_OutpostCaptured = 594; + DOTA_UM_OutpostGrantedXP = 595; + DOTA_UM_MoveCameraToUnit = 596; + DOTA_UM_PauseMinigameData = 597; + DOTA_UM_VersusScene_PlayerBehavior = 598; + DOTA_UM_QoP_ArcanaSummary = 600; + DOTA_UM_HotPotato_Created = 601; + DOTA_UM_HotPotato_Exploded = 602; + DOTA_UM_WK_Arcana_Progress = 603; + DOTA_UM_GuildChallenge_Progress = 604; + DOTA_UM_WRArcanaProgress = 605; + DOTA_UM_WRArcanaSummary = 606; + DOTA_UM_EmptyItemSlotAlert = 607; + DOTA_UM_AghsStatusAlert = 608; + DOTA_UM_PingConfirmation = 609; + DOTA_UM_MutedPlayers = 610; + DOTA_UM_ContextualTip = 611; + DOTA_UM_ChatMessage = 612; + DOTA_UM_NeutralCampAlert = 613; + DOTA_UM_RockPaperScissorsStarted = 614; + DOTA_UM_RockPaperScissorsFinished = 615; + DOTA_UM_DuelOpponentKilled = 616; + DOTA_UM_DuelAccepted = 617; + DOTA_UM_DuelRequested = 618; + DOTA_UM_MuertaReleaseEvent_AssignedTargetKilled = 619; + DOTA_UM_PlayerDraftSuggestPick = 620; + DOTA_UM_PlayerDraftPick = 621; + DOTA_UM_UpdateLinearProjectileCPData = 622; + DOTA_UM_GiftPlayer = 623; + DOTA_UM_FacetPing = 624; + DOTA_UM_InnatePing = 625; + DOTA_UM_RoshanTimer = 626; +} + +enum DOTA_CHAT_MESSAGE { + CHAT_MESSAGE_INVALID = -1; + CHAT_MESSAGE_HERO_KILL = 0; + CHAT_MESSAGE_HERO_DENY = 1; + CHAT_MESSAGE_BARRACKS_KILL = 2; + CHAT_MESSAGE_TOWER_KILL = 3; + CHAT_MESSAGE_TOWER_DENY = 4; + CHAT_MESSAGE_FIRSTBLOOD = 5; + CHAT_MESSAGE_STREAK_KILL = 6; + CHAT_MESSAGE_BUYBACK = 7; + CHAT_MESSAGE_AEGIS = 8; + CHAT_MESSAGE_ROSHAN_KILL = 9; + CHAT_MESSAGE_COURIER_LOST = 10; + CHAT_MESSAGE_COURIER_RESPAWNED = 11; + CHAT_MESSAGE_GLYPH_USED = 12; + CHAT_MESSAGE_ITEM_PURCHASE = 13; + CHAT_MESSAGE_CONNECT = 14; + CHAT_MESSAGE_DISCONNECT = 15; + CHAT_MESSAGE_DISCONNECT_WAIT_FOR_RECONNECT = 16; + CHAT_MESSAGE_DISCONNECT_TIME_REMAINING = 17; + CHAT_MESSAGE_DISCONNECT_TIME_REMAINING_PLURAL = 18; + CHAT_MESSAGE_RECONNECT = 19; + CHAT_MESSAGE_PLAYER_LEFT = 20; + CHAT_MESSAGE_SAFE_TO_LEAVE = 21; + CHAT_MESSAGE_RUNE_PICKUP = 22; + CHAT_MESSAGE_RUNE_BOTTLE = 23; + CHAT_MESSAGE_RUNE_DENY = 114; + CHAT_MESSAGE_INTHEBAG = 24; + CHAT_MESSAGE_SECRETSHOP = 25; + CHAT_MESSAGE_ITEM_AUTOPURCHASED = 26; + CHAT_MESSAGE_ITEMS_COMBINED = 27; + CHAT_MESSAGE_SUPER_CREEPS = 28; + CHAT_MESSAGE_CANT_USE_ACTION_ITEM = 29; + CHAT_MESSAGE_CANTPAUSE = 31; + CHAT_MESSAGE_NOPAUSESLEFT = 32; + CHAT_MESSAGE_CANTPAUSEYET = 33; + CHAT_MESSAGE_PAUSED = 34; + CHAT_MESSAGE_UNPAUSE_COUNTDOWN = 35; + CHAT_MESSAGE_UNPAUSED = 36; + CHAT_MESSAGE_AUTO_UNPAUSED = 37; + CHAT_MESSAGE_YOUPAUSED = 38; + CHAT_MESSAGE_CANTUNPAUSETEAM = 39; + CHAT_MESSAGE_VOICE_TEXT_BANNED = 41; + CHAT_MESSAGE_SPECTATORS_WATCHING_THIS_GAME = 42; + CHAT_MESSAGE_REPORT_REMINDER = 43; + CHAT_MESSAGE_ECON_ITEM = 44; + CHAT_MESSAGE_TAUNT = 45; + CHAT_MESSAGE_RANDOM = 46; + CHAT_MESSAGE_RD_TURN = 47; + CHAT_MESSAGE_DROP_RATE_BONUS = 49; + CHAT_MESSAGE_NO_BATTLE_POINTS = 50; + CHAT_MESSAGE_DENIED_AEGIS = 51; + CHAT_MESSAGE_INFORMATIONAL = 52; + CHAT_MESSAGE_AEGIS_STOLEN = 53; + CHAT_MESSAGE_ROSHAN_CANDY = 54; + CHAT_MESSAGE_ITEM_GIFTED = 55; + CHAT_MESSAGE_HERO_KILL_WITH_GREEVIL = 56; + CHAT_MESSAGE_HOLDOUT_TOWER_DESTROYED = 57; + CHAT_MESSAGE_HOLDOUT_WALL_DESTROYED = 58; + CHAT_MESSAGE_HOLDOUT_WALL_FINISHED = 59; + CHAT_MESSAGE_PLAYER_LEFT_LIMITED_HERO = 62; + CHAT_MESSAGE_ABANDON_LIMITED_HERO_EXPLANATION = 63; + CHAT_MESSAGE_DISCONNECT_LIMITED_HERO = 64; + CHAT_MESSAGE_LOW_PRIORITY_COMPLETED_EXPLANATION = 65; + CHAT_MESSAGE_RECRUITMENT_DROP_RATE_BONUS = 66; + CHAT_MESSAGE_FROSTIVUS_SHINING_BOOSTER_ACTIVE = 67; + CHAT_MESSAGE_PLAYER_LEFT_AFK = 73; + CHAT_MESSAGE_PLAYER_LEFT_DISCONNECTED_TOO_LONG = 74; + CHAT_MESSAGE_PLAYER_ABANDONED = 75; + CHAT_MESSAGE_PLAYER_ABANDONED_AFK = 76; + CHAT_MESSAGE_PLAYER_ABANDONED_DISCONNECTED_TOO_LONG = 77; + CHAT_MESSAGE_WILL_NOT_BE_SCORED = 78; + CHAT_MESSAGE_WILL_NOT_BE_SCORED_RANKED = 79; + CHAT_MESSAGE_WILL_NOT_BE_SCORED_NETWORK = 80; + CHAT_MESSAGE_WILL_NOT_BE_SCORED_NETWORK_RANKED = 81; + CHAT_MESSAGE_CAN_QUIT_WITHOUT_ABANDON = 82; + CHAT_MESSAGE_RANKED_GAME_STILL_SCORED_LEAVERS_GET_LOSS = 83; + CHAT_MESSAGE_ABANDON_RANKED_BEFORE_FIRST_BLOOD_PARTY = 84; + CHAT_MESSAGE_COMPENDIUM_LEVEL = 85; + CHAT_MESSAGE_VICTORY_PREDICTION_STREAK = 86; + CHAT_MESSAGE_ASSASSIN_ANNOUNCE = 87; + CHAT_MESSAGE_ASSASSIN_SUCCESS = 88; + CHAT_MESSAGE_ASSASSIN_DENIED = 89; + CHAT_MESSAGE_VICTORY_PREDICTION_SINGLE_USER_CONFIRM = 90; + CHAT_MESSAGE_EFFIGY_KILL = 91; + CHAT_MESSAGE_VOICE_TEXT_BANNED_OVERFLOW = 92; + CHAT_MESSAGE_YEAR_BEAST_KILLED = 93; + CHAT_MESSAGE_PAUSE_COUNTDOWN = 94; + CHAT_MESSAGE_COINS_WAGERED = 95; + CHAT_MESSAGE_HERO_NOMINATED_BAN = 96; + CHAT_MESSAGE_HERO_BANNED = 97; + CHAT_MESSAGE_HERO_BAN_COUNT = 98; + CHAT_MESSAGE_RIVER_PAINTED = 99; + CHAT_MESSAGE_SCAN_USED = 100; + CHAT_MESSAGE_SHRINE_KILLED = 101; + CHAT_MESSAGE_WAGER_TOKEN_SPENT = 102; + CHAT_MESSAGE_RANK_WAGER = 103; + CHAT_MESSAGE_NEW_PLAYER_REMINDER = 104; + CHAT_MESSAGE_OBSERVER_WARD_KILLED = 105; + CHAT_MESSAGE_SENTRY_WARD_KILLED = 106; + CHAT_MESSAGE_ITEM_PLACED_IN_NEUTRAL_STASH = 107; + CHAT_MESSAGE_HERO_CHOICE_INVALID = 108; + CHAT_MESSAGE_BOUNTY = 109; + CHAT_MESSAGE_ABILITY_DRAFT_START = 110; + CHAT_MESSAGE_HERO_FOUND_CANDY = 111; + CHAT_MESSAGE_ABILITY_DRAFT_RANDOMED = 112; + CHAT_MESSAGE_PRIVATE_COACH_CONNECTED = 113; + CHAT_MESSAGE_CANT_PAUSE_TOO_EARLY = 115; + CHAT_MESSAGE_HERO_KILL_WITH_PENGUIN = 116; + CHAT_MESSAGE_MINIBOSS_KILL = 117; + CHAT_MESSAGE_PLAYER_IN_GAME_BAN_TEXT = 118; + CHAT_MESSAGE_BANNER_PLANTED = 119; +} + +enum DOTA_NO_BATTLE_POINTS_REASONS { + NO_BATTLE_POINTS_WRONG_LOBBY_TYPE = 1; + NO_BATTLE_POINTS_PRACTICE_BOTS = 2; + NO_BATTLE_POINTS_CHEATS_ENABLED = 3; + NO_BATTLE_POINTS_LOW_PRIORITY = 4; +} + +enum DOTA_CHAT_INFORMATIONAL { + INFO_COOP_BATTLE_POINTS_RULES = 1; + INFO_FROSTIVUS_ABANDON_REMINDER = 2; + INFO_RANKED_REMINDER = 3; + INFO_COOP_LOW_PRIORITY_PASSIVE_REMINDER = 4; + INFO_CUSTOM_GAME_PENALTY_REMINDER = 5; +} + +enum DOTA_ABILITY_PING_TYPE { + ABILITY_PING_READY = 1; + ABILITY_PING_MANA = 2; + ABILITY_PING_COOLDOWN = 3; + ABILITY_PING_ENEMY = 4; + ABILITY_PING_UNLEARNED = 5; + ABILITY_PING_INBACKPACK = 6; + ABILITY_PING_INSTASH = 7; + ABILITY_PING_ONCOURIER = 8; + ABILITY_PING_ALLY = 9; + ABILITY_PING_LEARN_READY = 10; + ABILITY_PING_WILL_LEARN = 11; + ABILITY_PING_FUTURE_LEARN = 12; + ABILITY_PING_NEUTRAL_OFFER = 13; + ABILITY_PING_NEUTRAL_REQUEST = 14; + ABILITY_PING_NEUTRAL_EQUIP = 15; + ABILITY_PING_INCOURIERBACKPACK = 16; +} + +enum DOTA_REPLAY_STATE_EVENT { + DOTA_REPLAY_STATE_EVENT_GAME_START = 1; + DOTA_REPLAY_STATE_EVENT_STARTING_HORN = 2; + DOTA_REPLAY_STATE_EVENT_FIRST_BLOOD = 3; + DOTA_REPLAY_STATE_EVENT_SHOWCASE = 4; + DOTA_REPLAY_STATE_EVENT_POST_GAME = 5; + DOTA_REPLAY_STATE_EVENT_WAIT_FOR_MAP = 6; +} + +enum EDotaEntityMessages { + DOTA_UNIT_SPEECH = 0; + DOTA_UNIT_SPEECH_MUTE = 1; + DOTA_UNIT_ADD_GESTURE = 2; + DOTA_UNIT_REMOVE_GESTURE = 3; + DOTA_UNIT_REMOVE_ALL_GESTURES = 4; + DOTA_UNIT_FADE_GESTURE = 6; + DOTA_UNIT_SPEECH_CLIENTSIDE_RULES = 7; +} + +enum DOTA_OVERHEAD_ALERT { + OVERHEAD_ALERT_GOLD = 0; + OVERHEAD_ALERT_DENY = 1; + OVERHEAD_ALERT_CRITICAL = 2; + OVERHEAD_ALERT_XP = 3; + OVERHEAD_ALERT_BONUS_SPELL_DAMAGE = 4; + OVERHEAD_ALERT_MISS = 5; + OVERHEAD_ALERT_DAMAGE = 6; + OVERHEAD_ALERT_EVADE = 7; + OVERHEAD_ALERT_BLOCK = 8; + OVERHEAD_ALERT_BONUS_POISON_DAMAGE = 9; + OVERHEAD_ALERT_HEAL = 10; + OVERHEAD_ALERT_MANA_ADD = 11; + OVERHEAD_ALERT_MANA_LOSS = 12; + OVERHEAD_ALERT_LAST_HIT_EARLY = 13; + OVERHEAD_ALERT_LAST_HIT_CLOSE = 14; + OVERHEAD_ALERT_LAST_HIT_MISS = 15; + OVERHEAD_ALERT_MAGICAL_BLOCK = 16; + OVERHEAD_ALERT_INCOMING_DAMAGE = 17; + OVERHEAD_ALERT_OUTGOING_DAMAGE = 18; + OVERHEAD_ALERT_DISABLE_RESIST = 19; + OVERHEAD_ALERT_DEATH = 20; + OVERHEAD_ALERT_BLOCKED = 21; + OVERHEAD_ALERT_ITEM_RECEIVED = 22; + OVERHEAD_ALERT_SHARD = 23; + OVERHEAD_ALERT_DEADLY_BLOW = 24; + OVERHEAD_ALERT_FORCE_MISS = 25; +} + +enum DOTA_ROSHAN_PHASE { + k_SRSP_ROSHAN_ALIVE = 0; + k_SRSP_ROSHAN_BASE_TIMER = 1; + k_SRSP_ROSHAN_VISIBLE_TIMER = 2; +} + +enum DOTA_POSITION_CATEGORY { + DOTA_POSITION_NONE = 0; + DOTA_POSITION_BOTTOM_LANE = 1; + DOTA_POSITION_MID_LANE = 2; + DOTA_POSITION_TOP_LANE = 3; + DOTA_POSITION_RADIANT_JUNGLE = 4; + DOTA_POSITION_DIRE_JUNGLE = 5; + DOTA_POSITION_RADIANT_ANCIENTS = 6; + DOTA_POSITION_DIRE_ANCIENTS = 7; + DOTA_POSITION_RADIANT_SECRET_SHOP = 8; + DOTA_POSITION_DIRE_SECRET_SHOP = 9; + DOTA_POSITION_RIVER = 10; + DOTA_POSITION_ROSHAN_PIT = 11; + DOTA_POSITION_RADIANT_BASE = 12; + DOTA_POSITION_DIRE_BASE = 13; + DOTA_POSITION_FOUNTAIN = 14; + DOTA_POSITION_OTHER = 15; +} + +enum DOTA_ABILITY_TARGET_TYPE { + DOTA_ABILITY_TARGET_NONE = 0; + DOTA_ABILITY_TARGET_SELF = 1; + DOTA_ABILITY_TARGET_ALLY_HERO = 2; + DOTA_ABILITY_TARGET_ALLY_CREEP = 3; + DOTA_ABILITY_TARGET_ENEMY_HERO = 4; + DOTA_ABILITY_TARGET_ENEMY_CREEP = 5; +} + +enum EHeroStatType { + k_EHeroStatType_None = 0; + k_EHeroStatType_AxeTotalDamage = 2000; + k_EHeroStatType_BattleHungerDamage = 2001; + k_EHeroStatType_CounterHelixDamage = 2002; + k_EHeroStatType_CullingBladeDamage = 2003; + k_EHeroStatType_BerserkersCallCastCount = 2004; + k_EHeroStatType_BerserkersCallHeroesHitAverage = 2005; + k_EHeroStatType_BerserkersCallOtherUnitsHit = 2006; + k_EHeroStatType_BerserkersCallHeroAttacksTaken = 2007; + k_EHeroStatType_BerserkersCallOtherAttacksTaken = 2008; + k_EHeroStatType_BattleHungerCastCount = 2009; + k_EHeroStatType_BattleHungerPotentialDuration = 2010; + k_EHeroStatType_BattleHungerAverageDuration = 2011; + k_EHeroStatType_CounterHelixProcCount = 2012; + k_EHeroStatType_CounterHelixHeroProcCount = 2013; + k_EHeroStatType_CounterHelixHeroesHitAverage = 2014; + k_EHeroStatType_CounterHelixOtherUnitsHitCount = 2015; + k_EHeroStatType_CullingBladeCastCount = 2016; + k_EHeroStatType_CullingBladeKillCount = 2017; + k_EHeroStatType_CullingBladeAverageHealthCulled = 2018; + k_EHeroStatType_CullingBladeAverageDamageAvailable = 2019; + k_EHeroStatType_CullingBladeHeroBuffAverage = 2020; +} + +enum EPlayerVoiceListenState { + kPVLS_None = 0; + kPVLS_DeniedChatBanned = 1; + kPVLS_DeniedPartner = 2; + kPVLS_DeniedHLTVTalkerNotSpectator = 3; + kPVLS_DeniedHLTVNoTalkerPlayerID = 4; + kPVLS_DeniedHLTVTalkerNotBroadcaster = 5; + kPVLS_DeniedTeamSpectator = 6; + kPVLS_DeniedStudent = 8; + kPVLS_DeniedPrivateCoach = 9; + kPVLS_Denied = 64; + kPVLS_AllowHLTVTalkerIsBroadcaster = 65; + kPVLS_AllowCoBroadcaster = 66; + kPVLS_AllowAllChat = 67; + kPVLS_AllowStudentToCoach = 68; + kPVLS_AllowFellowStudent = 69; + kPVLS_AllowTalkerIsCoach = 70; + kPVLS_AllowCoachHearTeam = 71; + kPVLS_AllowSameTeam = 72; + kPVLS_AllowShowcase = 73; + kPVLS_AllowPrivateCoach = 74; +} + +enum EProjectionEvent { + ePE_FirstBlood = 0; + ePE_Killstreak_godlike = 1; +} + +message CDOTAUserMsg_AIDebugLine { + optional string message = 1; +} + +message CDOTAUserMsg_Ping { + optional uint32 ping = 2; + optional uint32 loss = 3; +} + +message CDOTAUserMsg_SwapVerify { + optional int32 player_id = 1 [default = -1]; +} + +message CDOTAUserMsg_ChatEvent { + required .DOTA_CHAT_MESSAGE type = 1 [default = CHAT_MESSAGE_INVALID]; + optional uint32 value = 2; + optional sint32 playerid_1 = 3 [default = -1]; + optional sint32 playerid_2 = 4 [default = -1]; + optional sint32 playerid_3 = 5 [default = -1]; + optional sint32 playerid_4 = 6 [default = -1]; + optional sint32 playerid_5 = 7 [default = -1]; + optional sint32 playerid_6 = 8 [default = -1]; + optional uint32 value2 = 9; + optional uint32 value3 = 10; +} + +message CDOTAUserMsg_BotChat { + optional int32 player_id = 1 [default = -1]; + optional string message = 3; + optional string target = 4; + optional bool team_only = 5; +} + +message CDOTAUserMsg_CombatHeroPositions { + optional uint32 index = 1; + optional int32 time = 2; + optional .CMsgVector2D world_pos = 3; + optional int32 health = 4; +} + +message CDOTAUserMsg_CombatLogBulkData { + repeated .CMsgDOTACombatLogEntry combat_entries = 1; + optional float timestamp = 2; + optional float duration = 3; + optional int32 player_id = 4 [default = -1]; + optional float request_time = 5; +} + +message CDOTAUserMsg_ProjectileParticleCPData { + optional int32 control_point = 1; + optional .CMsgVector vector = 2; +} + +message CDOTAUserMsg_UpdateLinearProjectileCPData { + optional int32 handle = 1; + optional int32 control_point = 2; + optional .CMsgVector vector = 3; +} + +message CDOTAUserMsg_MiniKillCamInfo { + message Attacker { + message Ability { + optional int32 ability_id = 1 [default = -1]; + optional int32 damage = 2; + } + + optional uint32 attacker = 1 [default = 16777215]; + optional int32 total_damage = 2; + repeated .CDOTAUserMsg_MiniKillCamInfo.Attacker.Ability abilities = 3; + optional string attacker_name = 4; + } + + repeated .CDOTAUserMsg_MiniKillCamInfo.Attacker attackers = 1; +} + +message CDOTAUserMsg_GlobalLightColor { + optional uint32 color = 1; + optional float duration = 2; +} + +message CDOTAUserMsg_GlobalLightDirection { + optional .CMsgVector direction = 1; + optional float duration = 2; +} + +message CDOTAUserMsg_LocationPing { + optional int32 player_id = 1 [default = -1]; + optional .CDOTAMsg_LocationPing location_ping = 2; +} + +message CDOTAUserMsg_PingConfirmation { + optional int32 player_id_of_original_pinger = 1 [default = -1]; + optional uint32 entity_index = 2; + optional uint32 icon_type = 3; + optional .CMsgVector location = 4; +} + +message CDOTAUserMsg_ItemAlert { + optional int32 player_id = 1 [default = -1]; + optional .CDOTAMsg_ItemAlert item_alert = 2; +} + +message CDOTAUserMsg_EnemyItemAlert { + optional int32 player_id = 1 [default = -1]; + optional int32 target_player_id = 2 [default = -1]; + optional int32 item_ability_id = 3 [default = -1]; + optional int32 rune_type = 4 [default = -1]; + optional int32 entity_id = 5; + optional int32 item_level = 6 [default = -1]; + optional int32 primary_charges = 7 [default = -1]; + optional int32 secondary_charges = 8 [default = -1]; +} + +message CDOTAUserMsg_ModifierAlert { + optional int32 player_id = 1 [default = -1]; + optional string class_name = 2; + optional uint32 stack_count = 3; + optional bool is_debuff = 4; + optional int32 target_entindex = 5 [default = -1]; + optional float seconds_remaining = 6; +} + +message CDOTAUserMsg_HPManaAlert { + optional int32 player_id = 1 [default = -1]; + optional int32 target_entindex = 2 [default = -1]; + optional bool show_raw_values = 3; +} + +message CDOTAUserMsg_NeutralCampAlert { + optional int32 player_id = 1 [default = -1]; + optional int32 spawner_entindex = 2 [default = -1]; + optional int32 unit_entindex = 3 [default = -1]; + optional int32 stack_count = 4; + optional int32 camp_type = 5; + optional bool stack_request = 6; + optional bool stack_intention = 7; +} + +message CDOTAUserMsg_GlyphAlert { + optional int32 player_id = 1 [default = -1]; + optional bool negative = 2; +} + +message CDOTAUserMsg_RadarAlert { + optional int32 player_id = 1 [default = -1]; + optional bool negative = 2; +} + +message CDOTAUserMsg_RoshanTimer { + optional int32 player_id = 1 [default = -1]; + optional bool negative = 2; +} + +message CDOTAUserMsg_WillPurchaseAlert { + optional int32 item_ability_id = 1 [default = -1]; + optional int32 player_id = 2 [default = -1]; + optional uint32 gold_remaining = 3; + optional int32 suggestion_player_id = 4 [default = -1]; +} + +message CDOTAUserMsg_EmptyTeleportAlert { + optional int32 source_player_id = 1 [default = -1]; + optional int32 target_player_id = 2 [default = -1]; + optional int32 cooldown_seconds = 3; +} + +message CDOTAUserMsg_MarsArenaOfBloodAttack { + optional uint32 source_ehandle = 1 [default = 16777215]; + optional uint32 target_ehandle = 2 [default = 16777215]; + optional int32 warrior_index = 3; +} + +message CDOTAEntityMsg_InvokerSpellCast { + optional .CEntityMsg entity_msg = 1; + optional int32 cast_activity = 2; +} + +message CDOTAUserMsg_BuyBackStateAlert { + optional int32 player_id = 1 [default = -1]; +} + +message CDOTAUserMsg_QuickBuyAlert { + optional int32 player_id = 1 [default = -1]; + optional int32 item_ability_id = 2 [default = -1]; + optional int32 gold_cost = 3; + optional int32 item_cooldown_seconds = 4; + optional bool show_buyback = 5; +} + +message CDOTAUserMsg_CourierKilledAlert { + message LostItem { + optional int32 item_ability_id = 1 [default = -1]; + optional uint32 quantity = 2; + } + + optional uint32 team = 1; + optional uint32 gold_value = 2; + optional uint32 entity_handle = 3 [default = 16777215]; + optional int32 timestamp = 4; + repeated .CDOTAUserMsg_CourierKilledAlert.LostItem lost_items = 5; + optional int32 killer_player_id = 6 [default = -1]; + optional int32 owning_player_id = 7 [default = -1]; +} + +message CDOTAUserMsg_MinimapEvent { + optional int32 event_type = 1; + optional uint32 entity_handle = 2 [default = 16777215]; + optional int32 x = 3; + optional int32 y = 4; + optional int32 duration = 5; + optional uint32 target_entity_handle = 6 [default = 16777215]; +} + +message CDOTAUserMsg_MapLine { + optional int32 player_id = 1 [default = -1]; + optional .CDOTAMsg_MapLine mapline = 2; +} + +message CDOTAUserMsg_MinimapDebugPoint { + optional .CMsgVector location = 1; + optional uint32 color = 2; + optional int32 size = 3; + optional float duration = 4; + optional int32 index = 5; +} + +message CDOTAUserMsg_CreateLinearProjectile { + optional .CMsgVector origin = 1; + optional .CMsgVector2D velocity = 2; + optional int32 entindex = 4 [default = -1]; + optional uint64 particle_index = 5; + optional int32 handle = 6; + optional .CMsgVector2D acceleration = 7; + optional float max_speed = 8; + optional float fow_radius = 9; + optional bool sticky_fow_reveal = 10; + optional float distance = 11; + optional fixed32 colorgemcolor = 12; + repeated .CDOTAUserMsg_ProjectileParticleCPData particle_cp_data = 13; +} + +message CDOTAUserMsg_DestroyLinearProjectile { + optional int32 handle = 1; +} + +message CDOTAUserMsg_DodgeTrackingProjectiles { + required int32 entindex = 1 [default = -1]; + optional bool attacks_only = 2; +} + +message CDOTAUserMsg_SpectatorPlayerClick { + required int32 entindex = 1 [default = -1]; + optional int32 order_type = 2; + optional int32 target_index = 3 [default = 0]; +} + +message CDOTAUserMsg_SpectatorPlayerUnitOrders { + optional int32 entindex = 1 [default = -1]; + optional int32 order_type = 2; + repeated int32 units = 3; + optional int32 target_index = 4 [default = 0]; + optional int32 ability_id = 5 [default = -1]; + optional .CMsgVector position = 6; + optional bool queue = 7; + optional int32 sequence_number = 8; + optional uint32 flags = 9; +} + +message CDOTAUserMsg_NevermoreRequiem { + optional uint32 entity_handle = 1 [default = 16777215]; + optional int32 lines = 2; + optional .CMsgVector origin = 3; + optional bool reverse = 4; +} + +message CDOTAUserMsg_InvalidCommand { + optional string message = 1; + optional int32 sequence_number = 2; +} + +message CDOTAUserMsg_HudError { + optional int32 order_id = 1; + optional int32 sequence_number = 2; +} + +message CDOTAUserMsg_SharedCooldown { + optional int32 entindex = 1 [default = -1]; + optional string name = 2; + optional float cooldown = 3; + optional int32 name_index = 4; +} + +message CDOTAUserMsg_SetNextAutobuyItem { + optional string name = 1; +} + +message CDOTAUserMsg_HalloweenDrops { + repeated uint32 item_defs = 1; + repeated int32 player_ids = 2; + optional uint32 prize_list = 3; +} + +message CDOTAResponseQuerySerialized { + message Fact { + enum ValueType { + NUMERIC = 1; + STRING = 2; + STRINGTABLE_INDEX = 3; + INT_NUMERIC = 4; + } + + required int32 key = 1; + required .CDOTAResponseQuerySerialized.Fact.ValueType valtype = 2 [default = NUMERIC]; + optional float val_numeric = 3; + optional string val_string = 4; + optional int32 val_stringtable_index = 5; + optional sint32 val_int_numeric = 6; + } + + repeated .CDOTAResponseQuerySerialized.Fact facts = 1; +} + +message CDOTASpeechMatchOnClient { + optional int32 speech_concept = 1; + optional int32 recipient_type = 2; + optional .CDOTAResponseQuerySerialized responsequery = 3; + optional sfixed32 randomseed = 4 [default = 0]; +} + +message CDOTAUserMsg_UnitEvent { + message Interval { + optional float start = 1; + optional float range = 2; + } + + message Speech { + optional int32 speech_concept = 1; + optional string response = 2; + optional int32 recipient_type = 3; + optional bool muteable = 5 [default = false]; + optional .CDOTAUserMsg_UnitEvent.Interval predelay = 6; + optional uint32 flags = 7; + } + + message SpeechMute { + optional float delay = 1 [default = 0.5]; + } + + message AddGesture { + optional int32 activity = 1; + optional int32 slot = 2; + optional float fade_in = 3 [default = 0]; + optional float fade_out = 4 [default = 0.1]; + optional float playback_rate = 5 [default = 1]; + optional int32 sequence_variant = 6; + } + + message RemoveGesture { + optional int32 activity = 1; + } + + message BloodImpact { + optional int32 scale = 1; + optional int32 x_normal = 2; + optional int32 y_normal = 3; + } + + message FadeGesture { + optional int32 activity = 1; + } + + required .EDotaEntityMessages msg_type = 1 [default = DOTA_UNIT_SPEECH]; + required int32 entity_index = 2; + optional .CDOTAUserMsg_UnitEvent.Speech speech = 3; + optional .CDOTAUserMsg_UnitEvent.SpeechMute speech_mute = 4; + optional .CDOTAUserMsg_UnitEvent.AddGesture add_gesture = 5; + optional .CDOTAUserMsg_UnitEvent.RemoveGesture remove_gesture = 6; + optional .CDOTAUserMsg_UnitEvent.BloodImpact blood_impact = 7; + optional .CDOTAUserMsg_UnitEvent.FadeGesture fade_gesture = 8; + optional .CDOTASpeechMatchOnClient speech_match_on_client = 9; +} + +message CDOTAUserMsg_ItemPurchased { + optional int32 item_ability_id = 1 [default = -1]; +} + +message CDOTAUserMsg_ItemSold { + optional int32 item_ability_id = 1 [default = -1]; +} + +message CDOTAUserMsg_ItemFound { + optional int32 player = 1 [default = -1]; + optional int32 quality = 2; + optional int32 rarity = 3; + optional int32 method = 4; + optional uint32 itemdef = 5; +} + +message CDOTAUserMsg_OverheadEvent { + required .DOTA_OVERHEAD_ALERT message_type = 1 [default = OVERHEAD_ALERT_GOLD]; + optional int32 value = 2; + optional int32 target_player_entindex = 3 [default = -1]; + optional int32 target_entindex = 4 [default = -1]; + optional int32 source_player_entindex = 5 [default = -1]; +} + +message CDOTAUserMsg_TutorialTipInfo { + optional string name = 1; + optional int32 progress = 2; +} + +message CDOTAUserMsg_TutorialFinish { + optional string heading = 1; + optional string emblem = 2; + optional string body = 3; + optional bool success = 4; +} + +message CDOTAUserMsg_TutorialMinimapPosition { +} + +message CDOTAUserMsg_SendGenericToolTip { + optional string title = 1; + optional string text = 2; + optional int32 entindex = 3; + optional bool close = 4; +} + +message CDOTAUserMsg_WorldLine { + optional int32 player_id = 1 [default = -1]; + optional .CDOTAMsg_WorldLine worldline = 2; +} + +message CDOTAUserMsg_ChatWheel { + optional uint32 chat_message_id = 1 [default = 4294967295]; + optional int32 player_id = 2 [default = -1]; + optional uint32 account_id = 3; + optional int32 param_hero_id = 4; + optional uint32 emoticon_id = 5; +} + +message CDOTAUserMsg_ReceivedXmasGift { + optional int32 player_id = 1 [default = -1]; + optional string item_name = 2; + optional int32 inventory_slot = 3; +} + +message CDOTAUserMsg_ShowSurvey { + optional int32 survey_id = 1; + optional uint64 match_id = 2; + optional string response_style = 3; + optional int32 teammate_hero_id = 4; + optional string teammate_name = 5; + optional uint32 teammate_account_id = 6; +} + +message CDOTAUserMsg_UpdateSharedContent { + optional int32 slot_type = 1; +} + +message CDOTAUserMsg_TutorialRequestExp { +} + +message CDOTAUserMsg_TutorialFade { + optional int32 tgt_alpha = 1; +} + +message CDOTAUserMsg_TutorialPingMinimap { + optional int32 player_id = 1 [default = -1]; + optional float pos_x = 2; + optional float pos_y = 3; + optional float pos_z = 4; + optional int32 entity_index = 5; +} + +message CDOTAUserMsg_GamerulesStateChanged { + optional uint32 state = 1; +} + +message CDOTAUserMsg_AddQuestLogEntry { + optional string npc_name = 1; + optional string npc_dialog = 2; +} + +message CDOTAUserMsg_SendStatPopup { + optional int32 player_id = 1 [default = -1]; + optional .CDOTAMsg_SendStatPopup statpopup = 2; +} + +message CDOTAUserMsg_DismissAllStatPopups { + optional .CDOTAMsg_DismissAllStatPopups dismissallmsg = 1; +} + +message CDOTAUserMsg_SendRoshanSpectatorPhase { + optional .DOTA_ROSHAN_PHASE phase = 1 [default = k_SRSP_ROSHAN_ALIVE]; + optional int32 phase_start_time = 2; + optional int32 phase_length = 3; +} + +message CDOTAUserMsg_SendRoshanPopup { + optional bool reclaimed = 1; + optional int32 gametime = 2; +} + +message CDOTAUserMsg_SendFinalGold { + repeated uint32 reliable_gold = 1; + repeated uint32 unreliable_gold = 2; +} + +message CDOTAUserMsg_CustomMsg { + optional string message = 1; + optional int32 player_id = 2 [default = -1]; + optional int32 value = 3; +} + +message CDOTAUserMsg_CoachHUDPing { + optional int32 player_id = 1 [default = -1]; + optional .CDOTAMsg_CoachHUDPing hud_ping = 2; +} + +message CDOTAUserMsg_ClientLoadGridNav { +} + +message CDOTAUserMsg_TE_Projectile { + optional uint32 source = 1 [default = 16777215]; + optional uint32 target = 2 [default = 16777215]; + optional int32 move_speed = 3; + optional int32 source_attachment = 4; + optional int64 particle_system_handle = 5; + optional bool dodgeable = 6; + optional bool is_attack = 7; + optional float expire_time = 9; + optional float maximpacttime = 10; + optional fixed32 colorgemcolor = 11; + optional int32 launch_tick = 12; + optional int32 handle = 13; + optional .CMsgVector target_loc = 14; + repeated .CDOTAUserMsg_ProjectileParticleCPData particle_cp_data = 15; + optional int64 additional_particle_system_handle = 16; + optional int32 original_move_speed = 17; + optional uint32 ability = 18 [default = 16777215]; +} + +message CDOTAUserMsg_TE_ProjectileLoc { + optional .CMsgVector source_loc = 1; + optional uint32 target = 2 [default = 16777215]; + optional int32 move_speed = 3; + optional int64 particle_system_handle = 4; + optional bool dodgeable = 5; + optional bool is_attack = 6; + optional float expire_time = 9; + optional .CMsgVector target_loc = 10; + optional fixed32 colorgemcolor = 11; + optional int32 launch_tick = 12; + optional int32 handle = 13; + optional uint32 source = 14 [default = 16777215]; + optional int32 source_attachment = 15; + repeated .CDOTAUserMsg_ProjectileParticleCPData particle_cp_data = 16; + optional int64 additional_particle_system_handle = 17; + optional int32 original_move_speed = 18; +} + +message CDOTAUserMsg_TE_DestroyProjectile { + optional int32 handle = 1; +} + +message CDOTAUserMsg_TE_DotaBloodImpact { + optional uint32 entity = 1 [default = 16777215]; + optional float scale = 2; + optional float xnormal = 3; + optional float ynormal = 4; +} + +message CDOTAUserMsg_AbilityPing { + optional int32 player_id = 1 [default = -1]; + optional int32 ability_id = 2 [default = -1]; + optional .DOTA_ABILITY_PING_TYPE type = 3 [default = ABILITY_PING_READY]; + optional uint32 cooldown_seconds = 4; + optional uint32 level = 5; + optional bool passive = 6; + optional uint32 mana_needed = 7; + optional uint32 entity_id = 8; + optional int32 primary_charges = 9; + optional int32 secondary_charges = 10; + optional bool ctrl_held = 12; + optional float reclaim_time = 13; + optional int32 owner_entity = 14 [default = -1]; +} + +message CDOTAUserMsg_TE_UnitAnimation { + optional uint32 entity = 1 [default = 16777215]; + optional int32 sequence_variant = 2; + optional float playbackrate = 3; + optional float castpoint = 4; + optional int32 type = 5; + optional int32 activity = 6; + optional float lag_compensation_time = 7; +} + +message CDOTAUserMsg_TE_UnitAnimationEnd { + optional uint32 entity = 1 [default = 16777215]; + optional bool snap = 2; +} + +message CDOTAUserMsg_ShowGenericPopup { + required string header = 1; + required string body = 2; + optional string param1 = 3; + optional string param2 = 4; + optional bool tint_screen = 5; + optional bool show_no_other_dialogs = 6; +} + +message CDOTAUserMsg_VoteStart { + optional string title = 1; + optional float duration = 2; + optional int32 choice_count = 3; + repeated string choices = 4; +} + +message CDOTAUserMsg_VoteUpdate { + repeated int32 choice_counts = 1; +} + +message CDOTAUserMsg_VoteEnd { + optional int32 selected_choice = 1; +} + +message CDOTAUserMsg_BoosterStatePlayer { + optional int32 player_id = 1 [default = -1]; + optional float bonus = 2; + optional float event_bonus = 3; + optional uint32 bonus_item_id = 4; + optional uint32 event_bonus_item_id = 5; +} + +message CDOTAUserMsg_BoosterState { + repeated .CDOTAUserMsg_BoosterStatePlayer boosted_players = 1; +} + +message CDOTAUserMsg_AbilitySteal { + optional int32 player_id = 1 [default = -1]; + optional int32 ability_id = 2 [default = -1]; + optional uint32 ability_level = 3; +} + +message CDOTAUserMsg_StatsHeroLookup { + optional int32 player_id = 1 [default = -1]; + optional int32 hero_id = 2; + optional string hero_name = 3; + optional string persona = 4; +} + +message CDOTAUserMsg_StatsHeroPositionInfo { + message PositionPair { + optional .DOTA_POSITION_CATEGORY position_category = 1 [default = DOTA_POSITION_NONE]; + optional uint32 position_count = 2; + } + + optional float average_position = 1; + repeated .CDOTAUserMsg_StatsHeroPositionInfo.PositionPair position_details = 2; +} + +message CDOTAUserMsg_StatsHeroMinuteDetails { + optional uint32 last_hits = 1; + optional uint32 hero_kills = 2; + optional uint32 hero_damage = 3; + optional uint32 tower_damage = 4; + optional .CDOTAUserMsg_StatsHeroPositionInfo position_info = 5; + optional uint32 total_xp = 6; + optional uint32 net_worth = 7; + optional uint32 harvested_creep_gold = 8; + optional uint32 claimed_farm = 9; + optional uint32 wards_placed = 10; + optional uint32 runes_collected = 11; + optional uint32 tps_used = 12; + repeated uint32 mana_spent = 13; + repeated uint32 damage_absorbed = 14; + repeated uint32 damage_done = 15; +} + +message CDOTAUserMsg_StatsTeamMinuteDetails { + message LocationPerformance { + optional uint32 location_category = 1; + optional uint32 stat_type = 2; + optional uint32 value = 3; + } + + repeated .CDOTAUserMsg_StatsHeroMinuteDetails player_stats = 1; + optional uint32 tower_kills = 2; + optional uint32 barrack_kills = 3; + optional uint32 available_lane_creep_gold = 4; + optional uint32 balance_kill_value = 5; + optional uint32 balance_tower_value = 6; + optional uint32 balance_barracks_value = 7; + optional uint32 balance_gold_value = 8; + optional uint32 balance_xp_value = 9; + repeated .CDOTAUserMsg_StatsTeamMinuteDetails.LocationPerformance lane_performance = 10; +} + +message CDOTAUserMsg_StatsPlayerKillShare { + optional int32 player_id = 1 [default = -1]; + optional float kill_share_percent = 2; + optional float player_loc_x = 3; + optional float player_loc_y = 4; + optional float health_percent = 5; + optional float mana_percent = 6; +} + +message CDOTAUserMsg_StatsKillDetails { + optional int32 victim_id = 1 [default = -1]; + repeated .CDOTAUserMsg_StatsPlayerKillShare kill_shares = 2; + optional uint32 damage_to_kill = 3; + optional uint32 effective_health = 4; + optional float death_time = 5; + optional int32 killer_id = 6 [default = -1]; +} + +message CDOTAUserMsg_StatsMatchDetails { + message CDOTAUserMsg_StatsFightTeamDetails { + repeated int32 participants = 1; + repeated int32 deaths = 2; + optional uint32 gold_delta = 3; + optional uint32 xp_delta = 4; + } + + message CDOTAUserMsg_StatsFightDetails { + optional float start_time = 1; + optional float end_time = 2; + optional .CDOTAUserMsg_StatsMatchDetails.CDOTAUserMsg_StatsFightTeamDetails radiant_fight_details = 3; + optional .CDOTAUserMsg_StatsMatchDetails.CDOTAUserMsg_StatsFightTeamDetails dire_fight_details = 4; + } + + repeated .CDOTAUserMsg_StatsHeroLookup hero_lookup = 1; + repeated .CDOTAUserMsg_StatsTeamMinuteDetails radiant_stats = 2; + repeated .CDOTAUserMsg_StatsTeamMinuteDetails dire_stats = 3; + repeated .CDOTAUserMsg_StatsKillDetails radiant_kills = 4; + repeated .CDOTAUserMsg_StatsKillDetails dire_kills = 5; + repeated .CDOTAUserMsg_StatsMatchDetails.CDOTAUserMsg_StatsFightDetails fight_details = 6; +} + +message CDOTAUserMsg_MiniTaunt { + optional int32 taunting_player_id = 1 [default = -1]; +} + +message CDOTAUserMsg_SpeechBubble { + optional bool destroy_all = 1; +} + +message CDOTAUserMsg_CustomHeaderMessage { + optional int32 player_id = 1 [default = -1]; + optional float duration = 2; + optional string message = 3; + optional int32 value = 4; +} + +message CMsgHeroAbilityStat { + optional .EHeroStatType stat_type = 1 [default = k_EHeroStatType_None]; + optional int32 int_value = 2; + optional float float_value = 3; +} + +message CMsgCombatAnalyzerPlayerStat { + optional uint32 account_id = 1; + repeated .CMsgHeroAbilityStat hero_ability_stats = 2; +} + +message CMsgCombatAnalyzerStats { + optional uint64 match_id = 1; + repeated .CMsgCombatAnalyzerPlayerStat player_stats = 2; +} + +message CDOTAUserMsg_BeastChat { + optional uint32 team = 1; + optional string format = 2; + optional string message = 3; + optional string target = 4; +} + +message CDOTAUserMsg_CustomHudElement_Create { + optional string element_id = 1; + optional string layout_filename = 2; + optional bytes data = 3; +} + +message CDOTAUserMsg_CustomHudElement_Modify { + optional string element_id = 1; + optional bool modify_visible = 2; + optional bytes data = 3; +} + +message CDOTAUserMsg_CustomHudElement_Destroy { + optional string element_id = 1; +} + +message CDOTAUserMsg_CompendiumStatePlayer { + optional int32 player_id = 1 [default = -1]; + optional uint32 level = 2; +} + +message CDOTAUserMsg_CompendiumState { + repeated .CDOTAUserMsg_CompendiumStatePlayer compendium_players = 1; +} + +message CDOTAUserMsg_ProjectionAbility { + optional int32 ability_id = 1 [default = -1]; + optional int32 caster_ent_index = 2 [default = -1]; + optional int32 caster_team = 3; + optional bool channel_end = 4; + optional .CMsgVector origin = 5; + optional bool track_caster_only = 6; + optional float end_time = 7; + optional int32 victim_ent_index = 8 [default = -1]; +} + +message CDOTAUserMsg_ProjectionEvent { + optional .EProjectionEvent event_id = 1 [default = ePE_FirstBlood]; + optional uint32 team = 2; +} + +message CDOTAUserMsg_XPAlert { + optional int32 player_id = 1 [default = -1]; + optional int32 target_entindex = 2 [default = -1]; +} + +message CDOTAUserMsg_TalentTreeAlert { + optional int32 player_id = 1 [default = -1]; + optional int32 target_entindex = 2 [default = -1]; + optional int32 ability_id = 3 [default = -1]; + optional int32 slot = 4; + optional bool learned = 5; +} + +message CDOTAUserMsg_UpdateQuestProgress { +} + +message CDOTAUserMsg_QuestStatus { + required int32 player_id = 1 [default = -1]; + optional uint32 quest_id = 2; + optional uint32 challenge_id = 3; + optional uint32 progress = 4; + optional uint32 goal = 5; + optional uint32 query = 6; + optional float fail_gametime = 7; + optional int32 item_ability_id = 8 [default = -1]; +} + +message CDOTAUserMsg_SuggestHeroPick { + required int32 player_id = 1 [default = -1]; + optional int32 hero_id = 2; + optional bool ban = 3; + optional uint32 facet_id = 4; +} + +message CDOTAUserMsg_SuggestHeroRole { + required int32 player_id = 1 [default = -1]; + optional string hero_role = 2; +} + +message CDOTAUserMsg_KillcamDamageTaken { + required int32 player_id = 1 [default = -1]; + optional uint32 damage_taken = 2; + optional uint32 item_type = 3; + optional int32 item_ability_id = 4 [default = -1]; + optional string hero_name = 5; + optional string damage_color = 6; +} + +message CDOTAUserMsg_SelectPenaltyGold { + required int32 player_id = 1 [default = -1]; + optional sint32 cost = 2; +} + +message CDOTAUserMsg_RollDiceResult { + optional int32 player_id = 1 [default = -1]; + optional uint32 channel_type = 2; + optional uint32 roll_min = 3; + optional uint32 roll_max = 4; + optional uint32 result = 5; +} + +message CDOTAUserMsg_FlipCoinResult { + optional int32 player_id = 1 [default = -1]; + optional uint32 channel_type = 2; + optional bool result = 3; +} + +message CDOTAUserMessage_RequestItemSuggestions { + optional int32 player_id = 1 [default = -1]; +} + +message CDOTAUserMessage_TeamCaptainChanged { + optional uint32 team = 1; + optional int32 captain_player_id = 2 [default = -1]; +} + +message CDOTAUserMsg_ChatWheelCooldown { + optional uint32 message_id = 1 [default = 4294967295]; + optional float cooldown_remaining = 2; +} + +message CDOTAUserMsg_HeroRelicProgress { + optional uint32 hero_relic_type = 1; + optional uint32 value = 2; + optional uint32 ehandle = 3 [default = 16777215]; + optional uint32 event_id = 4; + optional float value_display = 5; +} + +message CDOTAUserMsg_AbilityDraftRequestAbility { + optional int32 player_id = 1 [default = -1]; + optional int32 requested_ability_id = 2 [default = -1]; + optional bool ctrl_is_down = 3; +} + +message CDOTAUserMsg_DamageReport { + optional int32 player_id = 1 [default = -1]; + optional int32 target_hero_id = 2; + optional int32 source_hero_id = 3; + optional int32 damage_amount = 4; + optional bool broadcast = 5; +} + +message CDOTAUserMsg_SalutePlayer { + optional int32 source_player_id = 1 [default = -1]; + optional int32 target_player_id = 2 [default = -1]; + optional uint32 tip_amount = 3; + optional uint32 event_id = 4; + optional string custom_tip_style = 5; + optional uint32 num_recent_tips = 6; +} + +message CDOTAUserMsg_GiftPlayer { + optional int32 source_player_id = 1 [default = -1]; + optional int32 target_player_id = 2 [default = -1]; + optional uint32 gift_item_def_index = 3; +} + +message CDOTAUserMsg_TipAlert { + optional int32 player_id = 1 [default = -1]; + optional string tip_text = 2; +} + +message CDOTAUserMsg_ReplaceQueryUnit { + required int32 player_id = 1 [default = -1]; + optional int32 source_entindex = 2 [default = -1]; + optional int32 target_entindex = 3 [default = -1]; +} + +message CDOTAUserMsg_ESArcanaCombo { + optional uint32 ehandle = 1 [default = 16777215]; + optional uint32 combo_count = 2; + optional uint32 arcana_level = 3; +} + +message CDOTAUserMsg_ESArcanaComboSummary { + optional uint32 ehandle = 1 [default = 16777215]; + optional uint32 combo_count = 2; + optional uint32 damage_amount = 3; +} + +message CDOTAUserMsg_OMArcanaCombo { + optional uint32 ehandle = 1 [default = 16777215]; + optional uint32 multicast_amount = 2; + optional uint32 arcana_level = 3; + optional uint32 multicast_chance = 4; +} + +message CDOTAUserMsg_HighFiveCompleted { + optional int32 player_id_1 = 1 [default = -1]; + optional int32 player_id_2 = 2 [default = -1]; + optional bool special_high_five = 3; + optional int32 special_entindex = 4 [default = -1]; +} + +message CDOTAUserMsg_HighFiveLeftHanging { + optional int32 player_id = 1 [default = -1]; +} + +message CDOTAUserMsg_ShovelUnearth { + optional int32 player_id = 1 [default = -1]; + optional bool all_chat = 2; + optional string locstring = 3; + optional uint32 quantity = 4; +} + +message CDOTAUserMsg_AllStarEvent { + message PlayerScore { + optional int32 player_id = 1 [default = -1]; + optional uint32 score_sans_kda = 2; + } + + optional int32 source_player_id = 1 [default = -1]; + optional int32 target_player_id = 2 [default = -1]; + optional uint32 point_amount = 3; + optional uint32 event_id = 4; + repeated .CDOTAUserMsg_AllStarEvent.PlayerScore player_scores = 5; +} + +message CDOTAUserMsg_QueuedOrderRemoved { + repeated uint32 unit_order_sequence = 1; +} + +message CDOTAUserMsg_DebugChallenge { + required uint32 challenge_type = 1; + required uint32 challenge_query_id = 2; + required uint32 event_id = 3; + optional uint32 instance_id = 4; + optional uint32 challenge_var_0 = 5; + optional uint32 challenge_var_1 = 6; + optional uint32 challenge_max_rank = 7; +} + +message CDOTAUserMsg_FoundNeutralItem { + optional int32 player_id = 1 [default = -1]; + optional int32 item_ability_id = 2 [default = -1]; + optional uint32 item_tier = 3; + optional uint32 tier_item_count = 4; +} + +message CDOTAUserMsg_OutpostCaptured { + optional int32 outpost_entindex = 1 [default = -1]; + optional uint32 team_id = 2; +} + +message CDOTAUserMsg_OutpostGrantedXP { + optional uint32 team_id = 1; + optional uint32 xp_amount = 2; +} + +message CDOTAUserMsg_MoveCameraToUnit { + optional uint32 unit_ehandle = 1 [default = 16777215]; +} + +message CDOTAUserMsg_PauseMinigameData { + message DataBit { + optional uint32 index = 1; + optional int32 data = 2; + optional int64 data_extra = 3; + } + + repeated .CDOTAUserMsg_PauseMinigameData.DataBit data_bits = 1; +} + +message CDOTAUserMsg_VersusScene_PlayerBehavior { + optional int32 player_id = 1 [default = -1]; + optional .EDOTAVersusScenePlayerBehavior behavior = 2 [default = VS_PLAYER_BEHAVIOR_PLAY_ACTIVITY]; + optional .VersusScene_PlayActivity play_activity = 3; + optional .VersusScene_ChatWheel chat_wheel = 4; + optional .VersusScene_PlaybackRate playback_rate = 5; +} + +message CDOTAUserMsg_QoP_ArcanaSummary { + optional uint32 ehandle = 1 [default = 16777215]; + optional uint32 arcana_level = 2; + optional uint32 players_hit = 3; + optional uint32 players_killed = 4; +} + +message CDOTAUserMsg_HotPotato_Created { + optional int32 player_id_1 = 1 [default = -1]; + optional int32 player_id_2 = 2 [default = -1]; +} + +message CDOTAUserMsg_HotPotato_Exploded { + optional int32 player_id = 1 [default = -1]; +} + +message CDOTAUserMsg_WK_Arcana_Progress { + optional uint32 ehandle = 1 [default = 16777215]; + optional uint32 arcana_level = 2; + optional int32 hero_id = 3; +} + +message CDOTAUserMsg_GuildChallenge_Progress { + message PlayerProgress { + optional int32 player_id = 1 [default = -1]; + optional uint32 progress = 6; + } + + enum EChallengeType { + k_EChallengeType_Invalid = 0; + k_EChallengeType_Cooperative = 1; + k_EChallengeType_Contract = 2; + } + + repeated .CDOTAUserMsg_GuildChallenge_Progress.PlayerProgress player_progress = 1; + optional uint32 guild_id = 2; + optional uint32 challenge_instance_id = 3; + optional uint32 challenge_parameter = 4; + optional .CDOTAUserMsg_GuildChallenge_Progress.EChallengeType challenge_type = 5 [default = k_EChallengeType_Invalid]; + optional uint32 challenge_progress_at_start = 7; + optional bool complete = 8; +} + +message CDOTAUserMsg_WRArcanaProgress { + optional uint32 ehandle = 1 [default = 16777215]; + optional uint32 target_ehandle = 2 [default = 16777215]; + optional uint32 arrows_landed = 3; + optional uint32 damage_dealt = 4; + optional uint32 target_hp = 5; + optional uint32 target_max_hp = 6; + optional uint32 arcana_level = 7; +} + +message CDOTAUserMsg_WRArcanaSummary { + optional uint32 ehandle = 1 [default = 16777215]; + optional uint32 target_ehandle = 2 [default = 16777215]; + optional uint32 arrows_landed = 3; + optional uint32 damage_dealt = 4; + optional uint32 target_hp = 5; + optional uint32 target_max_hp = 6; + optional uint32 arcana_level = 7; + optional bool success = 8; +} + +message CDOTAUserMsg_EmptyItemSlotAlert { + optional int32 source_player_id = 1 [default = -1]; + optional int32 target_player_id = 2 [default = -1]; + optional int32 slot_index = 3; + optional int32 cooldown_seconds = 4; +} + +message CDOTAUserMsg_AghsStatusAlert { + optional int32 source_player_id = 1 [default = -1]; + optional int32 target_player_id = 2 [default = -1]; + optional int32 target_entindex = 3 [default = -1]; + optional uint32 alert_type = 4; + optional bool has_scepter = 5; + optional bool has_shard = 6; +} + +message CDOTAUserMsg_MutedPlayers { + repeated int32 text_muted_player_ids = 1; + repeated int32 voice_muted_player_ids = 2; +} + +message CDOTAUserMsg_ContextualTip { + optional int32 tip_id = 1; + repeated string referenced_abilities = 2; + repeated string referenced_units = 3; + repeated string panorama_classes = 4; + optional bool force_annotation = 5; + optional int32 variant = 6; + optional int32 int_param = 7; + optional int32 int_param2 = 8; + optional float float_param = 9; + optional float float_param2 = 10; + optional string string_param = 11; + optional string string_param2 = 12; + optional string tip_text_override = 13; + optional string tip_annotation_override = 14; + optional string panorama_snippet = 15; +} + +message CDOTAUserMsg_ChatMessage { + optional int32 source_player_id = 1 [default = -1]; + optional uint32 channel_type = 2; + optional string message_text = 3; +} + +message CDOTAUserMsg_RockPaperScissorsStarted { + optional int32 player_id_source = 1 [default = -1]; + optional int32 player_id_target = 2 [default = -1]; +} + +message CDOTAUserMsg_RockPaperScissorsFinished { + optional int32 player_id_1 = 1 [default = -1]; + optional int32 player_id_2 = 2 [default = -1]; + optional int32 player_1_choice = 3; + optional int32 player_2_choice = 4; +} + +message CDOTAUserMsg_DuelOpponentKilled { + optional int32 player_id_winner = 1; + optional int32 player_id_loser = 2; +} + +message CDOTAUserMsg_DuelAccepted { + optional int32 player_id_1 = 1; + optional int32 player_id_2 = 2; +} + +message CDOTAUserMsg_DuelRequested { + optional int32 player_id_requestor = 1 [default = -1]; +} + +message CDOTAUserMsg_MuertaReleaseEvent_AssignedTargetKilled { + required int32 player_id_killer = 1 [default = -1]; + required int32 player_id_target = 2 [default = -1]; + required int32 points = 3; + required int32 points_total = 4; + required bool last_hit = 5; +} + +message CDOTAUserMsg_PlayerDraftSuggestPick { + optional int32 player_id = 1 [default = -1]; + optional int32 suggestion_player_id = 2 [default = -1]; +} + +message CDOTAUserMsg_PlayerDraftPick { + optional int32 player_id_captain = 1 [default = -1]; + optional int32 player_id_target = 2 [default = -1]; + optional int32 team = 3; +} + +message CDOTAUserMsg_FacetPing { + optional int32 player_id = 1 [default = -1]; + optional uint32 facet_strhash = 2; + optional uint32 entity_id = 3; + optional bool all_chat = 4; +} + +message CDOTAUserMsg_InnatePing { + optional int32 player_id = 1 [default = -1]; + optional uint32 entity_id = 2; + optional bool all_chat = 3; +} diff --git a/Protobufs/dota2/econ_gcmessages.proto b/Protobufs/dota2/econ_gcmessages.proto new file mode 100644 index 0000000..167e800 --- /dev/null +++ b/Protobufs/dota2/econ_gcmessages.proto @@ -0,0 +1,1077 @@ +import "steammessages.proto"; +import "econ_shared_enums.proto"; +import "gcsdk_gcmessages.proto"; +import "base_gcmessages.proto"; + +enum EGCItemMsg { + k_EMsgGCBase = 1000; + k_EMsgGCSetItemPosition = 1001; + k_EMsgClientToGCPackBundle = 1002; + k_EMsgClientToGCPackBundleResponse = 1003; + k_EMsgGCDelete = 1004; + k_EMsgGCVerifyCacheSubscription = 1005; + k_EMsgClientToGCNameItem = 1006; + k_EMsgGCPaintItem = 1009; + k_EMsgGCPaintItemResponse = 1010; + k_EMsgGCNameBaseItem = 1019; + k_EMsgGCNameBaseItemResponse = 1020; + k_EMsgGCUseItemRequest = 1025; + k_EMsgGCUseItemResponse = 1026; + k_EMsgGCGiftedItems = 1027; + k_EMsgGCUnwrapGiftRequest = 1037; + k_EMsgGCUnwrapGiftResponse = 1038; + k_EMsgGCSortItems = 1041; + k_EMsgGCBackpackSortFinished = 1058; + k_EMsgGCAdjustItemEquippedState = 1059; + k_EMsgGCItemAcknowledged = 1062; + k_EMsgClientToGCNameItemResponse = 1068; + k_EMsgGCApplyStrangePart = 1073; + k_EMsgGCApplyPennantUpgrade = 1076; + k_EMsgGCSetItemPositions = 1077; + k_EMsgGCApplyEggEssence = 1078; + k_EMsgGCNameEggEssenceResponse = 1079; + k_EMsgGCExtractGems = 1086; + k_EMsgGCAddSocket = 1087; + k_EMsgGCAddItemToSocket = 1088; + k_EMsgGCAddItemToSocketResponse = 1089; + k_EMsgGCAddSocketResponse = 1090; + k_EMsgGCResetStrangeGemCount = 1091; + k_EMsgGCRequestCrateItems = 1092; + k_EMsgGCRequestCrateItemsResponse = 1093; + k_EMsgGCExtractGemsResponse = 1094; + k_EMsgGCResetStrangeGemCountResponse = 1095; + k_EMsgGCServerUseItemRequest = 1103; + k_EMsgGCAddGiftItem = 1104; + k_EMsgSQLGCToGCRevokeUntrustedGift = 1105; + k_EMsgClientToGCRemoveItemGifterAttributes = 1109; + k_EMsgClientToGCRemoveItemName = 1110; + k_EMsgClientToGCRemoveItemDescription = 1111; + k_EMsgClientToGCRemoveItemAttributeResponse = 1112; + k_EMsgGCDev_NewItemRequest = 2001; + k_EMsgGCDev_NewItemRequestResponse = 2002; + k_EMsgGCDev_UnlockAllItemStylesRequest = 2003; + k_EMsgGCDev_UnlockAllItemStylesResponse = 2004; + k_EMsgGCStorePurchaseFinalize = 2504; + k_EMsgGCStorePurchaseFinalizeResponse = 2505; + k_EMsgGCStorePurchaseCancel = 2506; + k_EMsgGCStorePurchaseCancelResponse = 2507; + k_EMsgGCStorePurchaseInit = 2510; + k_EMsgGCStorePurchaseInitResponse = 2511; + k_EMsgGCToGCBannedWordListUpdated = 2515; + k_EMsgGCToGCDirtySDOCache = 2516; + k_EMsgGCToGCUpdateSQLKeyValue = 2518; + k_EMsgGCToGCBroadcastConsoleCommand = 2521; + k_EMsgGCServerVersionUpdated = 2522; + k_EMsgGCApplyAutograph = 2523; + k_EMsgGCToGCWebAPIAccountChanged = 2524; + k_EMsgGCClientVersionUpdated = 2528; + k_EMsgGCToGCUpdateWelcomeMsg = 2529; + k_EMsgGCToGCPlayerStrangeCountAdjustments = 2535; + k_EMsgGCRequestStoreSalesData = 2536; + k_EMsgGCRequestStoreSalesDataResponse = 2537; + k_EMsgGCRequestStoreSalesDataUpToDateResponse = 2538; + k_EMsgGCToGCPingRequest = 2539; + k_EMsgGCToGCPingResponse = 2540; + k_EMsgGCToGCGetUserSessionServer = 2541; + k_EMsgGCToGCGetUserSessionServerResponse = 2542; + k_EMsgGCToGCGetUserServerMembers = 2543; + k_EMsgGCToGCGetUserServerMembersResponse = 2544; + k_EMsgGCToGCCanUseDropRateBonus = 2547; + k_EMsgSQLAddDropRateBonus = 2548; + k_EMsgGCToGCRefreshSOCache = 2549; + k_EMsgGCToGCGrantAccountRolledItems = 2554; + k_EMsgGCToGCGrantSelfMadeItemToAccount = 2555; + k_EMsgGCStatueCraft = 2561; + k_EMsgGCRedeemCode = 2562; + k_EMsgGCRedeemCodeResponse = 2563; + k_EMsgGCToGCItemConsumptionRollback = 2564; + k_EMsgClientToGCWrapAndDeliverGift = 2565; + k_EMsgClientToGCWrapAndDeliverGiftResponse = 2566; + k_EMsgClientToGCUnpackBundleResponse = 2567; + k_EMsgGCToClientStoreTransactionCompleted = 2568; + k_EMsgClientToGCEquipItems = 2569; + k_EMsgClientToGCEquipItemsResponse = 2570; + k_EMsgClientToGCUnlockItemStyle = 2571; + k_EMsgClientToGCUnlockItemStyleResponse = 2572; + k_EMsgClientToGCSetItemInventoryCategory = 2573; + k_EMsgClientToGCUnlockCrate = 2574; + k_EMsgClientToGCUnlockCrateResponse = 2575; + k_EMsgClientToGCUnpackBundle = 2576; + k_EMsgClientToGCSetItemStyle = 2577; + k_EMsgClientToGCSetItemStyleResponse = 2578; + k_EMsgSQLGCToGCGrantBackpackSlots = 2580; + k_EMsgClientToGCLookupAccountName = 2581; + k_EMsgClientToGCLookupAccountNameResponse = 2582; + k_EMsgClientToGCCreateStaticRecipe = 2584; + k_EMsgClientToGCCreateStaticRecipeResponse = 2585; + k_EMsgGCToGCStoreProcessCDKeyTransaction = 2586; + k_EMsgGCToGCStoreProcessCDKeyTransactionResponse = 2587; + k_EMsgGCToGCStoreProcessSettlement = 2588; + k_EMsgGCToGCStoreProcessSettlementResponse = 2589; + k_EMsgGCToGCConsoleOutput = 2590; + k_EMsgGCToClientItemAges = 2591; + k_EMsgGCToGCInternalTestMsg = 2592; + k_EMsgGCToGCClientServerVersionsUpdated = 2593; + k_EMsgGCUseMultipleItemsRequest = 2594; + k_EMsgGCGetAccountSubscriptionItem = 2595; + k_EMsgGCGetAccountSubscriptionItemResponse = 2596; + k_EMsgGCToGCBroadcastMessageFromSub = 2598; + k_EMsgGCToClientCurrencyPricePoints = 2599; + k_EMsgGCToGCAddSubscriptionTime = 2600; + k_EMsgGCToGCFlushSteamInventoryCache = 2601; + k_EMsgGCRequestCrateEscalationLevel = 2602; + k_EMsgGCRequestCrateEscalationLevelResponse = 2603; + k_EMsgGCToGCUpdateSubscriptionItems = 2604; + k_EMsgGCToGCSelfPing = 2605; + k_EMsgGCToGCGetInfuxIntervalStats = 2606; + k_EMsgGCToGCGetInfuxIntervalStatsResponse = 2607; + k_EMsgGCToGCPurchaseSucceeded = 2608; + k_EMsgClientToGCGetLimitedItemPurchaseQuantity = 2609; + k_EMsgClientToGCGetLimitedItemPurchaseQuantityResponse = 2610; + k_EMsgGCToGCBetaDeleteItems = 2611; + k_EMsgClientToGCGetInFlightItemCharges = 2612; + k_EMsgClientToGCGetInFlightItemChargesResponse = 2613; + k_EMsgGCToClientInFlightChargesUpdated = 2614; + k_EMsgClientToGCPurchaseChargeCostItems = 2615; + k_EMsgClientToGCPurchaseChargeCostItemsResponse = 2616; + k_EMsgClientToGCCancelUnfinalizedTransactions = 2617; + k_EMsgClientToGCCancelUnfinalizedTransactionsResponse = 2618; +} + +enum EGCMsgInitiateTradeResponse { + k_EGCMsgInitiateTradeResponse_Accepted = 0; + k_EGCMsgInitiateTradeResponse_Declined = 1; + k_EGCMsgInitiateTradeResponse_VAC_Banned_Initiator = 2; + k_EGCMsgInitiateTradeResponse_VAC_Banned_Target = 3; + k_EGCMsgInitiateTradeResponse_Target_Already_Trading = 4; + k_EGCMsgInitiateTradeResponse_Disabled = 5; + k_EGCMsgInitiateTradeResponse_NotLoggedIn = 6; + k_EGCMsgInitiateTradeResponse_Cancel = 7; + k_EGCMsgInitiateTradeResponse_TooSoon = 8; + k_EGCMsgInitiateTradeResponse_TooSoonPenalty = 9; + k_EGCMsgInitiateTradeResponse_Trade_Banned_Initiator = 10; + k_EGCMsgInitiateTradeResponse_Trade_Banned_Target = 11; + k_EGCMsgInitiateTradeResponse_Free_Account_Initiator_DEPRECATED = 12; + k_EGCMsgInitiateTradeResponse_Shared_Account_Initiator = 13; + k_EGCMsgInitiateTradeResponse_Service_Unavailable = 14; + k_EGCMsgInitiateTradeResponse_Target_Blocked = 15; + k_EGCMsgInitiateTradeResponse_NeedVerifiedEmail = 16; + k_EGCMsgInitiateTradeResponse_NeedSteamGuard = 17; + k_EGCMsgInitiateTradeResponse_SteamGuardDuration = 18; + k_EGCMsgInitiateTradeResponse_TheyCannotTrade = 19; + k_EGCMsgInitiateTradeResponse_Recent_Password_Reset = 20; + k_EGCMsgInitiateTradeResponse_Using_New_Device = 21; + k_EGCMsgInitiateTradeResponse_Sent_Invalid_Cookie = 22; + k_EGCMsgInitiateTradeResponse_TooRecentFriend = 23; + k_EGCMsgInitiateTradeResponse_WalledFundsNotTrusted = 24; +} + +message CMsgApplyAutograph { + optional uint64 autograph_item_id = 1; + optional uint64 item_item_id = 2; +} + +message CMsgAdjustItemEquippedState { + optional uint64 item_id = 1; + optional uint32 new_class = 2; + optional uint32 new_slot = 3; + optional uint32 style_index = 4 [default = 255]; +} + +message CMsgEconPlayerStrangeCountAdjustment { + message CStrangeCountAdjustment { + optional uint32 event_type = 1; + optional uint64 item_id = 2; + optional uint32 adjustment = 3; + } + + optional uint32 account_id = 1; + repeated .CMsgEconPlayerStrangeCountAdjustment.CStrangeCountAdjustment strange_count_adjustments = 2; + optional bool turbo_mode = 3; +} + +message CMsgCraftingResponse { + repeated uint64 item_ids = 1; +} + +message CMsgGCRequestStoreSalesData { + optional uint32 version = 1; + optional uint32 currency = 2; +} + +message CMsgGCRequestStoreSalesDataResponse { + message Price { + optional uint32 item_def = 1; + optional uint32 price = 2; + } + + repeated .CMsgGCRequestStoreSalesDataResponse.Price sale_price = 1; + optional uint32 version = 2; + optional uint32 expiration_time = 3; +} + +message CMsgGCRequestStoreSalesDataUpToDateResponse { + optional uint32 version = 1; + optional uint32 expiration_time = 2; +} + +message CMsgGCToGCPingRequest { +} + +message CMsgGCToGCPingResponse { +} + +message CMsgGCToGCGetUserSessionServer { + optional uint32 account_id = 1; +} + +message CMsgGCToGCGetUserSessionServerResponse { + optional fixed64 server_steam_id = 1; + optional bool is_online = 2; +} + +message CMsgGCToGCGetUserServerMembers { + optional uint32 account_id = 1; + optional uint32 max_spectators = 2; +} + +message CMsgGCToGCGetUserServerMembersResponse { + repeated uint32 member_account_id = 1; +} + +message CMsgLookupMultipleAccountNames { + repeated uint32 accountids = 1 [packed = true]; +} + +message CMsgLookupMultipleAccountNamesResponse { + message Account { + optional uint32 accountid = 1; + optional string persona = 2; + } + + repeated .CMsgLookupMultipleAccountNamesResponse.Account accounts = 1; +} + +message CMsgRequestCrateItems { + optional uint32 crate_item_def = 1; +} + +message CMsgRequestCrateItemsResponse { + enum EResult { + k_Succeeded = 0; + k_Failed = 1; + } + + optional uint32 response = 1; + repeated uint32 item_defs = 2; + repeated uint32 peek_item_defs = 3; + repeated .CSOEconItem peek_items = 4; +} + +message CMsgRequestCrateEscalationLevel { + optional uint32 crate_item_def = 1; +} + +message CMsgRequestCrateEscalationLevelResponse { + enum EResult { + k_Succeeded = 0; + k_Failed = 1; + } + + optional uint32 response = 1; + optional uint32 escalation_level0 = 2; + optional uint32 escalation_level1 = 3; + optional uint32 escalation_level2 = 4; + optional uint32 escalation_level3 = 5; +} + +message CMsgGCToGCCanUseDropRateBonus { + optional uint32 account_id = 1; + optional float drop_rate_bonus = 2; + optional uint32 booster_type = 3; + optional uint32 exclusive_item_def = 4; + optional bool allow_equal_rate = 5; +} + +message CMsgSQLAddDropRateBonus { + optional uint32 account_id = 1; + optional uint64 item_id = 2; + optional uint32 item_def = 3; + optional float drop_rate_bonus = 4; + optional uint32 booster_type = 5; + optional uint32 seconds_duration = 6; + optional uint32 end_time_stamp = 7; +} + +message CMsgSQLUpgradeBattleBooster { + optional uint32 account_id = 1; + optional uint32 item_def = 2; + optional float bonus_to_add = 3; + optional uint32 booster_type = 4; +} + +message CMsgGCToGCRefreshSOCache { + optional uint32 account_id = 1; + optional bool reload = 2; +} + +message CMsgGCToGCAddSubscriptionTime { + optional uint32 account_id = 1; + repeated uint32 matching_subscription_def_indexes = 2; + optional uint32 additional_seconds = 3; +} + +message CMsgGCToGCGrantAccountRolledItems { + message Item { + message DynamicAttribute { + optional string name = 1; + optional uint32 value_uint32 = 2; + optional float value_float = 3; + optional string value_string = 4; + } + + message AdditionalAuditEntry { + optional uint32 owner_account_id = 1; + optional uint32 audit_action = 2; + optional uint64 audit_data = 3; + } + + optional uint32 item_def = 1; + repeated string loot_lists = 2; + optional bool ignore_limit = 3; + optional uint32 origin = 4; + repeated .CMsgGCToGCGrantAccountRolledItems.Item.DynamicAttribute dynamic_attributes = 5; + repeated .CMsgGCToGCGrantAccountRolledItems.Item.AdditionalAuditEntry additional_audit_entries = 6; + optional uint32 inventory_token = 7; + optional int32 quality = 8 [default = -1]; + } + + optional uint32 account_id = 1; + repeated .CMsgGCToGCGrantAccountRolledItems.Item items = 2; + optional uint32 audit_action = 3; + optional uint64 audit_data = 4; +} + +message CMsgGCToGCBetaDeleteItems { + optional uint32 account_id = 1; + repeated uint64 item_ids = 2; + repeated uint32 item_defs = 3; +} + +message CMsgGCToGCGrantSelfMadeItemToAccount { + optional uint32 item_def_index = 1; + optional uint32 accountid = 2; +} + +message CMsgUseItem { + optional uint64 item_id = 1; + optional fixed64 target_steam_id = 2; + repeated uint32 gift__potential_targets = 3; + optional uint32 duel__class_lock = 4; + optional uint64 initiator_steam_id = 5; + optional bool itempack__ack_immediately = 6; +} + +message CMsgServerUseItem { + optional uint32 initiator_account_id = 1; + optional .CMsgUseItem use_item_msg = 2; +} + +message CMsgUseMultipleItems { + repeated uint64 item_ids = 1; +} + +message CGCStoreRechargeRedirect_LineItem { + optional uint32 item_def_id = 1; + optional uint32 quantity = 2; +} + +message CMsgGCEconSQLWorkItemEmbeddedRollbackData { + optional uint32 account_id = 1; + optional uint64 deleted_item_id = 2; + optional uint32 old_audit_action = 3; + optional uint32 new_audit_action = 4; + optional uint32 expected_audit_action = 5; +} + +message CMsgCraftStatue { + optional uint32 heroid = 1; + optional string sequencename = 2; + optional float cycle = 3; + optional string description = 4; + optional uint32 pedestal_itemdef = 5; + optional uint64 toolid = 6; +} + +message CMsgRedeemCode { + optional string code = 1; +} + +message CMsgRedeemCodeResponse { + enum EResultCode { + k_Succeeded = 0; + k_Failed_CodeNotFound = 1; + k_Failed_CodeAlreadyUsed = 2; + k_Failed_OtherError = 3; + } + + optional uint32 response = 1; + optional uint64 item_id = 2; +} + +message CMsgDevNewItemRequest { + optional string item_def_name = 3; + optional string loot_list_name = 4; + repeated string attr_def_name = 5; + repeated string attr_value = 6; + optional uint32 item_quality = 7; +} + +message CMsgDevNewItemRequestResponse { + optional bool success = 1; +} + +message CMsgDevUnlockAllItemStyles { + optional uint64 item_id = 1; +} + +message CMsgDevUnlockAllItemStylesResponse { + optional bool success = 1; +} + +message CMsgGCGetAccountSubscriptionItem { + optional uint32 account_id = 1; +} + +message CMsgGCGetAccountSubscriptionItemResponse { + optional uint32 def_index = 1; +} + +message CMsgGCAddGiftItem { + optional uint32 gifter_account_id = 1; + optional uint32 receiver_account_id = 2; + optional .CSOEconItem wrapped_item = 3; + optional string gift_message = 4; + optional bool is_wallet_cash_trusted = 5; +} + +message CMsgClientToGCWrapAndDeliverGift { + optional uint64 item_id = 1; + optional uint32 give_to_account_id = 2; + optional string gift_message = 3; +} + +message CMsgSQLGCToGCRevokeUntrustedGift { + optional uint32 account_id = 1; + optional uint64 sent_item_id = 4; +} + +message CMsgClientToGCWrapAndDeliverGiftResponse { + optional .EGCMsgResponse response = 1 [default = k_EGCMsgResponseOK]; + optional uint32 gifting_charge_uses = 2; + optional int32 gifting_charge_max = 3; + optional uint32 gifting_uses = 4; + optional int32 gifting_max = 5; + optional uint32 gifting_window_hours = 6; + optional .EGCMsgInitiateTradeResponse trade_restriction = 7 [default = k_EGCMsgInitiateTradeResponse_Accepted]; +} + +message CMsgClientToGCUnwrapGift { + optional uint64 item_id = 1; +} + +message CMsgClientToGCGetGiftPermissions { +} + +message CMsgClientToGCGetGiftPermissionsResponse { + message FriendPermission { + optional uint32 account_id = 1; + optional .EGCMsgInitiateTradeResponse permission = 2 [default = k_EGCMsgInitiateTradeResponse_Accepted]; + } + + optional bool is_unlimited = 1; + optional bool has_two_factor = 3; + optional .EGCMsgInitiateTradeResponse sender_permission = 6 [default = k_EGCMsgInitiateTradeResponse_Accepted]; + optional uint32 friendship_age_requirement = 7; + optional uint32 friendship_age_requirement_two_factor = 8; + repeated .CMsgClientToGCGetGiftPermissionsResponse.FriendPermission friend_permissions = 9; +} + +message CMsgClientToGCUnpackBundle { + optional uint64 item_id = 1; +} + +message CMsgClientToGCUnpackBundleResponse { + enum EUnpackBundle { + k_UnpackBundle_Succeeded = 0; + k_UnpackBundle_Failed_ItemIsNotBundle = 1; + k_UnpackBundle_Failed_UnableToCreateContainedItem = 2; + k_UnpackBundle_Failed_SOCacheError = 3; + k_UnpackBundle_Failed_ItemIsInvalid = 4; + k_UnpackBundle_Failed_BadItemQuantity = 5; + k_UnpackBundle_Failed_UnableToDeleteItem = 6; + } + + repeated uint64 unpacked_item_ids = 1; + optional .CMsgClientToGCUnpackBundleResponse.EUnpackBundle response = 2 [default = k_UnpackBundle_Succeeded]; + repeated uint32 unpacked_item_def_indexes = 3; +} + +message CMsgClientToGCPackBundle { + repeated uint64 item_ids = 1; + optional uint32 bundle_item_def_index = 2; +} + +message CMsgClientToGCPackBundleResponse { + enum EPackBundle { + k_PackBundle_Succeeded = 0; + k_PackBundle_Failed_InternalError = 1; + k_PackBundle_Failed_ItemIsNotBundle = 2; + k_PackBundle_Failed_SOCacheError = 3; + k_PackBundle_Failed_ItemIsInvalid = 4; + k_PackBundle_Failed_BadItemQuantity = 5; + k_PackBundle_Failed_UnableToDeleteItem = 6; + k_PackBundle_Failed_BundleCannotBePacked = 7; + k_PackBundle_Failed_ItemIsUntradeable = 8; + k_PackBundle_Failed_ItemIsEquipped = 9; + k_PackBundle_Failed_ItemHasGems = 10; + k_PackBundle_Failed_ItemMixedQuality = 11; + k_PackBundle_Failed_ItemInvalidQuality = 12; + k_PackBundle_Failed_ItemIsNonEconomy = 13; + k_PackBundle_Failed_Disabled = 14; + } + + optional uint64 item_id = 1; + optional .CMsgClientToGCPackBundleResponse.EPackBundle response = 2 [default = k_PackBundle_Succeeded]; +} + +message CMsgGCToClientStoreTransactionCompleted { + optional uint64 txn_id = 1; + repeated uint64 item_ids = 2; +} + +message CMsgClientToGCEquipItems { + repeated .CMsgAdjustItemEquippedState equips = 1; +} + +message CMsgClientToGCEquipItemsResponse { + optional fixed64 so_cache_version_id = 1; +} + +message CMsgClientToGCSetItemStyle { + optional uint64 item_id = 1; + optional uint32 style_index = 2 [default = 255]; +} + +message CMsgClientToGCSetItemStyleResponse { + enum ESetStyle { + k_SetStyle_Succeeded = 0; + k_SetStyle_Failed = 1; + k_SetStyle_Failed_StyleIsLocked = 2; + } + + optional .CMsgClientToGCSetItemStyleResponse.ESetStyle response = 1 [default = k_SetStyle_Succeeded]; +} + +message CMsgClientToGCUnlockItemStyle { + optional uint64 item_to_unlock = 1; + optional uint32 style_index = 2 [default = 255]; + repeated uint64 consumable_item_ids = 3; +} + +message CMsgClientToGCUnlockItemStyleResponse { + enum EUnlockStyle { + k_UnlockStyle_Succeeded = 0; + k_UnlockStyle_Failed_PreReq = 1; + k_UnlockStyle_Failed_CantAfford = 2; + k_UnlockStyle_Failed_CantCommit = 3; + k_UnlockStyle_Failed_CantLockCache = 4; + k_UnlockStyle_Failed_CantAffordAttrib = 5; + k_UnlockStyle_Failed_CantAffordGem = 6; + k_UnlockStyle_Failed_NoCompendiumLevel = 7; + k_UnlockStyle_Failed_AlreadyUnlocked = 8; + k_UnlockStyle_Failed_OtherError = 9; + k_UnlockStyle_Failed_ItemIsInvalid = 10; + k_UnlockStyle_Failed_ToolIsInvalid = 11; + } + + optional .CMsgClientToGCUnlockItemStyleResponse.EUnlockStyle response = 1 [default = k_UnlockStyle_Succeeded]; + optional uint64 item_id = 2; + optional uint32 style_index = 3 [default = 255]; + optional uint32 style_prereq = 4 [default = 255]; +} + +message CMsgClientToGCSetItemInventoryCategory { + repeated uint64 item_ids = 1; + optional uint32 set_to_value = 2; + optional uint32 remove_categories = 3; + optional uint32 add_categories = 4; +} + +message CMsgClientToGCUnlockCrate { + optional uint64 crate_item_id = 1; + optional uint64 key_item_id = 2; +} + +message CMsgClientToGCUnlockCrateResponse { + message Item { + optional uint64 item_id = 1; + optional uint32 def_index = 2; + } + + optional .EGCMsgResponse result = 1 [default = k_EGCMsgResponseOK]; + repeated .CMsgClientToGCUnlockCrateResponse.Item granted_items = 2; +} + +message CMsgClientToGCRemoveItemAttribute { + optional uint64 item_id = 1; +} + +message CMsgClientToGCRemoveItemAttributeResponse { + enum ERemoveItemAttribute { + k_RemoveItemAttribute_Succeeded = 0; + k_RemoveItemAttribute_Failed = 1; + k_RemoveItemAttribute_Failed_ItemIsInvalid = 2; + k_RemoveItemAttribute_Failed_AttributeCannotBeRemoved = 3; + k_RemoveItemAttribute_Failed_AttributeDoesntExist = 4; + } + + optional .CMsgClientToGCRemoveItemAttributeResponse.ERemoveItemAttribute response = 1 [default = k_RemoveItemAttribute_Succeeded]; + optional uint64 item_id = 2; +} + +message CMsgClientToGCNameItem { + optional uint64 subject_item_id = 1; + optional uint64 tool_item_id = 2; + optional string name = 3; +} + +message CMsgClientToGCNameItemResponse { + enum ENameItem { + k_NameItem_Succeeded = 0; + k_NameItem_Failed = 1; + k_NameItem_Failed_ToolIsInvalid = 2; + k_NameItem_Failed_ItemIsInvalid = 3; + k_NameItem_Failed_NameIsInvalid = 4; + } + + optional .CMsgClientToGCNameItemResponse.ENameItem response = 1 [default = k_NameItem_Succeeded]; + optional uint64 item_id = 2; +} + +message CMsgGCSetItemPosition { + optional uint64 item_id = 1; + optional uint32 new_position = 2; +} + +message CAttribute_ItemDynamicRecipeComponent { + optional uint32 item_def = 1; + optional uint32 item_quality = 2; + optional uint32 item_flags = 3; + optional string attributes_string = 4; + optional uint32 item_count = 5; + optional uint32 items_fulfilled = 6; + optional uint32 item_rarity = 7; + optional string lootlist = 8; + optional uint64 fulfilled_item_id = 9; + optional uint32 associated_item_def = 10; +} + +message CProtoItemSocket { + optional uint64 item_id = 1; + optional uint32 attr_def_index = 2; + optional uint32 required_type = 3; + optional string required_hero = 4; + optional uint32 gem_def_index = 5; + optional bool not_tradable = 6; + optional string required_item_slot = 7; +} + +message CProtoItemSocket_Empty { + optional .CProtoItemSocket socket = 1; +} + +message CProtoItemSocket_Effect { + optional .CProtoItemSocket socket = 1; + optional uint32 effect = 2; +} + +message CProtoItemSocket_Color { + optional .CProtoItemSocket socket = 1; + optional uint32 red = 2; + optional uint32 green = 3; + optional uint32 blue = 4; +} + +message CProtoItemSocket_Strange { + optional .CProtoItemSocket socket = 1; + optional uint32 strange_type = 2; + optional uint32 strange_value = 3; +} + +message CProtoItemSocket_Strange_DESERIALIZE_FROM_STRING_ONLY { + optional .CProtoItemSocket socket = 1; + optional uint32 strange_type = 2; + optional uint32 strange_value = 3; + optional uint32 ability_effect = 4; +} + +message CProtoItemSocket_Spectator { + optional .CProtoItemSocket socket = 1; + optional uint32 games_viewed = 2; + optional uint32 corporation_id = 3; + optional uint32 league_id = 4; + optional uint32 team_id = 5; +} + +message CProtoItemSocket_AssetModifier { + optional .CProtoItemSocket socket = 1; + optional uint32 asset_modifier = 2; +} + +message CProtoItemSocket_AssetModifier_DESERIALIZE_FROM_STRING_ONLY { + optional .CProtoItemSocket socket = 1; + optional uint32 asset_modifier = 2; + optional uint32 anim_modifier = 3; + optional uint32 ability_effect = 4; +} + +message CProtoItemSocket_Autograph { + optional .CProtoItemSocket socket = 1; + optional string autograph = 2; + optional uint32 autograph_id = 3; + optional uint32 autograph_score = 4; +} + +message CProtoItemSocket_StaticVisuals { + optional .CProtoItemSocket socket = 1; +} + +message CAttribute_String { + optional string value = 1; +} + +message CWorkshop_GetItemDailyRevenue_Request { + optional uint32 appid = 1; + optional uint32 item_id = 2; + optional uint32 date_start = 3; + optional uint32 date_end = 4; +} + +message CWorkshop_GetItemDailyRevenue_Response { + message CountryDailyRevenue { + optional string country_code = 1; + optional uint32 date = 2; + optional int64 revenue_usd = 3; + optional int32 units = 4; + } + + repeated .CWorkshop_GetItemDailyRevenue_Response.CountryDailyRevenue country_revenue = 1; +} + +message CWorkshop_GetPackageDailyRevenue_Request { + optional uint32 packageid = 1; + optional uint32 date_start = 2; + optional uint32 date_end = 3; +} + +message CWorkshop_GetPackageDailyRevenue_Response { + message CountryDailyRevenue { + optional string country_code = 1; + optional uint32 date = 2; + optional int64 revenue_usd = 3; + optional int32 units = 4; + } + + repeated .CWorkshop_GetPackageDailyRevenue_Response.CountryDailyRevenue country_revenue = 1; +} + +message CMsgSQLGCToGCGrantBackpackSlots { + optional uint32 account_id = 1; + optional uint32 add_slots = 2; +} + +message CMsgClientToGCLookupAccountName { + optional uint32 account_id = 1; +} + +message CMsgClientToGCLookupAccountNameResponse { + optional uint32 account_id = 1; + optional string account_name = 2; +} + +message CMsgClientToGCCreateStaticRecipe { + message Item { + optional uint64 item_id = 1; + optional uint32 slot_id = 2; + } + + repeated .CMsgClientToGCCreateStaticRecipe.Item items = 1; + optional uint32 recipe_def_index = 2; +} + +message CMsgClientToGCCreateStaticRecipeResponse { + message OutputItem { + optional uint32 def_index = 1; + optional uint64 item_id = 2; + optional uint32 slot_id = 3; + } + + message InputError { + optional uint32 slot_id = 1; + optional .CMsgClientToGCCreateStaticRecipeResponse.EResponse error = 2 [default = eResponse_Success]; + } + + message AdditionalOutput { + optional uint32 slot_id = 1; + optional uint64 value = 2; + } + + enum EResponse { + eResponse_Success = 0; + eResponse_OfferingDisabled = 1; + eResponse_InvalidItems = 2; + eResponse_InternalError = 3; + eResponse_MissingLeague = 4; + eResponse_MissingEvent = 5; + } + + optional .CMsgClientToGCCreateStaticRecipeResponse.EResponse response = 1 [default = eResponse_Success]; + repeated .CMsgClientToGCCreateStaticRecipeResponse.OutputItem output_items = 2; + repeated .CMsgClientToGCCreateStaticRecipeResponse.InputError input_errors = 3; + repeated .CMsgClientToGCCreateStaticRecipeResponse.AdditionalOutput additional_outputs = 4; +} + +message CMsgProcessTransactionOrder { + message Item { + optional uint32 item_def_index = 1; + optional uint32 item_price = 2; + optional uint32 quantity = 3; + optional string category_desc = 4; + optional uint32 store_purchase_type = 5; + optional uint64 source_reference_id = 6; + optional int32 parent_stack_index = 7; + optional bool default_price = 8; + optional bool is_user_facing = 9; + optional int32 price_index = 11; + } + + optional uint64 txn_id = 1; + optional uint64 steam_txn_id = 2; + optional uint64 partner_txn_id = 3; + optional fixed64 steam_id = 4; + optional uint32 time_stamp = 5; + optional uint64 watermark = 6; + optional int32 purchase_report_status = 7; + optional uint32 currency = 8; + repeated .CMsgProcessTransactionOrder.Item items = 9; +} + +message CMsgGCToGCStoreProcessCDKeyTransaction { + optional .CMsgProcessTransactionOrder order = 1; + optional uint32 reason_code = 2; + optional uint32 partner = 3; +} + +message CMsgGCToGCStoreProcessCDKeyTransactionResponse { + optional bool success = 1; +} + +message CMsgGCToGCStoreProcessSettlement { + optional .CMsgProcessTransactionOrder order = 1; +} + +message CMsgGCToGCStoreProcessSettlementResponse { + optional bool success = 1; +} + +message CMsgGCToGCBroadcastConsoleCommand { + optional string con_command = 1; + optional bool report_output = 2; + optional int32 sending_gc = 3 [default = -1]; + optional string output_initiator = 4; + optional string sender_source = 5; +} + +message CMsgGCToGCConsoleOutput { + message OutputLine { + optional string text = 1; + optional uint32 spew_level = 2; + } + + optional string initiator = 1; + optional int32 sending_gc = 2 [default = -1]; + repeated .CMsgGCToGCConsoleOutput.OutputLine msgs = 3; + optional bool is_last_for_source_job = 4; +} + +message CMsgItemAges { + message MaxItemIDTimestamp { + optional uint32 timestamp = 1; + optional uint64 max_item_id = 2; + } + + repeated .CMsgItemAges.MaxItemIDTimestamp max_item_id_timestamps = 1; +} + +message CMsgGCToGCInternalTestMsg { + optional int32 sending_gc = 1 [default = -1]; + optional fixed64 sender_id = 2; + optional uint32 context = 3; + optional uint32 message_id = 4; + optional bytes message_body = 5; + optional fixed64 job_id_source = 6; + optional fixed64 job_id_target = 7; +} + +message CMsgGCToGCClientServerVersionsUpdated { + optional uint32 client_min_allowed_version = 1; + optional uint32 client_active_version = 2; + optional uint32 server_active_version = 3; + optional uint32 server_deployed_version = 4; + optional uint32 what_changed = 5; +} + +message CMsgGCToGCBroadcastMessageFromSub { + optional uint32 msg_id = 1; + optional bytes serialized_msg = 2; + repeated uint32 account_id_list = 3 [packed = true]; + repeated fixed64 steam_id_list = 4 [packed = true]; +} + +message CMsgGCToClientCurrencyPricePoints { + message Currency { + optional uint32 currency_id = 1; + repeated uint64 currency_price = 2 [packed = true]; + } + + repeated uint64 price_key = 1 [packed = true]; + repeated .CMsgGCToClientCurrencyPricePoints.Currency currencies = 2; +} + +message CMsgBannedWordList { + optional uint32 version = 1; + repeated string banned_words = 2; +} + +message CMsgGCToGCFlushSteamInventoryCache { + message Key { + optional uint64 steamid = 1; + optional uint64 contextid = 2; + } + + repeated .CMsgGCToGCFlushSteamInventoryCache.Key keys = 1; +} + +message CMsgGCToGCUpdateSubscriptionItems { + optional uint32 account_id = 1; + optional bool always_notify = 2; +} + +message CMsgGCToGCSelfPing { + optional uint32 sample_id = 1; +} + +message CMsgGCToGCGetInfuxIntervalStats { +} + +message CMsgGCToGCGetInfuxIntervalStatsResponse { + repeated fixed32 stat_ids = 1 [packed = true]; + repeated uint64 stat_total = 2 [packed = true]; + repeated uint32 stat_samples = 3 [packed = true]; + repeated uint32 stat_max = 4 [packed = true]; + optional uint32 sample_duration_ms = 5; +} + +message CMsgGCToGCPurchaseSucceeded { +} + +message CMsgClientToGCGetLimitedItemPurchaseQuantity { + optional uint32 item_def = 1; +} + +message CMsgClientToGCGetLimitedItemPurchaseQuantityResponse { + enum EResponse { + k_eInternalError = 0; + k_eSuccess = 1; + k_eTooBusy = 2; + k_eDisabled = 3; + k_eTimeout = 4; + k_eInvalidItemDef = 5; + k_eItemDefNotLimited = 6; + } + + optional .CMsgClientToGCGetLimitedItemPurchaseQuantityResponse.EResponse result = 1 [default = k_eInternalError]; + optional uint32 quantity_purchased = 2; +} + +message CMsgClientToGCGetInFlightItemCharges { + optional uint32 item_def = 1; +} + +message CMsgClientToGCGetInFlightItemChargesResponse { + enum EResponse { + k_eInternalError = 0; + k_eSuccess = 1; + k_eTooBusy = 2; + k_eDisabled = 3; + k_eTimeout = 4; + k_eInvalidItemDef = 5; + } + + optional .CMsgClientToGCGetInFlightItemChargesResponse.EResponse result = 1 [default = k_eInternalError]; + optional uint32 charges_in_flight = 2; +} + +message CMsgClientToGCPurchaseChargeCostItems { + message Item { + optional uint32 item_def_index = 1; + optional uint32 quantity = 2; + optional uint64 source_reference_id = 3; + optional int32 price_index = 4; + } + + repeated .CMsgClientToGCPurchaseChargeCostItems.Item items = 1; + optional uint32 currency = 2; +} + +message CMsgClientToGCPurchaseChargeCostItemsResponse { + enum EResponse { + k_eInternalError = 0; + k_eSuccess = 1; + k_eTooBusy = 2; + k_eDisabled = 3; + k_eTimeout = 4; + k_eInvalidParam = 5; + k_eInvalidPrice = 6; + k_eInsufficientCharges = 7; + k_eLimitedItem = 8; + k_eMissingPrereq = 10; + } + + optional .CMsgClientToGCPurchaseChargeCostItemsResponse.EResponse result = 1 [default = k_eInternalError]; + repeated uint64 item_ids = 2; +} + +message CMsgGCToClientInFlightChargesUpdated { + message ItemCharges { + optional uint32 item_def = 1; + optional uint32 charges_in_flight = 2; + } + + repeated .CMsgGCToClientInFlightChargesUpdated.ItemCharges in_flight_charges = 2; +} + +message CMsgClientToGCCancelUnfinalizedTransactions { + optional uint32 unused = 1; +} + +message CMsgClientToGCCancelUnfinalizedTransactionsResponse { + optional uint32 result = 1; +} + +message CMsgGCToGCUpdateWelcomeMsg { + optional bool server = 1; + optional .CExtraMsgBlock new_msg = 2; + optional bool broadcast = 3; +} diff --git a/Protobufs/dota2/econ_shared_enums.proto b/Protobufs/dota2/econ_shared_enums.proto new file mode 100644 index 0000000..9fc32a0 --- /dev/null +++ b/Protobufs/dota2/econ_shared_enums.proto @@ -0,0 +1,37 @@ +enum EGCEconBaseMsg { + k_EMsgGCGenericResult = 2579; +} + +enum EGCMsgResponse { + k_EGCMsgResponseOK = 0; + k_EGCMsgResponseDenied = 1; + k_EGCMsgResponseServerError = 2; + k_EGCMsgResponseTimeout = 3; + k_EGCMsgResponseInvalid = 4; + k_EGCMsgResponseNoMatch = 5; + k_EGCMsgResponseUnknownError = 6; + k_EGCMsgResponseNotLoggedOn = 7; + k_EGCMsgFailedToCreate = 8; +} + +enum EGCMsgUseItemResponse { + k_EGCMsgUseItemResponse_ItemUsed = 0; + k_EGCMsgUseItemResponse_GiftNoOtherPlayers = 1; + k_EGCMsgUseItemResponse_ServerError = 2; + k_EGCMsgUseItemResponse_MiniGameAlreadyStarted = 3; + k_EGCMsgUseItemResponse_ItemUsed_ItemsGranted = 4; + k_EGCMsgUseItemResponse_DropRateBonusAlreadyGranted = 5; + k_EGCMsgUseItemResponse_NotInLowPriorityPool = 6; + k_EGCMsgUseItemResponse_NotHighEnoughLevel = 7; + k_EGCMsgUseItemResponse_EventNotActive = 8; + k_EGCMsgUseItemResponse_ItemUsed_EventPointsGranted = 9; + k_EGCMsgUseItemResponse_MissingRequirement = 10; + k_EGCMsgUseItemResponse_EmoticonUnlock_NoNew = 11; + k_EGCMsgUseItemResponse_EmoticonUnlock_Complete = 12; + k_EGCMsgUseItemResponse_ItemUsed_Compendium = 13; +} + +message CMsgGenericResult { + optional uint32 eresult = 1 [default = 2]; + optional string debug_message = 2; +} diff --git a/Protobufs/dota2/engine_gcmessages.proto b/Protobufs/dota2/engine_gcmessages.proto new file mode 100644 index 0000000..7f81bb6 --- /dev/null +++ b/Protobufs/dota2/engine_gcmessages.proto @@ -0,0 +1,14 @@ +import "google/protobuf/descriptor.proto"; + +message CEngineGotvSyncPacket { + optional uint64 match_id = 1; + optional uint32 instance_id = 2; + optional uint32 signupfragment = 3; + optional uint32 currentfragment = 4; + optional float tickrate = 5; + optional uint32 tick = 6; + optional float rtdelay = 8; + optional float rcvage = 9; + optional float keyframe_interval = 10; + optional uint32 cdndelay = 11; +} diff --git a/Protobufs/dota2/enums_clientserver.proto b/Protobufs/dota2/enums_clientserver.proto new file mode 100644 index 0000000..5b12d10 --- /dev/null +++ b/Protobufs/dota2/enums_clientserver.proto @@ -0,0 +1,1547 @@ +option optimize_for = SPEED; +option cc_generic_services = false; + +enum EMsg { + option allow_alias = true; + k_EMsgInvalid = 0; + k_EMsgMulti = 1; + k_EMsgProtobufWrapped = 2; + k_EMsgBaseGeneral = 100; + k_EMsgGenericReply = 100; + k_EMsgDestJobFailed = 113; + k_EMsgAlert = 115; + k_EMsgSCIDRequest = 120; + k_EMsgSCIDResponse = 121; + k_EMsgJobHeartbeat = 123; + k_EMsgHubConnect = 124; + k_EMsgSubscribe = 126; + k_EMRouteMessage = 127; + k_EMsgWGRequest = 130; + k_EMsgWGResponse = 131; + k_EMsgKeepAlive = 132; + k_EMsgWebAPIJobRequest = 133; + k_EMsgWebAPIJobResponse = 134; + k_EMsgClientSessionStart = 135; + k_EMsgClientSessionEnd = 136; + k_EMsgClientSessionUpdate = 137; + k_EMsgStatsDeprecated = 138; + k_EMsgPing = 139; + k_EMsgPingResponse = 140; + k_EMsgStats = 141; + k_EMsgRequestFullStatsBlock = 142; + k_EMsgLoadDBOCacheItem = 143; + k_EMsgLoadDBOCacheItemResponse = 144; + k_EMsgInvalidateDBOCacheItems = 145; + k_EMsgServiceMethod = 146; + k_EMsgServiceMethodResponse = 147; + k_EMsgClientPackageVersions = 148; + k_EMsgTimestampRequest = 149; + k_EMsgTimestampResponse = 150; + k_EMsgServiceMethodCallFromClient = 151; + k_EMsgServiceMethodSendToClient = 152; + k_EMsgBaseShell = 200; + k_EMsgAssignSysID = 200; + k_EMsgExit = 201; + k_EMsgDirRequest = 202; + k_EMsgDirResponse = 203; + k_EMsgZipRequest = 204; + k_EMsgZipResponse = 205; + k_EMsgUpdateRecordResponse = 215; + k_EMsgUpdateCreditCardRequest = 221; + k_EMsgUpdateUserBanResponse = 225; + k_EMsgPrepareToExit = 226; + k_EMsgContentDescriptionUpdate = 227; + k_EMsgTestResetServer = 228; + k_EMsgUniverseChanged = 229; + k_EMsgShellConfigInfoUpdate = 230; + k_EMsgRequestWindowsEventLogEntries = 233; + k_EMsgProvideWindowsEventLogEntries = 234; + k_EMsgShellSearchLogs = 235; + k_EMsgShellSearchLogsResponse = 236; + k_EMsgShellCheckWindowsUpdates = 237; + k_EMsgShellCheckWindowsUpdatesResponse = 238; + k_EMsgTestFlushDelayedSQL = 240; + k_EMsgTestFlushDelayedSQLResponse = 241; + k_EMsgEnsureExecuteScheduledTask_TEST = 242; + k_EMsgEnsureExecuteScheduledTaskResponse_TEST = 243; + k_EMsgUpdateScheduledTaskEnableState_TEST = 244; + k_EMsgUpdateScheduledTaskEnableStateResponse_TEST = 245; + k_EMsgContentDescriptionDeltaUpdate = 246; + k_EMsgGMShellAndServerAddressUpdates = 247; + k_EMsgBaseGM = 300; + k_EMsgHeartbeat = 300; + k_EMsgShellFailed = 301; + k_EMsgExitShells = 307; + k_EMsgExitShell = 308; + k_EMsgGracefulExitShell = 309; + k_EMsgLicenseProcessingComplete = 316; + k_EMsgSetTestFlag = 317; + k_EMsgQueuedEmailsComplete = 318; + k_EMsgGMDRMSync = 320; + k_EMsgPhysicalBoxInventory = 321; + k_EMsgUpdateConfigFile = 322; + k_EMsgTestInitDB = 323; + k_EMsgGMWriteConfigToSQL = 324; + k_EMsgGMLoadActivationCodes = 325; + k_EMsgGMQueueForFBS = 326; + k_EMsgGMSchemaConversionResults = 327; + k_EMsgGMWriteShellFailureToSQL = 329; + k_EMsgGMWriteStatsToSOS = 330; + k_EMsgGMGetServiceMethodRouting = 331; + k_EMsgGMGetServiceMethodRoutingResponse = 332; + k_EMsgGMTestNextBuildSchemaConversion = 334; + k_EMsgGMTestNextBuildSchemaConversionResponse = 335; + k_EMsgExpectShellRestart = 336; + k_EMsgHotFixProgress = 337; + k_EMsgGMStatsForwardToAdminConnections = 338; + k_EMsgGMGetModifiedConVars = 339; + k_EMsgGMGetModifiedConVarsResponse = 340; + k_EMsgBaseAIS = 400; + k_EMsgAISRequestContentDescription = 402; + k_EMsgAISUpdateAppInfo = 403; + k_EMsgAISGetPackageChangeNumber = 405; + k_EMsgAISGetPackageChangeNumberResponse = 406; + k_EMsgAIGetAppGCFlags = 423; + k_EMsgAIGetAppGCFlagsResponse = 424; + k_EMsgAIGetAppList = 425; + k_EMsgAIGetAppListResponse = 426; + k_EMsgAISGetCouponDefinition = 429; + k_EMsgAISGetCouponDefinitionResponse = 430; + k_EMsgAISUpdateSubordinateContentDescription = 431; + k_EMsgAISUpdateSubordinateContentDescriptionResponse = 432; + k_EMsgAISTestEnableGC = 433; + k_EMsgBaseAM = 500; + k_EMsgAMUpdateUserBanRequest = 504; + k_EMsgAMAddLicense = 505; + k_EMsgAMSendSystemIMToUser = 508; + k_EMsgAMExtendLicense = 509; + k_EMsgAMAddMinutesToLicense = 510; + k_EMsgAMCancelLicense = 511; + k_EMsgAMInitPurchase = 512; + k_EMsgAMPurchaseResponse = 513; + k_EMsgAMGetFinalPrice = 514; + k_EMsgAMGetFinalPriceResponse = 515; + k_EMsgAMGetLegacyGameKey = 516; + k_EMsgAMGetLegacyGameKeyResponse = 517; + k_EMsgAMFindHungTransactions = 518; + k_EMsgAMSetAccountTrustedRequest = 519; + k_EMsgAMCancelPurchase = 522; + k_EMsgAMNewChallenge = 523; + k_EMsgAMLoadOEMTickets = 524; + k_EMsgAMFixPendingPurchase = 525; + k_EMsgAMFixPendingPurchaseResponse = 526; + k_EMsgAMIsUserBanned = 527; + k_EMsgAMRegisterKey = 528; + k_EMsgAMLoadActivationCodes = 529; + k_EMsgAMLoadActivationCodesResponse = 530; + k_EMsgAMLookupKeyResponse = 531; + k_EMsgAMLookupKey = 532; + k_EMsgAMChatCleanup = 533; + k_EMsgAMClanCleanup = 534; + k_EMsgAMFixPendingRefund = 535; + k_EMsgAMReverseChargeback = 536; + k_EMsgAMReverseChargebackResponse = 537; + k_EMsgAMClanCleanupList = 538; + k_EMsgAMGetLicenses = 539; + k_EMsgAMGetLicensesResponse = 540; + k_EMsgAMSendCartRepurchase = 541; + k_EMsgAMSendCartRepurchaseResponse = 542; + k_EMsgAllowUserToPlayQuery = 550; + k_EMsgAllowUserToPlayResponse = 551; + k_EMsgAMVerfiyUser = 552; + k_EMsgAMClientNotPlaying = 553; + k_EMsgAMClientRequestFriendship = 554; + k_EMsgAMRelayPublishStatus = 555; + k_EMsgAMInitPurchaseResponse = 560; + k_EMsgAMRevokePurchaseResponse = 561; + k_EMsgAMRefreshGuestPasses = 563; + k_EMsgAMGrantGuestPasses = 566; + k_EMsgAMClanDataUpdated = 567; + k_EMsgAMReloadAccount = 568; + k_EMsgAMClientChatMsgRelay = 569; + k_EMsgAMChatMulti = 570; + k_EMsgAMClientChatInviteRelay = 571; + k_EMsgAMChatInvite = 572; + k_EMsgAMClientJoinChatRelay = 573; + k_EMsgAMClientChatMemberInfoRelay = 574; + k_EMsgAMPublishChatMemberInfo = 575; + k_EMsgAMClientAcceptFriendInvite = 576; + k_EMsgAMChatEnter = 577; + k_EMsgAMClientPublishRemovalFromSource = 578; + k_EMsgAMChatActionResult = 579; + k_EMsgAMFindAccounts = 580; + k_EMsgAMFindAccountsResponse = 581; + k_EMsgAMIsAccountNameInUse = 582; + k_EMsgAMIsAccountNameInUseResponse = 583; + k_EMsgAMSetAccountFlags = 584; + k_EMsgAMCreateClan = 586; + k_EMsgAMCreateClanResponse = 587; + k_EMsgAMGetClanDetails = 588; + k_EMsgAMGetClanDetailsResponse = 589; + k_EMsgAMSetPersonaName = 590; + k_EMsgAMSetAvatar = 591; + k_EMsgAMAuthenticateUser = 592; + k_EMsgAMAuthenticateUserResponse = 593; + k_EMsgAMP2PIntroducerMessage = 596; + k_EMsgClientChatAction = 597; + k_EMsgAMClientChatActionRelay = 598; + k_EMsgBaseVS = 600; + k_EMsgReqChallenge = 600; + k_EMsgVACResponse = 601; + k_EMsgReqChallengeTest = 602; + k_EMsgVSMarkCheat = 604; + k_EMsgVSAddCheat = 605; + k_EMsgVSPurgeCodeModDB = 606; + k_EMsgVSGetChallengeResults = 607; + k_EMsgVSChallengeResultText = 608; + k_EMsgVSReportLingerer = 609; + k_EMsgVSRequestManagedChallenge = 610; + k_EMsgVSLoadDBFinished = 611; + k_EMsgBaseDRMS = 625; + k_EMsgDRMBuildBlobRequest = 628; + k_EMsgDRMBuildBlobResponse = 629; + k_EMsgDRMResolveGuidRequest = 630; + k_EMsgDRMResolveGuidResponse = 631; + k_EMsgDRMVariabilityReport = 633; + k_EMsgDRMVariabilityReportResponse = 634; + k_EMsgDRMStabilityReport = 635; + k_EMsgDRMStabilityReportResponse = 636; + k_EMsgDRMDetailsReportRequest = 637; + k_EMsgDRMDetailsReportResponse = 638; + k_EMsgDRMProcessFile = 639; + k_EMsgDRMAdminUpdate = 640; + k_EMsgDRMAdminUpdateResponse = 641; + k_EMsgDRMSync = 642; + k_EMsgDRMSyncResponse = 643; + k_EMsgDRMProcessFileResponse = 644; + k_EMsgDRMEmptyGuidCache = 645; + k_EMsgDRMEmptyGuidCacheResponse = 646; + k_EMsgBaseCS = 650; + k_EMsgBaseClient = 700; + k_EMsgClientLogOn_Deprecated = 701; + k_EMsgClientAnonLogOn_Deprecated = 702; + k_EMsgClientHeartBeat = 703; + k_EMsgClientVACResponse = 704; + k_EMsgClientGamesPlayed_obsolete = 705; + k_EMsgClientLogOff = 706; + k_EMsgClientNoUDPConnectivity = 707; + k_EMsgClientConnectionStats = 710; + k_EMsgClientPingResponse = 712; + k_EMsgClientRemoveFriend = 714; + k_EMsgClientGamesPlayedNoDataBlob = 715; + k_EMsgClientChangeStatus = 716; + k_EMsgClientVacStatusResponse = 717; + k_EMsgClientFriendMsg = 718; + k_EMsgClientGameConnect_obsolete = 719; + k_EMsgClientGamesPlayed2_obsolete = 720; + k_EMsgClientGameEnded_obsolete = 721; + k_EMsgClientSystemIM = 726; + k_EMsgClientSystemIMAck = 727; + k_EMsgClientGetLicenses = 728; + k_EMsgClientGetLegacyGameKey = 730; + k_EMsgClientContentServerLogOn_Deprecated = 731; + k_EMsgClientAckVACBan2 = 732; + k_EMsgClientGetPurchaseReceipts = 736; + k_EMsgClientGamesPlayed3_obsolete = 738; + k_EMsgClientAckGuestPass = 740; + k_EMsgClientRedeemGuestPass = 741; + k_EMsgClientGamesPlayed = 742; + k_EMsgClientRegisterKey = 743; + k_EMsgClientInviteUserToClan = 744; + k_EMsgClientAcknowledgeClanInvite = 745; + k_EMsgClientPurchaseWithMachineID = 746; + k_EMsgClientAppUsageEvent = 747; + k_EMsgClientLogOnResponse = 751; + k_EMsgClientSetHeartbeatRate = 755; + k_EMsgClientNotLoggedOnDeprecated = 756; + k_EMsgClientLoggedOff = 757; + k_EMsgGSApprove = 758; + k_EMsgGSDeny = 759; + k_EMsgGSKick = 760; + k_EMsgClientPurchaseResponse = 763; + k_EMsgClientPing = 764; + k_EMsgClientNOP = 765; + k_EMsgClientPersonaState = 766; + k_EMsgClientFriendsList = 767; + k_EMsgClientAccountInfo = 768; + k_EMsgClientNewsUpdate = 771; + k_EMsgClientGameConnectDeny = 773; + k_EMsgGSStatusReply = 774; + k_EMsgClientGameConnectTokens = 779; + k_EMsgClientLicenseList = 780; + k_EMsgClientVACBanStatus = 782; + k_EMsgClientCMList = 783; + k_EMsgClientEncryptPct = 784; + k_EMsgClientGetLegacyGameKeyResponse = 785; + k_EMsgClientAddFriend = 791; + k_EMsgClientAddFriendResponse = 792; + k_EMsgClientAckGuestPassResponse = 796; + k_EMsgClientRedeemGuestPassResponse = 797; + k_EMsgClientUpdateGuestPassesList = 798; + k_EMsgClientChatMsg = 799; + k_EMsgClientChatInvite = 800; + k_EMsgClientJoinChat = 801; + k_EMsgClientChatMemberInfo = 802; + k_EMsgClientLogOnWithCredentials_Deprecated = 803; + k_EMsgClientPasswordChangeResponse = 805; + k_EMsgClientChatEnter = 807; + k_EMsgClientFriendRemovedFromSource = 808; + k_EMsgClientCreateChat = 809; + k_EMsgClientCreateChatResponse = 810; + k_EMsgClientP2PIntroducerMessage = 813; + k_EMsgClientChatActionResult = 814; + k_EMsgClientRequestFriendData = 815; + k_EMsgClientGetUserStats = 818; + k_EMsgClientGetUserStatsResponse = 819; + k_EMsgClientStoreUserStats = 820; + k_EMsgClientStoreUserStatsResponse = 821; + k_EMsgClientClanState = 822; + k_EMsgClientServiceModule = 830; + k_EMsgClientServiceCall = 831; + k_EMsgClientServiceCallResponse = 832; + k_EMsgClientNatTraversalStatEvent = 839; + k_EMsgClientSteamUsageEvent = 842; + k_EMsgClientCheckPassword = 845; + k_EMsgClientResetPassword = 846; + k_EMsgClientCheckPasswordResponse = 848; + k_EMsgClientResetPasswordResponse = 849; + k_EMsgClientSessionToken = 850; + k_EMsgClientDRMProblemReport = 851; + k_EMsgClientSetIgnoreFriend = 855; + k_EMsgClientSetIgnoreFriendResponse = 856; + k_EMsgClientGetAppOwnershipTicket = 857; + k_EMsgClientGetAppOwnershipTicketResponse = 858; + k_EMsgClientGetLobbyListResponse = 860; + k_EMsgClientServerList = 880; + k_EMsgClientDRMBlobRequest = 896; + k_EMsgClientDRMBlobResponse = 897; + k_EMsgBaseGameServer = 900; + k_EMsgGSDisconnectNotice = 901; + k_EMsgGSStatus = 903; + k_EMsgGSUserPlaying = 905; + k_EMsgGSStatus2 = 906; + k_EMsgGSStatusUpdate_Unused = 907; + k_EMsgGSServerType = 908; + k_EMsgGSPlayerList = 909; + k_EMsgGSGetUserAchievementStatus = 910; + k_EMsgGSGetUserAchievementStatusResponse = 911; + k_EMsgGSGetPlayStats = 918; + k_EMsgGSGetPlayStatsResponse = 919; + k_EMsgGSGetUserGroupStatus = 920; + k_EMsgAMGetUserGroupStatus = 921; + k_EMsgAMGetUserGroupStatusResponse = 922; + k_EMsgGSGetUserGroupStatusResponse = 923; + k_EMsgGSGetReputation = 936; + k_EMsgGSGetReputationResponse = 937; + k_EMsgGSAssociateWithClan = 938; + k_EMsgGSAssociateWithClanResponse = 939; + k_EMsgGSComputeNewPlayerCompatibility = 940; + k_EMsgGSComputeNewPlayerCompatibilityResponse = 941; + k_EMsgBaseAdmin = 1000; + k_EMsgAdminCmd = 1000; + k_EMsgAdminCmdResponse = 1004; + k_EMsgAdminLogListenRequest = 1005; + k_EMsgAdminLogEvent = 1006; + k_EMsgUniverseData = 1010; + k_EMsgAdminSpew = 1019; + k_EMsgAdminConsoleTitle = 1020; + k_EMsgAdminGCSpew = 1023; + k_EMsgAdminGCCommand = 1024; + k_EMsgAdminGCGetCommandList = 1025; + k_EMsgAdminGCGetCommandListResponse = 1026; + k_EMsgFBSConnectionData = 1027; + k_EMsgAdminMsgSpew = 1028; + k_EMsgBaseFBS = 1100; + k_EMsgFBSReqVersion = 1100; + k_EMsgFBSVersionInfo = 1101; + k_EMsgFBSForceRefresh = 1102; + k_EMsgFBSForceBounce = 1103; + k_EMsgFBSDeployPackage = 1104; + k_EMsgFBSDeployResponse = 1105; + k_EMsgFBSUpdateBootstrapper = 1106; + k_EMsgFBSSetState = 1107; + k_EMsgFBSApplyOSUpdates = 1108; + k_EMsgFBSRunCMDScript = 1109; + k_EMsgFBSRebootBox = 1110; + k_EMsgFBSSetBigBrotherMode = 1111; + k_EMsgFBSMinidumpServer = 1112; + k_EMsgFBSDeployHotFixPackage = 1114; + k_EMsgFBSDeployHotFixResponse = 1115; + k_EMsgFBSDownloadHotFix = 1116; + k_EMsgFBSDownloadHotFixResponse = 1117; + k_EMsgFBSUpdateTargetConfigFile = 1118; + k_EMsgFBSApplyAccountCred = 1119; + k_EMsgFBSApplyAccountCredResponse = 1120; + k_EMsgFBSSetShellCount = 1121; + k_EMsgFBSTerminateShell = 1122; + k_EMsgFBSQueryGMForRequest = 1123; + k_EMsgFBSQueryGMResponse = 1124; + k_EMsgFBSTerminateZombies = 1125; + k_EMsgFBSInfoFromBootstrapper = 1126; + k_EMsgFBSRebootBoxResponse = 1127; + k_EMsgFBSBootstrapperPackageRequest = 1128; + k_EMsgFBSBootstrapperPackageResponse = 1129; + k_EMsgFBSBootstrapperGetPackageChunk = 1130; + k_EMsgFBSBootstrapperGetPackageChunkResponse = 1131; + k_EMsgFBSBootstrapperPackageTransferProgress = 1132; + k_EMsgFBSRestartBootstrapper = 1133; + k_EMsgFBSPauseFrozenDumps = 1134; + k_EMsgBaseFileXfer = 1200; + k_EMsgFileXferRequest = 1200; + k_EMsgFileXferResponse = 1201; + k_EMsgFileXferData = 1202; + k_EMsgFileXferEnd = 1203; + k_EMsgFileXferDataAck = 1204; + k_EMsgBaseChannelAuth = 1300; + k_EMsgChannelAuthChallenge = 1300; + k_EMsgChannelAuthResponse = 1301; + k_EMsgChannelAuthResult = 1302; + k_EMsgChannelEncryptRequest = 1303; + k_EMsgChannelEncryptResponse = 1304; + k_EMsgChannelEncryptResult = 1305; + k_EMsgBaseBS = 1400; + k_EMsgBSPurchaseStart = 1401; + k_EMsgBSPurchaseResponse = 1402; + k_EMsgBSAuthenticateCCTrans = 1403; + k_EMsgBSAuthenticateCCTransResponse = 1404; + k_EMsgBSSettleComplete = 1406; + k_EMsgBSInitPayPalTxn = 1408; + k_EMsgBSInitPayPalTxnResponse = 1409; + k_EMsgBSGetPayPalUserInfo = 1410; + k_EMsgBSGetPayPalUserInfoResponse = 1411; + k_EMsgBSPaymentInstrBan = 1417; + k_EMsgBSPaymentInstrBanResponse = 1418; + k_EMsgBSInitGCBankXferTxn = 1421; + k_EMsgBSInitGCBankXferTxnResponse = 1422; + k_EMsgBSCommitGCTxn = 1425; + k_EMsgBSQueryTransactionStatus = 1426; + k_EMsgBSQueryTransactionStatusResponse = 1427; + k_EMsgBSQueryTxnExtendedInfo = 1433; + k_EMsgBSQueryTxnExtendedInfoResponse = 1434; + k_EMsgBSUpdateConversionRates = 1435; + k_EMsgBSPurchaseRunFraudChecks = 1437; + k_EMsgBSPurchaseRunFraudChecksResponse = 1438; + k_EMsgBSQueryBankInformation = 1440; + k_EMsgBSQueryBankInformationResponse = 1441; + k_EMsgBSValidateXsollaSignature = 1445; + k_EMsgBSValidateXsollaSignatureResponse = 1446; + k_EMsgBSQiwiWalletInvoice = 1448; + k_EMsgBSQiwiWalletInvoiceResponse = 1449; + k_EMsgBSUpdateInventoryFromProPack = 1450; + k_EMsgBSUpdateInventoryFromProPackResponse = 1451; + k_EMsgBSSendShippingRequest = 1452; + k_EMsgBSSendShippingRequestResponse = 1453; + k_EMsgBSGetProPackOrderStatus = 1454; + k_EMsgBSGetProPackOrderStatusResponse = 1455; + k_EMsgBSCheckJobRunning = 1456; + k_EMsgBSCheckJobRunningResponse = 1457; + k_EMsgBSResetPackagePurchaseRateLimit = 1458; + k_EMsgBSResetPackagePurchaseRateLimitResponse = 1459; + k_EMsgBSUpdatePaymentData = 1460; + k_EMsgBSUpdatePaymentDataResponse = 1461; + k_EMsgBSGetBillingAddress = 1462; + k_EMsgBSGetBillingAddressResponse = 1463; + k_EMsgBSGetCreditCardInfo = 1464; + k_EMsgBSGetCreditCardInfoResponse = 1465; + k_EMsgBSRemoveExpiredPaymentData = 1468; + k_EMsgBSRemoveExpiredPaymentDataResponse = 1469; + k_EMsgBSConvertToCurrentKeys = 1470; + k_EMsgBSConvertToCurrentKeysResponse = 1471; + k_EMsgBSInitPurchase = 1472; + k_EMsgBSInitPurchaseResponse = 1473; + k_EMsgBSCompletePurchase = 1474; + k_EMsgBSCompletePurchaseResponse = 1475; + k_EMsgBSPruneCardUsageStats = 1476; + k_EMsgBSPruneCardUsageStatsResponse = 1477; + k_EMsgBSStoreBankInformation = 1478; + k_EMsgBSStoreBankInformationResponse = 1479; + k_EMsgBSVerifyPOSAKey = 1480; + k_EMsgBSVerifyPOSAKeyResponse = 1481; + k_EMsgBSReverseRedeemPOSAKey = 1482; + k_EMsgBSReverseRedeemPOSAKeyResponse = 1483; + k_EMsgBSQueryFindCreditCard = 1484; + k_EMsgBSQueryFindCreditCardResponse = 1485; + k_EMsgBSStatusInquiryPOSAKey = 1486; + k_EMsgBSStatusInquiryPOSAKeyResponse = 1487; + k_EMsgBSBoaCompraConfirmProductDelivery = 1494; + k_EMsgBSBoaCompraConfirmProductDeliveryResponse = 1495; + k_EMsgBSGenerateBoaCompraMD5 = 1496; + k_EMsgBSGenerateBoaCompraMD5Response = 1497; + k_EMsgBSCommitWPTxn = 1498; + k_EMsgBSCommitAdyenTxn = 1499; + k_EMsgBaseATS = 1500; + k_EMsgATSStartStressTest = 1501; + k_EMsgATSStopStressTest = 1502; + k_EMsgATSRunFailServerTest = 1503; + k_EMsgATSUFSPerfTestTask = 1504; + k_EMsgATSUFSPerfTestResponse = 1505; + k_EMsgATSCycleTCM = 1506; + k_EMsgATSInitDRMSStressTest = 1507; + k_EMsgATSCallTest = 1508; + k_EMsgATSCallTestReply = 1509; + k_EMsgATSStartExternalStress = 1510; + k_EMsgATSExternalStressJobStart = 1511; + k_EMsgATSExternalStressJobQueued = 1512; + k_EMsgATSExternalStressJobRunning = 1513; + k_EMsgATSExternalStressJobStopped = 1514; + k_EMsgATSExternalStressJobStopAll = 1515; + k_EMsgATSExternalStressActionResult = 1516; + k_EMsgATSStarted = 1517; + k_EMsgATSCSPerfTestTask = 1518; + k_EMsgATSCSPerfTestResponse = 1519; + k_EMsgBaseDP = 1600; + k_EMsgDPSetPublishingState = 1601; + k_EMsgDPUniquePlayersStat = 1603; + k_EMsgDPStreamingUniquePlayersStat = 1604; + k_EMsgDPBlockingStats = 1607; + k_EMsgDPNatTraversalStats = 1608; + k_EMsgDPCloudStats = 1612; + k_EMsgDPGetPlayerCount = 1615; + k_EMsgDPGetPlayerCountResponse = 1616; + k_EMsgDPGameServersPlayersStats = 1617; + k_EMsgClientDPCheckSpecialSurvey = 1620; + k_EMsgClientDPCheckSpecialSurveyResponse = 1621; + k_EMsgClientDPSendSpecialSurveyResponse = 1622; + k_EMsgClientDPSendSpecialSurveyResponseReply = 1623; + k_EMsgDPStoreSaleStatistics = 1624; + k_EMsgDPPartnerMicroTxns = 1628; + k_EMsgDPPartnerMicroTxnsResponse = 1629; + k_EMsgDPVRUniquePlayersStat = 1631; + k_EMsgBaseCM = 1700; + k_EMsgCMSetAllowState = 1701; + k_EMsgCMSpewAllowState = 1702; + k_EMsgCMSessionRejected = 1703; + k_EMsgCMSetSecrets = 1704; + k_EMsgCMGetSecrets = 1705; + k_EMsgBaseGC = 2200; + k_EMsgGCCmdRevive = 2203; + k_EMsgGCCmdDown = 2206; + k_EMsgGCCmdDeploy = 2207; + k_EMsgGCCmdDeployResponse = 2208; + k_EMsgGCCmdSwitch = 2209; + k_EMsgAMRefreshSessions = 2210; + k_EMsgGCAchievementAwarded = 2212; + k_EMsgGCSystemMessage = 2213; + k_EMsgGCCmdStatus = 2216; + k_EMsgGCRegisterWebInterfaces_Deprecated = 2217; + k_EMsgGCGetAccountDetails_DEPRECATED = 2218; + k_EMsgGCInterAppMessage = 2219; + k_EMsgGCGetEmailTemplate = 2220; + k_EMsgGCGetEmailTemplateResponse = 2221; + k_EMsgGCHRelay = 2222; + k_EMsgGCHRelayToClient = 2223; + k_EMsgGCHUpdateSession = 2224; + k_EMsgGCHRequestUpdateSession = 2225; + k_EMsgGCHRequestStatus = 2226; + k_EMsgGCHRequestStatusResponse = 2227; + k_EMsgGCHAccountVacStatusChange = 2228; + k_EMsgGCHSpawnGC = 2229; + k_EMsgGCHSpawnGCResponse = 2230; + k_EMsgGCHKillGC = 2231; + k_EMsgGCHKillGCResponse = 2232; + k_EMsgGCHAccountTradeBanStatusChange = 2233; + k_EMsgGCHAccountLockStatusChange = 2234; + k_EMsgGCHVacVerificationChange = 2235; + k_EMsgGCHAccountPhoneNumberChange = 2236; + k_EMsgGCHAccountTwoFactorChange = 2237; + k_EMsgGCHInviteUserToLobby = 2238; + k_EMsgGCHUpdateMultipleSessions = 2239; + k_EMsgGCHMarkAppSessionsAuthoritative = 2240; + k_EMsgGCHRecurringSubscriptionStatusChange = 2241; + k_EMsgGCHAppCheersReceived = 2242; + k_EMsgGCHAppCheersGetAllowedTypes = 2243; + k_EMsgGCHAppCheersGetAllowedTypesResponse = 2244; + k_EMsgGCHRoutingRulesFromGCHtoGM = 2245; + k_EMsgGCHRoutingRulesToGCHfromGM = 2246; + k_EMsgUpdateCMMessageRateRules = 2247; + k_EMsgBaseP2P = 2500; + k_EMsgP2PIntroducerMessage = 2502; + k_EMsgBaseSM = 2900; + k_EMsgSMExpensiveReport = 2902; + k_EMsgSMHourlyReport = 2903; + k_EMsgSMPartitionRenames = 2905; + k_EMsgSMMonitorSpace = 2906; + k_EMsgSMTestNextBuildSchemaConversion = 2907; + k_EMsgSMTestNextBuildSchemaConversionResponse = 2908; + k_EMsgBaseTest = 3000; + k_EMsgFailServer = 3000; + k_EMsgJobHeartbeatTest = 3001; + k_EMsgJobHeartbeatTestResponse = 3002; + k_EMsgBaseFTSRange = 3100; + k_EMsgBaseCCSRange = 3150; + k_EMsgCCSDeleteAllCommentsByAuthor = 3161; + k_EMsgCCSDeleteAllCommentsByAuthorResponse = 3162; + k_EMsgBaseLBSRange = 3200; + k_EMsgLBSSetScore = 3201; + k_EMsgLBSSetScoreResponse = 3202; + k_EMsgLBSFindOrCreateLB = 3203; + k_EMsgLBSFindOrCreateLBResponse = 3204; + k_EMsgLBSGetLBEntries = 3205; + k_EMsgLBSGetLBEntriesResponse = 3206; + k_EMsgLBSGetLBList = 3207; + k_EMsgLBSGetLBListResponse = 3208; + k_EMsgLBSSetLBDetails = 3209; + k_EMsgLBSDeleteLB = 3210; + k_EMsgLBSDeleteLBEntry = 3211; + k_EMsgLBSResetLB = 3212; + k_EMsgLBSResetLBResponse = 3213; + k_EMsgLBSDeleteLBResponse = 3214; + k_EMsgBaseOGS = 3400; + k_EMsgOGSBeginSession = 3401; + k_EMsgOGSBeginSessionResponse = 3402; + k_EMsgOGSEndSession = 3403; + k_EMsgOGSEndSessionResponse = 3404; + k_EMsgOGSWriteAppSessionRow = 3406; + k_EMsgBaseBRP = 3600; + k_EMsgBRPPostTransactionTax = 3629; + k_EMsgBRPPostTransactionTaxResponse = 3630; + k_EMsgBaseAMRange2 = 4000; + k_EMsgAMCreateChat = 4001; + k_EMsgAMCreateChatResponse = 4002; + k_EMsgAMSetProfileURL = 4005; + k_EMsgAMGetAccountEmailAddress = 4006; + k_EMsgAMGetAccountEmailAddressResponse = 4007; + k_EMsgAMRequestClanData = 4008; + k_EMsgAMRouteToClients = 4009; + k_EMsgAMLeaveClan = 4010; + k_EMsgAMClanPermissions = 4011; + k_EMsgAMClanPermissionsResponse = 4012; + k_EMsgAMCreateClanEventDummyForRateLimiting = 4013; + k_EMsgAMUpdateClanEventDummyForRateLimiting = 4015; + k_EMsgAMSetClanPermissionSettings = 4021; + k_EMsgAMSetClanPermissionSettingsResponse = 4022; + k_EMsgAMGetClanPermissionSettings = 4023; + k_EMsgAMGetClanPermissionSettingsResponse = 4024; + k_EMsgAMPublishChatRoomInfo = 4025; + k_EMsgClientChatRoomInfo = 4026; + k_EMsgAMGetClanHistory = 4039; + k_EMsgAMGetClanHistoryResponse = 4040; + k_EMsgAMGetClanPermissionBits = 4041; + k_EMsgAMGetClanPermissionBitsResponse = 4042; + k_EMsgAMSetClanPermissionBits = 4043; + k_EMsgAMSetClanPermissionBitsResponse = 4044; + k_EMsgAMSessionInfoRequest = 4045; + k_EMsgAMSessionInfoResponse = 4046; + k_EMsgAMValidateWGToken = 4047; + k_EMsgAMGetClanRank = 4050; + k_EMsgAMGetClanRankResponse = 4051; + k_EMsgAMSetClanRank = 4052; + k_EMsgAMSetClanRankResponse = 4053; + k_EMsgAMGetClanPOTW = 4054; + k_EMsgAMGetClanPOTWResponse = 4055; + k_EMsgAMSetClanPOTW = 4056; + k_EMsgAMSetClanPOTWResponse = 4057; + k_EMsgAMDumpUser = 4059; + k_EMsgAMKickUserFromClan = 4060; + k_EMsgAMAddFounderToClan = 4061; + k_EMsgAMValidateWGTokenResponse = 4062; + k_EMsgAMSetAccountDetails = 4064; + k_EMsgAMGetChatBanList = 4065; + k_EMsgAMGetChatBanListResponse = 4066; + k_EMsgAMUnBanFromChat = 4067; + k_EMsgAMSetClanDetails = 4068; + k_EMsgUGSGetUserGameStats = 4073; + k_EMsgUGSGetUserGameStatsResponse = 4074; + k_EMsgAMCheckClanMembership = 4075; + k_EMsgAMGetClanMembers = 4076; + k_EMsgAMGetClanMembersResponse = 4077; + k_EMsgAMNotifyChatOfClanChange = 4079; + k_EMsgAMResubmitPurchase = 4080; + k_EMsgAMAddFriend = 4081; + k_EMsgAMAddFriendResponse = 4082; + k_EMsgAMRemoveFriend = 4083; + k_EMsgAMDumpClan = 4084; + k_EMsgAMChangeClanOwner = 4085; + k_EMsgAMCancelEasyCollect = 4086; + k_EMsgAMCancelEasyCollectResponse = 4087; + k_EMsgAMClansInCommon = 4090; + k_EMsgAMClansInCommonResponse = 4091; + k_EMsgAMIsValidAccountID = 4092; + k_EMsgAMWipeFriendsList = 4095; + k_EMsgAMSetIgnored = 4096; + k_EMsgAMClansInCommonCountResponse = 4097; + k_EMsgAMFriendsList = 4098; + k_EMsgAMFriendsListResponse = 4099; + k_EMsgAMFriendsInCommon = 4100; + k_EMsgAMFriendsInCommonResponse = 4101; + k_EMsgAMFriendsInCommonCountResponse = 4102; + k_EMsgAMClansInCommonCount = 4103; + k_EMsgAMChallengeVerdict = 4104; + k_EMsgAMChallengeNotification = 4105; + k_EMsgAMFindGSByIP = 4106; + k_EMsgAMFoundGSByIP = 4107; + k_EMsgAMGiftRevoked = 4108; + k_EMsgAMUserClanList = 4110; + k_EMsgAMUserClanListResponse = 4111; + k_EMsgAMGetAccountDetails2 = 4112; + k_EMsgAMGetAccountDetailsResponse2 = 4113; + k_EMsgAMSetCommunityProfileSettings = 4114; + k_EMsgAMSetCommunityProfileSettingsResponse = 4115; + k_EMsgAMGetCommunityPrivacyState = 4116; + k_EMsgAMGetCommunityPrivacyStateResponse = 4117; + k_EMsgAMCheckClanInviteRateLimiting = 4118; + k_EMsgUGSGetUserAchievementStatus = 4119; + k_EMsgAMGetIgnored = 4120; + k_EMsgAMGetIgnoredResponse = 4121; + k_EMsgAMSetIgnoredResponse = 4122; + k_EMsgAMSetFriendRelationshipNone = 4123; + k_EMsgAMGetFriendRelationship = 4124; + k_EMsgAMGetFriendRelationshipResponse = 4125; + k_EMsgAMServiceModulesCache = 4126; + k_EMsgAMServiceModulesCall = 4127; + k_EMsgAMServiceModulesCallResponse = 4128; + k_EMsgCommunityAddFriendNews = 4140; + k_EMsgAMFindClanUser = 4143; + k_EMsgAMFindClanUserResponse = 4144; + k_EMsgAMBanFromChat = 4145; + k_EMsgAMGetUserNewsSubscriptions = 4147; + k_EMsgAMGetUserNewsSubscriptionsResponse = 4148; + k_EMsgAMSetUserNewsSubscriptions = 4149; + k_EMsgAMSendQueuedEmails = 4152; + k_EMsgAMSetLicenseFlags = 4153; + k_EMsgCommunityDeleteUserNews = 4155; + k_EMsgAMGetAccountStatus = 4158; + k_EMsgAMGetAccountStatusResponse = 4159; + k_EMsgAMEditBanReason = 4160; + k_EMsgAMCheckClanMembershipResponse = 4161; + k_EMsgAMProbeClanMembershipList = 4162; + k_EMsgAMProbeClanMembershipListResponse = 4163; + k_EMsgUGSGetUserAchievementStatusResponse = 4164; + k_EMsgAMGetFriendsLobbies = 4165; + k_EMsgAMGetFriendsLobbiesResponse = 4166; + k_EMsgAMGetUserFriendNewsResponse = 4172; + k_EMsgCommunityGetUserFriendNews = 4173; + k_EMsgAMGetUserClansNewsResponse = 4174; + k_EMsgAMGetUserClansNews = 4175; + k_EMsgAMGetPreviousCBAccount = 4184; + k_EMsgAMGetPreviousCBAccountResponse = 4185; + k_EMsgAMGetUserLicenseHistory = 4190; + k_EMsgAMGetUserLicenseHistoryResponse = 4191; + k_EMsgAMSupportChangePassword = 4194; + k_EMsgAMSupportChangeEmail = 4195; + k_EMsgAMResetUserVerificationGSByIP = 4197; + k_EMsgAMUpdateGSPlayStats = 4198; + k_EMsgAMSupportEnableOrDisable = 4199; + k_EMsgAMGetPurchaseStatus = 4206; + k_EMsgAMSupportIsAccountEnabled = 4209; + k_EMsgAMSupportIsAccountEnabledResponse = 4210; + k_EMsgUGSGetUserStats = 4211; + k_EMsgAMGSSearch = 4213; + k_EMsgChatServerRouteFriendMsg = 4219; + k_EMsgAMTicketAuthRequestOrResponse = 4220; + k_EMsgAMAddFreeLicense = 4224; + k_EMsgAMValidateEmailLink = 4231; + k_EMsgAMValidateEmailLinkResponse = 4232; + k_EMsgUGSStoreUserStats = 4236; + k_EMsgAMDeleteStoredCard = 4241; + k_EMsgAMRevokeLegacyGameKeys = 4242; + k_EMsgAMGetWalletDetails = 4244; + k_EMsgAMGetWalletDetailsResponse = 4245; + k_EMsgAMDeleteStoredPaymentInfo = 4246; + k_EMsgAMGetStoredPaymentSummary = 4247; + k_EMsgAMGetStoredPaymentSummaryResponse = 4248; + k_EMsgAMGetWalletConversionRate = 4249; + k_EMsgAMGetWalletConversionRateResponse = 4250; + k_EMsgAMConvertWallet = 4251; + k_EMsgAMConvertWalletResponse = 4252; + k_EMsgAMSetPreApproval = 4255; + k_EMsgAMSetPreApprovalResponse = 4256; + k_EMsgAMCreateRefund = 4258; + k_EMsgAMCreateChargeback = 4260; + k_EMsgAMCreateDispute = 4262; + k_EMsgAMClearDispute = 4264; + k_EMsgAMCreateFinancialAdjustment = 4265; + k_EMsgAMPlayerNicknameList = 4266; + k_EMsgAMPlayerNicknameListResponse = 4267; + k_EMsgAMGetUserCurrentGameInfo = 4269; + k_EMsgAMGetUserCurrentGameInfoResponse = 4270; + k_EMsgAMGetGSPlayerList = 4271; + k_EMsgAMGetGSPlayerListResponse = 4272; + k_EMsgAMGetSteamIDForMicroTxn = 4278; + k_EMsgAMGetSteamIDForMicroTxnResponse = 4279; + k_EMsgAMSetPartnerMember = 4280; + k_EMsgAMRemovePublisherUser = 4281; + k_EMsgAMGetUserLicenseList = 4282; + k_EMsgAMGetUserLicenseListResponse = 4283; + k_EMsgAMReloadGameGroupPolicy = 4284; + k_EMsgAMAddFreeLicenseResponse = 4285; + k_EMsgAMVACStatusUpdate = 4286; + k_EMsgAMGetAccountDetails = 4287; + k_EMsgAMGetAccountDetailsResponse = 4288; + k_EMsgAMGetPlayerLinkDetails = 4289; + k_EMsgAMGetPlayerLinkDetailsResponse = 4290; + k_EMsgAMGetAccountFlagsForWGSpoofing = 4294; + k_EMsgAMGetAccountFlagsForWGSpoofingResponse = 4295; + k_EMsgAMGetClanOfficers = 4298; + k_EMsgAMGetClanOfficersResponse = 4299; + k_EMsgAMNameChange = 4300; + k_EMsgAMGetNameHistory = 4301; + k_EMsgAMGetNameHistoryResponse = 4302; + k_EMsgAMUpdateProviderStatus = 4305; + k_EMsgAMSupportRemoveAccountSecurity = 4307; + k_EMsgAMIsAccountInCaptchaGracePeriod = 4308; + k_EMsgAMIsAccountInCaptchaGracePeriodResponse = 4309; + k_EMsgAMAccountPS3Unlink = 4310; + k_EMsgAMAccountPS3UnlinkResponse = 4311; + k_EMsgUGSStoreUserStatsResponse = 4312; + k_EMsgAMGetAccountPSNInfo = 4313; + k_EMsgAMGetAccountPSNInfoResponse = 4314; + k_EMsgAMAuthenticatedPlayerList = 4315; + k_EMsgAMGetUserGifts = 4316; + k_EMsgAMGetUserGiftsResponse = 4317; + k_EMsgAMTransferLockedGifts = 4320; + k_EMsgAMTransferLockedGiftsResponse = 4321; + k_EMsgAMPlayerHostedOnGameServer = 4322; + k_EMsgAMGetAccountBanInfo = 4323; + k_EMsgAMGetAccountBanInfoResponse = 4324; + k_EMsgAMRecordBanEnforcement = 4325; + k_EMsgAMRollbackGiftTransfer = 4326; + k_EMsgAMRollbackGiftTransferResponse = 4327; + k_EMsgAMHandlePendingTransaction = 4328; + k_EMsgAMRequestClanDetails = 4329; + k_EMsgAMDeleteStoredPaypalAgreement = 4330; + k_EMsgAMGameServerUpdate = 4331; + k_EMsgAMGameServerRemove = 4332; + k_EMsgAMGetPaypalAgreements = 4333; + k_EMsgAMGetPaypalAgreementsResponse = 4334; + k_EMsgAMGameServerPlayerCompatibilityCheck = 4335; + k_EMsgAMGameServerPlayerCompatibilityCheckResponse = 4336; + k_EMsgAMRenewLicense = 4337; + k_EMsgAMGetAccountCommunityBanInfo = 4338; + k_EMsgAMGetAccountCommunityBanInfoResponse = 4339; + k_EMsgAMGameServerAccountChangePassword = 4340; + k_EMsgAMGameServerAccountDeleteAccount = 4341; + k_EMsgAMRenewAgreement = 4342; + k_EMsgAMXsollaPayment = 4344; + k_EMsgAMXsollaPaymentResponse = 4345; + k_EMsgAMAcctAllowedToPurchase = 4346; + k_EMsgAMAcctAllowedToPurchaseResponse = 4347; + k_EMsgAMSwapKioskDeposit = 4348; + k_EMsgAMSwapKioskDepositResponse = 4349; + k_EMsgAMSetUserGiftUnowned = 4350; + k_EMsgAMSetUserGiftUnownedResponse = 4351; + k_EMsgAMClaimUnownedUserGift = 4352; + k_EMsgAMClaimUnownedUserGiftResponse = 4353; + k_EMsgAMSetClanName = 4354; + k_EMsgAMSetClanNameResponse = 4355; + k_EMsgAMGrantCoupon = 4356; + k_EMsgAMGrantCouponResponse = 4357; + k_EMsgAMIsPackageRestrictedInUserCountry = 4358; + k_EMsgAMIsPackageRestrictedInUserCountryResponse = 4359; + k_EMsgAMHandlePendingTransactionResponse = 4360; + k_EMsgAMGrantGuestPasses2 = 4361; + k_EMsgAMGrantGuestPasses2Response = 4362; + k_EMsgAMGetPlayerBanDetails = 4365; + k_EMsgAMGetPlayerBanDetailsResponse = 4366; + k_EMsgAMFinalizePurchase = 4367; + k_EMsgAMFinalizePurchaseResponse = 4368; + k_EMsgAMPersonaChangeResponse = 4372; + k_EMsgAMGetClanDetailsForForumCreation = 4373; + k_EMsgAMGetClanDetailsForForumCreationResponse = 4374; + k_EMsgAMGetPendingNotificationCount = 4375; + k_EMsgAMGetPendingNotificationCountResponse = 4376; + k_EMsgAMPasswordHashUpgrade = 4377; + k_EMsgAMBoaCompraPayment = 4380; + k_EMsgAMBoaCompraPaymentResponse = 4381; + k_EMsgAMCompleteExternalPurchase = 4383; + k_EMsgAMCompleteExternalPurchaseResponse = 4384; + k_EMsgAMResolveNegativeWalletCredits = 4385; + k_EMsgAMResolveNegativeWalletCreditsResponse = 4386; + k_EMsgAMPlayerGetClanBasicDetails = 4389; + k_EMsgAMPlayerGetClanBasicDetailsResponse = 4390; + k_EMsgAMMOLPayment = 4391; + k_EMsgAMMOLPaymentResponse = 4392; + k_EMsgGetUserIPCountry = 4393; + k_EMsgGetUserIPCountryResponse = 4394; + k_EMsgNotificationOfSuspiciousActivity = 4395; + k_EMsgAMDegicaPayment = 4396; + k_EMsgAMDegicaPaymentResponse = 4397; + k_EMsgAMEClubPayment = 4398; + k_EMsgAMEClubPaymentResponse = 4399; + k_EMsgAMPayPalPaymentsHubPayment = 4400; + k_EMsgAMPayPalPaymentsHubPaymentResponse = 4401; + k_EMsgAMTwoFactorRecoverAuthenticatorRequest = 4402; + k_EMsgAMTwoFactorRecoverAuthenticatorResponse = 4403; + k_EMsgAMSmart2PayPayment = 4404; + k_EMsgAMSmart2PayPaymentResponse = 4405; + k_EMsgAMValidatePasswordResetCodeAndSendSmsRequest = 4406; + k_EMsgAMValidatePasswordResetCodeAndSendSmsResponse = 4407; + k_EMsgAMGetAccountResetDetailsRequest = 4408; + k_EMsgAMGetAccountResetDetailsResponse = 4409; + k_EMsgAMBitPayPayment = 4410; + k_EMsgAMBitPayPaymentResponse = 4411; + k_EMsgAMSendAccountInfoUpdate = 4412; + k_EMsgAMSendScheduledGift = 4413; + k_EMsgAMNodwinPayment = 4414; + k_EMsgAMNodwinPaymentResponse = 4415; + k_EMsgAMResolveWalletRevoke = 4416; + k_EMsgAMResolveWalletReverseRevoke = 4417; + k_EMsgAMFundedPayment = 4418; + k_EMsgAMFundedPaymentResponse = 4419; + k_EMsgAMRequestPersonaUpdateForChatServer = 4420; + k_EMsgAMPerfectWorldPayment = 4421; + k_EMsgAMPerfectWorldPaymentResponse = 4422; + k_EMsgAMECommPayPayment = 4423; + k_EMsgAMECommPayPaymentResponse = 4424; + k_EMsgAMSetRemoteClientID = 4425; + k_EMsgBasePSRange = 5000; + k_EMsgPSCreateShoppingCart = 5001; + k_EMsgPSCreateShoppingCartResponse = 5002; + k_EMsgPSIsValidShoppingCart = 5003; + k_EMsgPSIsValidShoppingCartResponse = 5004; + k_EMsgPSRemoveLineItemFromShoppingCart = 5007; + k_EMsgPSRemoveLineItemFromShoppingCartResponse = 5008; + k_EMsgPSGetShoppingCartContents = 5009; + k_EMsgPSGetShoppingCartContentsResponse = 5010; + k_EMsgPSAddWalletCreditToShoppingCart = 5011; + k_EMsgPSAddWalletCreditToShoppingCartResponse = 5012; + k_EMsgBaseUFSRange = 5200; + k_EMsgClientUFSUploadFileRequest = 5202; + k_EMsgClientUFSUploadFileResponse = 5203; + k_EMsgClientUFSUploadFileChunk = 5204; + k_EMsgClientUFSUploadFileFinished = 5205; + k_EMsgClientUFSGetFileListForApp = 5206; + k_EMsgClientUFSGetFileListForAppResponse = 5207; + k_EMsgClientUFSDownloadRequest = 5210; + k_EMsgClientUFSDownloadResponse = 5211; + k_EMsgClientUFSDownloadChunk = 5212; + k_EMsgClientUFSLoginRequest = 5213; + k_EMsgClientUFSLoginResponse = 5214; + k_EMsgUFSReloadPartitionInfo = 5215; + k_EMsgClientUFSTransferHeartbeat = 5216; + k_EMsgUFSSynchronizeFile = 5217; + k_EMsgUFSSynchronizeFileResponse = 5218; + k_EMsgClientUFSDeleteFileRequest = 5219; + k_EMsgClientUFSDeleteFileResponse = 5220; + k_EMsgClientUFSGetUGCDetails = 5226; + k_EMsgClientUFSGetUGCDetailsResponse = 5227; + k_EMsgUFSUpdateFileFlags = 5228; + k_EMsgUFSUpdateFileFlagsResponse = 5229; + k_EMsgClientUFSGetSingleFileInfo = 5230; + k_EMsgClientUFSGetSingleFileInfoResponse = 5231; + k_EMsgClientUFSShareFile = 5232; + k_EMsgClientUFSShareFileResponse = 5233; + k_EMsgUFSReloadAccount = 5234; + k_EMsgUFSReloadAccountResponse = 5235; + k_EMsgUFSUpdateRecordBatched = 5236; + k_EMsgUFSUpdateRecordBatchedResponse = 5237; + k_EMsgUFSMigrateFile = 5238; + k_EMsgUFSMigrateFileResponse = 5239; + k_EMsgUFSGetUGCURLs = 5240; + k_EMsgUFSGetUGCURLsResponse = 5241; + k_EMsgUFSHttpUploadFileFinishRequest = 5242; + k_EMsgUFSHttpUploadFileFinishResponse = 5243; + k_EMsgUFSDownloadStartRequest = 5244; + k_EMsgUFSDownloadStartResponse = 5245; + k_EMsgUFSDownloadChunkRequest = 5246; + k_EMsgUFSDownloadChunkResponse = 5247; + k_EMsgUFSDownloadFinishRequest = 5248; + k_EMsgUFSDownloadFinishResponse = 5249; + k_EMsgUFSFlushURLCache = 5250; + k_EMsgClientUFSUploadCommit = 5251; + k_EMsgClientUFSUploadCommitResponse = 5252; + k_EMsgUFSMigrateFileAppID = 5253; + k_EMsgUFSMigrateFileAppIDResponse = 5254; + k_EMsgBaseClient2 = 5400; + k_EMsgClientRequestForgottenPasswordEmail = 5401; + k_EMsgClientRequestForgottenPasswordEmailResponse = 5402; + k_EMsgClientCreateAccountResponse = 5403; + k_EMsgClientResetForgottenPassword = 5404; + k_EMsgClientResetForgottenPasswordResponse = 5405; + k_EMsgClientInformOfResetForgottenPassword = 5407; + k_EMsgClientInformOfResetForgottenPasswordResponse = 5408; + k_EMsgClientAnonUserLogOn_Deprecated = 5409; + k_EMsgClientGamesPlayedWithDataBlob = 5410; + k_EMsgClientUpdateUserGameInfo = 5411; + k_EMsgClientFileToDownload = 5412; + k_EMsgClientFileToDownloadResponse = 5413; + k_EMsgClientLBSSetScore = 5414; + k_EMsgClientLBSSetScoreResponse = 5415; + k_EMsgClientLBSFindOrCreateLB = 5416; + k_EMsgClientLBSFindOrCreateLBResponse = 5417; + k_EMsgClientLBSGetLBEntries = 5418; + k_EMsgClientLBSGetLBEntriesResponse = 5419; + k_EMsgClientChatDeclined = 5426; + k_EMsgClientFriendMsgIncoming = 5427; + k_EMsgClientAuthList_Deprecated = 5428; + k_EMsgClientTicketAuthComplete = 5429; + k_EMsgClientIsLimitedAccount = 5430; + k_EMsgClientRequestAuthList = 5431; + k_EMsgClientAuthList = 5432; + k_EMsgClientStat = 5433; + k_EMsgClientP2PConnectionInfo = 5434; + k_EMsgClientP2PConnectionFailInfo = 5435; + k_EMsgClientGetDepotDecryptionKey = 5438; + k_EMsgClientGetDepotDecryptionKeyResponse = 5439; + k_EMsgClientEnableTestLicense = 5443; + k_EMsgClientEnableTestLicenseResponse = 5444; + k_EMsgClientDisableTestLicense = 5445; + k_EMsgClientDisableTestLicenseResponse = 5446; + k_EMsgClientRequestValidationMail = 5448; + k_EMsgClientRequestValidationMailResponse = 5449; + k_EMsgClientCheckAppBetaPassword = 5450; + k_EMsgClientCheckAppBetaPasswordResponse = 5451; + k_EMsgClientToGC = 5452; + k_EMsgClientFromGC = 5453; + k_EMsgClientEmailAddrInfo = 5456; + k_EMsgClientPasswordChange3 = 5457; + k_EMsgClientEmailChange3 = 5458; + k_EMsgClientPersonalQAChange3 = 5459; + k_EMsgClientResetForgottenPassword3 = 5460; + k_EMsgClientRequestForgottenPasswordEmail3 = 5461; + k_EMsgClientNewLoginKey = 5463; + k_EMsgClientNewLoginKeyAccepted = 5464; + k_EMsgClientLogOnWithHash_Deprecated = 5465; + k_EMsgClientStoreUserStats2 = 5466; + k_EMsgClientStatsUpdated = 5467; + k_EMsgClientActivateOEMLicense = 5468; + k_EMsgClientRegisterOEMMachine = 5469; + k_EMsgClientRegisterOEMMachineResponse = 5470; + k_EMsgClientRequestedClientStats = 5480; + k_EMsgClientStat2Int32 = 5481; + k_EMsgClientStat2 = 5482; + k_EMsgClientVerifyPassword = 5483; + k_EMsgClientVerifyPasswordResponse = 5484; + k_EMsgClientDRMDownloadRequest = 5485; + k_EMsgClientDRMDownloadResponse = 5486; + k_EMsgClientDRMFinalResult = 5487; + k_EMsgClientGetFriendsWhoPlayGame = 5488; + k_EMsgClientGetFriendsWhoPlayGameResponse = 5489; + k_EMsgClientOGSBeginSession = 5490; + k_EMsgClientOGSBeginSessionResponse = 5491; + k_EMsgClientOGSEndSession = 5492; + k_EMsgClientOGSEndSessionResponse = 5493; + k_EMsgClientOGSWriteRow = 5494; + k_EMsgClientGetPeerContentInfo = 5495; + k_EMsgClientGetPeerContentInfoResponse = 5496; + k_EMsgClientStartPeerContentServer = 5497; + k_EMsgClientStartPeerContentServerResponse = 5498; + k_EMsgClientServerUnavailable = 5500; + k_EMsgClientServersAvailable = 5501; + k_EMsgClientRegisterAuthTicketWithCM = 5502; + k_EMsgClientGCMsgFailed = 5503; + k_EMsgClientMicroTxnAuthRequest = 5504; + k_EMsgClientMicroTxnAuthorize = 5505; + k_EMsgClientMicroTxnAuthorizeResponse = 5506; + k_EMsgClientGetMicroTxnInfo = 5508; + k_EMsgClientGetMicroTxnInfoResponse = 5509; + k_EMsgClientDeregisterWithServer = 5511; + k_EMsgClientSubscribeToPersonaFeed = 5512; + k_EMsgClientLogon = 5514; + k_EMsgClientGetClientDetails = 5515; + k_EMsgClientGetClientDetailsResponse = 5516; + k_EMsgClientReportOverlayDetourFailure = 5517; + k_EMsgClientGetClientAppList = 5518; + k_EMsgClientGetClientAppListResponse = 5519; + k_EMsgClientInstallClientApp = 5520; + k_EMsgClientInstallClientAppResponse = 5521; + k_EMsgClientUninstallClientApp = 5522; + k_EMsgClientUninstallClientAppResponse = 5523; + k_EMsgClientSetClientAppUpdateState = 5524; + k_EMsgClientSetClientAppUpdateStateResponse = 5525; + k_EMsgClientRequestEncryptedAppTicket = 5526; + k_EMsgClientRequestEncryptedAppTicketResponse = 5527; + k_EMsgClientWalletInfoUpdate = 5528; + k_EMsgClientLBSSetUGC = 5529; + k_EMsgClientLBSSetUGCResponse = 5530; + k_EMsgClientAMGetClanOfficers = 5531; + k_EMsgClientAMGetClanOfficersResponse = 5532; + k_EMsgClientFriendProfileInfo = 5535; + k_EMsgClientFriendProfileInfoResponse = 5536; + k_EMsgClientUpdateMachineAuth = 5537; + k_EMsgClientUpdateMachineAuthResponse = 5538; + k_EMsgClientReadMachineAuth = 5539; + k_EMsgClientReadMachineAuthResponse = 5540; + k_EMsgClientRequestMachineAuth = 5541; + k_EMsgClientRequestMachineAuthResponse = 5542; + k_EMsgClientScreenshotsChanged = 5543; + k_EMsgClientGetCDNAuthToken = 5546; + k_EMsgClientGetCDNAuthTokenResponse = 5547; + k_EMsgClientDownloadRateStatistics = 5548; + k_EMsgClientRequestAccountData = 5549; + k_EMsgClientRequestAccountDataResponse = 5550; + k_EMsgClientResetForgottenPassword4 = 5551; + k_EMsgClientHideFriend = 5552; + k_EMsgClientFriendsGroupsList = 5553; + k_EMsgClientGetClanActivityCounts = 5554; + k_EMsgClientGetClanActivityCountsResponse = 5555; + k_EMsgClientOGSReportString = 5556; + k_EMsgClientOGSReportBug = 5557; + k_EMsgClientSentLogs = 5558; + k_EMsgClientLogonGameServer = 5559; + k_EMsgAMClientCreateFriendsGroup = 5560; + k_EMsgAMClientCreateFriendsGroupResponse = 5561; + k_EMsgAMClientDeleteFriendsGroup = 5562; + k_EMsgAMClientDeleteFriendsGroupResponse = 5563; + k_EMsgAMClientManageFriendsGroup = 5564; + k_EMsgAMClientManageFriendsGroupResponse = 5565; + k_EMsgAMClientAddFriendToGroup = 5566; + k_EMsgAMClientAddFriendToGroupResponse = 5567; + k_EMsgAMClientRemoveFriendFromGroup = 5568; + k_EMsgAMClientRemoveFriendFromGroupResponse = 5569; + k_EMsgClientAMGetPersonaNameHistory = 5570; + k_EMsgClientAMGetPersonaNameHistoryResponse = 5571; + k_EMsgClientRequestFreeLicense = 5572; + k_EMsgClientRequestFreeLicenseResponse = 5573; + k_EMsgClientDRMDownloadRequestWithCrashData = 5574; + k_EMsgClientAuthListAck = 5575; + k_EMsgClientItemAnnouncements = 5576; + k_EMsgClientRequestItemAnnouncements = 5577; + k_EMsgClientFriendMsgEchoToSender = 5578; + k_EMsgClientCommentNotifications = 5582; + k_EMsgClientRequestCommentNotifications = 5583; + k_EMsgClientPersonaChangeResponse = 5584; + k_EMsgClientRequestWebAPIAuthenticateUserNonce = 5585; + k_EMsgClientRequestWebAPIAuthenticateUserNonceResponse = 5586; + k_EMsgClientPlayerNicknameList = 5587; + k_EMsgAMClientSetPlayerNickname = 5588; + k_EMsgAMClientSetPlayerNicknameResponse = 5589; + k_EMsgClientGetNumberOfCurrentPlayersDP = 5592; + k_EMsgClientGetNumberOfCurrentPlayersDPResponse = 5593; + k_EMsgClientServiceMethodLegacy = 5594; + k_EMsgClientServiceMethodLegacyResponse = 5595; + k_EMsgClientFriendUserStatusPublished = 5596; + k_EMsgClientCurrentUIMode = 5597; + k_EMsgClientVanityURLChangedNotification = 5598; + k_EMsgClientUserNotifications = 5599; + k_EMsgBaseDFS = 5600; + k_EMsgDFSGetFile = 5601; + k_EMsgDFSInstallLocalFile = 5602; + k_EMsgDFSConnection = 5603; + k_EMsgDFSConnectionReply = 5604; + k_EMsgClientDFSAuthenticateRequest = 5605; + k_EMsgClientDFSAuthenticateResponse = 5606; + k_EMsgClientDFSEndSession = 5607; + k_EMsgDFSPurgeFile = 5608; + k_EMsgDFSRouteFile = 5609; + k_EMsgDFSGetFileFromServer = 5610; + k_EMsgDFSAcceptedResponse = 5611; + k_EMsgDFSRequestPingback = 5612; + k_EMsgDFSRecvTransmitFile = 5613; + k_EMsgDFSSendTransmitFile = 5614; + k_EMsgDFSRequestPingback2 = 5615; + k_EMsgDFSResponsePingback2 = 5616; + k_EMsgClientDFSDownloadStatus = 5617; + k_EMsgDFSStartTransfer = 5618; + k_EMsgDFSTransferComplete = 5619; + k_EMsgDFSRouteFileResponse = 5620; + k_EMsgClientNetworkingCertRequest = 5621; + k_EMsgClientNetworkingCertRequestResponse = 5622; + k_EMsgClientChallengeRequest = 5623; + k_EMsgClientChallengeResponse = 5624; + k_EMsgBadgeCraftedNotification = 5625; + k_EMsgClientNetworkingMobileCertRequest = 5626; + k_EMsgClientNetworkingMobileCertRequestResponse = 5627; + k_EMsgBaseMDS = 5800; + k_EMsgMDSGetDepotDecryptionKey = 5812; + k_EMsgMDSGetDepotDecryptionKeyResponse = 5813; + k_EMsgMDSContentServerConfigRequest = 5827; + k_EMsgMDSContentServerConfig = 5828; + k_EMsgMDSGetDepotManifest = 5829; + k_EMsgMDSGetDepotManifestResponse = 5830; + k_EMsgMDSGetDepotManifestChunk = 5831; + k_EMsgMDSGetDepotChunk = 5832; + k_EMsgMDSGetDepotChunkResponse = 5833; + k_EMsgMDSGetDepotChunkChunk = 5834; + k_EMsgMDSToCSFlushChunk = 5844; + k_EMsgMDSMigrateChunk = 5847; + k_EMsgMDSMigrateChunkResponse = 5848; + k_EMsgMDSToCSFlushManifest = 5849; + k_EMsgCSBase = 6200; + k_EMsgCSPing = 6201; + k_EMsgCSPingResponse = 6202; + k_EMsgGMSBase = 6400; + k_EMsgGMSGameServerReplicate = 6401; + k_EMsgClientGMSServerQuery = 6403; + k_EMsgGMSClientServerQueryResponse = 6404; + k_EMsgAMGMSGameServerUpdate = 6405; + k_EMsgAMGMSGameServerRemove = 6406; + k_EMsgGameServerOutOfDate = 6407; + k_EMsgDeviceAuthorizationBase = 6500; + k_EMsgClientAuthorizeLocalDeviceRequest = 6501; + k_EMsgClientAuthorizeLocalDeviceResponse = 6502; + k_EMsgClientDeauthorizeDeviceRequest = 6503; + k_EMsgClientDeauthorizeDevice = 6504; + k_EMsgClientUseLocalDeviceAuthorizations = 6505; + k_EMsgClientGetAuthorizedDevices = 6506; + k_EMsgClientGetAuthorizedDevicesResponse = 6507; + k_EMsgAMNotifySessionDeviceAuthorized = 6508; + k_EMsgClientAuthorizeLocalDeviceNotification = 6509; + k_EMsgMMSBase = 6600; + k_EMsgClientMMSCreateLobby = 6601; + k_EMsgClientMMSCreateLobbyResponse = 6602; + k_EMsgClientMMSJoinLobby = 6603; + k_EMsgClientMMSJoinLobbyResponse = 6604; + k_EMsgClientMMSLeaveLobby = 6605; + k_EMsgClientMMSLeaveLobbyResponse = 6606; + k_EMsgClientMMSGetLobbyList = 6607; + k_EMsgClientMMSGetLobbyListResponse = 6608; + k_EMsgClientMMSSetLobbyData = 6609; + k_EMsgClientMMSSetLobbyDataResponse = 6610; + k_EMsgClientMMSGetLobbyData = 6611; + k_EMsgClientMMSLobbyData = 6612; + k_EMsgClientMMSSendLobbyChatMsg = 6613; + k_EMsgClientMMSLobbyChatMsg = 6614; + k_EMsgClientMMSSetLobbyOwner = 6615; + k_EMsgClientMMSSetLobbyOwnerResponse = 6616; + k_EMsgClientMMSSetLobbyGameServer = 6617; + k_EMsgClientMMSLobbyGameServerSet = 6618; + k_EMsgClientMMSUserJoinedLobby = 6619; + k_EMsgClientMMSUserLeftLobby = 6620; + k_EMsgClientMMSInviteToLobby = 6621; + k_EMsgClientMMSFlushFrenemyListCache = 6622; + k_EMsgClientMMSFlushFrenemyListCacheResponse = 6623; + k_EMsgClientMMSSetLobbyLinked = 6624; + k_EMsgClientMMSSetRatelimitPolicyOnClient = 6625; + k_EMsgClientMMSGetLobbyStatus = 6626; + k_EMsgClientMMSGetLobbyStatusResponse = 6627; + k_EMsgMMSGetLobbyList = 6628; + k_EMsgMMSGetLobbyListResponse = 6629; + k_EMsgNonStdMsgBase = 6800; + k_EMsgNonStdMsgMemcached = 6801; + k_EMsgNonStdMsgHTTPServer = 6802; + k_EMsgNonStdMsgHTTPClient = 6803; + k_EMsgNonStdMsgWGResponse = 6804; + k_EMsgNonStdMsgPHPSimulator = 6805; + k_EMsgNonStdMsgChase = 6806; + k_EMsgNonStdMsgDFSTransfer = 6807; + k_EMsgNonStdMsgTests = 6808; + k_EMsgNonStdMsgUMQpipeAAPL = 6809; + k_EMSgNonStdMsgSyslog = 6810; + k_EMsgNonStdMsgLogsink = 6811; + k_EMsgNonStdMsgSteam2Emulator = 6812; + k_EMsgNonStdMsgRTMPServer = 6813; + k_EMsgNonStdMsgWebSocket = 6814; + k_EMsgNonStdMsgRedis = 6815; + k_EMsgUDSBase = 7000; + k_EMsgClientUDSP2PSessionStarted = 7001; + k_EMsgClientUDSP2PSessionEnded = 7002; + k_EMsgUDSRenderUserAuth = 7003; + k_EMsgUDSRenderUserAuthResponse = 7004; + k_EMsgClientInviteToGame = 7005; + k_EMsgUDSHasSession = 7006; + k_EMsgUDSHasSessionResponse = 7007; + k_EMsgMPASBase = 7100; + k_EMsgMPASVacBanReset = 7101; + k_EMsgKGSBase = 7200; + k_EMsgUCMBase = 7300; + k_EMsgClientUCMAddScreenshot = 7301; + k_EMsgClientUCMAddScreenshotResponse = 7302; + k_EMsgUCMResetCommunityContent = 7307; + k_EMsgUCMResetCommunityContentResponse = 7308; + k_EMsgClientUCMDeleteScreenshot = 7309; + k_EMsgClientUCMDeleteScreenshotResponse = 7310; + k_EMsgClientUCMPublishFile = 7311; + k_EMsgClientUCMPublishFileResponse = 7312; + k_EMsgClientUCMDeletePublishedFile = 7315; + k_EMsgClientUCMDeletePublishedFileResponse = 7316; + k_EMsgClientUCMUpdatePublishedFile = 7325; + k_EMsgClientUCMUpdatePublishedFileResponse = 7326; + k_EMsgUCMUpdatePublishedFile = 7327; + k_EMsgUCMUpdatePublishedFileResponse = 7328; + k_EMsgUCMUpdatePublishedFileStat = 7331; + k_EMsgUCMReloadPublishedFile = 7337; + k_EMsgUCMReloadUserFileListCaches = 7338; + k_EMsgUCMPublishedFileReported = 7339; + k_EMsgUCMPublishedFilePreviewAdd = 7341; + k_EMsgUCMPublishedFilePreviewAddResponse = 7342; + k_EMsgUCMPublishedFilePreviewRemove = 7343; + k_EMsgUCMPublishedFilePreviewRemoveResponse = 7344; + k_EMsgUCMPublishedFileSubscribed = 7349; + k_EMsgUCMPublishedFileUnsubscribed = 7350; + k_EMsgUCMPublishFile = 7351; + k_EMsgUCMPublishFileResponse = 7352; + k_EMsgUCMPublishedFileChildAdd = 7353; + k_EMsgUCMPublishedFileChildAddResponse = 7354; + k_EMsgUCMPublishedFileChildRemove = 7355; + k_EMsgUCMPublishedFileChildRemoveResponse = 7356; + k_EMsgUCMPublishedFileParentChanged = 7359; + k_EMsgClientUCMSetUserPublishedFileAction = 7364; + k_EMsgClientUCMSetUserPublishedFileActionResponse = 7365; + k_EMsgClientUCMEnumeratePublishedFilesByUserAction = 7366; + k_EMsgClientUCMEnumeratePublishedFilesByUserActionResponse = 7367; + k_EMsgUCMGetUserSubscribedFiles = 7369; + k_EMsgUCMGetUserSubscribedFilesResponse = 7370; + k_EMsgUCMFixStatsPublishedFile = 7371; + k_EMsgClientUCMEnumerateUserSubscribedFilesWithUpdates = 7378; + k_EMsgClientUCMEnumerateUserSubscribedFilesWithUpdatesResponse = 7379; + k_EMsgUCMPublishedFileContentUpdated = 7380; + k_EMsgClientUCMPublishedFileUpdated = 7381; + k_EMsgFSBase = 7500; + k_EMsgClientRichPresenceUpload = 7501; + k_EMsgClientRichPresenceRequest = 7502; + k_EMsgClientRichPresenceInfo = 7503; + k_EMsgFSRichPresenceRequest = 7504; + k_EMsgFSRichPresenceResponse = 7505; + k_EMsgFSComputeFrenematrix = 7506; + k_EMsgFSComputeFrenematrixResponse = 7507; + k_EMsgFSPlayStatusNotification = 7508; + k_EMsgFSAddOrRemoveFollower = 7510; + k_EMsgFSAddOrRemoveFollowerResponse = 7511; + k_EMsgFSUpdateFollowingList = 7512; + k_EMsgFSCommentNotification = 7513; + k_EMsgFSCommentNotificationViewed = 7514; + k_EMsgClientFSGetFollowerCount = 7515; + k_EMsgClientFSGetFollowerCountResponse = 7516; + k_EMsgClientFSGetIsFollowing = 7517; + k_EMsgClientFSGetIsFollowingResponse = 7518; + k_EMsgClientFSEnumerateFollowingList = 7519; + k_EMsgClientFSEnumerateFollowingListResponse = 7520; + k_EMsgFSGetPendingNotificationCount = 7521; + k_EMsgFSGetPendingNotificationCountResponse = 7522; + k_EMsgClientChatOfflineMessageNotification = 7523; + k_EMsgClientChatRequestOfflineMessageCount = 7524; + k_EMsgClientChatGetFriendMessageHistory = 7525; + k_EMsgClientChatGetFriendMessageHistoryResponse = 7526; + k_EMsgClientChatGetFriendMessageHistoryForOfflineMessages = 7527; + k_EMsgClientFSGetFriendsSteamLevels = 7528; + k_EMsgClientFSGetFriendsSteamLevelsResponse = 7529; + k_EMsgAMRequestFriendData = 7530; + k_EMsgDRMRange2 = 7600; + k_EMsgCEGVersionSetEnableDisableRequest = 7600; + k_EMsgCEGVersionSetEnableDisableResponse = 7601; + k_EMsgCEGPropStatusDRMSRequest = 7602; + k_EMsgCEGPropStatusDRMSResponse = 7603; + k_EMsgCEGWhackFailureReportRequest = 7604; + k_EMsgCEGWhackFailureReportResponse = 7605; + k_EMsgDRMSFetchVersionSet = 7606; + k_EMsgDRMSFetchVersionSetResponse = 7607; + k_EMsgEconBase = 7700; + k_EMsgEconTrading_InitiateTradeRequest = 7701; + k_EMsgEconTrading_InitiateTradeProposed = 7702; + k_EMsgEconTrading_InitiateTradeResponse = 7703; + k_EMsgEconTrading_InitiateTradeResult = 7704; + k_EMsgEconTrading_StartSession = 7705; + k_EMsgEconTrading_CancelTradeRequest = 7706; + k_EMsgEconFlushInventoryCache = 7707; + k_EMsgEconFlushInventoryCacheResponse = 7708; + k_EMsgEconCDKeyProcessTransaction = 7711; + k_EMsgEconCDKeyProcessTransactionResponse = 7712; + k_EMsgEconGetErrorLogs = 7713; + k_EMsgEconGetErrorLogsResponse = 7714; + k_EMsgRMRange = 7800; + k_EMsgRMTestVerisignOTP = 7800; + k_EMsgRMTestVerisignOTPResponse = 7801; + k_EMsgRMDeleteMemcachedKeys = 7803; + k_EMsgRMRemoteInvoke = 7804; + k_EMsgBadLoginIPList = 7805; + k_EMsgRMMsgTraceAddTrigger = 7806; + k_EMsgRMMsgTraceRemoveTrigger = 7807; + k_EMsgRMMsgTraceEvent = 7808; + k_EMsgUGSBase = 7900; + k_EMsgUGSUpdateGlobalStats = 7900; + k_EMsgClientUGSGetGlobalStats = 7901; + k_EMsgClientUGSGetGlobalStatsResponse = 7902; + k_EMsgStoreBase = 8000; + k_EMsgUMQBase = 8100; + k_EMsgUMQLogonRequest = 8100; + k_EMsgUMQLogonResponse = 8101; + k_EMsgUMQLogoffRequest = 8102; + k_EMsgUMQLogoffResponse = 8103; + k_EMsgUMQSendChatMessage = 8104; + k_EMsgUMQIncomingChatMessage = 8105; + k_EMsgUMQPoll = 8106; + k_EMsgUMQPollResults = 8107; + k_EMsgUMQ2AM_ClientMsgBatch = 8108; + k_EMsgWorkshopBase = 8200; + k_EMsgWebAPIBase = 8300; + k_EMsgWebAPIValidateOAuth2Token = 8300; + k_EMsgWebAPIValidateOAuth2TokenResponse = 8301; + k_EMsgWebAPIRegisterGCInterfaces = 8303; + k_EMsgWebAPIInvalidateOAuthClientCache = 8304; + k_EMsgWebAPIInvalidateOAuthTokenCache = 8305; + k_EMsgWebAPISetSecrets = 8306; + k_EMsgBackpackBase = 8400; + k_EMsgBackpackAddToCurrency = 8401; + k_EMsgBackpackAddToCurrencyResponse = 8402; + k_EMsgCREBase = 8500; + k_EMsgCREItemVoteSummary = 8503; + k_EMsgCREItemVoteSummaryResponse = 8504; + k_EMsgCREUpdateUserPublishedItemVote = 8507; + k_EMsgCREUpdateUserPublishedItemVoteResponse = 8508; + k_EMsgCREGetUserPublishedItemVoteDetails = 8509; + k_EMsgCREGetUserPublishedItemVoteDetailsResponse = 8510; + k_EMsgSecretsBase = 8600; + k_EMsgSecretsRequestCredentialPair = 8600; + k_EMsgSecretsCredentialPairResponse = 8601; + k_EMsgBoxMonitorBase = 8700; + k_EMsgBoxMonitorReportRequest = 8700; + k_EMsgBoxMonitorReportResponse = 8701; + k_EMsgLogsinkBase = 8800; + k_EMsgLogsinkWriteReport = 8800; + k_EMsgPICSBase = 8900; + k_EMsgClientPICSChangesSinceRequest = 8901; + k_EMsgClientPICSChangesSinceResponse = 8902; + k_EMsgClientPICSProductInfoRequest = 8903; + k_EMsgClientPICSProductInfoResponse = 8904; + k_EMsgClientPICSAccessTokenRequest = 8905; + k_EMsgClientPICSAccessTokenResponse = 8906; + k_EMsgWorkerProcess = 9000; + k_EMsgWorkerProcessPingRequest = 9000; + k_EMsgWorkerProcessPingResponse = 9001; + k_EMsgWorkerProcessShutdown = 9002; + k_EMsgDRMWorkerProcess = 9100; + k_EMsgDRMWorkerProcessDRMAndSign = 9100; + k_EMsgDRMWorkerProcessDRMAndSignResponse = 9101; + k_EMsgDRMWorkerProcessSteamworksInfoRequest = 9102; + k_EMsgDRMWorkerProcessSteamworksInfoResponse = 9103; + k_EMsgDRMWorkerProcessInstallDRMDLLRequest = 9104; + k_EMsgDRMWorkerProcessInstallDRMDLLResponse = 9105; + k_EMsgDRMWorkerProcessSecretIdStringRequest = 9106; + k_EMsgDRMWorkerProcessSecretIdStringResponse = 9107; + k_EMsgDRMWorkerProcessInstallProcessedFilesRequest = 9110; + k_EMsgDRMWorkerProcessInstallProcessedFilesResponse = 9111; + k_EMsgDRMWorkerProcessExamineBlobRequest = 9112; + k_EMsgDRMWorkerProcessExamineBlobResponse = 9113; + k_EMsgDRMWorkerProcessDescribeSecretRequest = 9114; + k_EMsgDRMWorkerProcessDescribeSecretResponse = 9115; + k_EMsgDRMWorkerProcessBackfillOriginalRequest = 9116; + k_EMsgDRMWorkerProcessBackfillOriginalResponse = 9117; + k_EMsgDRMWorkerProcessValidateDRMDLLRequest = 9118; + k_EMsgDRMWorkerProcessValidateDRMDLLResponse = 9119; + k_EMsgDRMWorkerProcessValidateFileRequest = 9120; + k_EMsgDRMWorkerProcessValidateFileResponse = 9121; + k_EMsgDRMWorkerProcessSplitAndInstallRequest = 9122; + k_EMsgDRMWorkerProcessSplitAndInstallResponse = 9123; + k_EMsgDRMWorkerProcessGetBlobRequest = 9124; + k_EMsgDRMWorkerProcessGetBlobResponse = 9125; + k_EMsgDRMWorkerProcessEvaluateCrashRequest = 9126; + k_EMsgDRMWorkerProcessEvaluateCrashResponse = 9127; + k_EMsgDRMWorkerProcessAnalyzeFileRequest = 9128; + k_EMsgDRMWorkerProcessAnalyzeFileResponse = 9129; + k_EMsgDRMWorkerProcessUnpackBlobRequest = 9130; + k_EMsgDRMWorkerProcessUnpackBlobResponse = 9131; + k_EMsgDRMWorkerProcessInstallAllRequest = 9132; + k_EMsgDRMWorkerProcessInstallAllResponse = 9133; + k_EMsgTestWorkerProcess = 9200; + k_EMsgTestWorkerProcessLoadUnloadModuleRequest = 9200; + k_EMsgTestWorkerProcessLoadUnloadModuleResponse = 9201; + k_EMsgTestWorkerProcessServiceModuleCallRequest = 9202; + k_EMsgTestWorkerProcessServiceModuleCallResponse = 9203; + k_EMsgQuestServerBase = 9300; + k_EMsgClientGetEmoticonList = 9330; + k_EMsgClientEmoticonList = 9331; + k_EMsgSLCBase = 9400; + k_EMsgSLCUserSessionStatus = 9400; + k_EMsgSLCRequestUserSessionStatus = 9401; + k_EMsgSLCSharedLicensesLockStatus = 9402; + k_EMsgClientSharedLibraryLockStatus = 9405; + k_EMsgClientSharedLibraryStopPlaying = 9406; + k_EMsgSLCOwnerLibraryChanged = 9407; + k_EMsgSLCSharedLibraryChanged = 9408; + k_EMsgRemoteClientBase = 9500; + k_EMsgRemoteClientAuth_OBSOLETE = 9500; + k_EMsgRemoteClientAuthResponse_OBSOLETE = 9501; + k_EMsgRemoteClientAppStatus = 9502; + k_EMsgRemoteClientStartStream = 9503; + k_EMsgRemoteClientStartStreamResponse = 9504; + k_EMsgRemoteClientPing = 9505; + k_EMsgRemoteClientPingResponse = 9506; + k_EMsgClientUnlockH264 = 9507; + k_EMsgClientUnlockH264Response = 9508; + k_EMsgRemoteClientAcceptEULA = 9509; + k_EMsgRemoteClientGetControllerConfig = 9510; + k_EMsgRemoteClientGetControllerConfigResponse = 9511; + k_EMsgRemoteClientStreamingEnabled = 9512; + k_EMsgClientUnlockHEVC_OBSOLETE = 9513; + k_EMsgClientUnlockHEVCResponse_OBSOLETE = 9514; + k_EMsgRemoteClientStatusRequest = 9515; + k_EMsgRemoteClientStatusResponse = 9516; + k_EMsgClientConcurrentSessionsBase = 9600; + k_EMsgClientPlayingSessionState = 9600; + k_EMsgClientKickPlayingSession = 9601; + k_EMsgClientBroadcastBase = 9700; + k_EMsgClientBroadcastInit = 9700; + k_EMsgClientBroadcastFrames = 9701; + k_EMsgClientBroadcastDisconnect = 9702; + k_EMsgClientBroadcastUploadConfig = 9704; + k_EMsgBaseClient3 = 9800; + k_EMsgClientVoiceCallPreAuthorize = 9800; + k_EMsgClientVoiceCallPreAuthorizeResponse = 9801; + k_EMsgClientServerTimestampRequest = 9802; + k_EMsgClientServerTimestampResponse = 9803; + k_EMsgServiceMethodCallFromClientNonAuthed = 9804; + k_EMsgClientHello = 9805; + k_EMsgClientEnableOrDisableDownloads = 9806; + k_EMsgClientEnableOrDisableDownloadsResponse = 9807; + k_EMsgClientLANP2PBase = 9900; + k_EMsgClientLANP2PRequestChunk = 9900; + k_EMsgClientLANP2PRequestChunkResponse = 9901; + k_EMsgClientPeerChunkRequest = 9902; + k_EMsgClientPeerChunkResponse = 9903; + k_EMsgClientLANP2PMax = 9999; + k_EMsgBaseWatchdogServer = 10000; + k_EMsgNotifyWatchdog = 10000; + k_EMsgClientSiteLicenseBase = 10100; + k_EMsgClientSiteLicenseSiteInfoNotification = 10100; + k_EMsgClientSiteLicenseCheckout = 10101; + k_EMsgClientSiteLicenseCheckoutResponse = 10102; + k_EMsgClientSiteLicenseGetAvailableSeats = 10103; + k_EMsgClientSiteLicenseGetAvailableSeatsResponse = 10104; + k_EMsgClientSiteLicenseGetContentCacheInfo = 10105; + k_EMsgClientSiteLicenseGetContentCacheInfoResponse = 10106; + k_EMsgBaseChatServer = 12000; + k_EMsgChatServerGetPendingNotificationCount = 12000; + k_EMsgChatServerGetPendingNotificationCountResponse = 12001; + k_EMsgBaseSecretServer = 12100; + k_EMsgServerSecretChanged = 12100; + k_EMsgBaseWG = 12200; + k_EMsgWGConnectionProtocolError = 12200; + k_EMsgWGConnectionValidateUserToken = 12201; + k_EMsgWGConnectionValidateUserTokenResponse = 12202; + k_EMsgWGConnectionLegacyWGRequest = 12203; + k_EMsgWGConnectionLegacyWGResponse = 12204; +} + +enum EClientPersonaStateFlag { + k_EClientPersonaStateFlagStatus = 1; + k_EClientPersonaStateFlagPlayerName = 2; + k_EClientPersonaStateFlagQueryPort = 4; + k_EClientPersonaStateFlagSourceID = 8; + k_EClientPersonaStateFlagPresence = 16; + k_EClientPersonaStateFlagLastSeen = 64; + k_EClientPersonaStateFlagUserClanRank = 128; + k_EClientPersonaStateGameExtraInfo = 256; + k_EClientPersonaStateGameDataBlob = 512; + k_EClientPersonaStateFlagClanData = 1024; + k_EClientPersonaStateFlagFacebook = 2048; + k_EClientPersonaStateFlagRichPresence = 4096; + k_EClientPersonaStateFlagBroadcast = 8192; + k_EClientPersonaStateFlagWatching = 16384; +} + +enum EMsgClanAccountFlags { + k_EMsgClanAccountFlagPublic = 1; + k_EMsgClanAccountFlagLarge = 2; + k_EMsgClanAccountFlagLocked = 4; + k_EMsgClanAccountFlagDisabled = 8; + k_EMsgClanAccountFlagOGG = 16; +} + +enum ESteamReviewScore { + k_ESteamReviewScore_OverwhelminglyPositive = 9; + k_ESteamReviewScore_VeryPositive = 8; + k_ESteamReviewScore_Positive = 7; + k_ESteamReviewScore_MostlyPositive = 6; + k_ESteamReviewScore_Mixed = 5; + k_ESteamReviewScore_MostlyNegative = 4; + k_ESteamReviewScore_Negative = 3; + k_ESteamReviewScore_VeryNegative = 2; + k_ESteamReviewScore_OverwhelminglyNegative = 1; + k_ESteamReviewScore_None = 0; +} + +enum ECodecUsagePlatform { + k_ECodecUsagePlatformUnknown = 0; + k_ECodecUsagePlatformWindows = 1; + k_ECodecUsagePlatformMacOS = 2; + k_ECodecUsagePlatformLinux = 3; + k_ECodecUsagePlatformSteamDeck = 4; +} + +enum ECodecUsageReason { + k_ECodecUsageReasonUnknown = 0; + k_ECodecUsageReasonRemotePlay = 1; + k_ECodecUsageReasonBroadcasting = 2; + k_ECodecUsageReasonGameVideo = 3; +} diff --git a/Protobufs/dota2/gameevents.proto b/Protobufs/dota2/gameevents.proto new file mode 100644 index 0000000..8bf8c05 --- /dev/null +++ b/Protobufs/dota2/gameevents.proto @@ -0,0 +1,120 @@ +import "networkbasetypes.proto"; + +enum EBaseGameEvents { + GE_VDebugGameSessionIDEvent = 200; + GE_PlaceDecalEvent = 201; + GE_ClearWorldDecalsEvent = 202; + GE_ClearEntityDecalsEvent = 203; + GE_ClearDecalsForSkeletonInstanceEvent = 204; + GE_Source1LegacyGameEventList = 205; + GE_Source1LegacyListenEvents = 206; + GE_Source1LegacyGameEvent = 207; + GE_SosStartSoundEvent = 208; + GE_SosStopSoundEvent = 209; + GE_SosSetSoundEventParams = 210; + GE_SosSetLibraryStackFields = 211; + GE_SosStopSoundEventHash = 212; +} + +message CMsgVDebugGameSessionIDEvent { + optional int32 clientid = 1; + optional string gamesessionid = 2; +} + +message CMsgPlaceDecalEvent { + optional .CMsgVector position = 1; + optional .CMsgVector normal = 2; + optional .CMsgVector saxis = 3; + optional uint32 decalmaterialindex = 4; + optional uint32 flags = 5; + optional fixed32 color = 6; + optional float width = 7; + optional float height = 8; + optional float depth = 9; + optional uint32 entityhandleindex = 10; + optional fixed32 skeletoninstancehash = 11; + optional int32 boneindex = 12; + optional bool translucenthit = 13; + optional bool is_adjacent = 14; +} + +message CMsgClearWorldDecalsEvent { + optional uint32 flagstoclear = 1; +} + +message CMsgClearEntityDecalsEvent { + optional uint32 flagstoclear = 1; +} + +message CMsgClearDecalsForSkeletonInstanceEvent { + optional uint32 flagstoclear = 1; + optional uint32 entityhandleindex = 2; + optional uint32 skeletoninstancehash = 3; +} + +message CMsgSource1LegacyGameEventList { + message key_t { + optional int32 type = 1; + optional string name = 2; + } + + message descriptor_t { + optional int32 eventid = 1; + optional string name = 2; + repeated .CMsgSource1LegacyGameEventList.key_t keys = 3; + } + + repeated .CMsgSource1LegacyGameEventList.descriptor_t descriptors = 1; +} + +message CMsgSource1LegacyListenEvents { + optional int32 playerslot = 1; + repeated uint32 eventarraybits = 2; +} + +message CMsgSource1LegacyGameEvent { + message key_t { + optional int32 type = 1; + optional string val_string = 2; + optional float val_float = 3; + optional int32 val_long = 4; + optional int32 val_short = 5; + optional int32 val_byte = 6; + optional bool val_bool = 7; + optional uint64 val_uint64 = 8; + } + + optional string event_name = 1; + optional int32 eventid = 2; + repeated .CMsgSource1LegacyGameEvent.key_t keys = 3; + optional int32 server_tick = 4; + optional int32 passthrough = 5; +} + +message CMsgSosStartSoundEvent { + optional int32 soundevent_guid = 1; + optional fixed32 soundevent_hash = 2; + optional int32 source_entity_index = 3 [default = -1]; + optional int32 seed = 4; + optional bytes packed_params = 5; + optional float start_time = 6; +} + +message CMsgSosStopSoundEvent { + optional int32 soundevent_guid = 1; +} + +message CMsgSosStopSoundEventHash { + optional fixed32 soundevent_hash = 1; + optional int32 source_entity_index = 2 [default = -1]; +} + +message CMsgSosSetSoundEventParams { + optional int32 soundevent_guid = 1; + optional bytes packed_params = 5; +} + +message CMsgSosSetLibraryStackFields { + optional fixed32 stack_hash = 1; + optional bytes packed_fields = 5; +} diff --git a/Protobufs/dota2/gametoolevents.proto b/Protobufs/dota2/gametoolevents.proto new file mode 100644 index 0000000..b464e0d --- /dev/null +++ b/Protobufs/dota2/gametoolevents.proto @@ -0,0 +1,78 @@ +import "networkbasetypes.proto"; + +option cc_generic_services = false; + +message ChangeMapToolEvent { + optional string mapname = 1; +} + +message TraceRayServerToolEvent { + optional .CMsgVector start = 1; + optional .CMsgVector end = 2; +} + +message ToolTraceRayResult { + optional bool hit = 1; + optional .CMsgVector impact = 2; + optional .CMsgVector normal = 3; + optional float distance = 4; + optional float fraction = 5; + optional int32 ehandle = 6; +} + +message SpawnEntityToolEvent { + optional bytes entity_keyvalues = 1; + optional bool clientsideentity = 2; +} + +message SpawnEntityToolEventResult { + optional int32 ehandle = 1; +} + +message DestroyEntityToolEvent { + optional int32 ehandle = 1; +} + +message DestroyAllEntitiesToolEvent { +} + +message RestartMapToolEvent { +} + +message ToolEvent_GetEntityInfo { + optional int32 ehandle = 1; + optional bool clientsideentity = 2; +} + +message ToolEvent_GetEntityInfoResult { + optional string cppclass = 1 [default = "shithead"]; + optional string classname = 2; + optional string name = 3; + optional .CMsgVector origin = 4; + optional .CMsgVector mins = 5; + optional .CMsgVector maxs = 6; +} + +message ToolEvent_GetEntityInputs { + optional int32 ehandle = 1; + optional bool clientsideentity = 2; +} + +message ToolEvent_GetEntityInputsResult { + repeated string input_list = 1; +} + +message ToolEvent_FireEntityInput { + optional int32 ehandle = 1; + optional bool clientsideentity = 2; + optional string input_name = 3; + optional string input_param = 4; +} + +message ToolEvent_SFMRecordingStateChanged { + optional bool isrecording = 1; +} + +message ToolEvent_SFMToolActiveStateChanged { + optional bool isactive = 1; +} diff --git a/Protobufs/dota2/gcsdk_gcmessages.proto b/Protobufs/dota2/gcsdk_gcmessages.proto new file mode 100644 index 0000000..baf9767 --- /dev/null +++ b/Protobufs/dota2/gcsdk_gcmessages.proto @@ -0,0 +1,494 @@ +import "steammessages.proto"; +import "steammessages_steamlearn.steamworkssdk.proto"; + +enum ESourceEngine { + k_ESE_Source1 = 0; + k_ESE_Source2 = 1; +} + +enum PartnerAccountType { + PARTNER_NONE = 0; + PARTNER_PERFECT_WORLD = 1; + PARTNER_INVALID = 3; +} + +enum GCConnectionStatus { + GCConnectionStatus_HAVE_SESSION = 0; + GCConnectionStatus_GC_GOING_DOWN = 1; + GCConnectionStatus_NO_SESSION = 2; + GCConnectionStatus_NO_SESSION_IN_LOGON_QUEUE = 3; + GCConnectionStatus_NO_STEAM = 4; + GCConnectionStatus_SUSPENDED = 5; + GCConnectionStatus_STEAM_GOING_DOWN = 6; +} + +message CExtraMsgBlock { + optional uint32 msg_type = 1; + optional bytes contents = 2; + optional uint64 msg_key = 3; + optional bool is_compressed = 4; +} + +message CMsgSteamLearnServerInfo { + message ProjectInfo { + optional uint32 project_id = 1; + optional uint32 snapshot_published_version = 2; + optional uint32 inference_published_version = 3; + optional uint32 snapshot_percentage = 6; + optional bool snapshot_enabled = 7; + } + + optional .CMsgSteamLearnAccessTokens access_tokens = 4; + repeated .CMsgSteamLearnServerInfo.ProjectInfo project_infos = 5; +} + +message CMsgGCAssertJobData { + optional string message_type = 1; + optional bytes message_data = 2; +} + +message CMsgGCConCommand { + optional string command = 1; +} + +message CMsgSDOAssert { + message Request { + repeated uint64 key = 1; + optional string requesting_job = 2; + } + + optional int32 sdo_type = 1; + repeated .CMsgSDOAssert.Request requests = 2; +} + +message CMsgSOIDOwner { + optional uint32 type = 1; + optional uint64 id = 2; +} + +message CMsgSOSingleObject { + optional int32 type_id = 2; + optional bytes object_data = 3; + optional fixed64 version = 4; + optional .CMsgSOIDOwner owner_soid = 5; + optional uint32 service_id = 6; +} + +message CMsgSOMultipleObjects { + message SingleObject { + option (msgpool_soft_limit) = 256; + option (msgpool_hard_limit) = 1024; + + optional int32 type_id = 1; + optional bytes object_data = 2; + } + + repeated .CMsgSOMultipleObjects.SingleObject objects_modified = 2; + optional fixed64 version = 3; + repeated .CMsgSOMultipleObjects.SingleObject objects_added = 4; + repeated .CMsgSOMultipleObjects.SingleObject objects_removed = 5; + optional .CMsgSOIDOwner owner_soid = 6; + optional uint32 service_id = 7; +} + +message CMsgSOCacheSubscribed { + message SubscribedType { + optional int32 type_id = 1; + repeated bytes object_data = 2; + } + + repeated .CMsgSOCacheSubscribed.SubscribedType objects = 2; + optional fixed64 version = 3; + optional .CMsgSOIDOwner owner_soid = 4; + optional uint32 service_id = 5; + repeated uint32 service_list = 6; + optional fixed64 sync_version = 7; +} + +message CMsgSOCacheSubscribedUpToDate { + optional fixed64 version = 1; + optional .CMsgSOIDOwner owner_soid = 2; + optional uint32 service_id = 3; + repeated uint32 service_list = 4; + optional fixed64 sync_version = 5; +} + +message CMsgSOCacheUnsubscribed { + optional .CMsgSOIDOwner owner_soid = 2; +} + +message CMsgSOCacheSubscriptionCheck { + optional fixed64 version = 2; + optional .CMsgSOIDOwner owner_soid = 3; + optional uint32 service_id = 4; + repeated uint32 service_list = 5; + optional fixed64 sync_version = 6; +} + +message CMsgSOCacheSubscriptionRefresh { + optional .CMsgSOIDOwner owner_soid = 2; +} + +message CMsgSOCacheVersion { + optional fixed64 version = 1; +} + +message CMsgGCMultiplexMessage { + optional uint32 msgtype = 1; + optional bytes payload = 2; + repeated fixed64 steamids = 3; +} + +message CMsgGCToGCSubGCStarting { + optional int32 dir_index = 1 [default = -1]; +} + +message CGCToGCMsgMasterAck { + message Process { + optional int32 dir_index = 1 [default = -1]; + repeated uint32 type_instances = 2; + } + + optional int32 dir_index = 1 [default = -1]; + optional string machine_name = 3; + optional string process_name = 4; + repeated .CGCToGCMsgMasterAck.Process directory = 6; +} + +message CGCToGCMsgMasterAck_Response { + optional int32 eresult = 1 [default = 2]; +} + +message CMsgGCToGCUniverseStartup { + optional bool is_initial_startup = 1; +} + +message CMsgGCToGCUniverseStartupResponse { + optional int32 eresult = 1; +} + +message CGCToGCMsgMasterStartupComplete { + message GCInfo { + optional int32 dir_index = 1 [default = -1]; + optional string machine_name = 2; + } + + repeated .CGCToGCMsgMasterStartupComplete.GCInfo gc_info = 1; +} + +message CGCToGCMsgRouted { + optional uint32 msg_type = 1; + optional fixed64 sender_id = 2; + optional bytes net_message = 3; +} + +message CGCToGCMsgRoutedReply { + optional uint32 msg_type = 1; + optional bytes net_message = 2; +} + +message CMsgGCUpdateSubGCSessionInfo { + message CMsgUpdate { + optional fixed64 steamid = 1; + optional fixed32 ip = 2; + optional bool trusted = 3; + } + + repeated .CMsgGCUpdateSubGCSessionInfo.CMsgUpdate updates = 1; +} + +message CMsgGCRequestSubGCSessionInfo { + optional fixed64 steamid = 1; +} + +message CMsgGCRequestSubGCSessionInfoResponse { + optional fixed32 ip = 1; + optional bool trusted = 2; + optional uint32 port = 3; + optional bool success = 4; +} + +message CMsgSOCacheHaveVersion { + optional .CMsgSOIDOwner soid = 1; + optional fixed64 version = 2; + optional uint32 service_id = 3; + optional uint32 cached_file_version = 4; +} + +message CMsgClientHello { + optional uint32 version = 1; + repeated .CMsgSOCacheHaveVersion socache_have_versions = 2; + optional uint32 client_session_need = 3; + optional .PartnerAccountType client_launcher = 4 [default = PARTNER_NONE]; + optional string secret_key = 5; + optional uint32 client_language = 6; + optional .ESourceEngine engine = 7 [default = k_ESE_Source1]; + optional bytes steamdatagram_login = 8; + optional uint32 platform_id = 9; + optional bytes game_msg = 10; + optional int32 os_type = 11; + optional uint32 render_system = 12; + optional uint32 render_system_req = 13; + optional uint32 screen_width = 14; + optional uint32 screen_height = 15; + optional uint32 screen_refresh = 16; + optional uint32 render_width = 17; + optional uint32 render_height = 18; + optional uint32 swap_width = 19; + optional uint32 swap_height = 20; + optional bool is_steam_china = 22; + optional bool is_steam_china_client = 24; + optional string platform_name = 23; +} + +message CMsgClientWelcome { + message Location { + optional float latitude = 1; + optional float longitude = 2; + optional string country = 3; + } + + optional uint32 version = 1; + optional bytes game_data = 2; + repeated .CMsgSOCacheSubscribed outofdate_subscribed_caches = 3; + repeated .CMsgSOCacheSubscriptionCheck uptodate_subscribed_caches = 4; + optional .CMsgClientWelcome.Location location = 5; + optional uint32 gc_socache_file_version = 9; + optional string txn_country_code = 10; + optional bytes game_data2 = 11; + optional uint32 rtime32_gc_welcome_timestamp = 12; + optional uint32 currency = 13; + optional uint32 balance = 14; + optional string balance_url = 15; + optional bool has_accepted_china_ssa = 16; + optional bool is_banned_steam_china = 17; + optional .CExtraMsgBlock additional_welcome_msgs = 18; + optional .CMsgSteamLearnServerInfo steam_learn_server_info = 20; +} + +message CMsgConnectionStatus { + optional .GCConnectionStatus status = 1 [default = GCConnectionStatus_HAVE_SESSION]; + optional uint32 client_session_need = 2; + optional int32 queue_position = 3; + optional int32 queue_size = 4; + optional int32 wait_seconds = 5; + optional int32 estimated_wait_seconds_remaining = 6; +} + +message CMsgGCToGCSOCacheSubscribe { + message CMsgHaveVersions { + optional uint32 service_id = 1; + optional uint64 version = 2; + } + + optional fixed64 subscriber = 1; + optional fixed64 subscribe_to_id = 2; + optional fixed64 sync_version = 3; + repeated .CMsgGCToGCSOCacheSubscribe.CMsgHaveVersions have_versions = 4; + optional uint32 subscribe_to_type = 5; +} + +message CMsgGCToGCSOCacheUnsubscribe { + optional fixed64 subscriber = 1; + optional fixed64 unsubscribe_from_id = 2; + optional uint32 unsubscribe_from_type = 3; +} + +message CMsgGCClientPing { +} + +message CMsgGCToGCForwardAccountDetails { + optional fixed64 steamid = 1; + optional .CGCSystemMsg_GetAccountDetails_Response account_details = 2; + optional uint32 age_seconds = 3; +} + +message CMsgGCToGCLoadSessionSOCache { + optional uint32 account_id = 1; + optional .CMsgGCToGCForwardAccountDetails forward_account_details = 2; +} + +message CMsgGCToGCLoadSessionSOCacheResponse { +} + +message CMsgGCToGCUpdateSessionStats { + optional uint32 user_sessions = 1; + optional uint32 server_sessions = 2; + optional bool in_logon_surge = 3; +} + +message CMsgGCToClientRequestDropped { +} + +message CWorkshop_PopulateItemDescriptions_Request { + message SingleItemDescription { + optional uint32 gameitemid = 1; + optional string item_description = 2; + } + + message ItemDescriptionsLanguageBlock { + optional string language = 1; + repeated .CWorkshop_PopulateItemDescriptions_Request.SingleItemDescription descriptions = 2; + } + + optional uint32 appid = 1; + repeated .CWorkshop_PopulateItemDescriptions_Request.ItemDescriptionsLanguageBlock languages = 2; +} + +message CWorkshop_GetContributors_Request { + optional uint32 appid = 1; + optional uint32 gameitemid = 2; +} + +message CWorkshop_GetContributors_Response { + repeated fixed64 contributors = 1; +} + +message CWorkshop_SetItemPaymentRules_Request { + message WorkshopItemPaymentRule { + optional uint64 workshop_file_id = 1; + optional float revenue_percentage = 2; + optional string rule_description = 3; + optional uint32 rule_type = 4 [default = 1]; + } + + message WorkshopDirectPaymentRule { + optional uint64 workshop_file_id = 1; + optional string rule_description = 2; + } + + message PartnerItemPaymentRule { + optional uint32 account_id = 1; + optional float revenue_percentage = 2; + optional string rule_description = 3; + } + + optional uint32 appid = 1; + optional uint32 gameitemid = 2; + repeated .CWorkshop_SetItemPaymentRules_Request.WorkshopItemPaymentRule associated_workshop_files = 3; + repeated .CWorkshop_SetItemPaymentRules_Request.PartnerItemPaymentRule partner_accounts = 4; + optional bool validate_only = 5; + optional bool make_workshop_files_subscribable = 6; + optional .CWorkshop_SetItemPaymentRules_Request.WorkshopDirectPaymentRule associated_workshop_file_for_direct_payments = 7; +} + +message CWorkshop_SetItemPaymentRules_Response { + repeated string validation_errors = 1; +} + +message CCommunity_ClanAnnouncementInfo { + optional uint64 gid = 1; + optional uint64 clanid = 2; + optional uint64 posterid = 3; + optional string headline = 4; + optional uint32 posttime = 5; + optional uint32 updatetime = 6; + optional string body = 7; + optional int32 commentcount = 8; + repeated string tags = 9; + optional int32 language = 10; + optional bool hidden = 11; + optional fixed64 forum_topic_id = 12; +} + +message CCommunity_GetClanAnnouncements_Request { + optional uint64 steamid = 1; + optional uint32 offset = 2; + optional uint32 count = 3; + optional uint32 maxchars = 4; + optional bool strip_html = 5; + repeated string required_tags = 6; + optional bool require_no_tags = 7; + repeated uint32 language_preference = 8; + optional bool hidden_only = 9; + optional bool only_gid = 10; + optional uint32 rtime_oldest_date = 11; + optional bool include_hidden = 12; + optional bool include_partner_events = 13; +} + +message CCommunity_GetClanAnnouncements_Response { + optional uint32 maxchars = 1; + optional bool strip_html = 2; + repeated .CCommunity_ClanAnnouncementInfo announcements = 3; +} + +message CBroadcast_PostGameDataFrame_Request { + optional uint32 appid = 1; + optional fixed64 steamid = 2; + optional fixed64 broadcast_id = 3; + optional bytes frame_data = 4; +} + +message CMsgSerializedSOCache { + message TypeCache { + optional uint32 type = 1; + repeated bytes objects = 2; + optional uint32 service_id = 3; + } + + message Cache { + message Version { + optional uint32 service = 1; + optional uint64 version = 2; + } + + optional uint32 type = 1; + optional uint64 id = 2; + repeated .CMsgSerializedSOCache.Cache.Version versions = 3; + repeated .CMsgSerializedSOCache.TypeCache type_caches = 4; + } + + optional uint32 file_version = 1; + repeated .CMsgSerializedSOCache.Cache caches = 2; + optional uint32 gc_socache_file_version = 3; +} + +message CMsgGCToClientPollConvarRequest { + optional string convar_name = 1; + optional uint32 poll_id = 2; +} + +message CMsgGCToClientPollConvarResponse { + optional uint32 poll_id = 1; + optional string convar_value = 2; +} + +message CGCMsgCompressedMsgToClient { + optional uint32 msg_id = 1; + optional bytes compressed_msg = 2; +} + +message CMsgGCToGCMasterBroadcastMessage { + optional uint32 users_per_second = 1; + optional bool send_to_users = 2; + optional bool send_to_servers = 3; + optional uint32 msg_id = 4; + optional bytes msg_data = 5; +} + +message CMsgGCToGCMasterSubscribeToCache { + optional uint32 soid_type = 1; + optional fixed64 soid_id = 2; + repeated uint32 account_ids = 3; + repeated fixed64 steam_ids = 4; +} + +message CMsgGCToGCMasterSubscribeToCacheResponse { +} + +message CMsgGCToGCMasterSubscribeToCacheAsync { + optional .CMsgGCToGCMasterSubscribeToCache subscribe_msg = 1; +} + +message CMsgGCToGCMasterUnsubscribeFromCache { + optional uint32 soid_type = 1; + optional fixed64 soid_id = 2; + repeated uint32 account_ids = 3; + repeated fixed64 steam_ids = 4; +} + +message CMsgGCToGCMasterDestroyCache { + optional uint32 soid_type = 1; + optional fixed64 soid_id = 2; +} diff --git a/Protobufs/dota2/gcsystemmsgs.proto b/Protobufs/dota2/gcsystemmsgs.proto new file mode 100644 index 0000000..5b41afc --- /dev/null +++ b/Protobufs/dota2/gcsystemmsgs.proto @@ -0,0 +1,26 @@ +enum ESOMsg { + k_ESOMsg_Create = 21; + k_ESOMsg_Update = 22; + k_ESOMsg_Destroy = 23; + k_ESOMsg_CacheSubscribed = 24; + k_ESOMsg_CacheUnsubscribed = 25; + k_ESOMsg_UpdateMultiple = 26; + k_ESOMsg_CacheSubscriptionRefresh = 28; + k_ESOMsg_CacheSubscribedUpToDate = 29; +} + +enum EGCBaseClientMsg { + k_EMsgGCPingRequest = 3001; + k_EMsgGCPingResponse = 3002; + k_EMsgGCToClientPollConvarRequest = 3003; + k_EMsgGCToClientPollConvarResponse = 3004; + k_EMsgGCCompressedMsgToClient = 3005; + k_EMsgGCCompressedMsgToClient_Legacy = 523; + k_EMsgGCToClientRequestDropped = 3006; + k_EMsgGCClientWelcome = 4004; + k_EMsgGCServerWelcome = 4005; + k_EMsgGCClientHello = 4006; + k_EMsgGCServerHello = 4007; + k_EMsgGCClientConnectionStatus = 4009; + k_EMsgGCServerConnectionStatus = 4010; +} diff --git a/Protobufs/dota2/netmessages.proto b/Protobufs/dota2/netmessages.proto new file mode 100644 index 0000000..d938ddf --- /dev/null +++ b/Protobufs/dota2/netmessages.proto @@ -0,0 +1,669 @@ +import "networkbasetypes.proto"; + +enum CLC_Messages { + clc_ClientInfo = 20; + clc_Move = 21; + clc_VoiceData = 22; + clc_BaselineAck = 23; + clc_RespondCvarValue = 25; + clc_FileCRCCheck = 26; + clc_LoadingProgress = 27; + clc_SplitPlayerConnect = 28; + clc_SplitPlayerDisconnect = 30; + clc_ServerStatus = 31; + clc_RequestPause = 33; + clc_CmdKeyValues = 34; + clc_RconServerDetails = 35; + clc_HltvReplay = 36; + clc_Diagnostic = 37; +} + +enum SVC_Messages { + svc_ServerInfo = 40; + svc_FlattenedSerializer = 41; + svc_ClassInfo = 42; + svc_SetPause = 43; + svc_CreateStringTable = 44; + svc_UpdateStringTable = 45; + svc_VoiceInit = 46; + svc_VoiceData = 47; + svc_Print = 48; + svc_Sounds = 49; + svc_SetView = 50; + svc_ClearAllStringTables = 51; + svc_CmdKeyValues = 52; + svc_BSPDecal = 53; + svc_SplitScreen = 54; + svc_PacketEntities = 55; + svc_Prefetch = 56; + svc_Menu = 57; + svc_GetCvarValue = 58; + svc_StopSound = 59; + svc_PeerList = 60; + svc_PacketReliable = 61; + svc_HLTVStatus = 62; + svc_ServerSteamID = 63; + svc_FullFrameSplit = 70; + svc_RconServerDetails = 71; + svc_UserMessage = 72; + svc_Broadcast_Command = 74; + svc_HltvFixupOperatorStatus = 75; + svc_UserCmds = 76; +} + +enum VoiceDataFormat_t { + VOICEDATA_FORMAT_STEAM = 0; + VOICEDATA_FORMAT_ENGINE = 1; + VOICEDATA_FORMAT_OPUS = 2; +} + +enum RequestPause_t { + RP_PAUSE = 0; + RP_UNPAUSE = 1; + RP_TOGGLEPAUSE = 2; +} + +enum PrefetchType { + PFT_SOUND = 0; +} + +enum ESplitScreenMessageType { + MSG_SPLITSCREEN_ADDUSER = 0; + MSG_SPLITSCREEN_REMOVEUSER = 1; +} + +enum EQueryCvarValueStatus { + eQueryCvarValueStatus_ValueIntact = 0; + eQueryCvarValueStatus_CvarNotFound = 1; + eQueryCvarValueStatus_NotACvar = 2; + eQueryCvarValueStatus_CvarProtected = 3; +} + +enum DIALOG_TYPE { + DIALOG_MSG = 0; + DIALOG_MENU = 1; + DIALOG_TEXT = 2; + DIALOG_ENTRY = 3; + DIALOG_ASKCONNECT = 4; +} + +enum SVC_Messages_LowFrequency { + svc_dummy = 600; +} + +enum Bidirectional_Messages { + bi_RebroadcastGameEvent = 16; + bi_RebroadcastSource = 17; + bi_GameEvent = 18; +} + +enum Bidirectional_Messages_LowFrequency { + bi_RelayInfo = 700; + bi_RelayPacket = 701; +} + +enum ReplayEventType_t { + REPLAY_EVENT_CANCEL = 0; + REPLAY_EVENT_DEATH = 1; + REPLAY_EVENT_GENERIC = 2; + REPLAY_EVENT_STUCK_NEED_FULL_UPDATE = 3; + REPLAY_EVENT_VICTORY = 4; +} + +message CCLCMsg_ClientInfo { + optional fixed32 send_table_crc = 1; + optional uint32 server_count = 2; + optional bool is_hltv = 3; + optional uint32 friends_id = 5; + optional string friends_name = 6; +} + +message CCLCMsg_Move { + optional bytes data = 3; + optional uint32 last_command_number = 4; +} + +message CMsgVoiceAudio { + optional .VoiceDataFormat_t format = 1 [default = VOICEDATA_FORMAT_STEAM]; + optional bytes voice_data = 2; + optional int32 sequence_bytes = 3; + optional uint32 section_number = 4; + optional uint32 sample_rate = 5; + optional uint32 uncompressed_sample_offset = 6; + optional uint32 num_packets = 7; + repeated uint32 packet_offsets = 8 [packed = true]; + optional float voice_level = 9; +} + +message CCLCMsg_VoiceData { + optional .CMsgVoiceAudio audio = 1; + optional fixed64 xuid = 2; + optional uint32 tick = 3; +} + +message CCLCMsg_BaselineAck { + optional int32 baseline_tick = 1; + optional int32 baseline_nr = 2; +} + +message CCLCMsg_ListenEvents { + repeated fixed32 event_mask = 1; +} + +message CCLCMsg_RespondCvarValue { + optional int32 cookie = 1; + optional int32 status_code = 2; + optional string name = 3; + optional string value = 4; +} + +message CCLCMsg_FileCRCCheck { + optional int32 code_path = 1; + optional string path = 2; + optional int32 code_filename = 3; + optional string filename = 4; + optional fixed32 crc = 5; +} + +message CCLCMsg_LoadingProgress { + optional int32 progress = 1; +} + +message CCLCMsg_SplitPlayerConnect { + optional string playername = 1; +} + +message CCLCMsg_SplitPlayerDisconnect { + optional int32 slot = 1; +} + +message CCLCMsg_ServerStatus { + optional bool simplified = 1; +} + +message CCLCMsg_RequestPause { + optional .RequestPause_t pause_type = 1 [default = RP_PAUSE]; + optional int32 pause_group = 2; +} + +message CCLCMsg_CmdKeyValues { + optional bytes data = 1; +} + +message CCLCMsg_RconServerDetails { + optional bytes token = 1; +} + +message CMsgSource2SystemSpecs { + optional string cpu_id = 1; + optional string cpu_brand = 2; + optional uint32 cpu_model = 3; + optional uint32 cpu_num_physical = 4; + optional uint32 ram_physical_total_mb = 21; + optional string gpu_rendersystem_dll_name = 41; + optional uint32 gpu_vendor_id = 42; + optional string gpu_driver_name = 43; + optional uint32 gpu_driver_version_high = 44; + optional uint32 gpu_driver_version_low = 45; + optional uint32 gpu_dx_support_level = 46; + optional uint32 gpu_texture_memory_size_mb = 47; +} + +message CMsgSource2VProfLiteReportItem { + optional string name = 1; + optional uint32 active_samples = 2; + optional uint32 usec_max = 3; + optional uint32 usec_avg_active = 11; + optional uint32 usec_p50_active = 12; + optional uint32 usec_p99_active = 13; + optional uint32 usec_avg_all = 21; + optional uint32 usec_p50_all = 22; + optional uint32 usec_p99_all = 23; +} + +message CMsgSource2VProfLiteReport { + optional .CMsgSource2VProfLiteReportItem total = 1; + repeated .CMsgSource2VProfLiteReportItem items = 2; + optional uint32 discarded_frames = 3; +} + +message CCLCMsg_Diagnostic { + optional .CMsgSource2SystemSpecs system_specs = 1; + optional .CMsgSource2VProfLiteReport vprof_report = 2; +} + +message CSource2Metrics_MatchPerfSummary_Notification { + message Client { + optional .CMsgSource2SystemSpecs system_specs = 1; + optional .CMsgSource2VProfLiteReport profile = 2; + optional uint32 build_id = 3; + optional fixed64 steamid = 10; + } + + optional uint32 appid = 1; + optional string game_mode = 2; + optional uint32 server_build_id = 3; + optional .CMsgSource2VProfLiteReport server_profile = 10; + repeated .CSource2Metrics_MatchPerfSummary_Notification.Client clients = 11; + optional string map = 20; +} + +message CSVCMsg_ServerInfo { + optional int32 protocol = 1; + optional int32 server_count = 2; + optional bool is_dedicated = 3; + optional bool is_hltv = 4; + optional int32 c_os = 6; + optional int32 max_clients = 10; + optional int32 max_classes = 11; + optional int32 player_slot = 12 [default = -1]; + optional float tick_interval = 13; + optional string game_dir = 14; + optional string map_name = 15; + optional string sky_name = 16; + optional string host_name = 17; + optional string addon_name = 18; + optional .CSVCMsg_GameSessionConfiguration game_session_config = 19; + optional bytes game_session_manifest = 20; +} + +message CSVCMsg_ClassInfo { + message class_t { + optional int32 class_id = 1; + optional string class_name = 3; + } + + optional bool create_on_client = 1; + repeated .CSVCMsg_ClassInfo.class_t classes = 2; +} + +message CSVCMsg_SetPause { + optional bool paused = 1; +} + +message CSVCMsg_VoiceInit { + optional int32 quality = 1; + optional string codec = 2; + optional int32 version = 3 [default = 0]; +} + +message CSVCMsg_Print { + optional string text = 1; +} + +message CSVCMsg_Sounds { + message sounddata_t { + optional sint32 origin_x = 1; + optional sint32 origin_y = 2; + optional sint32 origin_z = 3; + optional uint32 volume = 4; + optional float delay_value = 5; + optional int32 sequence_number = 6; + optional int32 entity_index = 7 [default = -1]; + optional int32 channel = 8; + optional int32 pitch = 9; + optional int32 flags = 10; + optional uint32 sound_num = 11; + optional fixed32 sound_num_handle = 12; + optional int32 speaker_entity = 13; + optional int32 random_seed = 14; + optional int32 sound_level = 15; + optional bool is_sentence = 16; + optional bool is_ambient = 17; + optional uint32 guid = 18; + optional fixed64 sound_resource_id = 19; + } + + optional bool reliable_sound = 1; + repeated .CSVCMsg_Sounds.sounddata_t sounds = 2; +} + +message CSVCMsg_Prefetch { + optional int32 sound_index = 1; + optional .PrefetchType resource_type = 2 [default = PFT_SOUND]; +} + +message CSVCMsg_SetView { + optional int32 entity_index = 1 [default = -1]; + optional int32 slot = 2 [default = -1]; +} + +message CSVCMsg_FixAngle { + optional bool relative = 1; + optional .CMsgQAngle angle = 2; +} + +message CSVCMsg_CrosshairAngle { + optional .CMsgQAngle angle = 1; +} + +message CSVCMsg_BSPDecal { + optional .CMsgVector pos = 1; + optional int32 decal_texture_index = 2; + optional int32 entity_index = 3 [default = -1]; + optional int32 model_index = 4; + optional bool low_priority = 5; +} + +message CSVCMsg_SplitScreen { + optional .ESplitScreenMessageType type = 1 [default = MSG_SPLITSCREEN_ADDUSER]; + optional int32 slot = 2; + optional int32 player_index = 3 [default = -1]; +} + +message CSVCMsg_GetCvarValue { + optional int32 cookie = 1; + optional string cvar_name = 2; +} + +message CSVCMsg_Menu { + optional int32 dialog_type = 1; + optional bytes menu_key_values = 2; +} + +message CSVCMsg_UserMessage { + optional int32 msg_type = 1; + optional bytes msg_data = 2; + optional int32 passthrough = 3; +} + +message CSVCMsg_SendTable { + message sendprop_t { + optional int32 type = 1; + optional string var_name = 2; + optional int32 flags = 3; + optional int32 priority = 4; + optional string dt_name = 5; + optional int32 num_elements = 6; + optional float low_value = 7; + optional float high_value = 8; + optional int32 num_bits = 9; + } + + optional bool is_end = 1; + optional string net_table_name = 2; + optional bool needs_decoder = 3; + repeated .CSVCMsg_SendTable.sendprop_t props = 4; +} + +message CSVCMsg_GameEventList { + message key_t { + optional int32 type = 1; + optional string name = 2; + } + + message descriptor_t { + optional int32 eventid = 1; + optional string name = 2; + repeated .CSVCMsg_GameEventList.key_t keys = 3; + } + + repeated .CSVCMsg_GameEventList.descriptor_t descriptors = 1; +} + +message CSVCMsg_PacketEntities { + message alternate_baseline_t { + optional int32 entity_index = 1; + optional int32 baseline_index = 2; + } + + message non_transmitted_entities_t { + optional int32 header_count = 1; + optional bytes data = 2; + } + + optional int32 max_entries = 1; + optional int32 updated_entries = 2; + optional bool legacy_is_delta = 3; + optional bool update_baseline = 4; + optional int32 baseline = 5; + optional int32 delta_from = 6; + optional bytes entity_data = 7; + optional bool pending_full_frame = 8; + optional uint32 active_spawngroup_handle = 9; + optional uint32 max_spawngroup_creationsequence = 10; + optional uint32 last_cmd_number_executed = 11; + optional sint32 last_cmd_number_recv_delta = 17; + optional uint32 server_tick = 12; + optional bytes serialized_entities = 13; + repeated .CSVCMsg_PacketEntities.alternate_baseline_t alternate_baselines = 15; + optional uint32 has_pvs_vis_bits = 16; + repeated sint32 cmd_recv_status = 22 [packed = true]; + optional .CSVCMsg_PacketEntities.non_transmitted_entities_t non_transmitted_entities = 19; + optional uint32 cq_starved_command_ticks = 20; + optional uint32 cq_discarded_command_ticks = 21; + optional bytes dev_padding = 999; +} + +message CSVCMsg_TempEntities { + optional bool reliable = 1; + optional int32 num_entries = 2; + optional bytes entity_data = 3; +} + +message CSVCMsg_CreateStringTable { + optional string name = 1; + optional int32 num_entries = 2; + optional bool user_data_fixed_size = 3; + optional int32 user_data_size = 4; + optional int32 user_data_size_bits = 5; + optional int32 flags = 6; + optional bytes string_data = 7; + optional int32 uncompressed_size = 8; + optional bool data_compressed = 9; + optional bool using_varint_bitcounts = 10; +} + +message CSVCMsg_UpdateStringTable { + optional int32 table_id = 1; + optional int32 num_changed_entries = 2; + optional bytes string_data = 3; +} + +message CSVCMsg_VoiceData { + optional .CMsgVoiceAudio audio = 1; + optional int32 client = 2 [default = -1]; + optional bool proximity = 3; + optional fixed64 xuid = 4; + optional int32 audible_mask = 5; + optional uint32 tick = 6; + optional int32 passthrough = 7; +} + +message CSVCMsg_PacketReliable { + optional int32 tick = 1; + optional int32 messagessize = 2; + optional bool state = 3; +} + +message CSVCMsg_FullFrameSplit { + optional int32 tick = 1; + optional int32 section = 2; + optional int32 total = 3; + optional bytes data = 4; +} + +message CSVCMsg_HLTVStatus { + optional string master = 1; + optional int32 clients = 2; + optional int32 slots = 3; + optional int32 proxies = 4; +} + +message CSVCMsg_ServerSteamID { + optional uint64 steam_id = 1; +} + +message CSVCMsg_CmdKeyValues { + optional bytes data = 1; +} + +message CSVCMsg_RconServerDetails { + optional bytes token = 1; + optional string details = 2; +} + +message CMsgIPCAddress { + optional fixed64 computer_guid = 1; + optional uint32 process_id = 2; +} + +message CMsgServerPeer { + optional int32 player_slot = 1 [default = -1]; + optional fixed64 steamid = 2; + optional .CMsgIPCAddress ipc = 3; + optional bool they_hear_you = 4; + optional bool you_hear_them = 5; + optional bool is_listenserver_host = 6; +} + +message CSVCMsg_PeerList { + repeated .CMsgServerPeer peer = 1; +} + +message CSVCMsg_ClearAllStringTables { + optional string mapname = 1; + optional bool create_tables_skipped = 3; +} + +message ProtoFlattenedSerializerField_t { + message polymorphic_field_t { + optional int32 polymorphic_field_serializer_name_sym = 1; + optional int32 polymorphic_field_serializer_version = 2; + } + + optional int32 var_type_sym = 1; + optional int32 var_name_sym = 2; + optional int32 bit_count = 3; + optional float low_value = 4; + optional float high_value = 5; + optional int32 encode_flags = 6; + optional int32 field_serializer_name_sym = 7; + optional int32 field_serializer_version = 8; + optional int32 send_node_sym = 9; + optional int32 var_encoder_sym = 10; + repeated .ProtoFlattenedSerializerField_t.polymorphic_field_t polymorphic_types = 11; + optional int32 var_serializer_sym = 12; +} + +message ProtoFlattenedSerializer_t { + optional int32 serializer_name_sym = 1; + optional int32 serializer_version = 2; + repeated int32 fields_index = 3; +} + +message CSVCMsg_FlattenedSerializer { + repeated .ProtoFlattenedSerializer_t serializers = 1; + repeated string symbols = 2; + repeated .ProtoFlattenedSerializerField_t fields = 3; +} + +message CSVCMsg_StopSound { + optional fixed32 guid = 1; +} + +message CBidirMsg_RebroadcastGameEvent { + optional bool posttoserver = 1; + optional int32 buftype = 2; + optional uint32 clientbitcount = 3; + optional uint64 receivingclients = 4; +} + +message CBidirMsg_RebroadcastSource { + optional int32 eventsource = 1; +} + +message CMsgServerNetworkStats { + message Port { + optional int32 port = 1; + optional string name = 2; + } + + message Player { + optional uint64 steamid = 1; + optional string remote_addr = 2; + optional int32 ping_avg_ms = 4; + optional float packet_loss_pct = 5; + optional bool is_bot = 6; + optional float loss_in = 7; + optional float loss_out = 8; + optional int32 engine_latency_ms = 9; + } + + optional bool dedicated = 1; + optional int32 cpu_usage = 2; + optional int32 memory_used_mb = 3; + optional int32 memory_free_mb = 4; + optional int32 uptime = 5; + optional int32 spawn_count = 6; + optional int32 num_clients = 8; + optional int32 num_bots = 9; + optional int32 num_spectators = 10; + optional int32 num_tv_relays = 11; + optional float fps = 12; + repeated .CMsgServerNetworkStats.Port ports = 17; + optional float avg_ping_ms = 18; + optional float avg_engine_latency_out = 19; + optional float avg_packets_out = 20; + optional float avg_packets_in = 21; + optional float avg_loss_out = 22; + optional float avg_loss_in = 23; + optional float avg_data_out = 24; + optional float avg_data_in = 25; + optional uint64 total_data_in = 26; + optional uint64 total_packets_in = 27; + optional uint64 total_data_out = 28; + optional uint64 total_packets_out = 29; + repeated .CMsgServerNetworkStats.Player players = 30; +} + +message CSVCMsg_HltvReplay { + optional int32 delay = 1; + optional int32 primary_target = 2 [default = -1]; + optional int32 replay_stop_at = 3; + optional int32 replay_start_at = 4; + optional int32 replay_slowdown_begin = 5; + optional int32 replay_slowdown_end = 6; + optional float replay_slowdown_rate = 7; + optional int32 reason = 8; +} + +message CCLCMsg_HltvReplay { + optional int32 request = 1; + optional float slowdown_length = 2; + optional float slowdown_rate = 3; + optional int32 primary_target = 4 [default = -1]; + optional float event_time = 5; +} + +message CSVCMsg_Broadcast_Command { + optional string cmd = 1; +} + +message CCLCMsg_HltvFixupOperatorTick { + optional int32 tick = 1; + optional bytes props_data = 2; + optional .CMsgVector origin = 3; + optional .CMsgQAngle eye_angles = 4; + optional int32 observer_mode = 5; + optional bool cameraman_scoreboard = 6; + optional int32 observer_target = 7; + optional .CMsgVector view_offset = 8; +} + +message CSVCMsg_HltvFixupOperatorStatus { + optional uint32 mode = 1; + optional string override_operator_name = 2; +} + +message CMsgServerUserCmd { + optional bytes data = 1; + optional int32 cmd_number = 2; + optional int32 player_slot = 3 [default = -1]; + optional int32 server_tick_executed = 4; + optional int32 client_tick = 5; +} + +message CSVCMsg_UserCommands { + repeated .CMsgServerUserCmd commands = 1; +} diff --git a/Protobufs/dota2/network_connection.proto b/Protobufs/dota2/network_connection.proto new file mode 100644 index 0000000..90edb2f --- /dev/null +++ b/Protobufs/dota2/network_connection.proto @@ -0,0 +1,128 @@ +import "google/protobuf/descriptor.proto"; + +extend .google.protobuf.EnumValueOptions { + optional string network_connection_token = 50500; + optional string network_connection_detail_token = 50501; +} + +enum ENetworkDisconnectionReason { + NETWORK_DISCONNECT_INVALID = 0; + NETWORK_DISCONNECT_SHUTDOWN = 1; + NETWORK_DISCONNECT_DISCONNECT_BY_USER = 2 [(network_connection_token) = "#GameUI_Disconnect_User"]; + NETWORK_DISCONNECT_DISCONNECT_BY_SERVER = 3 [(network_connection_token) = "#GameUI_Disconnect_Server"]; + NETWORK_DISCONNECT_LOST = 4 [(network_connection_token) = "#GameUI_Disconnect_ConnectionLost"]; + NETWORK_DISCONNECT_OVERFLOW = 5 [(network_connection_token) = "#GameUI_Disconnect_ConnectionOverflow"]; + NETWORK_DISCONNECT_STEAM_BANNED = 6 [(network_connection_token) = "#GameUI_Disconnect_SteamIDBanned"]; + NETWORK_DISCONNECT_STEAM_INUSE = 7 [(network_connection_token) = "#GameUI_Disconnect_SteamIDInUse"]; + NETWORK_DISCONNECT_STEAM_TICKET = 8 [(network_connection_token) = "#GameUI_Disconnect_SteamTicket"]; + NETWORK_DISCONNECT_STEAM_LOGON = 9 [(network_connection_token) = "#GameUI_Disconnect_SteamLogon"]; + NETWORK_DISCONNECT_STEAM_AUTHCANCELLED = 10 [(network_connection_token) = "#GameUI_Disconnect_SteamLogon"]; + NETWORK_DISCONNECT_STEAM_AUTHALREADYUSED = 11 [(network_connection_token) = "#GameUI_Disconnect_SteamLogon"]; + NETWORK_DISCONNECT_STEAM_AUTHINVALID = 12 [(network_connection_token) = "#GameUI_Disconnect_SteamLogon"]; + NETWORK_DISCONNECT_STEAM_VACBANSTATE = 13 [(network_connection_token) = "#GameUI_Disconnect_SteamVAC"]; + NETWORK_DISCONNECT_STEAM_LOGGED_IN_ELSEWHERE = 14 [(network_connection_token) = "#GameUI_Disconnect_SteamInUse"]; + NETWORK_DISCONNECT_STEAM_VAC_CHECK_TIMEDOUT = 15 [(network_connection_token) = "#GameUI_Disconnect_SteamTimeOut"]; + NETWORK_DISCONNECT_STEAM_DROPPED = 16 [(network_connection_token) = "#GameUI_Disconnect_SteamDropped"]; + NETWORK_DISCONNECT_STEAM_OWNERSHIP = 17 [(network_connection_token) = "#GameUI_Disconnect_SteamOwnership"]; + NETWORK_DISCONNECT_SERVERINFO_OVERFLOW = 18 [(network_connection_token) = "#GameUI_Disconnect_ServerInfoOverflow"]; + NETWORK_DISCONNECT_TICKMSG_OVERFLOW = 19 [(network_connection_token) = "#GameUI_Disconnect_TickMessage"]; + NETWORK_DISCONNECT_STRINGTABLEMSG_OVERFLOW = 20 [(network_connection_token) = "#GameUI_Disconnect_StringTableMessage"]; + NETWORK_DISCONNECT_DELTAENTMSG_OVERFLOW = 21 [(network_connection_token) = "#GameUI_Disconnect_DeltaEntMessage"]; + NETWORK_DISCONNECT_TEMPENTMSG_OVERFLOW = 22 [(network_connection_token) = "#GameUI_Disconnect_TempEntMessage"]; + NETWORK_DISCONNECT_SOUNDSMSG_OVERFLOW = 23 [(network_connection_token) = "#GameUI_Disconnect_SoundsMessage"]; + NETWORK_DISCONNECT_SNAPSHOTOVERFLOW = 24 [(network_connection_token) = "#GameUI_Disconnect_SnapshotOverflow"]; + NETWORK_DISCONNECT_SNAPSHOTERROR = 25 [(network_connection_token) = "#GameUI_Disconnect_SnapshotError"]; + NETWORK_DISCONNECT_RELIABLEOVERFLOW = 26 [(network_connection_token) = "#GameUI_Disconnect_ReliableOverflow"]; + NETWORK_DISCONNECT_BADDELTATICK = 27 [(network_connection_token) = "#GameUI_Disconnect_BadClientDeltaTick"]; + NETWORK_DISCONNECT_NOMORESPLITS = 28 [(network_connection_token) = "#GameUI_Disconnect_NoMoreSplits"]; + NETWORK_DISCONNECT_TIMEDOUT = 29 [(network_connection_token) = "#GameUI_Disconnect_TimedOut"]; + NETWORK_DISCONNECT_DISCONNECTED = 30 [(network_connection_token) = "#GameUI_Disconnect_Disconnected"]; + NETWORK_DISCONNECT_LEAVINGSPLIT = 31 [(network_connection_token) = "#GameUI_Disconnect_LeavingSplit"]; + NETWORK_DISCONNECT_DIFFERENTCLASSTABLES = 32 [(network_connection_token) = "#GameUI_Disconnect_DifferentClassTables"]; + NETWORK_DISCONNECT_BADRELAYPASSWORD = 33 [(network_connection_token) = "#GameUI_Disconnect_BadRelayPassword"]; + NETWORK_DISCONNECT_BADSPECTATORPASSWORD = 34 [(network_connection_token) = "#GameUI_Disconnect_BadSpectatorPassword"]; + NETWORK_DISCONNECT_HLTVRESTRICTED = 35 [(network_connection_token) = "#GameUI_Disconnect_HLTVRestricted"]; + NETWORK_DISCONNECT_NOSPECTATORS = 36 [(network_connection_token) = "#GameUI_Disconnect_NoSpectators"]; + NETWORK_DISCONNECT_HLTVUNAVAILABLE = 37 [(network_connection_token) = "#GameUI_Disconnect_HLTVUnavailable"]; + NETWORK_DISCONNECT_HLTVSTOP = 38 [(network_connection_token) = "#GameUI_Disconnect_HLTVStop"]; + NETWORK_DISCONNECT_KICKED = 39 [(network_connection_token) = "#GameUI_Disconnect_Kicked"]; + NETWORK_DISCONNECT_BANADDED = 40 [(network_connection_token) = "#GameUI_Disconnect_BanAdded"]; + NETWORK_DISCONNECT_KICKBANADDED = 41 [(network_connection_token) = "#GameUI_Disconnect_KickBanAdded"]; + NETWORK_DISCONNECT_HLTVDIRECT = 42 [(network_connection_token) = "#GameUI_Disconnect_HLTVDirect"]; + NETWORK_DISCONNECT_PURESERVER_CLIENTEXTRA = 43 [(network_connection_token) = "#GameUI_Disconnect_PureServer_ClientExtra"]; + NETWORK_DISCONNECT_PURESERVER_MISMATCH = 44 [(network_connection_token) = "#GameUI_Disconnect_PureServer_Mismatch"]; + NETWORK_DISCONNECT_USERCMD = 45 [(network_connection_token) = "#GameUI_Disconnect_UserCmd"]; + NETWORK_DISCONNECT_REJECTED_BY_GAME = 46 [(network_connection_token) = "#GameUI_Disconnect_RejectedByGame"]; + NETWORK_DISCONNECT_MESSAGE_PARSE_ERROR = 47 [(network_connection_token) = "#GameUI_Disconnect_MessageParseError"]; + NETWORK_DISCONNECT_INVALID_MESSAGE_ERROR = 48 [(network_connection_token) = "#GameUI_Disconnect_InvalidMessageError"]; + NETWORK_DISCONNECT_BAD_SERVER_PASSWORD = 49 [(network_connection_token) = "#GameUI_Disconnect_BadServerPassword"]; + NETWORK_DISCONNECT_DIRECT_CONNECT_RESERVATION = 50; + NETWORK_DISCONNECT_CONNECTION_FAILURE = 51 [(network_connection_token) = "#GameUI_Disconnect_ConnectionFailure"]; + NETWORK_DISCONNECT_NO_PEER_GROUP_HANDLERS = 52 [(network_connection_token) = "#GameUI_Disconnect_NoPeerGroupHandlers"]; + NETWORK_DISCONNECT_RECONNECTION = 53; + NETWORK_DISCONNECT_LOOPSHUTDOWN = 54 [(network_connection_token) = "#GameUI_Disconnect_LoopShutdown"]; + NETWORK_DISCONNECT_LOOPDEACTIVATE = 55 [(network_connection_token) = "#GameUI_Disconnect_LoopDeactivate"]; + NETWORK_DISCONNECT_HOST_ENDGAME = 56 [(network_connection_token) = "#GameUI_Disconnect_Host_EndGame"]; + NETWORK_DISCONNECT_LOOP_LEVELLOAD_ACTIVATE = 57 [(network_connection_token) = "#GameUI_Disconnect_LoopLevelLoadActivate"]; + NETWORK_DISCONNECT_CREATE_SERVER_FAILED = 58 [(network_connection_token) = "#GameUI_Disconnect_CreateServerFailed"]; + NETWORK_DISCONNECT_EXITING = 59 [(network_connection_token) = "#GameUI_Disconnect_ExitingEngine"]; + NETWORK_DISCONNECT_REQUEST_HOSTSTATE_IDLE = 60 [(network_connection_token) = "#GameUI_Disconnect_Request_HSIdle"]; + NETWORK_DISCONNECT_REQUEST_HOSTSTATE_HLTVRELAY = 61 [(network_connection_token) = "#GameUI_Disconnect_Request_HLTVRelay"]; + NETWORK_DISCONNECT_CLIENT_CONSISTENCY_FAIL = 62 [(network_connection_token) = "#GameUI_ClientConsistencyFail"]; + NETWORK_DISCONNECT_CLIENT_UNABLE_TO_CRC_MAP = 63 [(network_connection_token) = "#GameUI_ClientUnableToCRCMap"]; + NETWORK_DISCONNECT_CLIENT_NO_MAP = 64 [(network_connection_token) = "#GameUI_ClientNoMap"]; + NETWORK_DISCONNECT_CLIENT_DIFFERENT_MAP = 65 [(network_connection_token) = "#GameUI_ClientDifferentMap"]; + NETWORK_DISCONNECT_SERVER_REQUIRES_STEAM = 66 [(network_connection_token) = "#GameUI_ServerRequireSteams"]; + NETWORK_DISCONNECT_STEAM_DENY_MISC = 67 [(network_connection_token) = "#GameUI_Disconnect_SteamDeny_Misc"]; + NETWORK_DISCONNECT_STEAM_DENY_BAD_ANTI_CHEAT = 68 [(network_connection_token) = "#GameUI_Disconnect_SteamDeny_BadAntiCheat"]; + NETWORK_DISCONNECT_SERVER_SHUTDOWN = 69 [(network_connection_token) = "#GameUI_Disconnect_ServerShutdown"]; + NETWORK_DISCONNECT_REPLAY_INCOMPATIBLE = 71 [(network_connection_token) = "#GameUI_Disconnect_ReplayIncompatible"]; + NETWORK_DISCONNECT_CONNECT_REQUEST_TIMEDOUT = 72 [(network_connection_token) = "#GameUI_Disconnect_ConnectionTimedout"]; + NETWORK_DISCONNECT_SERVER_INCOMPATIBLE = 73 [(network_connection_token) = "#GameUI_Disconnect_ServerIncompatible"]; + NETWORK_DISCONNECT_LOCALPROBLEM_MANYRELAYS = 74 [(network_connection_token) = "#GameUI_Disconnect_LocalProblem_ManyRelays"]; + NETWORK_DISCONNECT_LOCALPROBLEM_HOSTEDSERVERPRIMARYRELAY = 75 [(network_connection_token) = "#GameUI_Disconnect_LocalProblem_HostedServerPrimaryRelay"]; + NETWORK_DISCONNECT_LOCALPROBLEM_NETWORKCONFIG = 76 [(network_connection_token) = "#GameUI_Disconnect_LocalProblem_NetworkConfig"]; + NETWORK_DISCONNECT_LOCALPROBLEM_OTHER = 77 [(network_connection_token) = "#GameUI_Disconnect_LocalProblem_Other"]; + NETWORK_DISCONNECT_REMOTE_TIMEOUT = 79 [(network_connection_token) = "#GameUI_Disconnect_RemoteProblem_Timeout"]; + NETWORK_DISCONNECT_REMOTE_TIMEOUT_CONNECTING = 80 [(network_connection_token) = "#GameUI_Disconnect_RemoteProblem_TimeoutConnecting"]; + NETWORK_DISCONNECT_REMOTE_OTHER = 81 [(network_connection_token) = "#GameUI_Disconnect_RemoteProblem_Other"]; + NETWORK_DISCONNECT_REMOTE_BADCRYPT = 82 [(network_connection_token) = "#GameUI_Disconnect_RemoteProblem_BadCrypt"]; + NETWORK_DISCONNECT_REMOTE_CERTNOTTRUSTED = 83 [(network_connection_token) = "#GameUI_Disconnect_RemoteProblem_BadCert"]; + NETWORK_DISCONNECT_UNUSUAL = 84 [(network_connection_token) = "#GameUI_Disconnect_Unusual"]; + NETWORK_DISCONNECT_INTERNAL_ERROR = 85 [(network_connection_token) = "#GameUI_Disconnect_InternalError"]; + NETWORK_DISCONNECT_REJECT_BADCHALLENGE = 128 [(network_connection_token) = "#GameUI_ServerRejectBadChallenge"]; + NETWORK_DISCONNECT_REJECT_NOLOBBY = 129 [(network_connection_token) = "#GameUI_ServerNoLobby"]; + NETWORK_DISCONNECT_REJECT_BACKGROUND_MAP = 130 [(network_connection_token) = "#Valve_Reject_Background_Map"]; + NETWORK_DISCONNECT_REJECT_SINGLE_PLAYER = 131 [(network_connection_token) = "#Valve_Reject_Single_Player"]; + NETWORK_DISCONNECT_REJECT_HIDDEN_GAME = 132 [(network_connection_token) = "#Valve_Reject_Hidden_Game"]; + NETWORK_DISCONNECT_REJECT_LANRESTRICT = 133 [(network_connection_token) = "#GameUI_ServerRejectLANRestrict"]; + NETWORK_DISCONNECT_REJECT_BADPASSWORD = 134 [(network_connection_token) = "#GameUI_ServerRejectBadPassword"]; + NETWORK_DISCONNECT_REJECT_SERVERFULL = 135 [(network_connection_token) = "#GameUI_ServerRejectServerFull"]; + NETWORK_DISCONNECT_REJECT_INVALIDRESERVATION = 136 [(network_connection_token) = "#GameUI_ServerRejectInvalidReservation"]; + NETWORK_DISCONNECT_REJECT_FAILEDCHANNEL = 137 [(network_connection_token) = "#GameUI_ServerRejectFailedChannel"]; + NETWORK_DISCONNECT_REJECT_CONNECT_FROM_LOBBY = 138 [(network_connection_token) = "#Valve_Reject_Connect_From_Lobby"]; + NETWORK_DISCONNECT_REJECT_RESERVED_FOR_LOBBY = 139 [(network_connection_token) = "#Valve_Reject_Reserved_For_Lobby"]; + NETWORK_DISCONNECT_REJECT_INVALIDKEYLENGTH = 140 [(network_connection_token) = "#GameUI_ServerReject_InvalidKeyLength"]; + NETWORK_DISCONNECT_REJECT_OLDPROTOCOL = 141 [(network_connection_token) = "#GameUI_ServerRejectOldProtocol"]; + NETWORK_DISCONNECT_REJECT_NEWPROTOCOL = 142 [(network_connection_token) = "#GameUI_ServerRejectNewProtocol"]; + NETWORK_DISCONNECT_REJECT_INVALIDCONNECTION = 143 [(network_connection_token) = "#GameUI_ServerRejectInvalidConnection"]; + NETWORK_DISCONNECT_REJECT_INVALIDCERTLEN = 144 [(network_connection_token) = "#GameUI_ServerRejectInvalidCertLen"]; + NETWORK_DISCONNECT_REJECT_INVALIDSTEAMCERTLEN = 145 [(network_connection_token) = "#GameUI_ServerRejectInvalidSteamCertLen"]; + NETWORK_DISCONNECT_REJECT_STEAM = 146 [(network_connection_token) = "#GameUI_ServerRejectSteam"]; + NETWORK_DISCONNECT_REJECT_SERVERAUTHDISABLED = 147 [(network_connection_token) = "#GameUI_ServerAuthDisabled"]; + NETWORK_DISCONNECT_REJECT_SERVERCDKEYAUTHINVALID = 148 [(network_connection_token) = "#GameUI_ServerCDKeyAuthInvalid"]; + NETWORK_DISCONNECT_REJECT_BANNED = 149 [(network_connection_token) = "#GameUI_ServerRejectBanned"]; + NETWORK_DISCONNECT_KICKED_TEAMKILLING = 150 [(network_connection_token) = "#Player_DisconnectReason_TeamKilling"]; + NETWORK_DISCONNECT_KICKED_TK_START = 151 [(network_connection_token) = "#Player_DisconnectReason_TK_Start"]; + NETWORK_DISCONNECT_KICKED_UNTRUSTEDACCOUNT = 152 [(network_connection_token) = "#Player_DisconnectReason_UntrustedAccount"]; + NETWORK_DISCONNECT_KICKED_CONVICTEDACCOUNT = 153 [(network_connection_token) = "#Player_DisconnectReason_ConvictedAccount"]; + NETWORK_DISCONNECT_KICKED_COMPETITIVECOOLDOWN = 154 [(network_connection_token) = "#Player_DisconnectReason_CompetitiveCooldown"]; + NETWORK_DISCONNECT_KICKED_TEAMHURTING = 155 [(network_connection_token) = "#Player_DisconnectReason_TeamHurting"]; + NETWORK_DISCONNECT_KICKED_HOSTAGEKILLING = 156 [(network_connection_token) = "#Player_DisconnectReason_HostageKilling"]; + NETWORK_DISCONNECT_KICKED_VOTEDOFF = 157 [(network_connection_token) = "#Player_DisconnectReason_VotedOff"]; + NETWORK_DISCONNECT_KICKED_IDLE = 158 [(network_connection_token) = "#Player_DisconnectReason_Idle"]; + NETWORK_DISCONNECT_KICKED_SUICIDE = 159 [(network_connection_token) = "#Player_DisconnectReason_Suicide"]; + NETWORK_DISCONNECT_KICKED_NOSTEAMLOGIN = 160 [(network_connection_token) = "#Player_DisconnectReason_NoSteamLogin"]; + NETWORK_DISCONNECT_KICKED_NOSTEAMTICKET = 161 [(network_connection_token) = "#Player_DisconnectReason_NoSteamTicket"]; + NETWORK_DISCONNECT_KICKED_INPUTAUTOMATION = 162 [(network_connection_token) = "#Player_DisconnectReason_InputAutomation", (network_connection_detail_token) = "#Player_DisconnectReason_InputAutomation_Detail"]; +} diff --git a/Protobufs/dota2/networkbasetypes.proto b/Protobufs/dota2/networkbasetypes.proto new file mode 100644 index 0000000..e2c049e --- /dev/null +++ b/Protobufs/dota2/networkbasetypes.proto @@ -0,0 +1,243 @@ +import "network_connection.proto"; + +enum SignonState_t { + SIGNONSTATE_NONE = 0; + SIGNONSTATE_CHALLENGE = 1; + SIGNONSTATE_CONNECTED = 2; + SIGNONSTATE_NEW = 3; + SIGNONSTATE_PRESPAWN = 4; + SIGNONSTATE_SPAWN = 5; + SIGNONSTATE_FULL = 6; + SIGNONSTATE_CHANGELEVEL = 7; +} + +enum NET_Messages { + net_NOP = 0; + net_Disconnect_Legacy = 1; + net_SplitScreenUser = 3; + net_Tick = 4; + net_StringCmd = 5; + net_SetConVar = 6; + net_SignonState = 7; + net_SpawnGroup_Load = 8; + net_SpawnGroup_ManifestUpdate = 9; + net_SpawnGroup_SetCreationTick = 11; + net_SpawnGroup_Unload = 12; + net_SpawnGroup_LoadCompleted = 13; + net_DebugOverlay = 15; +} + +enum SpawnGroupFlags_t { + SPAWN_GROUP_LOAD_ENTITIES_FROM_SAVE = 1; + SPAWN_GROUP_DONT_SPAWN_ENTITIES = 2; + SPAWN_GROUP_SYNCHRONOUS_SPAWN = 4; + SPAWN_GROUP_IS_INITIAL_SPAWN_GROUP = 8; + SPAWN_GROUP_CREATE_CLIENT_ONLY_ENTITIES = 16; + SPAWN_GROUP_BLOCK_UNTIL_LOADED = 64; + SPAWN_GROUP_LOAD_STREAMING_DATA = 128; + SPAWN_GROUP_CREATE_NEW_SCENE_WORLD = 256; +} + +message CMsgVector { + optional float x = 1; + optional float y = 2; + optional float z = 3; + optional float w = 4; +} + +message CMsgVector2D { + optional float x = 1; + optional float y = 2; +} + +message CMsgQAngle { + optional float x = 1; + optional float y = 2; + optional float z = 3; +} + +message CMsgQuaternion { + optional float x = 1; + optional float y = 2; + optional float z = 3; + optional float w = 4; +} + +message CMsgTransform { + optional .CMsgVector position = 1; + optional float scale = 2; + optional .CMsgQuaternion orientation = 3; +} + +message CMsgRGBA { + optional int32 r = 1; + optional int32 g = 2; + optional int32 b = 3; + optional int32 a = 4; +} + +message CMsgPlayerInfo { + optional string name = 1; + optional fixed64 xuid = 2; + optional int32 userid = 3; + optional fixed64 steamid = 4; + optional bool fakeplayer = 5; + optional bool ishltv = 6; +} + +message CEntityMsg { + optional uint32 target_entity = 1 [default = 16777215]; +} + +message CMsg_CVars { + message CVar { + optional string name = 1; + optional string value = 2; + } + + repeated .CMsg_CVars.CVar cvars = 1; +} + +message CNETMsg_NOP { +} + +message CNETMsg_SplitScreenUser { + optional int32 slot = 1; +} + +message CNETMsg_Tick { + optional uint32 tick = 1; + optional uint32 host_frametime = 2; + optional uint32 host_frametime_std_deviation = 3; + optional uint32 host_computationtime = 4; + optional uint32 host_computationtime_std_deviation = 5; + optional uint32 host_framestarttime_std_deviation = 6; + optional uint32 host_loss = 7; + optional uint32 host_unfiltered_frametime = 8; + optional uint32 hltv_replay_flags = 9; + optional uint32 expected_long_tick = 10; + optional string expected_long_tick_reason = 11; + optional uint32 jitter = 12; +} + +message CNETMsg_StringCmd { + optional string command = 1; + optional uint32 prediction_sync = 2; +} + +message CNETMsg_SetConVar { + optional .CMsg_CVars convars = 1; +} + +message CNETMsg_SignonState { + optional .SignonState_t signon_state = 1 [default = SIGNONSTATE_NONE]; + optional uint32 spawn_count = 2; + optional uint32 num_server_players = 3; + repeated string players_networkids = 4; + optional string map_name = 5; + optional string addons = 6; +} + +message CSVCMsg_GameEvent { + message key_t { + optional int32 type = 1; + optional string val_string = 2; + optional float val_float = 3; + optional int32 val_long = 4; + optional int32 val_short = 5; + optional int32 val_byte = 6; + optional bool val_bool = 7; + optional uint64 val_uint64 = 8; + } + + optional string event_name = 1; + optional int32 eventid = 2; + repeated .CSVCMsg_GameEvent.key_t keys = 3; +} + +message CSVCMsgList_GameEvents { + message event_t { + optional int32 tick = 1; + optional .CSVCMsg_GameEvent event = 2; + } + + repeated .CSVCMsgList_GameEvents.event_t events = 1; +} + +message CNETMsg_SpawnGroup_Load { + optional string worldname = 1; + optional string entitylumpname = 2; + optional string entityfiltername = 3; + optional uint32 spawngrouphandle = 4; + optional uint32 spawngroupownerhandle = 5; + optional .CMsgVector world_offset_pos = 6; + optional .CMsgQAngle world_offset_angle = 7; + optional bytes spawngroupmanifest = 8; + optional uint32 flags = 9; + optional int32 tickcount = 10; + optional bool manifestincomplete = 11; + optional string localnamefixup = 12; + optional string parentnamefixup = 13; + optional int32 manifestloadpriority = 14; + optional uint32 worldgroupid = 15; + optional uint32 creationsequence = 16; + optional string savegamefilename = 17; + optional uint32 spawngroupparenthandle = 18; + optional bool leveltransition = 19; + optional string worldgroupname = 20; +} + +message CNETMsg_SpawnGroup_ManifestUpdate { + optional uint32 spawngrouphandle = 1; + optional bytes spawngroupmanifest = 2; + optional bool manifestincomplete = 3; +} + +message CNETMsg_SpawnGroup_SetCreationTick { + optional uint32 spawngrouphandle = 1; + optional int32 tickcount = 2; + optional uint32 creationsequence = 3; +} + +message CNETMsg_SpawnGroup_Unload { + optional uint32 spawngrouphandle = 1; + optional uint32 flags = 2; + optional int32 tickcount = 3; +} + +message CNETMsg_SpawnGroup_LoadCompleted { + optional uint32 spawngrouphandle = 1; +} + +message CSVCMsg_GameSessionConfiguration { + optional bool is_multiplayer = 1; + optional bool is_loadsavegame = 2; + optional bool is_background_map = 3; + optional bool is_headless = 4; + optional uint32 min_client_limit = 5; + optional uint32 max_client_limit = 6; + optional uint32 max_clients = 7; + optional fixed32 tick_interval = 8; + optional string hostname = 9; + optional string savegamename = 10; + optional string s1_mapname = 11; + optional string gamemode = 12; + optional string server_ip_address = 13; + optional bytes data = 14; + optional bool is_localonly = 15; + optional bool no_steam_server = 19; + optional bool is_transition = 16; + optional string previouslevel = 17; + optional string landmarkname = 18; +} + +message CNETMsg_DebugOverlay { + optional int32 etype = 1; + repeated .CMsgVector vectors = 2; + repeated .CMsgRGBA colors = 3; + repeated float dimensions = 4; + repeated float times = 5; + repeated bool bools = 6; + repeated uint64 uint64s = 7; + repeated string strings = 8; +} diff --git a/Protobufs/dota2/networksystem_protomessages.proto b/Protobufs/dota2/networksystem_protomessages.proto new file mode 100644 index 0000000..1fa36b3 --- /dev/null +++ b/Protobufs/dota2/networksystem_protomessages.proto @@ -0,0 +1,17 @@ +message NetMessageSplitscreenUserChanged { + optional uint32 slot = 1; +} + +message NetMessageConnectionClosed { + optional uint32 reason = 1; +} + +message NetMessageConnectionCrashed { + optional uint32 reason = 1; +} + +message NetMessagePacketStart { +} + +message NetMessagePacketEnd { +} diff --git a/Protobufs/dota2/steamdatagram_messages_auth.proto b/Protobufs/dota2/steamdatagram_messages_auth.proto new file mode 100644 index 0000000..c97793e --- /dev/null +++ b/Protobufs/dota2/steamdatagram_messages_auth.proto @@ -0,0 +1,65 @@ +import "steamnetworkingsockets_messages_certs.proto"; + +option optimize_for = SPEED; +option cc_generic_services = false; + +message CMsgSteamDatagramRelayAuthTicket { + message ExtraField { + optional string name = 1; + optional string string_value = 2; + optional sint64 int64_value = 3; + optional fixed64 fixed64_value = 5; + } + + optional fixed32 time_expiry = 1; + optional string authorized_client_identity_string = 14; + optional string gameserver_identity_string = 15; + optional fixed32 authorized_public_ip = 3; + optional bytes gameserver_address = 11; + optional uint32 app_id = 7; + optional uint32 virtual_port = 10; + repeated .CMsgSteamDatagramRelayAuthTicket.ExtraField extra_fields = 8; + optional fixed64 legacy_authorized_steam_id = 2; + optional fixed64 legacy_gameserver_steam_id = 4; + optional fixed32 legacy_gameserver_pop_id = 9; + optional bytes legacy_authorized_client_identity_binary = 12; + optional bytes legacy_gameserver_identity_binary = 13; +} + +message CMsgSteamDatagramSignedRelayAuthTicket { + optional fixed64 reserved_do_not_use = 1; + optional bytes ticket = 3; + optional bytes signature = 4; + optional fixed64 key_id = 2; + repeated .CMsgSteamDatagramCertificateSigned certs = 5; +} + +message CMsgSteamDatagramCachedCredentialsForApp { + optional bytes private_key = 1; + optional bytes cert = 2; + repeated bytes relay_tickets = 3; +} + +message CMsgSteamDatagramGameCoordinatorServerLogin { + optional uint32 time_generated = 1; + optional uint32 appid = 2; + optional bytes routing = 3; + optional bytes appdata = 4; + optional bytes legacy_identity_binary = 5; + optional string identity_string = 6; + optional fixed64 dummy_steam_id = 99; +} + +message CMsgSteamDatagramSignedGameCoordinatorServerLogin { + optional .CMsgSteamDatagramCertificateSigned cert = 1; + optional bytes login = 2; + optional bytes signature = 3; +} + +message CMsgSteamDatagramHostedServerAddressPlaintext { + optional fixed32 ipv4 = 1; + optional bytes ipv6 = 2; + optional uint32 port = 3; + optional fixed64 routing_secret = 4; + optional uint32 protocol_version = 5; +} diff --git a/Protobufs/dota2/steamdatagram_messages_sdr.proto b/Protobufs/dota2/steamdatagram_messages_sdr.proto new file mode 100644 index 0000000..11cb3ac --- /dev/null +++ b/Protobufs/dota2/steamdatagram_messages_sdr.proto @@ -0,0 +1,534 @@ +import "steamnetworkingsockets_messages_certs.proto"; +import "steamnetworkingsockets_messages.proto"; + +option optimize_for = SPEED; +option cc_generic_services = false; + +enum ESteamDatagramMsgID { + k_ESteamDatagramMsg_Invalid = 0; + k_ESteamDatagramMsg_RouterPingRequest = 1; + k_ESteamDatagramMsg_RouterPingReply = 2; + k_ESteamDatagramMsg_GameserverPingRequest = 3; + k_ESteamDatagramMsg_GameserverSessionRequest = 5; + k_ESteamDatagramMsg_GameserverSessionEstablished = 6; + k_ESteamDatagramMsg_NoSession = 7; + k_ESteamDatagramMsg_Diagnostic = 8; + k_ESteamDatagramMsg_DataClientToRouter = 9; + k_ESteamDatagramMsg_DataRouterToServer = 10; + k_ESteamDatagramMsg_DataServerToRouter = 11; + k_ESteamDatagramMsg_DataRouterToClient = 12; + k_ESteamDatagramMsg_Stats = 13; + k_ESteamDatagramMsg_ClientPingSampleRequest = 14; + k_ESteamDatagramMsg_ClientPingSampleReply = 15; + k_ESteamDatagramMsg_ClientToRouterSwitchedPrimary = 16; + k_ESteamDatagramMsg_RelayHealth = 17; + k_ESteamDatagramMsg_ConnectRequest = 18; + k_ESteamDatagramMsg_ConnectOK = 19; + k_ESteamDatagramMsg_ConnectionClosed = 20; + k_ESteamDatagramMsg_NoConnection = 21; + k_ESteamDatagramMsg_TicketDecryptRequest = 22; + k_ESteamDatagramMsg_TicketDecryptReply = 23; + k_ESteamDatagramMsg_P2PSessionRequest = 24; + k_ESteamDatagramMsg_P2PSessionEstablished = 25; + k_ESteamDatagramMsg_P2PStatsClient = 26; + k_ESteamDatagramMsg_P2PStatsRelay = 27; + k_ESteamDatagramMsg_P2PBadRoute = 28; + k_ESteamDatagramMsg_GameserverPingReply = 29; + k_ESteamDatagramMsg_LegacyGameserverRegistration = 30; + k_ESteamDatagramMsg_SetSecondaryAddressRequest = 31; + k_ESteamDatagramMsg_SetSecondaryAddressResult = 32; + k_ESteamDatagramMsg_RelayToRelayPingRequest = 33; + k_ESteamDatagramMsg_RelayToRelayPingReply = 34; +} + +message CMsgSteamNetworkingIPAddress { + optional fixed32 v4 = 1; + optional bytes v6 = 2; +} + +message CMsgSteamDatagramSignedMessageGeneric { + optional .CMsgSteamDatagramCertificateSigned cert = 1; + optional bytes signed_data = 2; + optional bytes signature = 3; + optional bytes dummy_pad = 1023; +} + +message CMsgSteamDatagramRouterPingReply { + message RouteException { + optional fixed32 data_center_id = 1; + optional uint32 flags = 2; + optional uint32 penalty = 3; + } + + message AltAddress { + enum Protocol { + DefaultProtocol = 0; + NetworkNext = 1; + } + + optional fixed32 ipv4 = 1; + optional uint32 port = 2; + optional uint32 penalty = 3; + optional .CMsgSteamDatagramRouterPingReply.AltAddress.Protocol protocol = 4 [default = DefaultProtocol]; + optional string id = 5; + } + + enum Flags { + FLAG_MAYBE_MORE_DATA_CENTERS = 1; + FLAG_MAYBE_MORE_ALT_ADDRESSES = 2; + } + + optional fixed32 client_timestamp = 1; + repeated fixed32 latency_datacenter_ids = 2 [packed = true]; + repeated uint32 latency_ping_ms = 3 [packed = true]; + repeated fixed32 latency_datacenter_ids_p2p = 14 [packed = true]; + repeated uint32 latency_ping_ms_p2p = 15 [packed = true]; + optional fixed32 your_public_ip = 4; + optional fixed32 your_public_port = 11; + optional fixed32 server_time = 5; + optional fixed64 challenge = 6; + optional uint32 seconds_until_shutdown = 7; + optional fixed32 client_cookie = 8; + optional uint32 scoring_penalty_relay_cluster = 9; + optional uint32 flags = 12; + repeated .CMsgSteamDatagramRouterPingReply.RouteException route_exceptions = 10; + repeated .CMsgSteamDatagramRouterPingReply.AltAddress alt_addresses = 13; + optional bytes dummy_pad = 99; +} + +message CMsgSteamDatagramGameserverPingRequestBody { + optional fixed32 relay_popid = 1; + optional .CMsgSteamNetworkingIPAddress your_public_ip = 2; + optional uint32 your_public_port = 3; + optional uint64 relay_unix_time = 4; + optional fixed64 routing_secret = 5; + repeated .CMsgSteamNetworkingIPAddress my_ips = 6; + optional bytes echo = 8; +} + +message CMsgSteamDatagramGameserverPingRequestEnvelope { + optional .CMsgSteamDatagramCertificateSigned cert = 6; + optional bytes signed_data = 7; + optional bytes signature = 8; + optional fixed32 legacy_your_public_ip = 1; + optional fixed32 legacy_your_public_port = 5; + optional fixed32 legacy_relay_unix_time = 2; + optional fixed64 legacy_challenge = 3; + optional fixed32 legacy_router_timestamp = 4; + optional bytes dummy_pad = 1023; +} + +message CMsgSteamDatagramGameserverPingReplyData { + optional fixed32 echo_relay_unix_time = 2; + optional bytes echo = 8; + optional fixed64 legacy_challenge = 3; + optional fixed32 legacy_router_timestamp = 4; + optional fixed32 data_center_id = 5; + optional uint32 appid = 6; + optional uint32 protocol_version = 7; + optional string build = 9; + optional uint64 network_config_version = 10; + optional fixed32 my_unix_time = 11; + optional bytes routing_blob = 12; +} + +message CMsgSteamDatagramNoSessionRelayToClient { + optional fixed32 connection_id = 7; + optional fixed32 your_public_ip = 2; + optional fixed32 your_public_port = 6; + optional fixed32 server_time = 3; + optional fixed64 challenge = 4; + optional uint32 seconds_until_shutdown = 5; +} + +message CMsgSteamDatagramNoSessionRelayToPeer { + optional uint32 legacy_relay_session_id = 1; + optional fixed32 from_relay_session_id = 2; + optional fixed32 from_connection_id = 7; + optional fixed64 kludge_pad = 99; +} + +message CMsgSteamDatagramClientPingSampleRequest { + optional fixed32 connection_id = 1; +} + +message CMsgSteamDatagramClientPingSampleReply { + message POP { + message AltAddress { + optional string id = 1; + optional uint32 front_ping_ms = 2; + optional uint32 penalty = 3; + } + + optional fixed32 pop_id = 1; + optional uint32 default_front_ping_ms = 2; + optional uint32 cluster_penalty = 4; + repeated .CMsgSteamDatagramClientPingSampleReply.POP.AltAddress alt_addresses = 7; + optional uint32 default_e2e_ping_ms = 3; + optional uint32 default_e2e_score = 5; + optional fixed32 p2p_via_peer_relay_pop_id = 6; + optional uint32 best_dc_ping_ms = 9; + optional uint32 best_dc_score = 10; + optional fixed32 best_dc_via_relay_pop_id = 11; + optional uint32 default_dc_ping_ms = 12; + optional uint32 default_dc_score = 13; + optional fixed32 default_dc_via_relay_pop_id = 14; + optional uint32 test_dc_ping_ms = 15; + optional uint32 test_dc_score = 16; + optional fixed32 test_dc_via_relay_pop_id = 17; + } + + message LegacyDataCenter { + optional fixed32 data_center_id = 1; + optional fixed32 best_dc_via_relay_pop_id = 2; + optional uint32 best_dc_ping_ms = 3; + } + + optional fixed32 connection_id = 1; + optional bool relay_override_active = 5; + repeated .CMsgSteamDatagramClientPingSampleReply.POP pops = 2; + repeated .CMsgSteamDatagramClientPingSampleReply.LegacyDataCenter legacy_data_centers = 3; +} + +message CMsgSteamDatagramClientSwitchedPrimary { + message RouterQuality { + optional uint32 score = 1; + optional uint32 front_ping = 2; + optional uint32 back_ping = 3; + optional uint32 seconds_until_down = 4; + } + + optional fixed32 connection_id = 1; + optional fixed32 from_ip = 2; + optional uint32 from_port = 3; + optional fixed32 from_router_cluster = 4; + optional uint32 from_active_time = 5; + optional uint32 from_active_packets_recv = 6; + optional string from_dropped_reason = 7; + optional uint32 gap_ms = 8; + optional .CMsgSteamDatagramClientSwitchedPrimary.RouterQuality from_quality_now = 9; + optional .CMsgSteamDatagramClientSwitchedPrimary.RouterQuality to_quality_now = 10; + optional .CMsgSteamDatagramClientSwitchedPrimary.RouterQuality from_quality_then = 11; + optional .CMsgSteamDatagramClientSwitchedPrimary.RouterQuality to_quality_then = 12; +} + +message CMsgSteamDatagramConnectRequest { + optional fixed32 connection_id = 1; + optional fixed64 my_timestamp = 4; + optional uint32 ping_est_ms = 5; + optional uint32 virtual_port = 9; + optional uint32 gameserver_relay_session_id = 2; + optional .CMsgSteamDatagramSessionCryptInfoSigned crypt = 6; + optional .CMsgSteamDatagramCertificateSigned cert = 7; + optional fixed64 routing_secret = 10; + optional fixed64 legacy_client_steam_id = 3; +} + +message CMsgSteamDatagramConnectOK { + optional fixed32 client_connection_id = 1; + optional fixed32 server_connection_id = 7; + optional fixed64 your_timestamp = 3; + optional uint32 delay_time_usec = 4; + optional uint32 gameserver_relay_session_id = 2; + optional .CMsgSteamDatagramSessionCryptInfoSigned crypt = 5; + optional .CMsgSteamDatagramCertificateSigned cert = 6; +} + +message CMsgSteamNetworkingP2PSDRRoutingSummary { + optional uint32 initial_ping = 1; + optional uint32 initial_ping_front_local = 2; + optional uint32 initial_ping_front_remote = 3; + optional uint32 initial_score = 4; + optional fixed32 initial_pop_local = 5; + optional fixed32 initial_pop_remote = 6; + optional uint32 best_ping = 11; + optional uint32 best_ping_front_local = 12; + optional uint32 best_ping_front_remote = 13; + optional uint32 best_score = 14; + optional fixed32 best_pop_local = 15; + optional fixed32 best_pop_remote = 16; + optional uint32 best_time = 17; + optional uint32 negotiation_ms = 7; + optional uint32 selected_seconds = 8; +} + +message CMsgSteamDatagramP2PRoutingSummary { + optional .CMsgSteamNetworkingICESessionSummary ice = 2; + optional .CMsgSteamNetworkingP2PSDRRoutingSummary sdr = 3; +} + +message CMsgSteamDatagramConnectionClosed { + enum ERelayMode { + None = 0; + EndToEnd = 1; + ClosedByPeer = 2; + } + + optional fixed32 to_connection_id = 7; + optional fixed32 from_connection_id = 8; + optional string from_identity_string = 15; + optional .CMsgSteamNetworkingIdentityLegacyBinary legacy_from_identity_binary = 13; + optional fixed64 legacy_from_steam_id = 3; + optional uint32 legacy_gameserver_relay_session_id = 2; + optional fixed32 to_relay_session_id = 9; + optional fixed32 from_relay_session_id = 10; + optional bytes forward_target_relay_routing_token = 11; + optional uint32 forward_target_revision = 12; + optional .CMsgSteamDatagramConnectionClosed.ERelayMode relay_mode = 4 [default = None]; + optional string debug = 5; + optional uint32 reason_code = 6; + optional fixed64 routing_secret = 14; + optional bool not_primary_session = 16; + optional bool not_primary_transport = 19; + optional bool relay_override_active = 22; + optional .CMsgSteamDatagramConnectionQuality quality_relay = 17; + optional .CMsgSteamDatagramConnectionQuality quality_e2e = 18; + optional .CMsgSteamDatagramP2PRoutingSummary p2p_routing_summary = 21; +} + +message CMsgSteamDatagramNoConnection { + optional fixed32 to_connection_id = 5; + optional fixed32 from_connection_id = 6; + optional uint32 legacy_gameserver_relay_session_id = 2; + optional fixed32 to_relay_session_id = 9; + optional fixed32 from_relay_session_id = 10; + optional string from_identity_string = 7; + optional fixed64 legacy_from_steam_id = 3; + optional bool end_to_end = 4; + optional bool not_primary_session = 12; + optional bool not_primary_transport = 15; + optional bool relay_override_active = 17; + optional .CMsgSteamDatagramConnectionQuality quality_relay = 13; + optional .CMsgSteamDatagramConnectionQuality quality_e2e = 14; + optional .CMsgSteamDatagramP2PRoutingSummary p2p_routing_summary = 16; + optional fixed64 routing_secret = 11; + optional fixed32 dummy_pad = 1023; +} + +message CMsgSteamDatagramGameserverSessionRequest { + optional bytes ticket = 1; + optional fixed32 challenge_time = 3; + optional fixed64 challenge = 4; + optional fixed32 client_connection_id = 5; + optional fixed32 server_connection_id = 8; + optional uint64 network_config_version = 6; + optional uint32 protocol_version = 7; + optional string platform = 9; + optional string build = 10; + optional string dev_gameserver_identity = 100; + optional .CMsgSteamDatagramCertificateSigned dev_client_cert = 101; +} + +message CMsgSteamDatagramGameserverSessionEstablished { + optional fixed32 connection_id = 1; + optional string gameserver_identity_string = 2; + optional uint32 seconds_until_shutdown = 4; + optional uint32 seq_num_r2c = 6; + optional bytes dummy_legacy_identity_binary = 7; + optional fixed64 legacy_gameserver_steamid = 3; +} + +message CMsgSteamDatagramConnectionStatsClientToRouter { + enum Flags { + ACK_REQUEST_RELAY = 1; + ACK_REQUEST_E2E = 2; + ACK_REQUEST_IMMEDIATE = 4; + NOT_PRIMARY_SESSION = 8; + CLIENT_RELAY_OVERRIDE = 32; + } + + optional .CMsgSteamDatagramConnectionQuality quality_relay = 1; + optional .CMsgSteamDatagramConnectionQuality quality_e2e = 2; + repeated fixed32 ack_relay = 4; + repeated fixed32 legacy_ack_e2e = 5; + optional uint32 flags = 6; + optional fixed32 client_connection_id = 8; + optional uint32 seq_num_c2r = 9; + optional uint32 seq_num_e2e = 10; +} + +message CMsgSteamDatagramConnectionStatsRouterToClient { + enum Flags { + ACK_REQUEST_RELAY = 1; + ACK_REQUEST_E2E = 2; + ACK_REQUEST_IMMEDIATE = 4; + } + + optional .CMsgSteamDatagramConnectionQuality quality_relay = 1; + optional .CMsgSteamDatagramConnectionQuality quality_e2e = 2; + optional uint32 seconds_until_shutdown = 6; + optional fixed32 migrate_request_ip = 10; + optional uint32 migrate_request_port = 11; + optional uint32 scoring_penalty_relay_cluster = 12; + repeated fixed32 ack_relay = 13; + repeated fixed32 legacy_ack_e2e = 14; + optional uint32 flags = 15; + optional fixed32 client_connection_id = 7; + optional uint32 seq_num_r2c = 8; + optional uint32 seq_num_e2e = 9; +} + +message CMsgSteamDatagramConnectionStatsRouterToServer { + enum Flags { + ACK_REQUEST_RELAY = 1; + ACK_REQUEST_E2E = 2; + ACK_REQUEST_IMMEDIATE = 4; + } + + optional .CMsgSteamDatagramConnectionQuality quality_relay = 1; + optional .CMsgSteamDatagramConnectionQuality quality_e2e = 2; + repeated fixed32 ack_relay = 10; + repeated fixed32 legacy_ack_e2e = 11; + optional uint32 flags = 12; + optional uint32 seq_num_r2s = 5; + optional uint32 seq_num_e2e = 6; + optional string client_identity_string = 15; + optional fixed64 legacy_client_steam_id = 7; + optional uint32 relay_session_id = 8; + optional fixed32 client_connection_id = 9; + optional fixed32 server_connection_id = 13; + optional fixed64 routing_secret = 14; +} + +message CMsgSteamDatagramConnectionStatsServerToRouter { + enum Flags { + ACK_REQUEST_RELAY = 1; + ACK_REQUEST_E2E = 2; + ACK_REQUEST_IMMEDIATE = 4; + } + + optional .CMsgSteamDatagramConnectionQuality quality_relay = 1; + optional .CMsgSteamDatagramConnectionQuality quality_e2e = 2; + repeated fixed32 ack_relay = 8; + repeated fixed32 legacy_ack_e2e = 9; + optional uint32 flags = 10; + optional uint32 seq_num_s2r = 3; + optional uint32 seq_num_e2e = 4; + optional uint32 relay_session_id = 6; + optional fixed32 client_connection_id = 7; + optional fixed32 server_connection_id = 11; +} + +message CMsgSteamDatagramP2PSessionRequestBody { + message EncryptedData { + optional string peer_identity_string = 1; + } + + optional fixed32 challenge_time = 1; + optional fixed64 challenge = 2; + optional fixed32 client_connection_id = 3; + optional fixed64 legacy_peer_steam_id = 4; + optional string peer_identity_string = 11; + optional fixed32 peer_connection_id = 5; + optional bytes encrypted_data = 14; + optional uint32 encryption_your_public_key_lead_byte = 15; + optional bytes encryption_my_ephemeral_public_key = 16; + optional uint32 protocol_version = 8; + optional uint64 network_config_version = 9; + optional string platform = 12; + optional string build = 13; +} + +message CMsgSteamDatagramP2PSessionRequest { + optional .CMsgSteamDatagramCertificateSigned cert = 1; + optional bytes body = 2; + optional bytes signature = 3; +} + +message CMsgSteamDatagramP2PSessionEstablished { + optional fixed32 connection_id = 1; + optional uint32 seconds_until_shutdown = 3; + optional bytes relay_routing_token = 4; + optional uint32 seq_num_r2c = 5; +} + +message CMsgSteamDatagramConnectionStatsP2PClientToRouter { + enum Flags { + ACK_REQUEST_RELAY = 1; + ACK_REQUEST_E2E = 2; + ACK_REQUEST_IMMEDIATE = 4; + NOT_PRIMARY_SESSION = 8; + NOT_PRIMARY_TRANSPORT_E2E = 16; + CLIENT_RELAY_OVERRIDE = 32; + } + + optional .CMsgSteamDatagramConnectionQuality quality_relay = 1; + optional .CMsgSteamDatagramConnectionQuality quality_e2e = 2; + optional .CMsgSteamDatagramP2PRoutingSummary p2p_routing_summary = 14; + repeated fixed32 ack_relay = 3; + repeated fixed32 legacy_ack_e2e = 4; + optional uint32 flags = 5; + optional bytes forward_target_relay_routing_token = 6; + optional uint32 forward_target_revision = 7; + optional bytes routes = 8; + optional uint32 ack_peer_routes_revision = 9; + optional fixed32 connection_id = 10; + optional uint32 seq_num_c2r = 11; + optional uint32 seq_num_e2e = 12; +} + +message CMsgSteamDatagramConnectionStatsP2PRouterToClient { + enum Flags { + ACK_REQUEST_RELAY = 1; + ACK_REQUEST_E2E = 2; + ACK_REQUEST_IMMEDIATE = 4; + NOT_PRIMARY_TRANSPORT_E2E = 16; + } + + optional .CMsgSteamDatagramConnectionQuality quality_relay = 1; + optional .CMsgSteamDatagramConnectionQuality quality_e2e = 2; + optional uint32 seconds_until_shutdown = 3; + optional fixed32 migrate_request_ip = 4; + optional uint32 migrate_request_port = 5; + optional uint32 scoring_penalty_relay_cluster = 6; + repeated fixed32 ack_relay = 7; + repeated fixed32 legacy_ack_e2e = 8; + optional uint32 flags = 9; + optional uint32 ack_forward_target_revision = 10; + optional bytes routes = 11; + optional uint32 ack_peer_routes_revision = 12; + optional fixed32 connection_id = 13; + optional uint32 seq_num_r2c = 14; + optional uint32 seq_num_e2e = 15; +} + +message CMsgSteamDatagramP2PBadRouteRouterToClient { + optional fixed32 connection_id = 1; + optional bytes failed_relay_routing_token = 2; + optional uint32 ack_forward_target_revision = 3; + optional fixed64 kludge_pad = 99; +} + +message CMsgSteamDatagramP2PRoutes { + message RelayCluster { + optional fixed32 pop_id = 1; + optional uint32 ping_ms = 2; + optional uint32 score_penalty = 3; + optional bytes session_relay_routing_token = 4; + } + + message Route { + optional fixed32 my_pop_id = 1; + optional fixed32 your_pop_id = 2; + optional uint32 legacy_score = 3; + optional uint32 interior_score = 4; + } + + repeated .CMsgSteamDatagramP2PRoutes.RelayCluster relay_clusters = 1; + repeated .CMsgSteamDatagramP2PRoutes.Route routes = 2; + optional uint32 revision = 3; +} + +message CMsgSteamDatagramSetSecondaryAddressRequest { + optional fixed32 client_main_ip = 1; + optional fixed32 client_main_port = 2; + optional fixed32 client_connection_id = 3; + optional string client_identity = 4; + optional bool request_send_duplication = 5; + optional bytes kludge_pad = 99; +} + +message CMsgSteamDatagramSetSecondaryAddressResult { + optional bool success = 1; + optional string message = 2; +} diff --git a/Protobufs/dota2/steammessages.proto b/Protobufs/dota2/steammessages.proto new file mode 100644 index 0000000..86272c2 --- /dev/null +++ b/Protobufs/dota2/steammessages.proto @@ -0,0 +1,108 @@ +import "google/protobuf/descriptor.proto"; + +extend .google.protobuf.FieldOptions { + optional bool key_field = 60000 [default = false]; +} + +extend .google.protobuf.MessageOptions { + optional int32 msgpool_soft_limit = 60000 [default = 32]; + optional int32 msgpool_hard_limit = 60001 [default = 384]; +} + +enum EGCPlatform { + k_eGCPlatform_None = 0; + k_eGCPlatform_PC = 1; + k_eGCPlatform_Mac = 2; + k_eGCPlatform_Linux = 3; + k_eGCPlatform_Android = 4; + k_eGCPlatform_iOS = 5; +} + +enum GCProtoBufMsgSrc { + GCProtoBufMsgSrc_Unspecified = 0; + GCProtoBufMsgSrc_FromSystem = 1; + GCProtoBufMsgSrc_FromSteamID = 2; + GCProtoBufMsgSrc_FromGC = 3; + GCProtoBufMsgSrc_ReplySystem = 4; + GCProtoBufMsgSrc_SpoofedSteamID = 5; +} + +message CMsgProtoBufHeader { + option (msgpool_soft_limit) = 256; + option (msgpool_hard_limit) = 1024; + + optional fixed64 client_steam_id = 1; + optional int32 client_session_id = 2; + optional uint32 source_app_id = 3; + optional fixed64 job_id_source = 10 [default = 18446744073709551615]; + optional fixed64 job_id_target = 11 [default = 18446744073709551615]; + optional string target_job_name = 12; + optional int32 eresult = 13 [default = 2]; + optional string error_message = 14; + optional .GCProtoBufMsgSrc gc_msg_src = 200 [default = GCProtoBufMsgSrc_Unspecified]; + optional int32 gc_dir_index_source = 201 [default = -1]; +} + +message CGCSystemMsg_GetAccountDetails { + option (msgpool_soft_limit) = 128; + option (msgpool_hard_limit) = 512; + + optional fixed64 steamid = 1; + optional uint32 appid = 2; +} + +message CGCSystemMsg_GetAccountDetails_Response { + option (msgpool_soft_limit) = 128; + option (msgpool_hard_limit) = 512; + + optional uint32 eresult_deprecated = 1 [default = 2]; + optional string account_name = 2; + optional string persona_name = 3; + optional bool is_profile_created = 26; + optional bool is_profile_public = 4; + optional bool is_inventory_public = 5; + optional bool is_vac_banned = 7; + optional bool is_cyber_cafe = 8; + optional bool is_school_account = 9; + optional bool is_limited = 10; + optional bool is_subscribed = 11; + optional uint32 package = 12; + optional bool is_free_trial_account = 13; + optional uint32 free_trial_expiration = 14; + optional bool is_low_violence = 15; + optional bool is_account_locked_down = 16; + optional bool is_community_banned = 17; + optional bool is_trade_banned = 18; + optional uint32 trade_ban_expiration = 19; + optional uint32 accountid = 20; + optional uint32 suspension_end_time = 21; + optional string currency = 22; + optional uint32 steam_level = 23; + optional uint32 friend_count = 24; + optional uint32 account_creation_time = 25; + optional bool is_steamguard_enabled = 27; + optional bool is_phone_verified = 28; + optional bool is_two_factor_auth_enabled = 29; + optional uint32 two_factor_enabled_time = 30; + optional uint32 phone_verification_time = 31; + optional uint64 phone_id = 33; + optional bool is_phone_identifying = 34; + optional uint32 rt_identity_linked = 35; + optional uint32 rt_birth_date = 36; + optional string txn_country_code = 37; + optional bool has_accepted_china_ssa = 38; + optional bool is_banned_steam_china = 39; +} + +message CIPLocationInfo { + optional uint32 ip = 1; + optional float latitude = 2; + optional float longitude = 3; + optional string country = 4; + optional string state = 5; + optional string city = 6; +} + +message CGCMsgGetIPLocationResponse { + repeated .CIPLocationInfo infos = 1; +} diff --git a/Protobufs/dota2/steammessages_base.proto b/Protobufs/dota2/steammessages_base.proto new file mode 100644 index 0000000..a2bbad4 --- /dev/null +++ b/Protobufs/dota2/steammessages_base.proto @@ -0,0 +1,332 @@ +import "google/protobuf/descriptor.proto"; + +option optimize_for = SPEED; +option cc_generic_services = true; +option (force_php_generation) = true; + +extend .google.protobuf.MessageOptions { + optional int32 msgpool_soft_limit = 50000 [default = 32]; + optional int32 msgpool_hard_limit = 50001 [default = 384]; +} + +extend .google.protobuf.FileOptions { + optional bool force_php_generation = 50000 [default = false]; +} + +extend .google.protobuf.FieldOptions { + optional bool php_output_always_number = 50020 [default = false]; + optional bool allow_field_named_steam_id = 50024 [default = false]; +} + +enum EBanContentCheckResult { + k_EBanContentCheckResult_NotScanned = 0; + k_EBanContentCheckResult_Reset = 1; + k_EBanContentCheckResult_NeedsChecking = 2; + k_EBanContentCheckResult_VeryUnlikely = 5; + k_EBanContentCheckResult_Unlikely = 30; + k_EBanContentCheckResult_Possible = 50; + k_EBanContentCheckResult_Likely = 75; + k_EBanContentCheckResult_VeryLikely = 100; +} + +enum EProtoClanEventType { + k_EClanOtherEvent = 1; + k_EClanGameEvent = 2; + k_EClanPartyEvent = 3; + k_EClanMeetingEvent = 4; + k_EClanSpecialCauseEvent = 5; + k_EClanMusicAndArtsEvent = 6; + k_EClanSportsEvent = 7; + k_EClanTripEvent = 8; + k_EClanChatEvent = 9; + k_EClanGameReleaseEvent = 10; + k_EClanBroadcastEvent = 11; + k_EClanSmallUpdateEvent = 12; + k_EClanPreAnnounceMajorUpdateEvent = 13; + k_EClanMajorUpdateEvent = 14; + k_EClanDLCReleaseEvent = 15; + k_EClanFutureReleaseEvent = 16; + k_EClanESportTournamentStreamEvent = 17; + k_EClanDevStreamEvent = 18; + k_EClanFamousStreamEvent = 19; + k_EClanGameSalesEvent = 20; + k_EClanGameItemSalesEvent = 21; + k_EClanInGameBonusXPEvent = 22; + k_EClanInGameLootEvent = 23; + k_EClanInGamePerksEvent = 24; + k_EClanInGameChallengeEvent = 25; + k_EClanInGameContestEvent = 26; + k_EClanIRLEvent = 27; + k_EClanNewsEvent = 28; + k_EClanBetaReleaseEvent = 29; + k_EClanInGameContentReleaseEvent = 30; + k_EClanFreeTrial = 31; + k_EClanSeasonRelease = 32; + k_EClanSeasonUpdate = 33; + k_EClanCrosspostEvent = 34; + k_EClanInGameEventGeneral = 35; +} + +enum PartnerEventNotificationType { + k_EEventStart = 0; + k_EEventBroadcastStart = 1; + k_EEventMatchStart = 2; + k_EEventPartnerMaxType = 3; +} + +message CMsgIPAddress { + oneof ip { + fixed32 v4 = 1; + bytes v6 = 2; + } +} + +message CMsgIPAddressBucket { + optional .CMsgIPAddress original_ip_address = 1; + optional fixed64 bucket = 2; +} + +message CMsgGCRoutingProtoBufHeader { + optional uint64 dst_gcid_queue = 1; + optional uint32 dst_gc_dir_index = 2; +} + +message CMsgProtoBufHeader { + enum ESessionDisposition { + k_ESessionDispositionNormal = 0; + k_ESessionDispositionDisconnect = 1; + } + + optional fixed64 steamid = 1; + optional int32 client_sessionid = 2; + optional uint32 routing_appid = 3; + optional fixed64 jobid_source = 10 [default = 18446744073709551615]; + optional fixed64 jobid_target = 11 [default = 18446744073709551615]; + optional string target_job_name = 12; + optional int32 seq_num = 24; + optional int32 eresult = 13 [default = 2]; + optional string error_message = 14; + optional uint32 auth_account_flags = 16; + optional uint32 token_source = 22; + optional bool admin_spoofing_user = 23; + optional int32 transport_error = 17 [default = 1]; + optional uint64 messageid = 18 [default = 18446744073709551615]; + optional uint32 publisher_group_id = 19; + optional uint32 sysid = 20; + optional uint64 trace_tag = 21; + optional uint32 webapi_key_id = 25; + optional bool is_from_external_source = 26; + repeated uint32 forward_to_sysid = 27; + optional uint32 cm_sysid = 28; + optional uint32 launcher_type = 31 [default = 0]; + optional uint32 realm = 32 [default = 0]; + optional int32 timeout_ms = 33 [default = -1]; + optional string debug_source = 34; + optional uint32 debug_source_string_index = 35; + optional uint64 token_id = 36; + optional .CMsgGCRoutingProtoBufHeader routing_gc = 37; + optional .CMsgProtoBufHeader.ESessionDisposition session_disposition = 38 [default = k_ESessionDispositionNormal]; + optional string wg_token = 39; + optional string webui_auth_key = 40; + + oneof ip_addr { + uint32 ip = 15; + bytes ip_v6 = 29; + } +} + +message CMsgMulti { + optional uint32 size_unzipped = 1; + optional bytes message_body = 2; +} + +message CMsgProtobufWrapped { + optional bytes message_body = 1; +} + +message CMsgAuthTicket { + optional uint32 estate = 1; + optional uint32 eresult = 2 [default = 2]; + optional fixed64 steamid = 3; + optional fixed64 gameid = 4; + optional uint32 h_steam_pipe = 5; + optional uint32 ticket_crc = 6; + optional bytes ticket = 7; + optional bytes server_secret = 8; + optional uint32 ticket_type = 9; +} + +message CCDDBAppDetailCommon { + optional uint32 appid = 1; + optional string name = 2; + optional string icon = 3; + optional bool tool = 6; + optional bool demo = 7; + optional bool media = 8; + optional bool community_visible_stats = 9; + optional string friendly_name = 10; + optional string propagation = 11; + optional bool has_adult_content = 12; + optional bool is_visible_in_steam_china = 13; + optional uint32 app_type = 14; + optional bool has_adult_content_sex = 15; + optional bool has_adult_content_violence = 16; + repeated uint32 content_descriptorids = 17; +} + +message CMsgAppRights { + optional bool edit_info = 1; + optional bool publish = 2; + optional bool view_error_data = 3; + optional bool download = 4; + optional bool upload_cdkeys = 5; + optional bool generate_cdkeys = 6; + optional bool view_financials = 7; + optional bool manage_ceg = 8; + optional bool manage_signing = 9; + optional bool manage_cdkeys = 10; + optional bool edit_marketing = 11; + optional bool economy_support = 12; + optional bool economy_support_supervisor = 13; + optional bool manage_pricing = 14; + optional bool broadcast_live = 15; + optional bool view_marketing_traffic = 16; + optional bool edit_store_display_content = 17; +} + +message CCuratorPreferences { + optional uint32 supported_languages = 1; + optional bool platform_windows = 2; + optional bool platform_mac = 3; + optional bool platform_linux = 4; + optional bool vr_content = 5; + optional bool adult_content_violence = 6; + optional bool adult_content_sex = 7; + optional uint32 timestamp_updated = 8; + repeated uint32 tagids_curated = 9; + repeated uint32 tagids_filtered = 10; + optional string website_title = 11; + optional string website_url = 12; + optional string discussion_url = 13; + optional bool show_broadcast = 14; +} + +message CLocalizationToken { + optional uint32 language = 1; + optional string localized_string = 2; +} + +message CClanEventUserNewsTuple { + optional uint32 clanid = 1; + optional fixed64 event_gid = 2; + optional fixed64 announcement_gid = 3; + optional uint32 rtime_start = 4; + optional uint32 rtime_end = 5; + optional uint32 priority_score = 6; + optional uint32 type = 7; + optional uint32 clamp_range_slot = 8; + optional uint32 appid = 9; + optional uint32 rtime32_last_modified = 10; +} + +message CClanMatchEventByRange { + optional uint32 rtime_before = 1; + optional uint32 rtime_after = 2; + optional uint32 qualified = 3; + repeated .CClanEventUserNewsTuple events = 4; +} + +message CCommunity_ClanAnnouncementInfo { + optional uint64 gid = 1; + optional uint64 clanid = 2; + optional uint64 posterid = 3; + optional string headline = 4; + optional uint32 posttime = 5; + optional uint32 updatetime = 6; + optional string body = 7; + optional int32 commentcount = 8; + repeated string tags = 9; + optional int32 language = 10; + optional bool hidden = 11; + optional fixed64 forum_topic_id = 12; + optional fixed64 event_gid = 13; + optional int32 voteupcount = 14; + optional int32 votedowncount = 15; + optional .EBanContentCheckResult ban_check_result = 16 [default = k_EBanContentCheckResult_NotScanned]; + optional bool banned = 17; +} + +message CClanEventData { + optional fixed64 gid = 1; + optional fixed64 clan_steamid = 2; + optional string event_name = 3; + optional .EProtoClanEventType event_type = 4 [default = k_EClanOtherEvent]; + optional uint32 appid = 5; + optional string server_address = 6; + optional string server_password = 7; + optional uint32 rtime32_start_time = 8; + optional uint32 rtime32_end_time = 9; + optional int32 comment_count = 10; + optional fixed64 creator_steamid = 11; + optional fixed64 last_update_steamid = 12; + optional string event_notes = 13; + optional string jsondata = 14; + optional .CCommunity_ClanAnnouncementInfo announcement_body = 15; + optional bool published = 16; + optional bool hidden = 17; + optional uint32 rtime32_visibility_start = 18; + optional uint32 rtime32_visibility_end = 19; + optional uint32 broadcaster_accountid = 20; + optional uint32 follower_count = 21; + optional uint32 ignore_count = 22; + optional fixed64 forum_topic_id = 23; + optional uint32 rtime32_last_modified = 24; + optional fixed64 news_post_gid = 25; + optional uint32 rtime_mod_reviewed = 26; + optional uint32 featured_app_tagid = 27; + repeated uint32 referenced_appids = 28; + optional uint32 build_id = 29; + optional string build_branch = 30; +} + +message CBilling_Address { + optional string first_name = 1; + optional string last_name = 2; + optional string address1 = 3; + optional string address2 = 4; + optional string city = 5; + optional string us_state = 6; + optional string country_code = 7; + optional string postcode = 8; + optional int32 zip_plus4 = 9; + optional string phone = 10; +} + +message CPackageReservationStatus { + optional uint32 packageid = 1; + optional int32 reservation_state = 2; + optional int32 queue_position = 3; + optional int32 total_queue_size = 4; + optional string reservation_country_code = 5; + optional bool expired = 6; + optional uint32 time_expires = 7; + optional uint32 time_reserved = 8; +} + +message CMsgKeyValuePair { + optional string name = 1; + optional string value = 2; +} + +message CMsgKeyValueSet { + repeated .CMsgKeyValuePair pairs = 1; +} + +message UserContentDescriptorPreferences { + message ContentDescriptor { + optional uint32 content_descriptorid = 1; + optional uint32 timestamp_added = 2; + } + + repeated .UserContentDescriptorPreferences.ContentDescriptor content_descriptors_to_exclude = 1; +} diff --git a/Protobufs/dota2/steammessages_clientserver_login.proto b/Protobufs/dota2/steammessages_clientserver_login.proto new file mode 100644 index 0000000..3d57d22 --- /dev/null +++ b/Protobufs/dota2/steammessages_clientserver_login.proto @@ -0,0 +1,155 @@ +import "steammessages_base.proto"; + +option optimize_for = SPEED; +option cc_generic_services = false; + +message CMsgClientHeartBeat { +} + +message CMsgClientServerTimestampRequest { + optional uint64 client_request_timestamp = 1; +} + +message CMsgClientServerTimestampResponse { + optional uint64 client_request_timestamp = 1; + optional uint64 server_timestamp_ms = 2; +} + +message CMsgClientSecret { + optional uint32 version = 1; + optional uint32 appid = 2; + optional uint32 deviceid = 3; + optional fixed64 nonce = 4; + optional bytes hmac = 5; +} + +message CMsgClientLogon { + optional uint32 protocol_version = 1; + optional uint32 deprecated_obfustucated_private_ip = 2; + optional uint32 cell_id = 3; + optional uint32 last_session_id = 4; + optional uint32 client_package_version = 5; + optional string client_language = 6; + optional uint32 client_os_type = 7; + optional bool should_remember_password = 8 [default = false]; + optional string wine_version = 9; + optional uint32 deprecated_10 = 10; + optional .CMsgIPAddress obfuscated_private_ip = 11; + optional uint32 deprecated_public_ip = 20; + optional uint32 qos_level = 21; + optional fixed64 client_supplied_steam_id = 22; + optional .CMsgIPAddress public_ip = 23; + optional bytes machine_id = 30; + optional uint32 launcher_type = 31 [default = 0]; + optional uint32 ui_mode = 32 [default = 0]; + optional uint32 chat_mode = 33 [default = 0]; + optional bytes steam2_auth_ticket = 41; + optional string email_address = 42; + optional fixed32 rtime32_account_creation = 43; + optional string account_name = 50; + optional string password = 51; + optional string game_server_token = 52; + optional string login_key = 60; + optional bool was_converted_deprecated_msg = 70 [default = false]; + optional string anon_user_target_account_name = 80; + optional fixed64 resolved_user_steam_id = 81; + optional int32 eresult_sentryfile = 82; + optional bytes sha_sentryfile = 83; + optional string auth_code = 84; + optional int32 otp_type = 85; + optional uint32 otp_value = 86; + optional string otp_identifier = 87; + optional bool steam2_ticket_request = 88; + optional bytes sony_psn_ticket = 90; + optional string sony_psn_service_id = 91; + optional bool create_new_psn_linked_account_if_needed = 92 [default = false]; + optional string sony_psn_name = 93; + optional int32 game_server_app_id = 94; + optional bool steamguard_dont_remember_computer = 95; + optional string machine_name = 96; + optional string machine_name_userchosen = 97; + optional string country_override = 98; + optional bool is_steam_box = 99; + optional uint64 client_instance_id = 100; + optional string two_factor_code = 101; + optional bool supports_rate_limit_response = 102; + optional string web_logon_nonce = 103; + optional int32 priority_reason = 104; + optional .CMsgClientSecret embedded_client_secret = 105; +} + +message CMsgClientLogonResponse { + optional int32 eresult = 1 [default = 2]; + optional int32 out_of_game_heartbeat_seconds = 2; + optional int32 in_game_heartbeat_seconds = 3; + optional uint32 deprecated_public_ip = 4; + optional fixed32 rtime32_server_time = 5; + optional uint32 account_flags = 6; + optional uint32 cell_id = 7; + optional string email_domain = 8; + optional bytes steam2_ticket = 9; + optional int32 eresult_extended = 10; + optional string webapi_authenticate_user_nonce = 11; + optional uint32 cell_id_ping_threshold = 12; + optional bool use_pics = 13; + optional string vanity_url = 14; + optional .CMsgIPAddress public_ip = 15; + optional fixed64 client_supplied_steamid = 20; + optional string ip_country_code = 21; + optional bytes parental_settings = 22; + optional bytes parental_setting_signature = 23; + optional int32 count_loginfailures_to_migrate = 24; + optional int32 count_disconnects_to_migrate = 25; + optional int32 ogs_data_report_time_window = 26; + optional uint64 client_instance_id = 27; + optional bool force_client_update_check = 28; +} + +message CMsgClientRequestWebAPIAuthenticateUserNonce { + optional int32 token_type = 1 [default = -1]; +} + +message CMsgClientRequestWebAPIAuthenticateUserNonceResponse { + optional int32 eresult = 1 [default = 2]; + optional string webapi_authenticate_user_nonce = 11; + optional int32 token_type = 3 [default = -1]; +} + +message CMsgClientLogOff { +} + +message CMsgClientLoggedOff { + optional int32 eresult = 1 [default = 2]; +} + +message CMsgClientNewLoginKey { + optional uint32 unique_id = 1; + optional string login_key = 2; +} + +message CMsgClientNewLoginKeyAccepted { + optional uint32 unique_id = 1; +} + +message CMsgClientAccountInfo { + optional string persona_name = 1; + optional string ip_country = 2; + optional int32 count_authed_computers = 5; + optional uint32 account_flags = 7; + optional uint64 facebook_id = 8; + optional string facebook_name = 9; + optional bool steamguard_notify_newmachines = 14; + optional string steamguard_machine_name_user_chosen = 15; + optional bool is_phone_verified = 16; + optional uint32 two_factor_state = 17; + optional bool is_phone_identifying = 18; + optional bool is_phone_needing_reverify = 19; +} + +message CMsgClientChallengeRequest { + optional fixed64 steamid = 1; +} + +message CMsgClientChallengeResponse { + optional fixed64 challenge = 1; +} diff --git a/Protobufs/dota2/steammessages_cloud.steamworkssdk.proto b/Protobufs/dota2/steammessages_cloud.steamworkssdk.proto new file mode 100644 index 0000000..7e4e759 --- /dev/null +++ b/Protobufs/dota2/steammessages_cloud.steamworkssdk.proto @@ -0,0 +1,68 @@ +import "steammessages_unified_base.steamworkssdk.proto"; + +message CCloud_GetUploadServerInfo_Request { + optional uint32 appid = 1 [(description) = "App ID to which a file will be uploaded to."]; +} + +message CCloud_GetUploadServerInfo_Response { + optional string server_url = 1; +} + +message CCloud_GetFileDetails_Request { + optional uint64 ugcid = 1 [(description) = "ID of the Cloud file to get details for."]; + optional uint32 appid = 2 [(description) = "App ID the file belongs to."]; +} + +message CCloud_UserFile { + optional uint32 appid = 1; + optional uint64 ugcid = 2; + optional string filename = 3; + optional uint64 timestamp = 4; + optional uint32 file_size = 5; + optional string url = 6; + optional fixed64 steamid_creator = 7; +} + +message CCloud_GetFileDetails_Response { + optional .CCloud_UserFile details = 1; +} + +message CCloud_EnumerateUserFiles_Request { + optional uint32 appid = 1 [(description) = "App ID to enumerate the files of."]; + optional bool extended_details = 2 [(description) = "(Optional) Get extended details back on the files found. Defaults to only returned the app Id and UGC Id of the files found."]; + optional uint32 count = 3 [(description) = "(Optional) Maximum number of results to return on this call. Defaults to a maximum of 500 files returned."]; + optional uint32 start_index = 4 [(description) = "(Optional) Starting index to begin enumeration at. Defaults to the beginning of the list."]; +} + +message CCloud_EnumerateUserFiles_Response { + repeated .CCloud_UserFile files = 1; + optional uint32 total_files = 2; +} + +message CCloud_Delete_Request { + optional string filename = 1; + optional uint32 appid = 2 [(description) = "App ID the file belongs to."]; +} + +message CCloud_Delete_Response { +} + +service Cloud { + option (service_description) = "A service for Steam Cloud operations."; + + rpc GetUploadServerInfo (.CCloud_GetUploadServerInfo_Request) returns (.CCloud_GetUploadServerInfo_Response) { + option (method_description) = "Returns the URL of the proper cloud server for a user."; + } + + rpc GetFileDetails (.CCloud_GetFileDetails_Request) returns (.CCloud_GetFileDetails_Response) { + option (method_description) = "Returns details on a Cloud file."; + } + + rpc EnumerateUserFiles (.CCloud_EnumerateUserFiles_Request) returns (.CCloud_EnumerateUserFiles_Response) { + option (method_description) = "Enumerates Cloud files for a user of a given app ID. Returns up to 500 files at a time."; + } + + rpc Delete (.CCloud_Delete_Request) returns (.CCloud_Delete_Response) { + option (method_description) = "Deletes a file from the user's cloud."; + } +} diff --git a/Protobufs/dota2/steammessages_gamenetworkingui.proto b/Protobufs/dota2/steammessages_gamenetworkingui.proto new file mode 100644 index 0000000..e6b7029 --- /dev/null +++ b/Protobufs/dota2/steammessages_gamenetworkingui.proto @@ -0,0 +1,61 @@ +import "steamnetworkingsockets_messages.proto"; +import "steamdatagram_messages_sdr.proto"; + +option optimize_for = SPEED; +option cc_generic_services = true; + +message CGameNetworkingUI_GlobalState { +} + +message CGameNetworkingUI_ConnectionState { + optional string connection_key = 1; + optional uint32 appid = 2; + optional fixed32 connection_id_local = 3; + optional string identity_local = 4; + optional string identity_remote = 5; + optional uint32 connection_state = 10; + optional uint32 start_time = 12; + optional uint32 close_time = 13; + optional uint32 close_reason = 14; + optional string close_message = 15; + optional string status_loc_token = 16; + optional uint32 transport_kind = 20; + optional string sdrpopid_local = 21; + optional string sdrpopid_remote = 22; + optional string address_remote = 23; + optional .CMsgSteamDatagramP2PRoutingSummary p2p_routing = 24; + optional uint32 ping_interior = 25; + optional uint32 ping_remote_front = 26; + optional uint32 ping_default_internet_route = 27; + optional .CMsgSteamDatagramConnectionQuality e2e_quality_local = 30; + optional .CMsgSteamDatagramConnectionQuality e2e_quality_remote = 31; + optional uint64 e2e_quality_remote_instantaneous_time = 32; + optional uint64 e2e_quality_remote_lifetime_time = 33; + optional .CMsgSteamDatagramConnectionQuality front_quality_local = 40; + optional .CMsgSteamDatagramConnectionQuality front_quality_remote = 41; + optional uint64 front_quality_remote_instantaneous_time = 42; + optional uint64 front_quality_remote_lifetime_time = 43; +} + +message CGameNetworkingUI_Message { + repeated .CGameNetworkingUI_ConnectionState connection_state = 1; +} + +message CGameNetworkingUI_ConnectionSummary { + optional uint32 transport_kind = 1; + optional uint32 connection_state = 8; + optional string sdrpop_local = 2; + optional string sdrpop_remote = 3; + optional uint32 ping_ms = 4; + optional float packet_loss = 5; + optional uint32 ping_default_internet_route = 6; + optional bool ip_was_shared = 7; +} + +message CGameNetworkingUI_AppSummary { + optional uint32 appid = 1; + optional bool ip_was_shared_with_friend = 10; + optional bool ip_was_shared_with_nonfriend = 11; + optional uint32 active_connections = 20; + optional .CGameNetworkingUI_ConnectionSummary main_cxn = 30; +} diff --git a/Protobufs/dota2/steammessages_helprequest.steamworkssdk.proto b/Protobufs/dota2/steammessages_helprequest.steamworkssdk.proto new file mode 100644 index 0000000..bc9ec35 --- /dev/null +++ b/Protobufs/dota2/steammessages_helprequest.steamworkssdk.proto @@ -0,0 +1,22 @@ +import "steammessages_unified_base.steamworkssdk.proto"; + +option cc_generic_services = true; + +message CHelpRequestLogs_UploadUserApplicationLog_Request { + optional uint32 appid = 1; + optional string log_type = 2; + optional string version_string = 3; + optional string log_contents = 4; +} + +message CHelpRequestLogs_UploadUserApplicationLog_Response { + optional uint64 id = 1; +} + +service HelpRequestLogs { + option (service_description) = "Service for dealing with user-submitted logs"; + + rpc UploadUserApplicationLog (.CHelpRequestLogs_UploadUserApplicationLog_Request) returns (.CHelpRequestLogs_UploadUserApplicationLog_Response) { + option (method_description) = "User uploading application logs"; + } +} diff --git a/Protobufs/dota2/steammessages_int.proto b/Protobufs/dota2/steammessages_int.proto new file mode 100644 index 0000000..35152e7 --- /dev/null +++ b/Protobufs/dota2/steammessages_int.proto @@ -0,0 +1,484 @@ +import "steammessages.proto"; + +message CMsgWebAPIKey { + optional uint32 status = 1 [default = 255]; + optional uint32 account_id = 2 [default = 0]; + optional uint32 publisher_group_id = 3 [default = 0]; + optional uint32 key_id = 4; + optional string domain = 5; +} + +message CMsgHttpRequest { + message RequestHeader { + optional string name = 1; + optional string value = 2; + } + + message QueryParam { + optional string name = 1; + optional bytes value = 2; + } + + optional uint32 request_method = 1; + optional string hostname = 2; + optional string url = 3; + repeated .CMsgHttpRequest.RequestHeader headers = 4; + repeated .CMsgHttpRequest.QueryParam get_params = 5; + repeated .CMsgHttpRequest.QueryParam post_params = 6; + optional bytes body = 7; + optional uint32 absolute_timeout = 8; + optional bool use_https = 9; +} + +message CMsgWebAPIRequest { + optional string interface_name = 2; + optional string method_name = 3; + optional uint32 version = 4; + optional .CMsgWebAPIKey api_key = 5; + optional .CMsgHttpRequest request = 6; + optional uint32 routing_app_id = 7; +} + +message CMsgHttpResponse { + message ResponseHeader { + optional string name = 1; + optional string value = 2; + } + + optional uint32 status_code = 1; + repeated .CMsgHttpResponse.ResponseHeader headers = 2; + optional bytes body = 3; +} + +message CMsgAMFindAccounts { + optional uint32 search_type = 1; + optional string search_string = 2; +} + +message CMsgAMFindAccountsResponse { + repeated fixed64 steam_id = 1; +} + +message CMsgNotifyWatchdog { + optional uint32 source = 1; + optional uint32 alert_type = 2; + optional bool critical = 4; + optional uint32 time = 5; + optional uint32 appid = 6; + optional string text = 7; + optional string recipient = 12; +} + +message CMsgAMGetLicenses { + optional fixed64 steamid = 1; +} + +message CMsgPackageLicense { + optional uint32 package_id = 1; + optional uint32 time_created = 2; + optional uint32 owner_id = 3; +} + +message CMsgAMGetLicensesResponse { + repeated .CMsgPackageLicense license = 1; + optional uint32 result = 2; +} + +message CMsgGCGetCommandList { + optional uint32 app_id = 1; + optional string command_prefix = 2; +} + +message CMsgGCGetCommandListResponse { + repeated string command_name = 1; +} + +message CGCMsgMemCachedGet { + repeated string keys = 1; +} + +message CGCMsgMemCachedGetResponse { + message ValueTag { + optional bool found = 1; + optional bytes value = 2; + } + + repeated .CGCMsgMemCachedGetResponse.ValueTag values = 1; +} + +message CGCMsgMemCachedSet { + message KeyPair { + optional string name = 1; + optional bytes value = 2; + } + + repeated .CGCMsgMemCachedSet.KeyPair keys = 1; +} + +message CGCMsgMemCachedDelete { + repeated string keys = 1; +} + +message CGCMsgMemCachedStats { +} + +message CGCMsgMemCachedStatsResponse { + optional uint64 curr_connections = 1; + optional uint64 cmd_get = 2; + optional uint64 cmd_set = 3; + optional uint64 cmd_flush = 4; + optional uint64 get_hits = 5; + optional uint64 get_misses = 6; + optional uint64 delete_hits = 7; + optional uint64 delete_misses = 8; + optional uint64 bytes_read = 9; + optional uint64 bytes_written = 10; + optional uint64 limit_maxbytes = 11; + optional uint64 curr_items = 12; + optional uint64 evictions = 13; + optional uint64 bytes = 14; +} + +message CGCMsgSQLStats { + optional uint32 schema_catalog = 1; +} + +message CGCMsgSQLStatsResponse { + optional uint32 threads = 1; + optional uint32 threads_connected = 2; + optional uint32 threads_active = 3; + optional uint32 operations_submitted = 4; + optional uint32 prepared_statements_executed = 5; + optional uint32 non_prepared_statements_executed = 6; + optional uint32 deadlock_retries = 7; + optional uint32 operations_timed_out_in_queue = 8; + optional uint32 errors = 9; +} + +message CMsgAMAddFreeLicense { + optional fixed64 steamid = 1; + optional uint32 ip_public = 2; + optional uint32 packageid = 3; + optional string store_country_code = 4; +} + +message CMsgAMAddFreeLicenseResponse { + optional int32 eresult = 1 [default = 2]; + optional int32 purchase_result_detail = 2; + optional fixed64 transid = 3; +} + +message CGCMsgGetIPLocation { + repeated fixed32 ips = 1; +} + +message CGCMsgGetIPASN { + repeated fixed32 ips = 1; +} + +message CIPASNInfo { + optional fixed32 ip = 1; + optional uint32 asn = 2; +} + +message CGCMsgGetIPASNResponse { + repeated .CIPASNInfo infos = 1; +} + +message CMsgAMSendEmail { + message ReplacementToken { + optional string token_name = 1; + optional string token_value = 2; + } + + message PersonaNameReplacementToken { + optional fixed64 steamid = 1; + optional string token_name = 2; + } + + optional fixed64 steamid = 1; + optional uint32 email_msg_type = 2; + optional uint32 email_format = 3; + repeated .CMsgAMSendEmail.PersonaNameReplacementToken persona_name_tokens = 5; + optional uint32 source_gc = 6; + repeated .CMsgAMSendEmail.ReplacementToken tokens = 7; +} + +message CMsgAMSendEmailResponse { + optional uint32 eresult = 1 [default = 2]; +} + +message CMsgGCGetEmailTemplate { + optional uint32 app_id = 1; + optional uint32 email_msg_type = 2; + optional int32 email_lang = 3; + optional int32 email_format = 4; +} + +message CMsgGCGetEmailTemplateResponse { + optional uint32 eresult = 1 [default = 2]; + optional bool template_exists = 2; + optional string template = 3; +} + +message CMsgAMGrantGuestPasses2 { + optional fixed64 steam_id = 1; + optional uint32 package_id = 2; + optional int32 passes_to_grant = 3; + optional int32 days_to_expiration = 4; + optional int32 action = 5; +} + +message CMsgAMGrantGuestPasses2Response { + optional int32 eresult = 1 [default = 2]; + optional int32 passes_granted = 2 [default = 0]; +} + +message CMsgGCGetPersonaNames { + repeated fixed64 steamids = 1; +} + +message CMsgGCGetPersonaNames_Response { + message PersonaName { + optional fixed64 steamid = 1; + optional string persona_name = 2; + } + + repeated .CMsgGCGetPersonaNames_Response.PersonaName succeeded_lookups = 1; + repeated fixed64 failed_lookup_steamids = 2; +} + +message CMsgGCCheckFriendship { + optional fixed64 steamid_left = 1; + optional fixed64 steamid_right = 2; +} + +message CMsgGCCheckFriendship_Response { + optional bool success = 1; + optional bool found_friendship = 2; +} + +message CMsgGCGetAppFriendsList { + optional fixed64 steamid = 1; + optional bool include_friendship_timestamps = 2; + optional bool include_friends_with_no_play_time = 3; +} + +message CMsgGCGetAppFriendsList_Response { + optional bool success = 1; + repeated fixed64 steamids = 2; + repeated fixed32 friendship_timestamps = 3; + repeated fixed32 last_playtimes = 4; +} + +message CMsgGCMsgMasterSetDirectory { + message SubGC { + optional int32 dir_index = 1 [default = -1]; + optional string name = 2; + optional string box = 3; + optional string command_line = 4; + optional string gc_binary = 5; + } + + optional int32 master_dir_index = 1 [default = -1]; + repeated .CMsgGCMsgMasterSetDirectory.SubGC dir = 2; +} + +message CMsgGCMsgMasterSetDirectory_Response { + optional int32 eresult = 1 [default = 2]; + optional string message = 2; +} + +message CMsgGCMsgWebAPIJobRequestForwardResponse { + optional int32 dir_index = 1 [default = -1]; +} + +message CGCSystemMsg_GetPurchaseTrust_Request { + optional fixed64 steamid = 1; +} + +message CGCSystemMsg_GetPurchaseTrust_Response { + optional bool has_prior_purchase_history = 1; + optional bool has_no_recent_password_resets = 2; + optional bool is_wallet_cash_trusted = 3; + optional uint32 time_all_trusted = 4; +} + +message CMsgGCHAccountVacStatusChange { + optional fixed64 steam_id = 1; + optional uint32 app_id = 2; + optional uint32 rtime_vacban_starts = 3; + optional bool is_banned_now = 4; + optional bool is_banned_future = 5; +} + +message CMsgGCRoutingInfo { + enum RoutingMethod { + RANDOM = 0; + DISCARD = 1; + CLIENT_STEAMID = 2; + PROTOBUF_FIELD_UINT64 = 3; + WEBAPI_PARAM = 4; + WEBAPI_PARAM_STEAMID_ACCOUNTID = 5; + } + + repeated int32 dir_index = 1; + optional .CMsgGCRoutingInfo.RoutingMethod method = 2 [default = RANDOM]; + optional .CMsgGCRoutingInfo.RoutingMethod fallback = 3 [default = DISCARD]; + optional uint32 protobuf_field = 4; + optional string webapi_param = 5; +} + +message CMsgGCMsgMasterSetWebAPIRouting { + message Entry { + optional string interface_name = 1; + optional string method_name = 2; + optional .CMsgGCRoutingInfo routing = 3; + } + + repeated .CMsgGCMsgMasterSetWebAPIRouting.Entry entries = 1; +} + +message CMsgGCMsgMasterSetClientMsgRouting { + message Entry { + optional uint32 msg_type = 1; + optional .CMsgGCRoutingInfo routing = 2; + } + + repeated .CMsgGCMsgMasterSetClientMsgRouting.Entry entries = 1; +} + +message CMsgGCMsgMasterSetWebAPIRouting_Response { + optional int32 eresult = 1 [default = 2]; +} + +message CMsgGCMsgMasterSetClientMsgRouting_Response { + optional int32 eresult = 1 [default = 2]; +} + +message CMsgGCMsgSetOptions { + message MessageRange { + required uint32 low = 1; + required uint32 high = 2; + } + + enum Option { + NOTIFY_USER_SESSIONS = 0; + NOTIFY_SERVER_SESSIONS = 1; + NOTIFY_ACHIEVEMENTS = 2; + NOTIFY_VAC_ACTION = 3; + } + + enum GCSQLVersion { + GCSQL_VERSION_BASELINE = 1; + GCSQL_VERSION_BOOLTYPE = 2; + } + + repeated .CMsgGCMsgSetOptions.Option options = 1; + repeated .CMsgGCMsgSetOptions.MessageRange client_msg_ranges = 2; + optional .CMsgGCMsgSetOptions.GCSQLVersion gcsql_version = 3 [default = GCSQL_VERSION_BASELINE]; +} + +message CMsgGCHUpdateSession { + message ExtraField { + optional string name = 1; + optional string value = 2; + } + + optional fixed64 steam_id = 1; + optional uint32 app_id = 2; + optional bool online = 3; + optional fixed64 server_steam_id = 4; + optional uint32 server_addr = 5; + optional uint32 server_port = 6; + optional uint32 os_type = 7; + optional uint32 client_addr = 8; + repeated .CMsgGCHUpdateSession.ExtraField extra_fields = 9; +} + +message CMsgNotificationOfSuspiciousActivity { + message MultipleGameInstances { + optional uint32 app_instance_count = 1; + repeated fixed64 other_steamids = 2; + } + + optional fixed64 steamid = 1; + optional uint32 appid = 2; + optional .CMsgNotificationOfSuspiciousActivity.MultipleGameInstances multiple_instances = 3; +} + +message CMsgGCHVacVerificationChange { + optional fixed64 steamid = 1; + optional uint32 appid = 2; + optional bool is_verified = 3; +} + +message CMsgGCCheckClanMembership { + optional fixed64 steamid = 1; + optional uint32 clanid = 2; +} + +message CMsgGCCheckClanMembership_Response { + optional bool ismember = 1; +} + +message CMsgGCHAppCheersReceived { + message CheerTypeAmount { + optional uint32 cheer_type = 1; + optional uint32 cheer_amount = 2; + } + + message CheerTarget { + optional uint64 cheer_target = 1; + repeated .CMsgGCHAppCheersReceived.CheerTypeAmount cheer_types = 2; + } + + optional uint32 appid = 1; + repeated .CMsgGCHAppCheersReceived.CheerTarget cheer_targets = 2; +} + +message CMsgGCHAppCheersGetAllowedTypes { + optional uint32 appid = 1; + optional uint64 cheer_target = 2; +} + +message CMsgGCHAppCheersGetAllowedTypesResponse { + message CheerRemaps { + optional uint32 original_cheer_type = 1; + optional uint32 remapped_cheer_type = 2; + repeated uint32 account_ids = 3; + } + + repeated uint32 cheer_types_valid_all_users = 1; + repeated .CMsgGCHAppCheersGetAllowedTypesResponse.CheerRemaps cheer_remaps = 2; + optional uint32 cache_duration = 3; +} + +message CWorkshop_AddSpecialPayment_Request { + optional uint32 appid = 1; + optional uint32 gameitemid = 2; + optional string date = 3; + optional uint64 payment_us_usd = 4; + optional uint64 payment_row_usd = 5; +} + +message CWorkshop_AddSpecialPayment_Response { +} + +message CWorkshop_GetSpecialPayments_Request { + optional uint32 appid = 1; + optional uint32 gameitemid = 2; + optional string date = 3; +} + +message CWorkshop_GetSpecialPayments_Response { + message SpecialPayment { + optional uint32 appid = 1; + optional uint32 gameitemid = 2; + optional string date = 3; + optional uint64 net_payment_us_usd = 4; + optional uint64 net_payment_row_usd = 5; + } + + repeated .CWorkshop_GetSpecialPayments_Response.SpecialPayment special_payments = 1; +} diff --git a/Protobufs/dota2/steammessages_oauth.steamworkssdk.proto b/Protobufs/dota2/steammessages_oauth.steamworkssdk.proto new file mode 100644 index 0000000..ee6449d --- /dev/null +++ b/Protobufs/dota2/steammessages_oauth.steamworkssdk.proto @@ -0,0 +1,18 @@ +import "steammessages_unified_base.steamworkssdk.proto"; + +message COAuthToken_ImplicitGrantNoPrompt_Request { + optional string clientid = 1 [(description) = "Client ID for which to count the number of issued tokens"]; +} + +message COAuthToken_ImplicitGrantNoPrompt_Response { + optional string access_token = 1 [(description) = "OAuth Token, granted on success"]; + optional string redirect_uri = 2 [(description) = "Redirection URI provided during client registration."]; +} + +service OAuthToken { + option (service_description) = "Service containing methods to manage OAuth tokens"; + + rpc ImplicitGrantNoPrompt (.COAuthToken_ImplicitGrantNoPrompt_Request) returns (.COAuthToken_ImplicitGrantNoPrompt_Response) { + option (method_description) = "Grants an implicit OAuth token (grant type 'token') for the specified client ID on behalf of a user without prompting"; + } +} diff --git a/Protobufs/dota2/steammessages_player.steamworkssdk.proto b/Protobufs/dota2/steammessages_player.steamworkssdk.proto new file mode 100644 index 0000000..298c5dd --- /dev/null +++ b/Protobufs/dota2/steammessages_player.steamworkssdk.proto @@ -0,0 +1,254 @@ +import "steammessages_unified_base.steamworkssdk.proto"; + +option cc_generic_services = true; + +enum ENotificationSetting { + k_ENotificationSettingNotifyUseDefault = 0; + k_ENotificationSettingAlways = 1; + k_ENotificationSettingNever = 2; +} + +message CPlayer_GetMutualFriendsForIncomingInvites_Request { +} + +message CPlayer_IncomingInviteMutualFriendList { + optional fixed64 steamid = 1; + repeated uint32 mutual_friend_account_ids = 2; +} + +message CPlayer_GetMutualFriendsForIncomingInvites_Response { + repeated .CPlayer_IncomingInviteMutualFriendList incoming_invite_mutual_friends_lists = 1; +} + +message CPlayer_GetFriendsGameplayInfo_Request { + optional uint32 appid = 1; +} + +message CPlayer_GetFriendsGameplayInfo_Response { + message FriendsGameplayInfo { + optional fixed64 steamid = 1; + optional uint32 minutes_played = 2; + optional uint32 minutes_played_forever = 3; + } + + message OwnGameplayInfo { + optional fixed64 steamid = 1; + optional uint32 minutes_played = 2; + optional uint32 minutes_played_forever = 3; + optional bool in_wishlist = 4; + optional bool owned = 5; + } + + optional .CPlayer_GetFriendsGameplayInfo_Response.OwnGameplayInfo your_info = 1; + repeated .CPlayer_GetFriendsGameplayInfo_Response.FriendsGameplayInfo in_game = 2; + repeated .CPlayer_GetFriendsGameplayInfo_Response.FriendsGameplayInfo played_recently = 3; + repeated .CPlayer_GetFriendsGameplayInfo_Response.FriendsGameplayInfo played_ever = 4; + repeated .CPlayer_GetFriendsGameplayInfo_Response.FriendsGameplayInfo owns = 5; + repeated .CPlayer_GetFriendsGameplayInfo_Response.FriendsGameplayInfo in_wishlist = 6; +} + +message CPlayer_GetGameBadgeLevels_Request { + optional uint32 appid = 1; +} + +message CPlayer_GetGameBadgeLevels_Response { + message Badge { + optional int32 level = 1; + optional int32 series = 2; + optional uint32 border_color = 3; + } + + optional uint32 player_level = 1; + repeated .CPlayer_GetGameBadgeLevels_Response.Badge badges = 2; +} + +message CPlayer_GetLastPlayedTimes_Request { + optional uint32 min_last_played = 1 [(description) = "The most recent last-played time the client already knows about"]; +} + +message CPlayer_GetLastPlayedTimes_Response { + message Game { + optional int32 appid = 1; + optional uint32 last_playtime = 2; + optional int32 playtime_2weeks = 3; + optional int32 playtime_forever = 4; + optional uint32 first_playtime = 5; + } + + repeated .CPlayer_GetLastPlayedTimes_Response.Game games = 1; +} + +message CPlayer_AcceptSSA_Request { +} + +message CPlayer_AcceptSSA_Response { +} + +message CPlayer_GetNicknameList_Request { +} + +message CPlayer_GetNicknameList_Response { + message PlayerNickname { + optional fixed32 accountid = 1; + optional string nickname = 2; + } + + repeated .CPlayer_GetNicknameList_Response.PlayerNickname nicknames = 1; +} + +message CPlayer_GetPerFriendPreferences_Request { +} + +message PerFriendPreferences { + optional fixed32 accountid = 1; + optional string nickname = 2; + optional .ENotificationSetting notifications_showingame = 3 [default = k_ENotificationSettingNotifyUseDefault]; + optional .ENotificationSetting notifications_showonline = 4 [default = k_ENotificationSettingNotifyUseDefault]; + optional .ENotificationSetting notifications_showmessages = 5 [default = k_ENotificationSettingNotifyUseDefault]; + optional .ENotificationSetting sounds_showingame = 6 [default = k_ENotificationSettingNotifyUseDefault]; + optional .ENotificationSetting sounds_showonline = 7 [default = k_ENotificationSettingNotifyUseDefault]; + optional .ENotificationSetting sounds_showmessages = 8 [default = k_ENotificationSettingNotifyUseDefault]; + optional .ENotificationSetting notifications_sendmobile = 9 [default = k_ENotificationSettingNotifyUseDefault]; +} + +message CPlayer_GetPerFriendPreferences_Response { + repeated .PerFriendPreferences preferences = 1; +} + +message CPlayer_SetPerFriendPreferences_Request { + optional .PerFriendPreferences preferences = 1; +} + +message CPlayer_SetPerFriendPreferences_Response { +} + +message CPlayer_AddFriend_Request { + optional fixed64 steamid = 1 [(description) = "Steam ID of user to whom to send a friend invite."]; +} + +message CPlayer_AddFriend_Response { + optional bool invite_sent = 1 [(description) = "True if the operation was successful, false otherwise."]; + optional uint32 friend_relationship = 2 [(description) = "the resulting relationship. Depending on state, may move directly to friends rather than invite sent"]; +} + +message CPlayer_RemoveFriend_Request { + optional fixed64 steamid = 1 [(description) = "Steam ID of friend to remove."]; +} + +message CPlayer_RemoveFriend_Response { + optional uint32 friend_relationship = 1 [(description) = "the resulting relationship"]; +} + +message CPlayer_IgnoreFriend_Request { + optional fixed64 steamid = 1; + optional bool unignore = 2 [(description) = "If set, remove from ignore/block list instead of adding "]; +} + +message CPlayer_IgnoreFriend_Response { + optional uint32 friend_relationship = 1 [(description) = "the resulting relationship"]; +} + +message CPlayer_GetCommunityPreferences_Request { +} + +message CPlayer_CommunityPreferences { + optional bool hide_adult_content_violence = 1 [default = true]; + optional bool hide_adult_content_sex = 2 [default = true]; + optional bool parenthesize_nicknames = 4 [default = false]; + optional uint32 timestamp_updated = 3; +} + +message CPlayer_GetCommunityPreferences_Response { + optional .CPlayer_CommunityPreferences preferences = 1; +} + +message CPlayer_SetCommunityPreferences_Request { + optional .CPlayer_CommunityPreferences preferences = 1; +} + +message CPlayer_SetCommunityPreferences_Response { +} + +message CPlayer_GetNewSteamAnnouncementState_Request { + optional int32 language = 1; +} + +message CPlayer_GetNewSteamAnnouncementState_Response { + optional int32 state = 1; + optional string announcement_headline = 2; + optional string announcement_url = 3; + optional uint32 time_posted = 4; + optional uint64 announcement_gid = 5; +} + +message CPlayer_UpdateSteamAnnouncementLastRead_Request { + optional uint64 announcement_gid = 1; + optional uint32 time_posted = 2; +} + +message CPlayer_UpdateSteamAnnouncementLastRead_Response { +} + +service Player { + option (service_description) = "A service for accessing Steam player data"; + + rpc GetMutualFriendsForIncomingInvites (.CPlayer_GetMutualFriendsForIncomingInvites_Request) returns (.CPlayer_GetMutualFriendsForIncomingInvites_Response) { + option (method_description) = "Get me the mutual friends for each of my pending incoming invites (individuals and clans)."; + } + + rpc GetFriendsGameplayInfo (.CPlayer_GetFriendsGameplayInfo_Request) returns (.CPlayer_GetFriendsGameplayInfo_Response) { + option (method_description) = "Get a list of friends who are playing, have played, own, or want a game"; + } + + rpc GetGameBadgeLevels (.CPlayer_GetGameBadgeLevels_Request) returns (.CPlayer_GetGameBadgeLevels_Response) { + option (method_description) = "Returns the Steam Level of a user, the Badge level for the game, and if it's foil"; + } + + rpc ClientGetLastPlayedTimes (.CPlayer_GetLastPlayedTimes_Request) returns (.CPlayer_GetLastPlayedTimes_Response) { + option (method_description) = "Gets the last-played times for the account"; + } + + rpc AcceptSSA (.CPlayer_AcceptSSA_Request) returns (.CPlayer_AcceptSSA_Response) { + option (method_description) = "User is accepting the SSA"; + } + + rpc GetNicknameList (.CPlayer_GetNicknameList_Request) returns (.CPlayer_GetNicknameList_Response) { + option (method_description) = "Gets the list of nicknames this user has for other users"; + } + + rpc GetPerFriendPreferences (.CPlayer_GetPerFriendPreferences_Request) returns (.CPlayer_GetPerFriendPreferences_Response) { + option (method_description) = "Gets the list of per-friend preferences this user has set for other users"; + } + + rpc SetPerFriendPreferences (.CPlayer_SetPerFriendPreferences_Request) returns (.CPlayer_SetPerFriendPreferences_Response) { + option (method_description) = "Sets the logged in user's per-friend preferences for the given user"; + } + + rpc AddFriend (.CPlayer_AddFriend_Request) returns (.CPlayer_AddFriend_Response) { + option (method_description) = "Invites another Steam user to be a friend"; + } + + rpc RemoveFriend (.CPlayer_RemoveFriend_Request) returns (.CPlayer_RemoveFriend_Response) { + option (method_description) = "Removes a friend or ignores a friend suggestion"; + } + + rpc IgnoreFriend (.CPlayer_IgnoreFriend_Request) returns (.CPlayer_IgnoreFriend_Response) { + option (method_description) = "Blocks or unblocks communication with the user. Despite name, can be a non-friend."; + } + + rpc GetCommunityPreferences (.CPlayer_GetCommunityPreferences_Request) returns (.CPlayer_GetCommunityPreferences_Response) { + option (method_description) = "Returns the player's community preferences"; + } + + rpc SetCommunityPreferences (.CPlayer_SetCommunityPreferences_Request) returns (.CPlayer_SetCommunityPreferences_Response) { + option (method_description) = "Sets the player's community preferences"; + } + + rpc GetNewSteamAnnouncementState (.CPlayer_GetNewSteamAnnouncementState_Request) returns (.CPlayer_GetNewSteamAnnouncementState_Response) { + option (method_description) = "Calculates and returns what to display for UI that renders new steam announcement available"; + } + + rpc UpdateSteamAnnouncementLastRead (.CPlayer_UpdateSteamAnnouncementLastRead_Request) returns (.CPlayer_UpdateSteamAnnouncementLastRead_Response) { + option (method_description) = "Marks latest announcement timestamp read by user"; + } +} diff --git a/Protobufs/dota2/steammessages_publishedfile.steamworkssdk.proto b/Protobufs/dota2/steammessages_publishedfile.steamworkssdk.proto new file mode 100644 index 0000000..96d60af --- /dev/null +++ b/Protobufs/dota2/steammessages_publishedfile.steamworkssdk.proto @@ -0,0 +1,233 @@ +import "steammessages_unified_base.steamworkssdk.proto"; + +message CPublishedFile_Subscribe_Request { + optional uint64 publishedfileid = 1; + optional uint32 list_type = 2; + optional int32 appid = 3; + optional bool notify_client = 4; +} + +message CPublishedFile_Subscribe_Response { +} + +message CPublishedFile_Unsubscribe_Request { + optional uint64 publishedfileid = 1; + optional uint32 list_type = 2; + optional int32 appid = 3; + optional bool notify_client = 4; +} + +message CPublishedFile_Unsubscribe_Response { +} + +message CPublishedFile_Publish_Request { + optional uint32 appid = 1 [(description) = "App Id this file is being published FROM."]; + optional uint32 consumer_appid = 2 [(description) = "App Id this file is being published TO."]; + optional string cloudfilename = 3 [(description) = "Name of the file to publish in the user's cloud."]; + optional string preview_cloudfilename = 4 [(description) = "Name of the file to use as the published file's preview."]; + optional string title = 5 [(description) = "Text title for the published file."]; + optional string file_description = 6 [(description) = "Text description for the published file."]; + optional uint32 file_type = 7 [(description) = "(EWorkshopFileType) Type of Workshop file to publish."]; + optional string consumer_shortcut_name = 8 [(description) = "Shortcut name for the published file."]; + optional string youtube_username = 9 [(description) = "(Optional) User's YouTube account username."]; + optional string youtube_videoid = 10 [(description) = "(Optional) Video Id of a YouTube video for this published file."]; + optional uint32 visibility = 11 [(description) = "(ERemoteStoragePublishedFileVisibility) Visibility of the published file (private, friends, public, etc.)"]; + optional string redirect_uri = 12 [(description) = "(Optional) If supplied, the resulting published file's Id is appended to the URI."]; + repeated string tags = 13 [(description) = "Array of text tags to apply to the published file."]; + optional string collection_type = 14 [(description) = "(Optional) Type of collection the published file represents."]; + optional string game_type = 15 [(description) = "(Optional) Type of game the published file represents."]; + optional string url = 16 [(description) = "(Optional) If this represents a game, this is the URL to that game's page."]; +} + +message CPublishedFile_Publish_Response { + optional uint64 publishedfileid = 1; + optional string redirect_uri = 2; +} + +message CPublishedFile_GetDetails_Request { + repeated fixed64 publishedfileids = 1 [(description) = "Set of published file Ids to retrieve details for."]; + optional bool includetags = 2 [(description) = "If true, return tag information in the returned details."]; + optional bool includeadditionalpreviews = 3 [(description) = "If true, return preview information in the returned details."]; + optional bool includechildren = 4 [(description) = "If true, return children in the returned details."]; + optional bool includekvtags = 5 [(description) = "If true, return key value tags in the returned details."]; + optional bool includevotes = 6 [(description) = "If true, return vote data in the returned details."]; + optional bool short_description = 8 [(description) = "If true, return a short description instead of the full description."]; +} + +message PublishedFileDetails { + message Tag { + optional string tag = 1; + optional bool adminonly = 2; + } + + message Preview { + optional uint64 previewid = 1; + optional uint32 sortorder = 2; + optional string url = 3; + optional uint32 size = 4; + optional string filename = 5; + optional string youtubevideoid = 6; + } + + message Child { + optional uint64 publishedfileid = 1; + optional uint32 sortorder = 2; + optional uint32 file_type = 3; + } + + message KVTag { + optional string key = 1; + optional string value = 2; + } + + message VoteData { + optional float score = 1; + optional uint32 votes_up = 2; + optional uint32 votes_down = 3; + } + + optional uint32 result = 1; + optional uint64 publishedfileid = 2; + optional fixed64 creator = 3; + optional uint32 creator_appid = 4; + optional uint32 consumer_appid = 5; + optional uint32 consumer_shortcutid = 6; + optional string filename = 7; + optional uint64 file_size = 8; + optional uint64 preview_file_size = 9; + optional string file_url = 10; + optional string preview_url = 11; + optional string youtubevideoid = 12; + optional string url = 13; + optional fixed64 hcontent_file = 14; + optional fixed64 hcontent_preview = 15; + optional string title = 16; + optional string file_description = 17; + optional string short_description = 18; + optional uint32 time_created = 19; + optional uint32 time_updated = 20; + optional uint32 visibility = 21; + optional uint32 flags = 22; + optional bool workshop_file = 23; + optional bool workshop_accepted = 24; + optional bool show_subscribe_all = 25; + optional int32 num_comments_developer = 26; + optional int32 num_comments_public = 27; + optional bool banned = 28; + optional string ban_reason = 29; + optional fixed64 banner = 30; + optional bool can_be_deleted = 31; + optional bool incompatible = 32; + optional string app_name = 33; + optional uint32 file_type = 34; + optional bool can_subscribe = 35; + optional uint32 subscriptions = 36; + optional uint32 favorited = 37; + optional uint32 followers = 38; + optional uint32 lifetime_subscriptions = 39; + optional uint32 lifetime_favorited = 40; + optional uint32 lifetime_followers = 41; + optional uint32 views = 42; + optional uint32 image_width = 43; + optional uint32 image_height = 44; + optional string image_url = 45; + optional bool spoiler_tag = 46; + optional uint32 shortcutid = 47; + optional string shortcutname = 48; + optional uint32 num_children = 49; + optional uint32 num_reports = 50; + repeated .PublishedFileDetails.Preview previews = 51; + repeated .PublishedFileDetails.Tag tags = 52; + repeated .PublishedFileDetails.Child children = 53; + repeated .PublishedFileDetails.KVTag kvtags = 54; + optional .PublishedFileDetails.VoteData vote_data = 55; + optional uint32 time_subscribed = 56 [(description) = "Only valid in PublishedFile.GetUserFiles and not normal PublishedFile.GetDetail calls"]; +} + +message CPublishedFile_GetDetails_Response { + repeated .PublishedFileDetails publishedfiledetails = 1; +} + +message CPublishedFile_GetUserFiles_Request { + optional uint32 appid = 1 [(description) = "App Id to retrieve published files from."]; + optional uint32 page = 3 [default = 1, (description) = "(Optional) Starting page for results."]; + optional uint32 numperpage = 4 [default = 1, (description) = "(Optional) The number of results, per page to return."]; + optional string sortmethod = 6 [default = "lastupdated", (description) = "(Optional) Sorting method to use on returned values."]; + optional bool totalonly = 7 [(description) = "(Optional) If true, only return the total number of files that satisfy this query."]; + optional uint32 privacy = 9 [(description) = "(optional) Filter by privacy settings."]; + optional bool ids_only = 10 [(description) = "(Optional) If true, only return the published file ids of files that satisfy this query."]; + repeated string requiredtags = 11 [(description) = "(Optional) Tags that must be present on a published file to satisfy the query."]; + repeated string excludedtags = 12 [(description) = "(Optional) Tags that must NOT be present on a published file to satisfy the query."]; +} + +message CPublishedFile_GetUserFiles_Response { + message App { + optional uint32 appid = 1; + optional string name = 2; + optional uint32 shortcutid = 3; + optional bool private = 4; + } + + optional uint32 total = 1; + optional uint32 startindex = 2; + repeated .PublishedFileDetails publishedfiledetails = 3; + repeated .CPublishedFile_GetUserFiles_Response.App apps = 4; +} + +message CPublishedFile_Update_Request { + optional uint32 appid = 1 [(description) = "App Id this published file belongs to."]; + optional fixed64 publishedfileid = 2 [(description) = "Published file id of the file we'd like update."]; + optional string title = 3 [(description) = "(Optional) Title of the published file."]; + optional string file_description = 4 [(description) = "(Optional) Description of the published file."]; + optional uint32 visibility = 5 [(description) = "(Optional) Visibility of the published file."]; + repeated string tags = 6 [(description) = "(Optional) Set of tags for the published file."]; + optional string filename = 7 [(description) = "(Optional) Filename for the published file."]; + optional string preview_filename = 8 [(description) = "(Optional) Preview filename for the published file."]; +} + +message CPublishedFile_Update_Response { +} + +message CPublishedFile_RefreshVotingQueue_Request { + optional uint32 appid = 1; + optional uint32 matching_file_type = 2 [(description) = "EPublishedFileInfoMatchingFileType"]; + repeated string tags = 3 [(description) = "Include files that have all the tags or any of the tags if match_all_tags is set to false."]; + optional bool match_all_tags = 4 [default = true, (description) = "If true, then files must have all the tags specified. If false, then must have at least one of the tags specified."]; + repeated string excluded_tags = 5 [(description) = "Exclude any files that have any of these tags."]; + optional uint32 desired_queue_size = 6 [(description) = "Desired number of items in the voting queue. May be clamped by the server"]; +} + +message CPublishedFile_RefreshVotingQueue_Response { +} + +service PublishedFile { + option (service_description) = "A service to access published file data"; + + rpc Subscribe (.CPublishedFile_Subscribe_Request) returns (.CPublishedFile_Subscribe_Response) { + option (method_description) = "Subscribes the user to the published file"; + } + + rpc Unsubscribe (.CPublishedFile_Unsubscribe_Request) returns (.CPublishedFile_Unsubscribe_Response) { + option (method_description) = "Unsubscribes the user from the published file"; + } + + rpc Publish (.CPublishedFile_Publish_Request) returns (.CPublishedFile_Publish_Response) { + option (method_description) = "Publishes a clouded user file to the Workshop."; + } + + rpc GetDetails (.CPublishedFile_GetDetails_Request) returns (.CPublishedFile_GetDetails_Response) { + option (method_description) = "Retrieves information about a set of published files."; + } + + rpc GetUserFiles (.CPublishedFile_GetUserFiles_Request) returns (.CPublishedFile_GetUserFiles_Response) { + option (method_description) = "Retrieves files published by a user."; + } + + rpc Update (.CPublishedFile_Update_Request) returns (.CPublishedFile_Update_Response) { + option (method_description) = "Updates information about a published file."; + } + + rpc RefreshVotingQueue (.CPublishedFile_RefreshVotingQueue_Request) returns (.CPublishedFile_RefreshVotingQueue_Response) { + option (method_description) = "Refresh the voting queue for the user"; + } +} diff --git a/Protobufs/dota2/steammessages_steamlearn.steamworkssdk.proto b/Protobufs/dota2/steammessages_steamlearn.steamworkssdk.proto new file mode 100644 index 0000000..893d15a --- /dev/null +++ b/Protobufs/dota2/steammessages_steamlearn.steamworkssdk.proto @@ -0,0 +1,359 @@ +import "steammessages_unified_base.steamworkssdk.proto"; + +enum ESteamLearnDataType { + STEAMLEARN_DATATYPE_INVALID = 0; + STEAMLEARN_DATATYPE_INT32 = 1; + STEAMLEARN_DATATYPE_FLOAT32 = 2; + STEAMLEARN_DATATYPE_BOOL = 3; + STEAMLEARN_DATATYPE_STRING = 4; + STEAMLEARN_DATATYPE_OBJECT = 5; +} + +enum ESteammLearnRegisterDataSourceResult { + STEAMLEARN_REGISTER_DATA_SOURCE_RESULT_ERROR = 0; + STEAMLEARN_REGISTER_DATA_SOURCE_RESULT_SUCCESS_CREATED = 1; + STEAMLEARN_REGISTER_DATA_SOURCE_RESULT_SUCCESS_FOUND = 2; + STEAMLEARN_REGISTER_DATA_SOURCE_RESULT_ERROR_GENERIC = 3; + STEAMLEARN_REGISTER_DATA_SOURCE_RESULT_ERROR_INVALID_NAME = 4; + STEAMLEARN_REGISTER_DATA_SOURCE_RESULT_ERROR_INVALID_VERSION = 5; + STEAMLEARN_REGISTER_DATA_SOURCE_RESULT_ERROR_DATA_CHANGED = 6; + STEAMLEARN_REGISTER_DATA_SOURCE_RESULT_ERROR_DATA_INVALID = 7; + STEAMLEARN_REGISTER_DATA_SOURCE_RESULT_ERROR_FORBIDDEN = 8; + STEAMLEARN_REGISTER_DATA_SOURCE_RESULT_ERROR_INVALID_TIMESTAMP = 9; + STEAMLEARN_REGISTER_DATA_SOURCE_RESULT_DISABLED = 10; +} + +enum ESteamLearnCacheDataResult { + STEAMLEARN_CACHE_DATA_ERROR = 0; + STEAMLEARN_CACHE_DATA_SUCCESS = 1; + STEAMLEARN_CACHE_DATA_ERROR_UNKNOWN_DATA_SOURCE = 2; + STEAMLEARN_CACHE_DATA_ERROR_UNCACHED_DATA_SOURCE = 3; + STEAMLEARN_CACHE_DATA_ERROR_INVALID_KEYS = 4; + STEAMLEARN_CACHE_DATA_ERROR_FORBIDDEN = 5; + STEAMLEARN_CACHE_DATA_ERROR_INVALID_TIMESTAMP = 6; + STEAMLEARN_CACHE_DATA_DISABLED = 7; +} + +enum ESteamLearnSnapshotProjectResult { + STEAMLEARN_SNAPSHOT_PROJECT_ERROR = 0; + STEAMLEARN_SNAPSHOT_PROJECT_SUCCESS_STORED = 1; + STEAMLEARN_SNAPSHOT_PROJECT_SUCCESS_QUEUED = 2; + STEAMLEARN_SNAPSHOT_PROJECT_ERROR_INVALID_PROJECT_ID = 3; + STEAMLEARN_SNAPSHOT_PROJECT_ERROR_UNKNOWN_DATA_SOURCE = 4; + STEAMLEARN_SNAPSHOT_PROJECT_ERROR_INVALID_DATA_SOURCE_KEY = 5; + STEAMLEARN_SNAPSHOT_PROJECT_ERROR_MISSING_CACHE_DURATION = 6; + STEAMLEARN_SNAPSHOT_PROJECT_ERROR_NO_PUBLISHED_CONFIG = 7; + STEAMLEARN_SNAPSHOT_PROJECT_ERROR_FORBIDDEN = 8; + STEAMLEARN_SNAPSHOT_PROJECT_ERROR_INVALID_TIMESTAMP = 9; + STEAMLEARN_SNAPSHOT_PROJECT_ERROR_INTERNAL_DATA_SOURCE_ERROR = 10; + STEAMLEARN_SNAPSHOT_PROJECT_DISABLED = 11; + STEAMLEARN_SNAPSHOT_PROJECT_ERROR_INVALID_PUBLISHED_VERSION = 12; +} + +enum ESteamLearnGetAccessTokensResult { + STEAMLEARN_GET_ACCESS_TOKENS_ERROR = 0; + STEAMLEARN_GET_ACCESS_TOKENS_SUCCESS = 1; +} + +enum ESteamLearnInferenceResult { + STEAMLEARN_INFERENCE_ERROR = 0; + STEAMLEARN_INFERENCE_SUCCESS = 1; + STEAMLEARN_INFERENCE_ERROR_INVALID_PROJECT_ID = 2; + STEAMLEARN_INFERENCE_ERROR_MISSING_CACHED_SCHEMA_DATA = 3; + STEAMLEARN_INFERENCE_ERROR_NO_PUBLISHED_CONFIG = 4; + STEAMLEARN_INFERENCE_ERROR_FORBIDDEN = 5; + STEAMLEARN_INFERENCE_ERROR_INVALID_TIMESTAMP = 6; + STEAMLEARN_INFERENCE_ERROR_INVALID_PUBLISHED_VERSION = 7; + STEAMLEARN_INFERENCE_ERROR_NO_FETCH_ID_FOUND = 8; + STEAMLEARN_INFERENCE_ERROR_TOO_BUSY = 9; +} + +enum ESteamLearnInferenceMetadataResult { + STEAMLEARN_INFERENCE_METADATA_ERROR = 0; + STEAMLEARN_INFERENCE_METADATA_SUCCESS = 1; + STEAMLEARN_INFERENCE_METADATA_ERROR_INVALID_PROJECT_ID = 2; + STEAMLEARN_INFERENCE_METADATA_ERROR_NO_PUBLISHED_CONFIG = 3; + STEAMLEARN_INFERENCE_METADATA_ERROR_FORBIDDEN = 4; + STEAMLEARN_INFERENCE_METADATA_ERROR_INVALID_TIMESTAMP = 5; + STEAMLEARN_INFERENCE_METADATA_ERROR_INVALID_PUBLISHED_VERSION = 6; + STEAMLEARN_INFERENCE_METADATA_ERROR_NO_FETCH_ID_FOUND = 7; +} + +message CMsgSteamLearnDataSourceDescObject { + repeated .CMsgSteamLearnDataSourceDescElement elements = 1; +} + +message CMsgSteamLearnDataSourceDescElement { + optional string name = 1; + optional .ESteamLearnDataType data_type = 2 [default = STEAMLEARN_DATATYPE_INVALID]; + optional .CMsgSteamLearnDataSourceDescObject object = 3; + optional uint32 count = 4; +} + +message CMsgSteamLearnDataSource { + optional uint32 id = 1; + optional string name = 2; + optional uint32 version = 3; + optional string source_description = 4; + optional .CMsgSteamLearnDataSourceDescObject structure = 5; + optional uint32 structure_crc = 6; + optional uint32 cache_duration_seconds = 7; +} + +message CMsgSteamLearnDataObject { + repeated .CMsgSteamLearnDataElement elements = 1; +} + +message CMsgSteamLearnDataElement { + optional string name = 1; + repeated int32 data_int32s = 20; + repeated float data_floats = 21; + repeated bool data_bools = 22; + repeated string data_strings = 23; + repeated .CMsgSteamLearnDataObject data_objects = 24; +} + +message CMsgSteamLearnData { + optional uint32 data_source_id = 1; + repeated uint64 keys = 2; + optional .CMsgSteamLearnDataObject data_object = 3; +} + +message CMsgSteamLearnDataList { + repeated .CMsgSteamLearnData data = 1; +} + +message CMsgSteamLearn_RegisterDataSource_Request { + optional string access_token = 1; + optional .CMsgSteamLearnDataSource data_source = 3; +} + +message CMsgSteamLearn_RegisterDataSource_Response { + optional .ESteammLearnRegisterDataSourceResult result = 1 [default = STEAMLEARN_REGISTER_DATA_SOURCE_RESULT_ERROR]; + optional .CMsgSteamLearnDataSource data_source = 2; +} + +message CMsgSteamLearn_CacheData_Request { + optional string access_token = 1; + optional .CMsgSteamLearnData data = 3; +} + +message CMsgSteamLearn_CacheData_Response { + optional .ESteamLearnCacheDataResult cache_data_result = 1 [default = STEAMLEARN_CACHE_DATA_ERROR]; +} + +message CMsgSteamLearn_SnapshotProject_Request { + optional string access_token = 1; + optional uint32 project_id = 3; + optional uint32 published_version = 7; + repeated uint64 keys = 4; + repeated .CMsgSteamLearnData data = 5; + optional uint32 pending_data_limit_seconds = 6; +} + +message CMsgSteamLearn_SnapshotProject_Response { + optional .ESteamLearnSnapshotProjectResult snapshot_result = 1 [default = STEAMLEARN_SNAPSHOT_PROJECT_ERROR]; +} + +message CMsgSteamLearn_BatchOperation_Request { + repeated .CMsgSteamLearn_CacheData_Request cache_data_requests = 1; + repeated .CMsgSteamLearn_SnapshotProject_Request snapshot_requests = 2; + repeated .CMsgSteamLearn_Inference_Request inference_requests = 3; +} + +message CMsgSteamLearn_BatchOperation_Response { + repeated .CMsgSteamLearn_CacheData_Response cache_data_responses = 1; + repeated .CMsgSteamLearn_SnapshotProject_Response snapshot_responses = 2; + repeated .CMsgSteamLearn_Inference_Response inference_responses = 3; +} + +message CMsgSteamLearnAccessTokens { + message CacheDataAccessToken { + optional uint32 data_source_id = 1; + optional string access_token = 2; + } + + message SnapshotProjectAccessToken { + optional uint32 project_id = 1; + optional string access_token = 2; + } + + message InferenceAccessToken { + optional uint32 project_id = 1; + optional string access_token = 2; + } + + optional string register_data_source_access_token = 1; + repeated .CMsgSteamLearnAccessTokens.CacheDataAccessToken cache_data_access_tokens = 2; + repeated .CMsgSteamLearnAccessTokens.SnapshotProjectAccessToken snapshot_project_access_tokens = 3; + repeated .CMsgSteamLearnAccessTokens.InferenceAccessToken inference_access_tokens = 4; +} + +message CMsgSteamLearn_GetAccessTokens_Request { + optional uint32 appid = 1; +} + +message CMsgSteamLearn_GetAccessTokens_Response { + optional .ESteamLearnGetAccessTokensResult result = 1 [default = STEAMLEARN_GET_ACCESS_TOKENS_ERROR]; + optional .CMsgSteamLearnAccessTokens access_tokens = 2; +} + +message CMsgSteamLearn_Inference_Request { + optional string access_token = 1; + optional uint32 project_id = 3; + optional uint32 published_version = 4; + optional uint32 override_train_id = 5; + optional .CMsgSteamLearnDataList data = 6; + repeated float additional_data = 7; +} + +message CMsgSteamLearn_InferenceMetadata_Request { + optional string access_token = 1; + optional uint32 project_id = 3; + optional uint32 published_version = 4; + optional uint32 override_train_id = 5; +} + +message CMsgSteamLearn_InferenceMetadataBackend_Request { + optional uint32 project_id = 1; + optional uint32 fetch_id = 2; +} + +message CMsgSteamLearn_InferenceMetadata_Response { + message RowRange { + optional uint64 min_row = 1; + optional uint64 max_row = 2; + } + + message Range { + optional string data_element_path = 1; + optional float min_value = 2; + optional float max_value = 3; + } + + message StdDev { + optional string data_element_path = 1; + optional float mean = 2; + optional float std_dev = 3; + } + + message CompactTable { + message Entry { + optional uint32 value = 1; + optional uint32 mapping = 2; + optional uint64 count = 3; + } + + message MapValuesEntry { + optional uint32 key = 1; + optional .CMsgSteamLearn_InferenceMetadata_Response.CompactTable.Entry value = 2; + } + + message MapMappingsEntry { + optional uint32 key = 1; + optional .CMsgSteamLearn_InferenceMetadata_Response.CompactTable.Entry value = 2; + } + + optional string name = 1; + repeated .CMsgSteamLearn_InferenceMetadata_Response.CompactTable.MapValuesEntry map_values = 2; + repeated .CMsgSteamLearn_InferenceMetadata_Response.CompactTable.MapMappingsEntry map_mappings = 3; + } + + message KMeans { + message Cluster { + optional float x = 1; + optional float y = 2; + optional float radius = 3; + optional float radius_75pct = 4; + optional float radius_50pct = 5; + optional float radius_25pct = 6; + } + + optional string name = 1; + repeated .CMsgSteamLearn_InferenceMetadata_Response.KMeans.Cluster clusters = 2; + } + + message SnapshotHistogram { + optional float min_value = 1; + optional float max_value = 2; + optional uint32 num_buckets = 3; + repeated uint32 bucket_counts = 4; + } + + optional .ESteamLearnInferenceMetadataResult inference_metadata_result = 1 [default = STEAMLEARN_INFERENCE_METADATA_ERROR]; + optional .CMsgSteamLearn_InferenceMetadata_Response.RowRange row_range = 2; + repeated .CMsgSteamLearn_InferenceMetadata_Response.Range ranges = 3; + repeated .CMsgSteamLearn_InferenceMetadata_Response.StdDev std_devs = 4; + repeated .CMsgSteamLearn_InferenceMetadata_Response.CompactTable compact_tables = 5; + repeated .CMsgSteamLearn_InferenceMetadata_Response.KMeans kmeans = 6; + optional .CMsgSteamLearn_InferenceMetadata_Response.SnapshotHistogram snapshot_histogram = 7; +} + +message CMsgSteamLearn_InferenceBackend_Response { + message RegressionOutput { + optional float value = 1; + } + + message BinaryCrossEntropyOutput { + optional float value = 1; + } + + message MutliBinaryCrossEntropyOutput { + repeated float weight = 1; + repeated float value = 2; + } + + message CategoricalCrossEntropyOutput { + repeated float weight = 1; + repeated float value = 2; + } + + message Output { + oneof ResponseType { + .CMsgSteamLearn_InferenceBackend_Response.BinaryCrossEntropyOutput binary_crossentropy = 1; + .CMsgSteamLearn_InferenceBackend_Response.CategoricalCrossEntropyOutput categorical_crossentropy = 2; + .CMsgSteamLearn_InferenceBackend_Response.MutliBinaryCrossEntropyOutput multi_binary_crossentropy = 3; + .CMsgSteamLearn_InferenceBackend_Response.RegressionOutput regression = 4; + } + } + + repeated .CMsgSteamLearn_InferenceBackend_Response.Output outputs = 1; +} + +message CMsgSteamLearn_Inference_Response { + optional .ESteamLearnInferenceResult inference_result = 1 [default = STEAMLEARN_INFERENCE_ERROR]; + optional .CMsgSteamLearn_InferenceBackend_Response backend_response = 2; + repeated uint64 keys = 3; +} + +service SteamLearn { + option (service_description) = "Service for submitting data, training, and inferencing with SteamLearn."; + + rpc RegisterDataSource (.CMsgSteamLearn_RegisterDataSource_Request) returns (.CMsgSteamLearn_RegisterDataSource_Response) { + option (method_description) = "Registers a data desc (or finds a data desc if it's already registered)."; + } + + rpc CacheData (.CMsgSteamLearn_CacheData_Request) returns (.CMsgSteamLearn_CacheData_Response) { + option (method_description) = "Updates a cached data entry."; + } + + rpc SnapshotProject (.CMsgSteamLearn_SnapshotProject_Request) returns (.CMsgSteamLearn_SnapshotProject_Response) { + option (method_description) = "Snapshots the current data for a project."; + } + + rpc BatchOperation (.CMsgSteamLearn_BatchOperation_Request) returns (.CMsgSteamLearn_BatchOperation_Response) { + option (method_description) = "Batches multiple data updates, snapshots, and inference requests into a single call"; + } + + rpc GetAccessTokens (.CMsgSteamLearn_GetAccessTokens_Request) returns (.CMsgSteamLearn_GetAccessTokens_Response) { + option (method_description) = "Gets the access tokens needed for registering data sources, submitting data to them, and snapshotting projects"; + } + + rpc Inference (.CMsgSteamLearn_Inference_Request) returns (.CMsgSteamLearn_Inference_Response) { + option (method_description) = "Inferences using supplied data, or data associated with the specified key."; + } + + rpc InferenceMetadata (.CMsgSteamLearn_InferenceMetadata_Request) returns (.CMsgSteamLearn_InferenceMetadata_Response) { + option (method_description) = "Requests the metadata that was generated from a specified fetch."; + } +} diff --git a/Protobufs/dota2/steammessages_unified_base.steamworkssdk.proto b/Protobufs/dota2/steammessages_unified_base.steamworkssdk.proto new file mode 100644 index 0000000..84ab32a --- /dev/null +++ b/Protobufs/dota2/steammessages_unified_base.steamworkssdk.proto @@ -0,0 +1,30 @@ +import "google/protobuf/descriptor.proto"; + +option optimize_for = SPEED; +option cc_generic_services = false; + +extend .google.protobuf.FieldOptions { + optional string description = 50000; +} + +extend .google.protobuf.ServiceOptions { + optional string service_description = 50000; + optional .EProtoExecutionSite service_execution_site = 50008 [default = k_EProtoExecutionSiteUnknown]; +} + +extend .google.protobuf.MethodOptions { + optional string method_description = 50000; +} + +extend .google.protobuf.EnumOptions { + optional string enum_description = 50000; +} + +extend .google.protobuf.EnumValueOptions { + optional string enum_value_description = 50000; +} + +enum EProtoExecutionSite { + k_EProtoExecutionSiteUnknown = 0; + k_EProtoExecutionSiteSteamClient = 3; +} diff --git a/Protobufs/dota2/steamnetworkingsockets_messages.proto b/Protobufs/dota2/steamnetworkingsockets_messages.proto new file mode 100644 index 0000000..0550740 --- /dev/null +++ b/Protobufs/dota2/steamnetworkingsockets_messages.proto @@ -0,0 +1,177 @@ +import "steamnetworkingsockets_messages_certs.proto"; + +option optimize_for = SPEED; +option cc_generic_services = false; + +enum ESteamNetworkingSocketsCipher { + k_ESteamNetworkingSocketsCipher_INVALID = 0; + k_ESteamNetworkingSocketsCipher_NULL = 1; + k_ESteamNetworkingSocketsCipher_AES_256_GCM = 2; +} + +message CMsgSteamDatagramSessionCryptInfo { + enum EKeyType { + INVALID = 0; + CURVE25519 = 1; + } + + optional .CMsgSteamDatagramSessionCryptInfo.EKeyType key_type = 1 [default = INVALID]; + optional bytes key_data = 2; + optional fixed64 nonce = 3; + optional uint32 protocol_version = 4; + repeated .ESteamNetworkingSocketsCipher ciphers = 5; +} + +message CMsgSteamDatagramSessionCryptInfoSigned { + optional bytes info = 1; + optional bytes signature = 2; +} + +message CMsgSteamDatagramDiagnostic { + optional uint32 severity = 1; + optional string text = 2; +} + +message CMsgSteamDatagramLinkInstantaneousStats { + optional uint32 out_packets_per_sec_x10 = 1; + optional uint32 out_bytes_per_sec = 2; + optional uint32 in_packets_per_sec_x10 = 3; + optional uint32 in_bytes_per_sec = 4; + optional uint32 ping_ms = 5; + optional uint32 packets_dropped_pct = 6; + optional uint32 packets_weird_sequence_pct = 7; + optional uint32 peak_jitter_usec = 8; +} + +message CMsgSteamDatagramLinkLifetimeStats { + optional uint32 connected_seconds = 2; + optional uint64 packets_sent = 3; + optional uint64 kb_sent = 4; + optional uint64 packets_recv = 5; + optional uint64 kb_recv = 6; + optional uint64 packets_recv_sequenced = 7; + optional uint64 packets_recv_dropped = 8; + optional uint64 packets_recv_out_of_order = 9; + optional uint64 packets_recv_out_of_order_corrected = 15; + optional uint64 packets_recv_duplicate = 10; + optional uint64 packets_recv_lurch = 11; + repeated uint64 multipath_packets_recv_sequenced = 12; + repeated uint64 multipath_packets_recv_later = 13; + optional uint32 multipath_send_enabled = 14; + optional uint32 quality_histogram_100 = 21; + optional uint32 quality_histogram_99 = 22; + optional uint32 quality_histogram_97 = 23; + optional uint32 quality_histogram_95 = 24; + optional uint32 quality_histogram_90 = 25; + optional uint32 quality_histogram_75 = 26; + optional uint32 quality_histogram_50 = 27; + optional uint32 quality_histogram_1 = 28; + optional uint32 quality_histogram_dead = 29; + optional uint32 quality_ntile_2nd = 30; + optional uint32 quality_ntile_5th = 31; + optional uint32 quality_ntile_25th = 32; + optional uint32 quality_ntile_50th = 33; + optional uint32 ping_histogram_25 = 41; + optional uint32 ping_histogram_50 = 42; + optional uint32 ping_histogram_75 = 43; + optional uint32 ping_histogram_100 = 44; + optional uint32 ping_histogram_125 = 45; + optional uint32 ping_histogram_150 = 46; + optional uint32 ping_histogram_200 = 47; + optional uint32 ping_histogram_300 = 48; + optional uint32 ping_histogram_max = 49; + optional uint32 ping_ntile_5th = 50; + optional uint32 ping_ntile_50th = 51; + optional uint32 ping_ntile_75th = 52; + optional uint32 ping_ntile_95th = 53; + optional uint32 ping_ntile_98th = 54; + optional uint32 jitter_histogram_negligible = 61; + optional uint32 jitter_histogram_1 = 62; + optional uint32 jitter_histogram_2 = 63; + optional uint32 jitter_histogram_5 = 64; + optional uint32 jitter_histogram_10 = 65; + optional uint32 jitter_histogram_20 = 66; +} + +message CMsgSteamDatagramConnectionQuality { + optional .CMsgSteamDatagramLinkInstantaneousStats instantaneous = 1; + optional .CMsgSteamDatagramLinkLifetimeStats lifetime = 2; +} + +message CMsgICECandidate { + optional string candidate = 3; +} + +message CMsgICERendezvous { + message Auth { + optional string pwd_frag = 1; + } + + optional .CMsgICERendezvous.Auth auth = 2; + optional .CMsgICECandidate add_candidate = 1; +} + +message CMsgSteamNetworkingP2PRendezvous { + message ConnectRequest { + optional .CMsgSteamDatagramSessionCryptInfoSigned crypt = 6; + optional .CMsgSteamDatagramCertificateSigned cert = 7; + optional uint32 to_virtual_port = 9; + optional uint32 from_virtual_port = 10; + optional string from_fakeip = 11; + } + + message ConnectOK { + optional .CMsgSteamDatagramSessionCryptInfoSigned crypt = 5; + optional .CMsgSteamDatagramCertificateSigned cert = 6; + } + + message ConnectionClosed { + optional string debug = 5; + optional uint32 reason_code = 6; + } + + message ReliableMessage { + optional .CMsgICERendezvous ice = 1; + } + + message ApplicationMessage { + optional bytes data = 1; + optional uint64 msg_num = 2; + optional uint32 flags = 3; + optional uint32 lane_idx = 4; + } + + optional string from_identity = 8; + optional fixed32 from_connection_id = 9; + optional string to_identity = 10; + optional fixed32 to_connection_id = 1; + optional bytes sdr_routes = 2; + optional uint32 ack_peer_routes_revision = 3; + optional bool ice_enabled = 7; + optional bytes hosted_server_ticket = 14; + optional .CMsgSteamNetworkingP2PRendezvous.ConnectRequest connect_request = 4; + optional .CMsgSteamNetworkingP2PRendezvous.ConnectOK connect_ok = 5; + optional .CMsgSteamNetworkingP2PRendezvous.ConnectionClosed connection_closed = 6; + optional uint32 ack_reliable_msg = 11; + optional uint32 first_reliable_msg = 12; + repeated .CMsgSteamNetworkingP2PRendezvous.ReliableMessage reliable_messages = 13; + repeated .CMsgSteamNetworkingP2PRendezvous.ApplicationMessage application_messages = 15; +} + +message CMsgSteamNetworkingICESessionSummary { + optional uint32 failure_reason_code = 7; + optional uint32 local_candidate_types = 1; + optional uint32 remote_candidate_types = 2; + optional uint32 initial_route_kind = 3; + optional uint32 initial_ping = 4; + optional uint32 initial_score = 6; + optional uint32 negotiation_ms = 5; + optional uint32 best_route_kind = 16; + optional uint32 best_ping = 17; + optional uint32 best_score = 18; + optional uint32 best_time = 19; + optional uint32 selected_seconds = 12; + optional uint32 user_settings = 13; + optional uint32 ice_enable_var = 14; + optional uint32 local_candidate_types_allowed = 15; +} diff --git a/Protobufs/dota2/steamnetworkingsockets_messages_certs.proto b/Protobufs/dota2/steamnetworkingsockets_messages_certs.proto new file mode 100644 index 0000000..6ad2c3f --- /dev/null +++ b/Protobufs/dota2/steamnetworkingsockets_messages_certs.proto @@ -0,0 +1,38 @@ +option optimize_for = SPEED; +option cc_generic_services = false; + +message CMsgSteamNetworkingIdentityLegacyBinary { + optional fixed64 steam_id = 16; + optional bytes generic_bytes = 2; + optional string generic_string = 3; + optional bytes ipv6_and_port = 4; +} + +message CMsgSteamDatagramCertificate { + enum EKeyType { + INVALID = 0; + ED25519 = 1; + } + + optional .CMsgSteamDatagramCertificate.EKeyType key_type = 1 [default = INVALID]; + optional bytes key_data = 2; + optional fixed64 legacy_steam_id = 4; + optional .CMsgSteamNetworkingIdentityLegacyBinary legacy_identity_binary = 11; + optional string identity_string = 12; + repeated fixed32 gameserver_datacenter_ids = 5; + optional fixed32 time_created = 8; + optional fixed32 time_expiry = 9; + repeated uint32 app_ids = 10; + repeated string ip_addresses = 13; +} + +message CMsgSteamDatagramCertificateSigned { + optional bytes cert = 4; + optional fixed64 ca_key_id = 5; + optional bytes ca_signature = 6; + optional bytes private_key_data = 1; +} + +message CMsgSteamDatagramCertificateRequest { + optional .CMsgSteamDatagramCertificate cert = 1; +} diff --git a/Protobufs/dota2/steamnetworkingsockets_messages_udp.proto b/Protobufs/dota2/steamnetworkingsockets_messages_udp.proto new file mode 100644 index 0000000..cc50836 --- /dev/null +++ b/Protobufs/dota2/steamnetworkingsockets_messages_udp.proto @@ -0,0 +1,75 @@ +import "steamnetworkingsockets_messages_certs.proto"; +import "steamnetworkingsockets_messages.proto"; + +option optimize_for = SPEED; +option cc_generic_services = false; + +enum ESteamNetworkingUDPMsgID { + k_ESteamNetworkingUDPMsg_ChallengeRequest = 32; + k_ESteamNetworkingUDPMsg_ChallengeReply = 33; + k_ESteamNetworkingUDPMsg_ConnectRequest = 34; + k_ESteamNetworkingUDPMsg_ConnectOK = 35; + k_ESteamNetworkingUDPMsg_ConnectionClosed = 36; + k_ESteamNetworkingUDPMsg_NoConnection = 37; +} + +message CMsgSteamSockets_UDP_ChallengeRequest { + optional fixed32 connection_id = 1; + optional fixed64 my_timestamp = 3; + optional uint32 protocol_version = 4; +} + +message CMsgSteamSockets_UDP_ChallengeReply { + optional fixed32 connection_id = 1; + optional fixed64 challenge = 2; + optional fixed64 your_timestamp = 3; + optional uint32 protocol_version = 4; +} + +message CMsgSteamSockets_UDP_ConnectRequest { + optional fixed32 client_connection_id = 1; + optional fixed64 challenge = 2; + optional fixed64 my_timestamp = 5; + optional uint32 ping_est_ms = 6; + optional .CMsgSteamDatagramSessionCryptInfoSigned crypt = 7; + optional .CMsgSteamDatagramCertificateSigned cert = 4; + optional uint32 legacy_protocol_version = 8; + optional string identity_string = 10; + optional fixed64 legacy_client_steam_id = 3; + optional .CMsgSteamNetworkingIdentityLegacyBinary legacy_identity_binary = 9; +} + +message CMsgSteamSockets_UDP_ConnectOK { + optional fixed32 client_connection_id = 1; + optional fixed32 server_connection_id = 5; + optional fixed64 your_timestamp = 3; + optional uint32 delay_time_usec = 4; + optional .CMsgSteamDatagramSessionCryptInfoSigned crypt = 7; + optional .CMsgSteamDatagramCertificateSigned cert = 8; + optional string identity_string = 11; + optional fixed64 legacy_server_steam_id = 2; + optional .CMsgSteamNetworkingIdentityLegacyBinary legacy_identity_binary = 10; +} + +message CMsgSteamSockets_UDP_ConnectionClosed { + optional fixed32 to_connection_id = 4; + optional fixed32 from_connection_id = 5; + optional string debug = 2; + optional uint32 reason_code = 3; +} + +message CMsgSteamSockets_UDP_NoConnection { + optional fixed32 from_connection_id = 2; + optional fixed32 to_connection_id = 3; +} + +message CMsgSteamSockets_UDP_Stats { + enum Flags { + ACK_REQUEST_E2E = 2; + ACK_REQUEST_IMMEDIATE = 4; + NOT_PRIMARY_TRANSPORT_E2E = 16; + } + + optional .CMsgSteamDatagramConnectionQuality stats = 1; + optional uint32 flags = 3; +} diff --git a/Protobufs/dota2/te.proto b/Protobufs/dota2/te.proto new file mode 100644 index 0000000..da76e30 --- /dev/null +++ b/Protobufs/dota2/te.proto @@ -0,0 +1,262 @@ +import "networkbasetypes.proto"; + +enum ETEProtobufIds { + TE_EffectDispatchId = 400; + TE_ArmorRicochetId = 401; + TE_BeamEntPointId = 402; + TE_BeamEntsId = 403; + TE_BeamPointsId = 404; + TE_BeamRingId = 405; + TE_BSPDecalId = 407; + TE_BubblesId = 408; + TE_BubbleTrailId = 409; + TE_DecalId = 410; + TE_WorldDecalId = 411; + TE_EnergySplashId = 412; + TE_FizzId = 413; + TE_ShatterSurfaceId = 414; + TE_GlowSpriteId = 415; + TE_ImpactId = 416; + TE_MuzzleFlashId = 417; + TE_BloodStreamId = 418; + TE_ExplosionId = 419; + TE_DustId = 420; + TE_LargeFunnelId = 421; + TE_SparksId = 422; + TE_PhysicsPropId = 423; + TE_PlayerDecalId = 424; + TE_ProjectedDecalId = 425; + TE_SmokeId = 426; +} + +message CMsgTEArmorRicochet { + optional .CMsgVector pos = 1; + optional .CMsgVector dir = 2; +} + +message CMsgTEBaseBeam { + optional fixed64 modelindex = 1; + optional fixed64 haloindex = 2; + optional uint32 startframe = 3; + optional uint32 framerate = 4; + optional float life = 5; + optional float width = 6; + optional float endwidth = 7; + optional uint32 fadelength = 8; + optional float amplitude = 9; + optional fixed32 color = 10; + optional uint32 speed = 11; + optional uint32 flags = 12; +} + +message CMsgTEBeamEntPoint { + optional .CMsgTEBaseBeam base = 1; + optional uint32 startentity = 2; + optional uint32 endentity = 3; + optional .CMsgVector start = 4; + optional .CMsgVector end = 5; +} + +message CMsgTEBeamEnts { + optional .CMsgTEBaseBeam base = 1; + optional uint32 startentity = 2; + optional uint32 endentity = 3; +} + +message CMsgTEBeamPoints { + optional .CMsgTEBaseBeam base = 1; + optional .CMsgVector start = 2; + optional .CMsgVector end = 3; +} + +message CMsgTEBeamRing { + optional .CMsgTEBaseBeam base = 1; + optional uint32 startentity = 2; + optional uint32 endentity = 3; +} + +message CMsgTEBSPDecal { + optional .CMsgVector origin = 1; + optional .CMsgVector normal = 2; + optional .CMsgVector saxis = 3; + optional int32 entity = 4 [default = -1]; + optional uint32 index = 5; +} + +message CMsgTEBubbles { + optional .CMsgVector mins = 1; + optional .CMsgVector maxs = 2; + optional float height = 3; + optional uint32 count = 4; + optional float speed = 5; +} + +message CMsgTEBubbleTrail { + optional .CMsgVector mins = 1; + optional .CMsgVector maxs = 2; + optional float waterz = 3; + optional uint32 count = 4; + optional float speed = 5; +} + +message CMsgTEDecal { + optional .CMsgVector origin = 1; + optional .CMsgVector start = 2; + optional int32 entity = 3 [default = -1]; + optional uint32 hitbox = 4; + optional uint32 index = 5; +} + +message CMsgEffectData { + optional .CMsgVector origin = 1; + optional .CMsgVector start = 2; + optional .CMsgVector normal = 3; + optional .CMsgQAngle angles = 4; + optional fixed32 entity = 5 [default = 16777215]; + optional fixed32 otherentity = 6 [default = 16777215]; + optional float scale = 7; + optional float magnitude = 8; + optional float radius = 9; + optional fixed32 surfaceprop = 10; + optional fixed64 effectindex = 11; + optional uint32 damagetype = 12; + optional uint32 material = 13; + optional uint32 hitbox = 14; + optional uint32 color = 15; + optional uint32 flags = 16; + optional int32 attachmentindex = 17; + optional uint32 effectname = 18; + optional uint32 attachmentname = 19; +} + +message CMsgTEEffectDispatch { + optional .CMsgEffectData effectdata = 1; +} + +message CMsgTEEnergySplash { + optional .CMsgVector pos = 1; + optional .CMsgVector dir = 2; + optional bool explosive = 3; +} + +message CMsgTEFizz { + optional int32 entity = 1 [default = -1]; + optional uint32 density = 2; + optional int32 current = 3; +} + +message CMsgTEShatterSurface { + optional .CMsgVector origin = 1; + optional .CMsgQAngle angles = 2; + optional .CMsgVector force = 3; + optional .CMsgVector forcepos = 4; + optional float width = 5; + optional float height = 6; + optional float shardsize = 7; + optional uint32 surfacetype = 8; + optional fixed32 frontcolor = 9; + optional fixed32 backcolor = 10; +} + +message CMsgTEGlowSprite { + optional .CMsgVector origin = 1; + optional float scale = 2; + optional float life = 3; + optional uint32 brightness = 4; +} + +message CMsgTEImpact { + optional .CMsgVector origin = 1; + optional .CMsgVector normal = 2; + optional uint32 type = 3; +} + +message CMsgTEMuzzleFlash { + optional .CMsgVector origin = 1; + optional .CMsgQAngle angles = 2; + optional float scale = 3; + optional uint32 type = 4; +} + +message CMsgTEBloodStream { + optional .CMsgVector origin = 1; + optional .CMsgVector direction = 2; + optional fixed32 color = 3; + optional uint32 amount = 4; +} + +message CMsgTEExplosion { + optional .CMsgVector origin = 1; + optional uint32 framerate = 2; + optional uint32 flags = 3; + optional .CMsgVector normal = 4; + optional uint32 materialtype = 5; + optional uint32 radius = 6; + optional uint32 magnitude = 7; + optional float scale = 8; + optional bool affect_ragdolls = 9; + optional string effect_name = 10; + optional uint32 explosion_type = 11; + optional bool create_debris = 12; + optional .CMsgVector debris_origin = 13; + optional fixed32 debris_surfaceprop = 14; +} + +message CMsgTEDust { + optional .CMsgVector origin = 1; + optional float size = 2; + optional float speed = 3; + optional .CMsgVector direction = 4; +} + +message CMsgTELargeFunnel { + optional .CMsgVector origin = 1; + optional uint32 reversed = 2; +} + +message CMsgTESparks { + optional .CMsgVector origin = 1; + optional uint32 magnitude = 2; + optional uint32 length = 3; + optional .CMsgVector direction = 4; +} + +message CMsgTEPhysicsProp { + optional .CMsgVector origin = 1; + optional .CMsgVector velocity = 2; + optional .CMsgQAngle angles = 3; + optional fixed32 skin = 4; + optional uint32 flags = 5; + optional uint32 effects = 6; + optional fixed32 color = 7; + optional fixed64 modelindex = 8; + optional uint32 unused_breakmodelsnottomake = 9; + optional float scale = 10; + optional .CMsgVector dmgpos = 11; + optional .CMsgVector dmgdir = 12; + optional int32 dmgtype = 13; +} + +message CMsgTEPlayerDecal { + optional .CMsgVector origin = 1; + optional int32 player = 2 [default = -1]; + optional int32 entity = 3 [default = -1]; +} + +message CMsgTEProjectedDecal { + optional .CMsgVector origin = 1; + optional .CMsgQAngle angles = 2; + optional uint32 index = 3; + optional float distance = 4; +} + +message CMsgTESmoke { + optional .CMsgVector origin = 1; + optional float scale = 2; +} + +message CMsgTEWorldDecal { + optional .CMsgVector origin = 1; + optional .CMsgVector normal = 2; + optional uint32 index = 3; +} diff --git a/Protobufs/dota2/uifontfile_format.proto b/Protobufs/dota2/uifontfile_format.proto new file mode 100644 index 0000000..5602e48 --- /dev/null +++ b/Protobufs/dota2/uifontfile_format.proto @@ -0,0 +1,13 @@ +message CUIFontFilePB { + optional string font_file_name = 1; + optional bytes opentype_font_data = 2; +} + +message CUIFontFilePackagePB { + message CUIEncryptedFontFilePB { + optional bytes encrypted_contents = 1; + } + + required uint32 package_version = 1; + repeated .CUIFontFilePackagePB.CUIEncryptedFontFilePB encrypted_font_files = 2; +} diff --git a/Protobufs/dota2/usercmd.proto b/Protobufs/dota2/usercmd.proto new file mode 100644 index 0000000..e0ffba8 --- /dev/null +++ b/Protobufs/dota2/usercmd.proto @@ -0,0 +1,39 @@ +import "networkbasetypes.proto"; + +message CInButtonStatePB { + optional uint64 buttonstate1 = 1; + optional uint64 buttonstate2 = 2; + optional uint64 buttonstate3 = 3; +} + +message CSubtickMoveStep { + optional uint64 button = 1; + optional bool pressed = 2; + optional float when = 3; + optional float analog_forward_delta = 4; + optional float analog_left_delta = 5; +} + +message CBaseUserCmdPB { + optional int32 legacy_command_number = 1; + optional int32 client_tick = 2; + optional .CInButtonStatePB buttons_pb = 3; + optional .CMsgQAngle viewangles = 4; + optional float forwardmove = 5; + optional float leftmove = 6; + optional float upmove = 7; + optional int32 impulse = 8; + optional int32 weaponselect = 9; + optional int32 random_seed = 10; + optional int32 mousedx = 11; + optional int32 mousedy = 12; + optional uint32 pawn_entity_handle = 14 [default = 16777215]; + repeated .CSubtickMoveStep subtick_moves = 18; + optional bytes move_crc = 19; + optional uint32 consumed_server_angle_changes = 20; + optional int32 cmd_flags = 21; +} + +message CUserCmdBasePB { + optional .CBaseUserCmdPB base = 1; +} diff --git a/Protobufs/dota2/usermessages.proto b/Protobufs/dota2/usermessages.proto new file mode 100644 index 0000000..7c6dd3d --- /dev/null +++ b/Protobufs/dota2/usermessages.proto @@ -0,0 +1,812 @@ +import "networkbasetypes.proto"; + +enum EBaseUserMessages { + UM_AchievementEvent = 101; + UM_CloseCaption = 102; + UM_CloseCaptionDirect = 103; + UM_CurrentTimescale = 104; + UM_DesiredTimescale = 105; + UM_Fade = 106; + UM_GameTitle = 107; + UM_HudMsg = 110; + UM_HudText = 111; + UM_ColoredText = 113; + UM_RequestState = 114; + UM_ResetHUD = 115; + UM_Rumble = 116; + UM_SayText = 117; + UM_SayText2 = 118; + UM_SayTextChannel = 119; + UM_Shake = 120; + UM_ShakeDir = 121; + UM_WaterShake = 122; + UM_TextMsg = 124; + UM_ScreenTilt = 125; + UM_VoiceMask = 128; + UM_SendAudio = 130; + UM_ItemPickup = 131; + UM_AmmoDenied = 132; + UM_ShowMenu = 134; + UM_CreditsMsg = 135; + UM_CloseCaptionPlaceholder = 142; + UM_CameraTransition = 143; + UM_AudioParameter = 144; + UM_ParticleManager = 145; + UM_HudError = 146; + UM_CustomGameEvent = 148; + UM_AnimGraphUpdate = 149; + UM_HapticsManagerPulse = 150; + UM_HapticsManagerEffect = 151; + UM_CommandQueueState = 152; + UM_UpdateCssClasses = 153; + UM_ServerFrameTime = 154; + UM_LagCompensationError = 155; + UM_RequestDllStatus = 156; + UM_RequestUtilAction = 157; + UM_UtilActionResponse = 158; + UM_DllStatusResponse = 159; + UM_RequestInventory = 160; + UM_InventoryResponse = 161; + UM_RequestDiagnostic = 162; + UM_DiagnosticResponse = 163; + UM_ExtraUserData = 164; + UM_NotifyResponseFound = 165; + UM_PlayResponseConditional = 166; + UM_MAX_BASE = 200; +} + +enum EBaseEntityMessages { + EM_PlayJingle = 136; + EM_ScreenOverlay = 137; + EM_RemoveAllDecals = 138; + EM_PropagateForce = 139; + EM_DoSpark = 140; + EM_FixAngle = 141; +} + +enum eRollType { + ROLL_NONE = -1; + ROLL_STATS = 0; + ROLL_CREDITS = 1; + ROLL_LATE_JOIN_LOGO = 2; + ROLL_OUTTRO = 3; +} + +enum PARTICLE_MESSAGE { + GAME_PARTICLE_MANAGER_EVENT_CREATE = 0; + GAME_PARTICLE_MANAGER_EVENT_UPDATE = 1; + GAME_PARTICLE_MANAGER_EVENT_UPDATE_FORWARD = 2; + GAME_PARTICLE_MANAGER_EVENT_UPDATE_ORIENTATION = 3; + GAME_PARTICLE_MANAGER_EVENT_UPDATE_FALLBACK = 4; + GAME_PARTICLE_MANAGER_EVENT_UPDATE_ENT = 5; + GAME_PARTICLE_MANAGER_EVENT_UPDATE_OFFSET = 6; + GAME_PARTICLE_MANAGER_EVENT_DESTROY = 7; + GAME_PARTICLE_MANAGER_EVENT_DESTROY_INVOLVING = 8; + GAME_PARTICLE_MANAGER_EVENT_RELEASE = 9; + GAME_PARTICLE_MANAGER_EVENT_LATENCY = 10; + GAME_PARTICLE_MANAGER_EVENT_SHOULD_DRAW = 11; + GAME_PARTICLE_MANAGER_EVENT_FROZEN = 12; + GAME_PARTICLE_MANAGER_EVENT_CHANGE_CONTROL_POINT_ATTACHMENT = 13; + GAME_PARTICLE_MANAGER_EVENT_UPDATE_ENTITY_POSITION = 14; + GAME_PARTICLE_MANAGER_EVENT_SET_FOW_PROPERTIES = 15; + GAME_PARTICLE_MANAGER_EVENT_SET_TEXT = 16; + GAME_PARTICLE_MANAGER_EVENT_SET_SHOULD_CHECK_FOW = 17; + GAME_PARTICLE_MANAGER_EVENT_SET_CONTROL_POINT_MODEL = 18; + GAME_PARTICLE_MANAGER_EVENT_SET_CONTROL_POINT_SNAPSHOT = 19; + GAME_PARTICLE_MANAGER_EVENT_SET_TEXTURE_ATTRIBUTE = 20; + GAME_PARTICLE_MANAGER_EVENT_SET_SCENE_OBJECT_GENERIC_FLAG = 21; + GAME_PARTICLE_MANAGER_EVENT_SET_SCENE_OBJECT_TINT_AND_DESAT = 22; + GAME_PARTICLE_MANAGER_EVENT_DESTROY_NAMED = 23; + GAME_PARTICLE_MANAGER_EVENT_SKIP_TO_TIME = 24; + GAME_PARTICLE_MANAGER_EVENT_CAN_FREEZE = 25; + GAME_PARTICLE_MANAGER_EVENT_SET_NAMED_VALUE_CONTEXT = 26; + GAME_PARTICLE_MANAGER_EVENT_UPDATE_TRANSFORM = 27; + GAME_PARTICLE_MANAGER_EVENT_FREEZE_TRANSITION_OVERRIDE = 28; + GAME_PARTICLE_MANAGER_EVENT_FREEZE_INVOLVING = 29; + GAME_PARTICLE_MANAGER_EVENT_ADD_MODELLIST_OVERRIDE_ELEMENT = 30; + GAME_PARTICLE_MANAGER_EVENT_CLEAR_MODELLIST_OVERRIDE = 31; + GAME_PARTICLE_MANAGER_EVENT_CREATE_PHYSICS_SIM = 32; + GAME_PARTICLE_MANAGER_EVENT_DESTROY_PHYSICS_SIM = 33; + GAME_PARTICLE_MANAGER_EVENT_SET_VDATA = 34; + GAME_PARTICLE_MANAGER_EVENT_SET_MATERIAL_OVERRIDE = 35; +} + +enum EHapticPulseType { + VR_HAND_HAPTIC_PULSE_LIGHT = 0; + VR_HAND_HAPTIC_PULSE_MEDIUM = 1; + VR_HAND_HAPTIC_PULSE_STRONG = 2; +} + +message CUserMessageAchievementEvent { + optional uint32 achievement = 1; +} + +message CUserMessageCloseCaption { + optional fixed32 hash = 1; + optional float duration = 2; + optional bool from_player = 3; + optional int32 ent_index = 4 [default = -1]; +} + +message CUserMessageCloseCaptionDirect { + optional fixed32 hash = 1; + optional float duration = 2; + optional bool from_player = 3; + optional int32 ent_index = 4 [default = -1]; +} + +message CUserMessageCloseCaptionPlaceholder { + optional string string = 1; + optional float duration = 2; + optional bool from_player = 3; + optional int32 ent_index = 4 [default = -1]; +} + +message CUserMessageCurrentTimescale { + optional float current = 1; +} + +message CUserMessageDesiredTimescale { + optional float desired = 1; + optional float acceleration = 2; + optional float minblendrate = 3; + optional float blenddeltamultiplier = 4; +} + +message CUserMessageFade { + optional uint32 duration = 1; + optional uint32 hold_time = 2; + optional uint32 flags = 3; + optional fixed32 color = 4; +} + +message CUserMessageShake { + optional uint32 command = 1; + optional float amplitude = 2; + optional float frequency = 3; + optional float duration = 4; +} + +message CUserMessageShakeDir { + optional .CUserMessageShake shake = 1; + optional .CMsgVector direction = 2; +} + +message CUserMessageWaterShake { + optional uint32 command = 1; + optional float amplitude = 2; + optional float frequency = 3; + optional float duration = 4; +} + +message CUserMessageScreenTilt { + optional uint32 command = 1; + optional bool ease_in_out = 2; + optional .CMsgVector angle = 3; + optional float duration = 4; + optional float time = 5; +} + +message CUserMessageSayText { + optional int32 playerindex = 1 [default = -1]; + optional string text = 2; + optional bool chat = 3; +} + +message CUserMessageSayText2 { + optional int32 entityindex = 1 [default = -1]; + optional bool chat = 2; + optional string messagename = 3; + optional string param1 = 4; + optional string param2 = 5; + optional string param3 = 6; + optional string param4 = 7; +} + +message CUserMessageHudMsg { + optional uint32 channel = 1; + optional float x = 2; + optional float y = 3; + optional fixed32 color1 = 4; + optional fixed32 color2 = 5; + optional uint32 effect = 6; + optional string message = 11; +} + +message CUserMessageHudText { + optional string message = 1; +} + +message CUserMessageTextMsg { + optional uint32 dest = 1; + repeated string param = 2; +} + +message CUserMessageGameTitle { +} + +message CUserMessageResetHUD { +} + +message CUserMessageSendAudio { + optional string soundname = 1; + optional bool stop = 2; +} + +message CUserMessageAudioParameter { + optional uint32 parameter_type = 1; + optional uint32 name_hash_code = 2; + optional float value = 3; + optional uint32 int_value = 4; +} + +message CUserMessageVoiceMask { + repeated uint32 gamerules_masks = 1; + repeated uint32 ban_masks = 2; + optional bool mod_enable = 3; +} + +message CUserMessageRequestState { +} + +message CUserMessageRumble { + optional int32 index = 1; + optional int32 data = 2; + optional int32 flags = 3; +} + +message CUserMessageSayTextChannel { + optional int32 player = 1; + optional int32 channel = 2; + optional string text = 3; +} + +message CUserMessageColoredText { + optional uint32 color = 1; + optional string text = 2; + optional bool reset = 3; + optional int32 context_player_slot = 4 [default = -1]; + optional int32 context_value = 5; + optional int32 context_team_id = 6; +} + +message CUserMessageItemPickup { + optional string itemname = 1; +} + +message CUserMessageAmmoDenied { + optional uint32 ammo_id = 1; +} + +message CUserMessageShowMenu { + optional uint32 validslots = 1; + optional uint32 displaytime = 2; + optional bool needmore = 3; + optional string menustring = 4; +} + +message CUserMessageCreditsMsg { + optional .eRollType rolltype = 1 [default = ROLL_NONE]; + optional float logo_length = 2; +} + +message CEntityMessagePlayJingle { + optional .CEntityMsg entity_msg = 1; +} + +message CEntityMessageScreenOverlay { + optional bool start_effect = 1; + optional .CEntityMsg entity_msg = 2; +} + +message CEntityMessageRemoveAllDecals { + optional bool remove_decals = 1; + optional .CEntityMsg entity_msg = 2; +} + +message CEntityMessagePropagateForce { + optional .CMsgVector impulse = 1; + optional .CEntityMsg entity_msg = 2; +} + +message CEntityMessageDoSpark { + optional .CMsgVector origin = 1; + optional int32 entityindex = 2 [default = -1]; + optional float radius = 3; + optional fixed32 color = 4; + optional uint32 beams = 5; + optional float thick = 6; + optional float duration = 7; + optional .CEntityMsg entity_msg = 8; +} + +message CEntityMessageFixAngle { + optional bool relative = 1; + optional .CMsgQAngle angle = 2; + optional .CEntityMsg entity_msg = 3; +} + +message CUserMessageCameraTransition { + message Transition_DataDriven { + optional string filename = 1; + optional int32 attach_ent_index = 2 [default = -1]; + optional float duration = 3; + } + + optional uint32 camera_type = 1; + optional float duration = 2; + optional .CUserMessageCameraTransition.Transition_DataDriven params_data_driven = 3; +} + +message CUserMsg_ParticleManager { + message ReleaseParticleIndex { + } + + message CreateParticle { + optional fixed64 particle_name_index = 1; + optional int32 attach_type = 2; + optional uint32 entity_handle = 3 [default = 16777215]; + optional uint32 entity_handle_for_modifiers = 4 [default = 16777215]; + optional bool apply_voice_ban_rules = 5; + optional int32 team_behavior = 6; + optional string control_point_configuration = 7; + optional bool cluster = 8; + optional float endcap_time = 9; + optional .CMsgVector aggregation_position = 10; + } + + message DestroyParticle { + optional bool destroy_immediately = 1; + } + + message DestroyParticleInvolving { + optional bool destroy_immediately = 1; + optional uint32 entity_handle = 3 [default = 16777215]; + } + + message DestroyParticleNamed { + optional fixed64 particle_name_index = 1; + optional uint32 entity_handle = 2 [default = 16777215]; + optional bool destroy_immediately = 3; + optional bool play_endcap = 4; + } + + message UpdateParticle_OBSOLETE { + optional int32 control_point = 1; + optional .CMsgVector position = 2; + } + + message UpdateParticleFwd_OBSOLETE { + optional int32 control_point = 1; + optional .CMsgVector forward = 2; + } + + message UpdateParticleOrient_OBSOLETE { + optional int32 control_point = 1; + optional .CMsgVector forward = 2; + optional .CMsgVector deprecated_right = 3; + optional .CMsgVector up = 4; + optional .CMsgVector left = 5; + } + + message UpdateParticleTransform { + optional int32 control_point = 1; + optional .CMsgVector position = 2; + optional .CMsgQuaternion orientation = 3; + optional float interpolation_interval = 4; + } + + message UpdateParticleFallback { + optional int32 control_point = 1; + optional .CMsgVector position = 2; + } + + message UpdateParticleOffset { + optional int32 control_point = 1; + optional .CMsgVector origin_offset = 2; + optional .CMsgQAngle angle_offset = 3; + } + + message UpdateParticleEnt { + optional int32 control_point = 1; + optional uint32 entity_handle = 2 [default = 16777215]; + optional int32 attach_type = 3; + optional int32 attachment = 4; + optional .CMsgVector fallback_position = 5; + optional bool include_wearables = 6; + optional .CMsgVector offset_position = 7; + optional .CMsgQAngle offset_angles = 8; + } + + message UpdateParticleSetFrozen { + optional bool set_frozen = 1; + optional float transition_duration = 2; + } + + message UpdateParticleShouldDraw { + optional bool should_draw = 1; + } + + message ChangeControlPointAttachment { + optional int32 attachment_old = 1; + optional int32 attachment_new = 2; + optional uint32 entity_handle = 3 [default = 16777215]; + } + + message UpdateEntityPosition { + optional uint32 entity_handle = 1 [default = 16777215]; + optional .CMsgVector position = 2; + } + + message SetParticleFoWProperties { + optional int32 fow_control_point = 1; + optional int32 fow_control_point2 = 2; + optional float fow_radius = 3; + } + + message SetParticleShouldCheckFoW { + optional bool check_fow = 1; + } + + message SetControlPointModel { + optional int32 control_point = 1; + optional string model_name = 2; + } + + message SetControlPointSnapshot { + optional int32 control_point = 1; + optional string snapshot_name = 2; + } + + message SetParticleText { + optional string text = 1; + } + + message SetTextureAttribute { + optional string attribute_name = 1; + optional string texture_name = 2; + } + + message SetSceneObjectGenericFlag { + optional bool flag_value = 1; + } + + message SetSceneObjectTintAndDesat { + optional fixed32 tint = 1; + optional float desat = 2; + } + + message ParticleSkipToTime { + optional float skip_to_time = 1; + } + + message ParticleCanFreeze { + optional bool can_freeze = 1; + } + + message ParticleFreezeTransitionOverride { + optional float freeze_transition_override = 1; + } + + message FreezeParticleInvolving { + optional bool set_frozen = 1; + optional float transition_duration = 2; + optional uint32 entity_handle = 3 [default = 16777215]; + } + + message AddModellistOverrideElement { + optional string model_name = 1; + optional float spawn_probability = 2; + optional uint32 groupid = 3; + } + + message ClearModellistOverride { + optional uint32 groupid = 1; + } + + message SetParticleNamedValueContext { + message FloatContextValue { + optional uint32 value_name_hash = 1; + optional float value = 2; + } + + message VectorContextValue { + optional uint32 value_name_hash = 1; + optional .CMsgVector value = 2; + } + + message TransformContextValue { + optional uint32 value_name_hash = 1; + optional .CMsgQAngle angles = 2; + optional .CMsgVector translation = 3; + } + + message EHandleContext { + optional uint32 value_name_hash = 1; + optional uint32 ent_index = 2 [default = 16777215]; + } + + repeated .CUserMsg_ParticleManager.SetParticleNamedValueContext.FloatContextValue float_values = 1; + repeated .CUserMsg_ParticleManager.SetParticleNamedValueContext.VectorContextValue vector_values = 2; + repeated .CUserMsg_ParticleManager.SetParticleNamedValueContext.TransformContextValue transform_values = 3; + repeated .CUserMsg_ParticleManager.SetParticleNamedValueContext.EHandleContext ehandle_values = 4; + } + + message CreatePhysicsSim { + optional string prop_group_name = 1; + optional bool use_high_quality_simulation = 2; + optional uint32 max_particle_count = 3; + } + + message DestroyPhysicsSim { + } + + message SetVData { + optional string vdata_name = 1; + } + + message SetMaterialOverride { + optional string material_name = 1; + optional bool include_children = 2; + } + + required .PARTICLE_MESSAGE type = 1 [default = GAME_PARTICLE_MANAGER_EVENT_CREATE]; + required uint32 index = 2; + optional .CUserMsg_ParticleManager.ReleaseParticleIndex release_particle_index = 3; + optional .CUserMsg_ParticleManager.CreateParticle create_particle = 4; + optional .CUserMsg_ParticleManager.DestroyParticle destroy_particle = 5; + optional .CUserMsg_ParticleManager.DestroyParticleInvolving destroy_particle_involving = 6; + optional .CUserMsg_ParticleManager.UpdateParticle_OBSOLETE update_particle = 7; + optional .CUserMsg_ParticleManager.UpdateParticleFwd_OBSOLETE update_particle_fwd = 8; + optional .CUserMsg_ParticleManager.UpdateParticleOrient_OBSOLETE update_particle_orient = 9; + optional .CUserMsg_ParticleManager.UpdateParticleFallback update_particle_fallback = 10; + optional .CUserMsg_ParticleManager.UpdateParticleOffset update_particle_offset = 11; + optional .CUserMsg_ParticleManager.UpdateParticleEnt update_particle_ent = 12; + optional .CUserMsg_ParticleManager.UpdateParticleShouldDraw update_particle_should_draw = 14; + optional .CUserMsg_ParticleManager.UpdateParticleSetFrozen update_particle_set_frozen = 15; + optional .CUserMsg_ParticleManager.ChangeControlPointAttachment change_control_point_attachment = 16; + optional .CUserMsg_ParticleManager.UpdateEntityPosition update_entity_position = 17; + optional .CUserMsg_ParticleManager.SetParticleFoWProperties set_particle_fow_properties = 18; + optional .CUserMsg_ParticleManager.SetParticleText set_particle_text = 19; + optional .CUserMsg_ParticleManager.SetParticleShouldCheckFoW set_particle_should_check_fow = 20; + optional .CUserMsg_ParticleManager.SetControlPointModel set_control_point_model = 21; + optional .CUserMsg_ParticleManager.SetControlPointSnapshot set_control_point_snapshot = 22; + optional .CUserMsg_ParticleManager.SetTextureAttribute set_texture_attribute = 23; + optional .CUserMsg_ParticleManager.SetSceneObjectGenericFlag set_scene_object_generic_flag = 24; + optional .CUserMsg_ParticleManager.SetSceneObjectTintAndDesat set_scene_object_tint_and_desat = 25; + optional .CUserMsg_ParticleManager.DestroyParticleNamed destroy_particle_named = 26; + optional .CUserMsg_ParticleManager.ParticleSkipToTime particle_skip_to_time = 27; + optional .CUserMsg_ParticleManager.ParticleCanFreeze particle_can_freeze = 28; + optional .CUserMsg_ParticleManager.SetParticleNamedValueContext set_named_value_context = 29; + optional .CUserMsg_ParticleManager.UpdateParticleTransform update_particle_transform = 30; + optional .CUserMsg_ParticleManager.ParticleFreezeTransitionOverride particle_freeze_transition_override = 31; + optional .CUserMsg_ParticleManager.FreezeParticleInvolving freeze_particle_involving = 32; + optional .CUserMsg_ParticleManager.AddModellistOverrideElement add_modellist_override_element = 33; + optional .CUserMsg_ParticleManager.ClearModellistOverride clear_modellist_override = 34; + optional .CUserMsg_ParticleManager.CreatePhysicsSim create_physics_sim = 35; + optional .CUserMsg_ParticleManager.DestroyPhysicsSim destroy_physics_sim = 36; + optional .CUserMsg_ParticleManager.SetVData set_vdata = 37; + optional .CUserMsg_ParticleManager.SetMaterialOverride set_material_override = 38; + + extensions 100 to 201; +} + +message CUserMsg_HudError { + optional int32 order_id = 1; +} + +message CUserMsg_CustomGameEvent { + optional string event_name = 1; + optional bytes data = 2; +} + +message CUserMessageHapticsManagerPulse { + optional int32 hand_id = 1; + optional float effect_amplitude = 2; + optional float effect_frequency = 3; + optional float effect_duration = 4; +} + +message CUserMessageHapticsManagerEffect { + optional int32 hand_id = 1; + optional uint32 effect_name_hash_code = 2; + optional float effect_scale = 3; +} + +message CUserMessageAnimStateGraphState { + optional int32 entity_index = 1; + optional bytes data = 2; +} + +message CUserMessageUpdateCssClasses { + optional int32 target_world_panel = 1; + optional string css_classes = 2; + optional bool is_add = 3; +} + +message CUserMessageServerFrameTime { + optional float frame_time = 1; +} + +message CUserMessageLagCompensationError { + optional float distance = 1; +} + +message CUserMessageRequestDllStatus { + optional string dll_action = 1; + optional bool full_report = 2; +} + +message CUserMessageRequestUtilAction { + optional int32 util1 = 2; + optional int32 util2 = 3; + optional int32 util3 = 4; + optional int32 util4 = 5; + optional int32 util5 = 6; +} + +message CUserMessage_UtilMsg_Response { + message ItemDetail { + optional int32 index = 1; + optional int32 hash = 2; + optional int32 crc = 3; + optional string name = 4; + } + + optional fixed32 crc = 1; + optional int32 item_count = 2; + optional fixed32 crc2 = 3; + optional int32 item_count2 = 4; + repeated int32 crc_part = 5; + repeated int32 crc_part2 = 6; + optional int32 client_timestamp = 7; + optional int32 platform = 8; + repeated .CUserMessage_UtilMsg_Response.ItemDetail itemdetails = 9; + optional int32 itemgroup = 10; + optional int32 total_count = 11; + optional int32 total_count2 = 12; +} + +message CUserMessage_DllStatus { + message CVDiagnostic { + optional uint32 id = 1; + optional uint32 extended = 2; + optional uint64 value = 3; + optional string string_value = 4; + } + + message CModule { + optional uint64 base_addr = 1; + optional string name = 2; + optional uint32 size = 3; + optional uint32 timestamp = 4; + } + + optional string file_report = 1; + optional string command_line = 2; + optional uint32 total_files = 3; + optional uint32 process_id = 4; + optional int32 osversion = 5; + optional uint64 client_time = 6; + repeated .CUserMessage_DllStatus.CVDiagnostic diagnostics = 7; + repeated .CUserMessage_DllStatus.CModule modules = 8; +} + +message CUserMessageRequestInventory { + optional int32 inventory = 1; + optional int32 offset = 2; + optional int32 options = 3; +} + +message CUserMessage_Inventory_Response { + message InventoryDetail { + optional int32 index = 1; + optional int64 primary = 2; + optional int64 offset = 3; + optional int64 first = 4; + optional int64 base = 5; + optional string name = 6; + optional string base_name = 7; + optional int32 base_detail = 8; + optional int32 base_time = 9; + optional int32 base_hash = 10; + } + + optional fixed32 crc = 1; + optional int32 item_count = 2; + optional int32 osversion = 5; + optional int32 perf_time = 6; + optional int32 client_timestamp = 7; + optional int32 platform = 8; + repeated .CUserMessage_Inventory_Response.InventoryDetail inventories = 9; + repeated .CUserMessage_Inventory_Response.InventoryDetail inventories2 = 10; + repeated .CUserMessage_Inventory_Response.InventoryDetail inventories3 = 14; + optional int32 inv_type = 11; + optional int32 build_version = 12; + optional int32 instance = 13; + optional int64 start_time = 15; +} + +message CUserMessageRequestDiagnostic { + message Diagnostic { + optional int32 index = 1; + optional int64 offset = 2; + optional int32 param = 3; + optional int32 length = 4; + optional int32 type = 5; + optional int64 base = 6; + optional int64 range = 7; + optional int64 extent = 8; + optional int64 detail = 9; + optional string name = 10; + optional string alias = 11; + optional bytes vardetail = 12; + optional int32 context = 13; + } + + repeated .CUserMessageRequestDiagnostic.Diagnostic diagnostics = 1; +} + +message CUserMessage_Diagnostic_Response { + message Diagnostic { + optional int32 index = 1; + optional int64 offset = 2; + optional int32 param = 3; + optional int32 length = 4; + optional bytes detail = 5; + optional int64 base = 6; + optional int64 range = 7; + optional int32 type = 8; + optional string name = 10; + optional string alias = 11; + optional bytes backup = 12; + optional int32 context = 13; + optional int64 control = 14; + optional int64 augment = 15; + optional int64 placebo = 16; + } + + repeated .CUserMessage_Diagnostic_Response.Diagnostic diagnostics = 1; + optional int32 build_version = 2; + optional int32 instance = 3; + optional int64 start_time = 4; + optional int32 osversion = 5; + optional int32 platform = 6; +} + +message CUserMessage_ExtraUserData { + optional int32 item = 1; + optional int64 value1 = 2; + optional int64 value2 = 3; + repeated bytes detail1 = 4; + repeated bytes detail2 = 5; +} + +message CUserMessage_NotifyResponseFound { + message Criteria { + optional uint32 name_symbol = 1; + optional string value = 2; + } + + optional int32 ent_index = 1 [default = -1]; + optional string rule_name = 2; + optional string response_value = 3; + optional string response_concept = 4; + repeated .CUserMessage_NotifyResponseFound.Criteria criteria = 5; + repeated uint32 int_criteria_names = 6 [packed = true]; + repeated int32 int_criteria_values = 7 [packed = true]; + repeated uint32 float_criteria_names = 8 [packed = true]; + repeated float float_criteria_values = 9; + repeated uint32 symbol_criteria_names = 10 [packed = true]; + repeated uint32 symbol_criteria_values = 11 [packed = true]; + optional int32 speak_result = 12; +} + +message CUserMessage_PlayResponseConditional { + optional int32 ent_index = 1 [default = -1]; + repeated int32 player_slots = 2; + optional string response = 3; + optional .CMsgVector ent_origin = 4; + optional float pre_delay = 5; + optional int32 mix_priority = 6; +} diff --git a/Protobufs/dota2/valveextensions.proto b/Protobufs/dota2/valveextensions.proto new file mode 100644 index 0000000..d391cfa --- /dev/null +++ b/Protobufs/dota2/valveextensions.proto @@ -0,0 +1,17 @@ +import "google/protobuf/descriptor.proto"; + +extend .google.protobuf.FieldOptions { + optional bool valve_map_field = 61000 [default = false]; + optional bool valve_map_key = 61001 [default = false]; + optional int32 diff_encode_field = 61002 [default = 0]; + optional bool delta_ignore = 61003 [default = false]; + optional uint32 steamml_max_entries = 61004 [default = 0]; + optional bool steamml_is_timestamp = 61005 [default = false]; + optional uint32 steamlearn_count = 61006 [default = 0]; +} + +extend .google.protobuf.EnumValueOptions { + optional string schema_friendly_name = 1000; + optional string schema_description = 1001; + optional bool schema_suppress_enumerator = 1002; +} diff --git a/Protobufs/google/protobuf/any.proto b/Protobufs/google/protobuf/any.proto new file mode 100644 index 0000000..6eba1a8 --- /dev/null +++ b/Protobufs/google/protobuf/any.proto @@ -0,0 +1,15 @@ +syntax = "proto3"; + +package google.protobuf; + +option go_package = "google.golang.org/protobuf/types/known/anypb"; +option java_package = "com.google.protobuf"; +option java_outer_classname = "AnyProto"; +option java_multiple_files = true; +option objc_class_prefix = "GPB"; +option csharp_namespace = "Google.Protobuf.WellKnownTypes"; + +message Any { + optional string type_url = 1; + optional bytes value = 2; +} diff --git a/Protobufs/google/protobuf/descriptor.proto b/Protobufs/google/protobuf/descriptor.proto new file mode 100644 index 0000000..31be0de --- /dev/null +++ b/Protobufs/google/protobuf/descriptor.proto @@ -0,0 +1,286 @@ +package google.protobuf; + +option optimize_for = SPEED; +option cc_enable_arenas = true; +option go_package = "google.golang.org/protobuf/types/descriptorpb"; +option java_package = "com.google.protobuf"; +option java_outer_classname = "DescriptorProtos"; +option objc_class_prefix = "GPB"; +option csharp_namespace = "Google.Protobuf.Reflection"; + +message FileDescriptorSet { + repeated .google.protobuf.FileDescriptorProto file = 1; +} + +message FileDescriptorProto { + optional string name = 1; + optional string package = 2; + repeated string dependency = 3; + repeated int32 public_dependency = 10; + repeated int32 weak_dependency = 11; + repeated .google.protobuf.DescriptorProto message_type = 4; + repeated .google.protobuf.EnumDescriptorProto enum_type = 5; + repeated .google.protobuf.ServiceDescriptorProto service = 6; + repeated .google.protobuf.FieldDescriptorProto extension = 7; + optional .google.protobuf.FileOptions options = 8; + optional .google.protobuf.SourceCodeInfo source_code_info = 9; + optional string syntax = 12; +} + +message DescriptorProto { + message ExtensionRange { + optional int32 start = 1; + optional int32 end = 2; + optional .google.protobuf.ExtensionRangeOptions options = 3; + } + + message ReservedRange { + optional int32 start = 1; + optional int32 end = 2; + } + + optional string name = 1; + repeated .google.protobuf.FieldDescriptorProto field = 2; + repeated .google.protobuf.FieldDescriptorProto extension = 6; + repeated .google.protobuf.DescriptorProto nested_type = 3; + repeated .google.protobuf.EnumDescriptorProto enum_type = 4; + repeated .google.protobuf.DescriptorProto.ExtensionRange extension_range = 5; + repeated .google.protobuf.OneofDescriptorProto oneof_decl = 8; + optional .google.protobuf.MessageOptions options = 7; + repeated .google.protobuf.DescriptorProto.ReservedRange reserved_range = 9; + repeated string reserved_name = 10; +} + +message ExtensionRangeOptions { + repeated .google.protobuf.UninterpretedOption uninterpreted_option = 999; + + extensions 1000 to max; +} + +message FieldDescriptorProto { + enum Type { + TYPE_DOUBLE = 1; + TYPE_FLOAT = 2; + TYPE_INT64 = 3; + TYPE_UINT64 = 4; + TYPE_INT32 = 5; + TYPE_FIXED64 = 6; + TYPE_FIXED32 = 7; + TYPE_BOOL = 8; + TYPE_STRING = 9; + TYPE_GROUP = 10; + TYPE_MESSAGE = 11; + TYPE_BYTES = 12; + TYPE_UINT32 = 13; + TYPE_ENUM = 14; + TYPE_SFIXED32 = 15; + TYPE_SFIXED64 = 16; + TYPE_SINT32 = 17; + TYPE_SINT64 = 18; + } + + enum Label { + LABEL_OPTIONAL = 1; + LABEL_REQUIRED = 2; + LABEL_REPEATED = 3; + } + + optional string name = 1; + optional int32 number = 3; + optional .google.protobuf.FieldDescriptorProto.Label label = 4 [default = LABEL_OPTIONAL]; + optional .google.protobuf.FieldDescriptorProto.Type type = 5 [default = TYPE_DOUBLE]; + optional string type_name = 6; + optional string extendee = 2; + optional string default_value = 7; + optional int32 oneof_index = 9; + optional string json_name = 10; + optional .google.protobuf.FieldOptions options = 8; + optional bool proto3_optional = 17; +} + +message OneofDescriptorProto { + optional string name = 1; + optional .google.protobuf.OneofOptions options = 2; +} + +message EnumDescriptorProto { + message EnumReservedRange { + optional int32 start = 1; + optional int32 end = 2; + } + + optional string name = 1; + repeated .google.protobuf.EnumValueDescriptorProto value = 2; + optional .google.protobuf.EnumOptions options = 3; + repeated .google.protobuf.EnumDescriptorProto.EnumReservedRange reserved_range = 4; + repeated string reserved_name = 5; +} + +message EnumValueDescriptorProto { + optional string name = 1; + optional int32 number = 2; + optional .google.protobuf.EnumValueOptions options = 3; +} + +message ServiceDescriptorProto { + optional string name = 1; + repeated .google.protobuf.MethodDescriptorProto method = 2; + optional .google.protobuf.ServiceOptions options = 3; +} + +message MethodDescriptorProto { + optional string name = 1; + optional string input_type = 2; + optional string output_type = 3; + optional .google.protobuf.MethodOptions options = 4; + optional bool client_streaming = 5 [default = false]; + optional bool server_streaming = 6 [default = false]; +} + +message FileOptions { + enum OptimizeMode { + SPEED = 1; + CODE_SIZE = 2; + LITE_RUNTIME = 3; + } + + optional string java_package = 1; + optional string java_outer_classname = 8; + optional bool java_multiple_files = 10 [default = false]; + optional bool java_generate_equals_and_hash = 20 [deprecated = true]; + optional bool java_string_check_utf8 = 27 [default = false]; + optional .google.protobuf.FileOptions.OptimizeMode optimize_for = 9 [default = SPEED]; + optional string go_package = 11; + optional bool cc_generic_services = 16 [default = false]; + optional bool java_generic_services = 17 [default = false]; + optional bool py_generic_services = 18 [default = false]; + optional bool php_generic_services = 42 [default = false]; + optional bool deprecated = 23 [default = false]; + optional bool cc_enable_arenas = 31 [default = true]; + optional string objc_class_prefix = 36; + optional string csharp_namespace = 37; + optional string swift_prefix = 39; + optional string php_class_prefix = 40; + optional string php_namespace = 41; + optional string php_metadata_namespace = 44; + optional string ruby_package = 45; + repeated string additional_includes = 50; + repeated .google.protobuf.UninterpretedOption uninterpreted_option = 999; + + extensions 1000 to max; +} + +message MessageOptions { + optional bool message_set_wire_format = 1 [default = false]; + optional bool no_standard_descriptor_accessor = 2 [default = false]; + optional bool deprecated = 3 [default = false]; + optional bool map_entry = 7; + repeated .google.protobuf.UninterpretedOption uninterpreted_option = 999; + + extensions 1000 to max; +} + +message FieldOptions { + enum CType { + STRING = 0; + CORD = 1; + STRING_PIECE = 2; + } + + enum JSType { + JS_NORMAL = 0; + JS_STRING = 1; + JS_NUMBER = 2; + } + + optional .google.protobuf.FieldOptions.CType ctype = 1 [default = STRING]; + optional bool packed = 2; + optional .google.protobuf.FieldOptions.JSType jstype = 6 [default = JS_NORMAL]; + optional bool lazy = 5 [default = false]; + optional bool deprecated = 3 [default = false]; + optional bool weak = 10 [default = false]; + optional string boxed_type = 20; + repeated .google.protobuf.UninterpretedOption uninterpreted_option = 999; + + extensions 1000 to max; +} + +message OneofOptions { + repeated .google.protobuf.UninterpretedOption uninterpreted_option = 999; + + extensions 1000 to max; +} + +message EnumOptions { + optional bool allow_alias = 2; + optional bool deprecated = 3 [default = false]; + repeated .google.protobuf.UninterpretedOption uninterpreted_option = 999; + + extensions 1000 to max; +} + +message EnumValueOptions { + optional bool deprecated = 1 [default = false]; + repeated .google.protobuf.UninterpretedOption uninterpreted_option = 999; + + extensions 1000 to max; +} + +message ServiceOptions { + optional bool deprecated = 33 [default = false]; + repeated .google.protobuf.UninterpretedOption uninterpreted_option = 999; + + extensions 1000 to max; +} + +message MethodOptions { + enum IdempotencyLevel { + IDEMPOTENCY_UNKNOWN = 0; + NO_SIDE_EFFECTS = 1; + IDEMPOTENT = 2; + } + + optional bool deprecated = 33 [default = false]; + optional .google.protobuf.MethodOptions.IdempotencyLevel idempotency_level = 34 [default = IDEMPOTENCY_UNKNOWN]; + repeated .google.protobuf.UninterpretedOption uninterpreted_option = 999; + + extensions 1000 to max; +} + +message UninterpretedOption { + message NamePart { + required string name_part = 1; + required bool is_extension = 2; + } + + repeated .google.protobuf.UninterpretedOption.NamePart name = 2; + optional string identifier_value = 3; + optional uint64 positive_int_value = 4; + optional int64 negative_int_value = 5; + optional double double_value = 6; + optional bytes string_value = 7; + optional string aggregate_value = 8; +} + +message SourceCodeInfo { + message Location { + repeated int32 path = 1 [packed = true]; + repeated int32 span = 2 [packed = true]; + optional string leading_comments = 3; + optional string trailing_comments = 4; + repeated string leading_detached_comments = 6; + } + + repeated .google.protobuf.SourceCodeInfo.Location location = 1; +} + +message GeneratedCodeInfo { + message Annotation { + repeated int32 path = 1 [packed = true]; + optional string source_file = 2; + optional int32 begin = 3; + optional int32 end = 4; + } + + repeated .google.protobuf.GeneratedCodeInfo.Annotation annotation = 1; +} diff --git a/Protobufs/google/protobuf/source_context.proto b/Protobufs/google/protobuf/source_context.proto new file mode 100644 index 0000000..4860a34 --- /dev/null +++ b/Protobufs/google/protobuf/source_context.proto @@ -0,0 +1,14 @@ +syntax = "proto3"; + +package google.protobuf; + +option go_package = "google.golang.org/protobuf/types/known/sourcecontextpb"; +option java_package = "com.google.protobuf"; +option java_outer_classname = "SourceContextProto"; +option java_multiple_files = true; +option objc_class_prefix = "GPB"; +option csharp_namespace = "Google.Protobuf.WellKnownTypes"; + +message SourceContext { + optional string file_name = 1; +} diff --git a/Protobufs/google/protobuf/type.proto b/Protobufs/google/protobuf/type.proto new file mode 100644 index 0000000..e77f35f --- /dev/null +++ b/Protobufs/google/protobuf/type.proto @@ -0,0 +1,88 @@ +syntax = "proto3"; +import "google/protobuf/any.proto"; +import "google/protobuf/source_context.proto"; + +package google.protobuf; + +option cc_enable_arenas = true; +option go_package = "google.golang.org/protobuf/types/known/typepb"; +option java_package = "com.google.protobuf"; +option java_outer_classname = "TypeProto"; +option java_multiple_files = true; +option objc_class_prefix = "GPB"; +option csharp_namespace = "Google.Protobuf.WellKnownTypes"; + +enum Syntax { + SYNTAX_PROTO2 = 0; + SYNTAX_PROTO3 = 1; +} + +message Type { + optional string name = 1; + repeated .google.protobuf.Field fields = 2; + repeated string oneofs = 3; + repeated .google.protobuf.Option options = 4; + optional .google.protobuf.SourceContext source_context = 5; + optional .google.protobuf.Syntax syntax = 6 [default = SYNTAX_PROTO2]; +} + +message Field { + enum Kind { + TYPE_UNKNOWN = 0; + TYPE_DOUBLE = 1; + TYPE_FLOAT = 2; + TYPE_INT64 = 3; + TYPE_UINT64 = 4; + TYPE_INT32 = 5; + TYPE_FIXED64 = 6; + TYPE_FIXED32 = 7; + TYPE_BOOL = 8; + TYPE_STRING = 9; + TYPE_GROUP = 10; + TYPE_MESSAGE = 11; + TYPE_BYTES = 12; + TYPE_UINT32 = 13; + TYPE_ENUM = 14; + TYPE_SFIXED32 = 15; + TYPE_SFIXED64 = 16; + TYPE_SINT32 = 17; + TYPE_SINT64 = 18; + } + + enum Cardinality { + CARDINALITY_UNKNOWN = 0; + CARDINALITY_OPTIONAL = 1; + CARDINALITY_REQUIRED = 2; + CARDINALITY_REPEATED = 3; + } + + optional .google.protobuf.Field.Kind kind = 1 [default = TYPE_UNKNOWN]; + optional .google.protobuf.Field.Cardinality cardinality = 2 [default = CARDINALITY_UNKNOWN]; + optional int32 number = 3; + optional string name = 4; + optional string type_url = 6; + optional int32 oneof_index = 7; + optional bool packed = 8; + repeated .google.protobuf.Option options = 9; + optional string json_name = 10; + optional string default_value = 11; +} + +message Enum { + optional string name = 1; + repeated .google.protobuf.EnumValue enumvalue = 2; + repeated .google.protobuf.Option options = 3; + optional .google.protobuf.SourceContext source_context = 4; + optional .google.protobuf.Syntax syntax = 5 [default = SYNTAX_PROTO2]; +} + +message EnumValue { + optional string name = 1; + optional int32 number = 2; + repeated .google.protobuf.Option options = 3; +} + +message Option { + optional string name = 1; + optional .google.protobuf.Any value = 2; +} diff --git a/Protobufs/google/protobuf/wrappers.proto b/Protobufs/google/protobuf/wrappers.proto new file mode 100644 index 0000000..6818f36 --- /dev/null +++ b/Protobufs/google/protobuf/wrappers.proto @@ -0,0 +1,47 @@ +syntax = "proto3"; + +package google.protobuf; + +option cc_enable_arenas = true; +option go_package = "google.golang.org/protobuf/types/known/wrapperspb"; +option java_package = "com.google.protobuf"; +option java_outer_classname = "WrappersProto"; +option java_multiple_files = true; +option objc_class_prefix = "GPB"; +option csharp_namespace = "Google.Protobuf.WellKnownTypes"; + +message DoubleValue { + optional double value = 1; +} + +message FloatValue { + optional float value = 1; +} + +message Int64Value { + optional int64 value = 1; +} + +message UInt64Value { + optional uint64 value = 1; +} + +message Int32Value { + optional int32 value = 1; +} + +message UInt32Value { + optional uint32 value = 1; +} + +message BoolValue { + optional bool value = 1; +} + +message StringValue { + optional string value = 1; +} + +message BytesValue { + optional bytes value = 1; +} diff --git a/Protobufs/steam/clientmetrics.proto b/Protobufs/steam/clientmetrics.proto new file mode 100644 index 0000000..f12abcd --- /dev/null +++ b/Protobufs/steam/clientmetrics.proto @@ -0,0 +1,45 @@ +option optimize_for = SPEED; +option cc_generic_services = false; + +message CClientMetrics_ClientBootstrap_RequestInfo { + optional string original_hostname = 1; + optional string actual_hostname = 2; + optional string path = 3; + optional string base_name = 4; + optional bool success = 5; + optional uint32 status_code = 6; + optional string address_of_request_url = 7; + optional uint32 response_time_ms = 8; + optional uint64 bytes_received = 9; + optional uint32 num_retries = 10; +} + +message CClientMetrics_ClientBootstrap_Summary { + optional uint32 launcher_type = 1; + optional uint32 steam_realm = 2; + optional string beta_name = 3; + optional bool download_completed = 4; + optional uint32 total_time_ms = 6; + repeated .CClientMetrics_ClientBootstrap_RequestInfo manifest_requests = 7; + repeated .CClientMetrics_ClientBootstrap_RequestInfo package_requests = 8; +} + +message CClientMetrics_ContentDownloadResponse_Counts { + optional uint32 class_100 = 1; + optional uint32 class_200 = 2; + optional uint32 class_300 = 3; + optional uint32 class_400 = 4; + optional uint32 class_500 = 5; + optional uint32 no_response = 6; + optional uint32 class_unknown = 7; +} + +message CClientMetrics_ContentDownloadResponse_HostCounts { + optional string hostname = 1; + optional uint32 source_type = 2; + optional .CClientMetrics_ContentDownloadResponse_Counts counts = 3; +} + +message CClientMetrics_ContentDownloadResponse_Hosts { + repeated .CClientMetrics_ContentDownloadResponse_HostCounts hosts = 1; +} diff --git a/Protobufs/steam/content_manifest.proto b/Protobufs/steam/content_manifest.proto new file mode 100644 index 0000000..d255e1d --- /dev/null +++ b/Protobufs/steam/content_manifest.proto @@ -0,0 +1,62 @@ +option optimize_for = SPEED; +option cc_generic_services = false; + +enum EContentDeltaChunkDataLocation { + k_EContentDeltaChunkDataLocationInProtobuf = 0; + k_EContentDeltaChunkDataLocationAfterProtobuf = 1; +} + +message ContentManifestPayload { + message FileMapping { + message ChunkData { + optional bytes sha = 1; + optional fixed32 crc = 2; + optional uint64 offset = 3; + optional uint32 cb_original = 4; + optional uint32 cb_compressed = 5; + } + + optional string filename = 1; + optional uint64 size = 2; + optional uint32 flags = 3; + optional bytes sha_filename = 4; + optional bytes sha_content = 5; + repeated .ContentManifestPayload.FileMapping.ChunkData chunks = 6; + optional string linktarget = 7; + } + + repeated .ContentManifestPayload.FileMapping mappings = 1; +} + +message ContentManifestMetadata { + optional uint32 depot_id = 1; + optional uint64 gid_manifest = 2; + optional uint32 creation_time = 3; + optional bool filenames_encrypted = 4; + optional uint64 cb_disk_original = 5; + optional uint64 cb_disk_compressed = 6; + optional uint32 unique_chunks = 7; + optional uint32 crc_encrypted = 8; + optional uint32 crc_clear = 9; +} + +message ContentManifestSignature { + optional bytes signature = 1; +} + +message ContentDeltaChunks { + message DeltaChunk { + optional bytes sha_source = 1; + optional bytes sha_target = 2; + optional uint32 size_original = 3; + optional uint32 patch_method = 4; + optional bytes chunk = 5; + optional uint32 size_delta = 6; + } + + optional uint32 depot_id = 1; + optional uint64 manifest_id_source = 2; + optional uint64 manifest_id_target = 3; + repeated .ContentDeltaChunks.DeltaChunk deltaChunks = 4; + optional .EContentDeltaChunkDataLocation chunk_data_location = 5 [default = k_EContentDeltaChunkDataLocationInProtobuf]; +} diff --git a/Protobufs/steam/contenthubs.proto b/Protobufs/steam/contenthubs.proto new file mode 100644 index 0000000..c3a447f --- /dev/null +++ b/Protobufs/steam/contenthubs.proto @@ -0,0 +1,41 @@ +import "steammessages_base.proto"; + +option optimize_for = SPEED; +option cc_generic_services = true; +option (force_php_generation) = true; + +enum EContentHubDiscountFilterType { + k_EContentHubDiscountFilterType_None = 0; + k_EContentHubDiscountFilterType_DiscountsOnly = 1; + k_EContentHubDiscountFilterType_PrioritizeDiscounts = 2; +} + +message CStorePageFilter { + message SalePageFilter { + optional uint32 sale_tagid = 1; + } + + message ContentHubFilter { + message OptInInfo { + optional string name = 1; + optional uint32 optin_tagid = 2; + optional uint32 prune_tagid = 3; + optional bool optin_only = 4; + } + + optional string hub_type = 1; + optional string hub_category = 2; + optional uint32 hub_tagid = 3; + optional .EContentHubDiscountFilterType discount_filter = 4 [default = k_EContentHubDiscountFilterType_None]; + optional .CStorePageFilter.ContentHubFilter.OptInInfo optin = 5; + } + + message StoreFilter { + optional string filter_json = 1; + optional string cache_key = 2; + } + + optional .CStorePageFilter.SalePageFilter sale_filter = 1; + optional .CStorePageFilter.ContentHubFilter content_hub_filter = 2; + repeated .CStorePageFilter.StoreFilter store_filters = 3; +} diff --git a/Protobufs/steam/encrypted_app_ticket.proto b/Protobufs/steam/encrypted_app_ticket.proto new file mode 100644 index 0000000..0b88bad --- /dev/null +++ b/Protobufs/steam/encrypted_app_ticket.proto @@ -0,0 +1,10 @@ +option optimize_for = SPEED; +option cc_generic_services = false; + +message EncryptedAppTicket { + optional uint32 ticket_version_no = 1; + optional uint32 crc_encryptedticket = 2; + optional uint32 cb_encrypteduserdata = 3; + optional uint32 cb_encrypted_appownershipticket = 4; + optional bytes encrypted_ticket = 5; +} diff --git a/Protobufs/steam/enums.proto b/Protobufs/steam/enums.proto new file mode 100644 index 0000000..2219e8b --- /dev/null +++ b/Protobufs/steam/enums.proto @@ -0,0 +1,577 @@ +import "steammessages_base.proto"; + +option optimize_for = SPEED; +option cc_generic_services = true; +option (force_php_generation) = true; + +enum EPublishedFileQueryType { + k_PublishedFileQueryType_RankedByVote = 0; + k_PublishedFileQueryType_RankedByPublicationDate = 1; + k_PublishedFileQueryType_AcceptedForGameRankedByAcceptanceDate = 2; + k_PublishedFileQueryType_RankedByTrend = 3; + k_PublishedFileQueryType_FavoritedByFriendsRankedByPublicationDate = 4; + k_PublishedFileQueryType_CreatedByFriendsRankedByPublicationDate = 5; + k_PublishedFileQueryType_RankedByNumTimesReported = 6; + k_PublishedFileQueryType_CreatedByFollowedUsersRankedByPublicationDate = 7; + k_PublishedFileQueryType_NotYetRated = 8; + k_PublishedFileQueryType_RankedByTotalUniqueSubscriptions = 9; + k_PublishedFileQueryType_RankedByTotalVotesAsc = 10; + k_PublishedFileQueryType_RankedByVotesUp = 11; + k_PublishedFileQueryType_RankedByTextSearch = 12; + k_PublishedFileQueryType_RankedByPlaytimeTrend = 13; + k_PublishedFileQueryType_RankedByTotalPlaytime = 14; + k_PublishedFileQueryType_RankedByAveragePlaytimeTrend = 15; + k_PublishedFileQueryType_RankedByLifetimeAveragePlaytime = 16; + k_PublishedFileQueryType_RankedByPlaytimeSessionsTrend = 17; + k_PublishedFileQueryType_RankedByLifetimePlaytimeSessions = 18; + k_PublishedFileQueryType_RankedByInappropriateContentRating = 19; + k_PublishedFileQueryType_RankedByBanContentCheck = 20; + k_PublishedFileQueryType_RankedByLastUpdatedDate = 21; +} + +enum EPublishedFileInappropriateProvider { + k_EPublishedFileInappropriateProvider_Invalid = 0; + k_EPublishedFileInappropriateProvider_Google = 1; + k_EPublishedFileInappropriateProvider_Amazon = 2; +} + +enum EPublishedFileInappropriateResult { + k_EPublishedFileInappropriateResult_NotScanned = 0; + k_EPublishedFileInappropriateResult_VeryUnlikely = 1; + k_EPublishedFileInappropriateResult_Unlikely = 30; + k_EPublishedFileInappropriateResult_Possible = 50; + k_EPublishedFileInappropriateResult_Likely = 75; + k_EPublishedFileInappropriateResult_VeryLikely = 100; +} + +enum EPersonaStateFlag { + k_EPersonaStateFlag_HasRichPresence = 1; + k_EPersonaStateFlag_InJoinableGame = 2; + k_EPersonaStateFlag_Golden = 4; + k_EPersonaStateFlag_RemotePlayTogether = 8; + k_EPersonaStateFlag_ClientTypeWeb = 256; + k_EPersonaStateFlag_ClientTypeMobile = 512; + k_EPersonaStateFlag_ClientTypeTenfoot = 1024; + k_EPersonaStateFlag_ClientTypeVR = 2048; + k_EPersonaStateFlag_LaunchTypeGamepad = 4096; + k_EPersonaStateFlag_LaunchTypeCompatTool = 8192; +} + +enum EContentCheckProvider { + k_EContentCheckProvider_Invalid = 0; + k_EContentCheckProvider_Google_DEPRECATED = 1; + k_EContentCheckProvider_Amazon = 2; + k_EContentCheckProvider_Local = 3; + k_EContentCheckProvider_GoogleVertexAI = 4; +} + +enum EProfileCustomizationType { + k_EProfileCustomizationTypeInvalid = 0; + k_EProfileCustomizationTypeRareAchievementShowcase = 1; + k_EProfileCustomizationTypeGameCollector = 2; + k_EProfileCustomizationTypeItemShowcase = 3; + k_EProfileCustomizationTypeTradeShowcase = 4; + k_EProfileCustomizationTypeBadges = 5; + k_EProfileCustomizationTypeFavoriteGame = 6; + k_EProfileCustomizationTypeScreenshotShowcase = 7; + k_EProfileCustomizationTypeCustomText = 8; + k_EProfileCustomizationTypeFavoriteGroup = 9; + k_EProfileCustomizationTypeRecommendation = 10; + k_EProfileCustomizationTypeWorkshopItem = 11; + k_EProfileCustomizationTypeMyWorkshop = 12; + k_EProfileCustomizationTypeArtworkShowcase = 13; + k_EProfileCustomizationTypeVideoShowcase = 14; + k_EProfileCustomizationTypeGuides = 15; + k_EProfileCustomizationTypeMyGuides = 16; + k_EProfileCustomizationTypeAchievements = 17; + k_EProfileCustomizationTypeGreenlight = 18; + k_EProfileCustomizationTypeMyGreenlight = 19; + k_EProfileCustomizationTypeSalien = 20; + k_EProfileCustomizationTypeLoyaltyRewardReactions = 21; + k_EProfileCustomizationTypeSingleArtworkShowcase = 22; + k_EProfileCustomizationTypeAchievementsCompletionist = 23; + k_EProfileCustomizationTypeReplay = 24; +} + +enum EPublishedFileStorageSystem { + k_EPublishedFileStorageSystemInvalid = 0; + k_EPublishedFileStorageSystemLegacyCloud = 1; + k_EPublishedFileStorageSystemDepot = 2; + k_EPublishedFileStorageSystemUGCCloud = 3; +} + +enum ECloudStoragePersistState { + k_ECloudStoragePersistStatePersisted = 0; + k_ECloudStoragePersistStateForgotten = 1; + k_ECloudStoragePersistStateDeleted = 2; +} + +enum ESDCardFormatStage { + k_ESDCardFormatStage_Invalid = 0; + k_ESDCardFormatStage_Starting = 1; + k_ESDCardFormatStage_Testing = 2; + k_ESDCardFormatStage_Rescuing = 3; + k_ESDCardFormatStage_Formatting = 4; + k_ESDCardFormatStage_Finalizing = 5; +} + +enum EStorageFormatStage { + k_EStorageFormatStage_Invalid = 0; + k_EStorageFormatStage_NotRunning = 1; + k_EStorageFormatStage_Starting = 2; + k_EStorageFormatStage_Testing = 3; + k_EStorageFormatStage_Rescuing = 4; + k_EStorageFormatStage_Formatting = 5; + k_EStorageFormatStage_Finalizing = 6; +} + +enum ESystemFanControlMode { + k_SystemFanControlMode_Invalid = 0; + k_SystemFanControlMode_Disabled = 1; + k_SystemFanControlMode_Default = 2; +} + +enum EStartupMovieVariant { + k_EStartupMovieVariant_Invalid = 0; + k_EStartupMovieVariant_Default = 1; + k_EStartupMovieVariant_Orange = 2; +} + +enum EColorGamutLabelSet { + k_ColorGamutLabelSet_Default = 0; + k_ColorGamutLabelSet_sRGB_Native = 1; + k_ColorGamutLabelSet_Native_sRGB_Boosted = 2; +} + +enum EWindowStackingOrder { + k_EWindowStackingOrder_Invalid = 0; + k_EWindowStackingOrder_Top = 1; + k_EWindowStackingOrder_Bottom = 2; +} + +enum EBluetoothDeviceType { + k_BluetoothDeviceType_Invalid = 0; + k_BluetoothDeviceType_Unknown = 1; + k_BluetoothDeviceType_Phone = 2; + k_BluetoothDeviceType_Computer = 3; + k_BluetoothDeviceType_Headset = 4; + k_BluetoothDeviceType_Headphones = 5; + k_BluetoothDeviceType_Speakers = 6; + k_BluetoothDeviceType_OtherAudio = 7; + k_BluetoothDeviceType_Mouse = 8; + k_BluetoothDeviceType_Joystick = 9; + k_BluetoothDeviceType_Gamepad = 10; + k_BluetoothDeviceType_Keyboard = 11; +} + +enum ESystemAudioDirection { + k_SystemAudioDirection_Invalid = 0; + k_SystemAudioDirection_Input = 1; + k_SystemAudioDirection_Output = 2; +} + +enum ESystemAudioChannel { + k_SystemAudioChannel_Invalid = 0; + k_SystemAudioChannel_Aggregated = 1; + k_SystemAudioChannel_FrontLeft = 2; + k_SystemAudioChannel_FrontRight = 3; + k_SystemAudioChannel_LFE = 4; + k_SystemAudioChannel_BackLeft = 5; + k_SystemAudioChannel_BackRight = 6; + k_SystemAudioChannel_FrontCenter = 7; + k_SystemAudioChannel_Unknown = 8; + k_SystemAudioChannel_Mono = 9; +} + +enum ESystemAudioPortType { + k_SystemAudioPortType_Invalid = 0; + k_SystemAudioPortType_Unknown = 1; + k_SystemAudioPortType_Audio32f = 2; + k_SystemAudioPortType_Midi8b = 3; + k_SystemAudioPortType_Video32RGBA = 4; +} + +enum ESystemAudioPortDirection { + k_SystemAudioPortDirection_Invalid = 0; + k_SystemAudioPortDirection_Input = 1; + k_SystemAudioPortDirection_Output = 2; +} + +enum ESystemServiceState { + k_ESystemServiceState_Unavailable = 0; + k_ESystemServiceState_Disabled = 1; + k_ESystemServiceState_Enabled = 2; +} + +enum EGraphicsPerfOverlayLevel { + k_EGraphicsPerfOverlayLevel_Hidden = 0; + k_EGraphicsPerfOverlayLevel_Basic = 1; + k_EGraphicsPerfOverlayLevel_Medium = 2; + k_EGraphicsPerfOverlayLevel_Full = 3; + k_EGraphicsPerfOverlayLevel_Minimal = 4; +} + +enum EGPUPerformanceLevel { + k_EGPUPerformanceLevel_Invalid = 0; + k_EGPUPerformanceLevel_Auto = 1; + k_EGPUPerformanceLevel_Manual = 2; + k_EGPUPerformanceLevel_Low = 3; + k_EGPUPerformanceLevel_High = 4; + k_EGPUPerformanceLevel_Profiling = 5; +} + +enum EScalingFilter { + k_EScalingFilter_Invalid = 0; + k_EScalingFilter_FSR = 1; + k_EScalingFilter_Nearest = 2; + k_EScalingFilter_Integer = 3; + k_EScalingFilter_Linear = 4; + k_EScalingFilter_NIS = 5; +} + +enum ESplitScalingFilter { + k_ESplitScalingFilter_Invalid = 0; + k_ESplitScalingFilter_Linear = 1; + k_ESplitScalingFilter_Nearest = 2; + k_ESplitScalingFilter_FSR = 3; + k_ESplitScalingFilter_NIS = 4; +} + +enum ESplitScalingScaler { + k_ESplitScalingScaler_Invalid = 0; + k_ESplitScalingScaler_Auto = 1; + k_ESplitScalingScaler_Integer = 2; + k_ESplitScalingScaler_Fit = 3; + k_ESplitScalingScaler_Fill = 4; + k_ESplitScalingScaler_Stretch = 5; +} + +enum EGamescopeBlurMode { + k_EGamescopeBlurMode_Disabled = 0; + k_EGamescopeBlurMode_IfOccluded = 1; + k_EGamescopeBlurMode_Always = 2; +} + +enum ESLSHelper { + k_ESLSHelper_Invalid = 0; + k_ESLSHelper_Minidump = 1; + k_ESLSHelper_Kdump = 2; + k_ESLSHelper_Journal = 3; + k_ESLSHelper_Gpu = 4; + k_ESLSHelper_SystemInfo = 5; +} + +enum EHDRVisualization { + k_EHDRVisualization_None = 0; + k_EHDRVisualization_Heatmap = 1; + k_EHDRVisualization_Analysis = 2; + k_EHDRVisualization_HeatmapExtended = 3; + k_EHDRVisualization_HeatmapClassic = 4; +} + +enum EHDRToneMapOperator { + k_EHDRToneMapOperator_Invalid = 0; + k_EHDRToneMapOperator_Uncharted = 1; + k_EHDRToneMapOperator_Reinhard = 2; +} + +enum ECPUGovernor { + k_ECPUGovernor_Invalid = 0; + k_ECPUGovernor_Perf = 1; + k_ECPUGovernor_Powersave = 2; + k_ECPUGovernor_Manual = 3; +} + +enum EUpdaterType { + k_EUpdaterType_Invalid = 0; + k_EUpdaterType_Client = 1; + k_EUpdaterType_OS = 2; + k_EUpdaterType_BIOS = 3; + k_EUpdaterType_Aggregated = 4; + k_EUpdaterType_Test1 = 5; + k_EUpdaterType_Test2 = 6; + k_EUpdaterType_Dummy = 7; +} + +enum EUpdaterState { + k_EUpdaterState_Invalid = 0; + k_EUpdaterState_UpToDate = 2; + k_EUpdaterState_Checking = 3; + k_EUpdaterState_Available = 4; + k_EUpdaterState_Applying = 5; + k_EUpdaterState_ClientRestartPending = 6; + k_EUpdaterState_SystemRestartPending = 7; + k_EUpdaterState_RollBack = 8; +} + +enum EStorageBlockContentType { + k_EStorageBlockContentType_Invalid = 0; + k_EStorageBlockContentType_Unknown = 1; + k_EStorageBlockContentType_FileSystem = 2; + k_EStorageBlockContentType_Crypto = 3; + k_EStorageBlockContentType_Raid = 4; +} + +enum EStorageBlockFileSystemType { + k_EStorageBlockFileSystemType_Invalid = 0; + k_EStorageBlockFileSystemType_Unknown = 1; + k_EStorageBlockFileSystemType_VFat = 2; + k_EStorageBlockFileSystemType_Ext4 = 3; +} + +enum EStorageDriveMediaType { + k_EStorageDriveMediaType_Invalid = 0; + k_EStorageDriveMediaType_Unknown = 1; + k_EStorageDriveMediaType_HDD = 2; + k_EStorageDriveMediaType_SSD = 3; + k_EStorageDriveMediaType_Removable = 4; +} + +enum ESystemDisplayCompatibilityMode { + k_ESystemDisplayCompatibilityMode_Invalid = 0; + k_ESystemDisplayCompatibilityMode_None = 1; + k_ESystemDisplayCompatibilityMode_MinimalBandwith = 2; +} + +enum ESteamDeckCompatibilityCategory { + k_ESteamDeckCompatibilityCategory_Unknown = 0; + k_ESteamDeckCompatibilityCategory_Unsupported = 1; + k_ESteamDeckCompatibilityCategory_Playable = 2; + k_ESteamDeckCompatibilityCategory_Verified = 3; +} + +enum ESteamDeckCompatibilityResultDisplayType { + k_ESteamDeckCompatibilityResultDisplayType_Invisible = 0; + k_ESteamDeckCompatibilityResultDisplayType_Informational = 1; + k_ESteamDeckCompatibilityResultDisplayType_Unsupported = 2; + k_ESteamDeckCompatibilityResultDisplayType_Playable = 3; + k_ESteamDeckCompatibilityResultDisplayType_Verified = 4; +} + +enum ESteamDeckCompatibilityTestResult { + k_ESteamDeckCompatibilityTestResult_Invalid = 0; + k_ESteamDeckCompatibilityTestResult_NotApplicable = 1; + k_ESteamDeckCompatibilityTestResult_Pass = 2; + k_ESteamDeckCompatibilityTestResult_Fail = 3; + k_ESteamDeckCompatibilityTestResult_FailMinor = 4; +} + +enum EACState { + k_EACState_Unknown = 0; + k_EACState_Disconnected = 1; + k_EACState_Connected = 2; + k_EACState_ConnectedSlow = 3; +} + +enum EBatteryState { + k_EBatteryState_Unknown = 0; + k_EBatteryState_Discharging = 1; + k_EBatteryState_Charging = 2; + k_EBatteryState_Full = 3; +} + +enum EOSBranch { + k_EOSBranch_Unknown = 0; + k_EOSBranch_Release = 1; + k_EOSBranch_ReleaseCandidate = 2; + k_EOSBranch_Beta = 3; + k_EOSBranch_BetaCandidate = 4; + k_EOSBranch_Preview = 5; + k_EOSBranch_PreviewCandidate = 6; + k_EOSBranch_Main = 7; + k_EOSBranch_Staging = 8; +} + +enum ECommunityItemClass { + k_ECommunityItemClass_Invalid = 0; + k_ECommunityItemClass_Badge = 1; + k_ECommunityItemClass_GameCard = 2; + k_ECommunityItemClass_ProfileBackground = 3; + k_ECommunityItemClass_Emoticon = 4; + k_ECommunityItemClass_BoosterPack = 5; + k_ECommunityItemClass_Consumable = 6; + k_ECommunityItemClass_GameGoo = 7; + k_ECommunityItemClass_ProfileModifier = 8; + k_ECommunityItemClass_Scene = 9; + k_ECommunityItemClass_SalienItem = 10; + k_ECommunityItemClass_Sticker = 11; + k_ECommunityItemClass_ChatEffect = 12; + k_ECommunityItemClass_MiniProfileBackground = 13; + k_ECommunityItemClass_AvatarFrame = 14; + k_ECommunityItemClass_AnimatedAvatar = 15; + k_ECommunityItemClass_SteamDeckKeyboardSkin = 16; + k_ECommunityItemClass_SteamDeckStartupMovie = 17; +} + +enum ESteamDeckCompatibilityFeedback { + k_ESteamDeckCompatibilityFeedback_Unset = 0; + k_ESteamDeckCompatibilityFeedback_Agree = 1; + k_ESteamDeckCompatibilityFeedback_Disagree = 2; + k_ESteamDeckCompatibilityFeedback_Ignore = 3; +} + +enum EProvideDeckFeedbackPreference { + k_EProvideDeckFeedbackPreference_Unset = 0; + k_EProvideDeckFeedbackPreference_Yes = 1; + k_EProvideDeckFeedbackPreference_No = 2; +} + +enum ETouchGesture { + k_ETouchGestureNone = 0; + k_ETouchGestureTouch = 1; + k_ETouchGestureTap = 2; + k_ETouchGestureDoubleTap = 3; + k_ETouchGestureShortPress = 4; + k_ETouchGestureLongPress = 5; + k_ETouchGestureLongTap = 6; + k_ETouchGestureTwoFingerTap = 7; + k_ETouchGestureTapCancelled = 8; + k_ETouchGesturePinchBegin = 9; + k_ETouchGesturePinchUpdate = 10; + k_ETouchGesturePinchEnd = 11; + k_ETouchGestureFlingStart = 12; + k_ETouchGestureFlingCancelled = 13; +} + +enum ESessionPersistence { + k_ESessionPersistence_Invalid = -1; + k_ESessionPersistence_Ephemeral = 0; + k_ESessionPersistence_Persistent = 1; +} + +enum ENewSteamAnnouncementState { + k_ENewSteamAnnouncementState_Invalid = 0; + k_ENewSteamAnnouncementState_AllRead = 1; + k_ENewSteamAnnouncementState_NewAnnouncement = 2; + k_ENewSteamAnnouncementState_FeaturedAnnouncement = 3; +} + +enum EForumType { + k_EForumType_Invalid = 0; + k_EForumType_General = 1; + k_EForumType_ReportedPosts = 2; + k_EForumType_Workshop = 3; + k_EForumType_PublishedFile = 4; + k_EForumType_Trading = 5; + k_EForumType_PlayTest = 6; + k_EForumType_Event = 7; + k_EForumType_Max = 8; +} + +enum ECommentThreadType { + k_ECommentThreadTypeInvalid = 0; + k_ECommentThreadTypeScreenshot_Deprecated = 1; + k_ECommentThreadTypeWorkshopAccount_Developer = 2; + k_ECommentThreadTypeWorkshopAccount_Public = 3; + k_ECommentThreadTypePublishedFile_Developer = 4; + k_ECommentThreadTypePublishedFile_Public = 5; + k_ECommentThreadTypeTest = 6; + k_ECommentThreadTypeForumTopic = 7; + k_ECommentThreadTypeRecommendation = 8; + k_ECommentThreadTypeVideo_Deprecated = 9; + k_ECommentThreadTypeProfile = 10; + k_ECommentThreadTypeNewsPost = 11; + k_ECommentThreadTypeClan = 12; + k_ECommentThreadTypeClanAnnouncement = 13; + k_ECommentThreadTypeClanEvent = 14; + k_ECommentThreadTypeUserStatusPublished = 15; + k_ECommentThreadTypeUserReceivedNewGame = 16; + k_ECommentThreadTypePublishedFile_Announcement = 17; + k_ECommentThreadTypeModeratorMessage = 18; + k_ECommentThreadTypeClanCuratedApp = 19; + k_ECommentThreadTypeQAndASession = 20; + k_ECommentThreadTypeMax = 21; +} + +enum EBroadcastPermission { + k_EBroadcastPermissionDisabled = 0; + k_EBroadcastPermissionFriendsApprove = 1; + k_EBroadcastPermissionFriendsAllowed = 2; + k_EBroadcastPermissionPublic = 3; + k_EBroadcastPermissionSubscribers = 4; +} + +enum EBroadcastEncoderSetting { + k_EBroadcastEncoderBestQuality = 0; + k_EBroadcastEncoderBestPerformance = 1; +} + +enum ECloudGamingPlatform { + k_ECloudGamingPlatformNone = 0; + k_ECloudGamingPlatformValve = 1; + k_ECloudGamingPlatformNVIDIA = 2; +} + +enum ECompromiseDetectionType { + k_ECompromiseDetectionType_None = 0; + k_ECompromiseDetectionType_TradeEvent = 1; + k_ECompromiseDetectionType_ApiCallRate = 2; + k_ECompromiseDetectionType_Manual = 3; +} + +enum EAsyncGameSessionUserState { + k_EAsyncGameSessionUserStateUnknown = -1; + k_EAsyncGameSessionUserStateWaitingForOthers = 0; + k_EAsyncGameSessionUserStateReadyForAction = 1; + k_EAsyncGameSessionUserStateDone = 2; +} + +enum EAsyncGameSessionUserVisibility { + k_EAsyncGameSessionUserVisibilityEnvelopeAndSessionList = 0; + k_EAsyncGameSessionUserVisibilitySessionListOnly = 1; + k_EAsyncGameSessionUserVisibilityDismissed = 2; +} + +enum EGameRecordingType { + k_EGameRecordingType_Unknown = 0; + k_EGameRecordingType_NotRecording = 1; + k_EGameRecordingType_ManualRecording = 2; + k_EGameRecordingType_BackgroundRecording = 3; + k_EGameRecordingType_Clip = 4; +} + +enum EProtoAppType { + k_EAppTypeInvalid = 0; + k_EAppTypeGame = 1; + k_EAppTypeApplication = 2; + k_EAppTypeTool = 4; + k_EAppTypeDemo = 8; + k_EAppTypeDeprected = 16; + k_EAppTypeDLC = 32; + k_EAppTypeGuide = 64; + k_EAppTypeDriver = 128; + k_EAppTypeConfig = 256; + k_EAppTypeHardware = 512; + k_EAppTypeFranchise = 1024; + k_EAppTypeVideo = 2048; + k_EAppTypePlugin = 4096; + k_EAppTypeMusicAlbum = 8192; + k_EAppTypeSeries = 16384; + k_EAppTypeComic = 32768; + k_EAppTypeBeta = 65536; + k_EAppTypeShortcut = 1073741824; + k_EAppTypeDepotOnly = -2147483648; +} + +enum EWindowsUpdateInstallationImpact { + k_EWindowsUpdateInstallationImpact_Unknown = -1; + k_EWindowsUpdateInstallationImpact_Normal = 0; + k_EWindowsUpdateInstallationImpact_Minor = 1; + k_EWindowsUpdateInstallationImpact_ExclusiveHandling = 2; +} + +enum EWindowsUpdateRebootBehavior { + k_EWindowsUpdateRebootBehavior_Unknown = -1; + k_EWindowsUpdateRebootBehavior_NeverNeedsReboot = 0; + k_EWindowsUpdateRebootBehavior_AlwaysNeedsReboot = 1; + k_EWindowsUpdateRebootBehavior_MightNeedReboot = 2; +} + +enum EExternalSaleEventType { + k_EExternalSaleEventType_Unknown = 0; + k_EExternalSaleEventType_Publisher = 1; + k_EExternalSaleEventType_Showcase = 2; + k_EExternalSaleEventType_Region = 3; + k_EExternalSaleEventType_Theme = 4; + k_EExternalSaleEventType_Franchise = 5; +} diff --git a/Protobufs/steam/enums_clientserver.proto b/Protobufs/steam/enums_clientserver.proto new file mode 100644 index 0000000..e9804b9 --- /dev/null +++ b/Protobufs/steam/enums_clientserver.proto @@ -0,0 +1,1514 @@ +option optimize_for = SPEED; +option cc_generic_services = false; + +enum EMsg { + option allow_alias = true; + k_EMsgInvalid = 0; + k_EMsgMulti = 1; + k_EMsgProtobufWrapped = 2; + k_EMsgBaseGeneral = 100; + k_EMsgGenericReply = 100; + k_EMsgDestJobFailed = 113; + k_EMsgAlert = 115; + k_EMsgSCIDRequest = 120; + k_EMsgSCIDResponse = 121; + k_EMsgJobHeartbeat = 123; + k_EMsgHubConnect = 124; + k_EMsgSubscribe = 126; + k_EMRouteMessage = 127; + k_EMsgWGRequest = 130; + k_EMsgWGResponse = 131; + k_EMsgKeepAlive = 132; + k_EMsgWebAPIJobRequest = 133; + k_EMsgWebAPIJobResponse = 134; + k_EMsgClientSessionStart = 135; + k_EMsgClientSessionEnd = 136; + k_EMsgClientSessionUpdate = 137; + k_EMsgStatsDeprecated = 138; + k_EMsgPing = 139; + k_EMsgPingResponse = 140; + k_EMsgStats = 141; + k_EMsgRequestFullStatsBlock = 142; + k_EMsgLoadDBOCacheItem = 143; + k_EMsgLoadDBOCacheItemResponse = 144; + k_EMsgInvalidateDBOCacheItems = 145; + k_EMsgServiceMethod = 146; + k_EMsgServiceMethodResponse = 147; + k_EMsgClientPackageVersions = 148; + k_EMsgTimestampRequest = 149; + k_EMsgTimestampResponse = 150; + k_EMsgServiceMethodCallFromClient = 151; + k_EMsgServiceMethodSendToClient = 152; + k_EMsgBaseShell = 200; + k_EMsgAssignSysID = 200; + k_EMsgExit = 201; + k_EMsgDirRequest = 202; + k_EMsgDirResponse = 203; + k_EMsgZipRequest = 204; + k_EMsgZipResponse = 205; + k_EMsgUpdateRecordResponse = 215; + k_EMsgUpdateCreditCardRequest = 221; + k_EMsgUpdateUserBanResponse = 225; + k_EMsgPrepareToExit = 226; + k_EMsgContentDescriptionUpdate = 227; + k_EMsgTestResetServer = 228; + k_EMsgUniverseChanged = 229; + k_EMsgShellConfigInfoUpdate = 230; + k_EMsgRequestWindowsEventLogEntries = 233; + k_EMsgProvideWindowsEventLogEntries = 234; + k_EMsgShellSearchLogs = 235; + k_EMsgShellSearchLogsResponse = 236; + k_EMsgShellCheckWindowsUpdates = 237; + k_EMsgShellCheckWindowsUpdatesResponse = 238; + k_EMsgTestFlushDelayedSQL = 240; + k_EMsgTestFlushDelayedSQLResponse = 241; + k_EMsgEnsureExecuteScheduledTask_TEST = 242; + k_EMsgEnsureExecuteScheduledTaskResponse_TEST = 243; + k_EMsgUpdateScheduledTaskEnableState_TEST = 244; + k_EMsgUpdateScheduledTaskEnableStateResponse_TEST = 245; + k_EMsgContentDescriptionDeltaUpdate = 246; + k_EMsgGMShellAndServerAddressUpdates = 247; + k_EMsgBaseGM = 300; + k_EMsgHeartbeat = 300; + k_EMsgShellFailed = 301; + k_EMsgExitShells = 307; + k_EMsgExitShell = 308; + k_EMsgGracefulExitShell = 309; + k_EMsgLicenseProcessingComplete = 316; + k_EMsgSetTestFlag = 317; + k_EMsgQueuedEmailsComplete = 318; + k_EMsgGMDRMSync = 320; + k_EMsgPhysicalBoxInventory = 321; + k_EMsgUpdateConfigFile = 322; + k_EMsgTestInitDB = 323; + k_EMsgGMWriteConfigToSQL = 324; + k_EMsgGMLoadActivationCodes = 325; + k_EMsgGMQueueForFBS = 326; + k_EMsgGMSchemaConversionResults = 327; + k_EMsgGMWriteShellFailureToSQL = 329; + k_EMsgGMWriteStatsToSOS = 330; + k_EMsgGMGetServiceMethodRouting = 331; + k_EMsgGMGetServiceMethodRoutingResponse = 332; + k_EMsgGMTestNextBuildSchemaConversion = 334; + k_EMsgGMTestNextBuildSchemaConversionResponse = 335; + k_EMsgExpectShellRestart = 336; + k_EMsgHotFixProgress = 337; + k_EMsgGMStatsForwardToAdminConnections = 338; + k_EMsgGMGetModifiedConVars = 339; + k_EMsgGMGetModifiedConVarsResponse = 340; + k_EMsgBaseAIS = 400; + k_EMsgAISRequestContentDescription = 402; + k_EMsgAISUpdateAppInfo = 403; + k_EMsgAISGetPackageChangeNumber = 405; + k_EMsgAISGetPackageChangeNumberResponse = 406; + k_EMsgAIGetAppGCFlags = 423; + k_EMsgAIGetAppGCFlagsResponse = 424; + k_EMsgAIGetAppList = 425; + k_EMsgAIGetAppListResponse = 426; + k_EMsgAISGetCouponDefinition = 429; + k_EMsgAISGetCouponDefinitionResponse = 430; + k_EMsgAISUpdateSubordinateContentDescription = 431; + k_EMsgAISUpdateSubordinateContentDescriptionResponse = 432; + k_EMsgAISTestEnableGC = 433; + k_EMsgBaseAM = 500; + k_EMsgAMUpdateUserBanRequest = 504; + k_EMsgAMAddLicense = 505; + k_EMsgAMSendSystemIMToUser = 508; + k_EMsgAMExtendLicense = 509; + k_EMsgAMAddMinutesToLicense = 510; + k_EMsgAMCancelLicense = 511; + k_EMsgAMInitPurchase = 512; + k_EMsgAMPurchaseResponse = 513; + k_EMsgAMGetLegacyGameKey = 516; + k_EMsgAMGetLegacyGameKeyResponse = 517; + k_EMsgAMFindHungTransactions = 518; + k_EMsgAMSetAccountTrustedRequest = 519; + k_EMsgAMCancelPurchase = 522; + k_EMsgAMNewChallenge = 523; + k_EMsgAMFixPendingPurchase = 525; + k_EMsgAMFixPendingPurchaseResponse = 526; + k_EMsgAMIsUserBanned = 527; + k_EMsgAMRegisterKey = 528; + k_EMsgAMLoadActivationCodes = 529; + k_EMsgAMLoadActivationCodesResponse = 530; + k_EMsgAMLookupKeyResponse = 531; + k_EMsgAMLookupKey = 532; + k_EMsgAMChatCleanup = 533; + k_EMsgAMClanCleanup = 534; + k_EMsgAMFixPendingRefund = 535; + k_EMsgAMReverseChargeback = 536; + k_EMsgAMReverseChargebackResponse = 537; + k_EMsgAMClanCleanupList = 538; + k_EMsgAMSendCartRepurchase = 541; + k_EMsgAMSendCartRepurchaseResponse = 542; + k_EMsgAllowUserToPlayQuery = 550; + k_EMsgAllowUserToPlayResponse = 551; + k_EMsgAMVerfiyUser = 552; + k_EMsgAMClientNotPlaying = 553; + k_EMsgAMClientRequestFriendship = 554; + k_EMsgAMRelayPublishStatus = 555; + k_EMsgAMInitPurchaseResponse = 560; + k_EMsgAMRevokePurchaseResponse = 561; + k_EMsgAMRefreshGuestPasses = 563; + k_EMsgAMGrantGuestPasses = 566; + k_EMsgAMClanDataUpdated = 567; + k_EMsgAMReloadAccount = 568; + k_EMsgAMClientChatMsgRelay = 569; + k_EMsgAMChatMulti = 570; + k_EMsgAMClientChatInviteRelay = 571; + k_EMsgAMChatInvite = 572; + k_EMsgAMClientJoinChatRelay = 573; + k_EMsgAMClientChatMemberInfoRelay = 574; + k_EMsgAMPublishChatMemberInfo = 575; + k_EMsgAMClientAcceptFriendInvite = 576; + k_EMsgAMChatEnter = 577; + k_EMsgAMClientPublishRemovalFromSource = 578; + k_EMsgAMChatActionResult = 579; + k_EMsgAMFindAccounts = 580; + k_EMsgAMFindAccountsResponse = 581; + k_EMsgAMIsAccountNameInUse = 582; + k_EMsgAMIsAccountNameInUseResponse = 583; + k_EMsgAMSetAccountFlags = 584; + k_EMsgAMCreateClan = 586; + k_EMsgAMCreateClanResponse = 587; + k_EMsgAMGetClanDetails = 588; + k_EMsgAMGetClanDetailsResponse = 589; + k_EMsgAMSetPersonaName = 590; + k_EMsgAMSetAvatar = 591; + k_EMsgAMAuthenticateUser = 592; + k_EMsgAMAuthenticateUserResponse = 593; + k_EMsgAMP2PIntroducerMessage = 596; + k_EMsgClientChatAction = 597; + k_EMsgAMClientChatActionRelay = 598; + k_EMsgBaseVS = 600; + k_EMsgReqChallenge = 600; + k_EMsgVACResponse = 601; + k_EMsgReqChallengeTest = 602; + k_EMsgVSMarkCheat = 604; + k_EMsgVSAddCheat = 605; + k_EMsgVSPurgeCodeModDB = 606; + k_EMsgVSGetChallengeResults = 607; + k_EMsgVSChallengeResultText = 608; + k_EMsgVSReportLingerer = 609; + k_EMsgVSRequestManagedChallenge = 610; + k_EMsgVSLoadDBFinished = 611; + k_EMsgBaseDRMS = 625; + k_EMsgDRMBuildBlobRequest = 628; + k_EMsgDRMBuildBlobResponse = 629; + k_EMsgDRMResolveGuidRequest = 630; + k_EMsgDRMResolveGuidResponse = 631; + k_EMsgDRMVariabilityReport = 633; + k_EMsgDRMVariabilityReportResponse = 634; + k_EMsgDRMStabilityReport = 635; + k_EMsgDRMStabilityReportResponse = 636; + k_EMsgDRMDetailsReportRequest = 637; + k_EMsgDRMDetailsReportResponse = 638; + k_EMsgDRMProcessFile = 639; + k_EMsgDRMAdminUpdate = 640; + k_EMsgDRMAdminUpdateResponse = 641; + k_EMsgDRMSync = 642; + k_EMsgDRMSyncResponse = 643; + k_EMsgDRMProcessFileResponse = 644; + k_EMsgDRMEmptyGuidCache = 645; + k_EMsgDRMEmptyGuidCacheResponse = 646; + k_EMsgBaseCS = 650; + k_EMsgBaseClient = 700; + k_EMsgClientLogOn_Deprecated = 701; + k_EMsgClientAnonLogOn_Deprecated = 702; + k_EMsgClientHeartBeat = 703; + k_EMsgClientVACResponse = 704; + k_EMsgClientGamesPlayed_obsolete = 705; + k_EMsgClientLogOff = 706; + k_EMsgClientNoUDPConnectivity = 707; + k_EMsgClientConnectionStats = 710; + k_EMsgClientPingResponse = 712; + k_EMsgClientRemoveFriend = 714; + k_EMsgClientGamesPlayedNoDataBlob = 715; + k_EMsgClientChangeStatus = 716; + k_EMsgClientVacStatusResponse = 717; + k_EMsgClientFriendMsg = 718; + k_EMsgClientGameConnect_obsolete = 719; + k_EMsgClientGamesPlayed2_obsolete = 720; + k_EMsgClientGameEnded_obsolete = 721; + k_EMsgClientSystemIM = 726; + k_EMsgClientSystemIMAck = 727; + k_EMsgClientGetLicenses = 728; + k_EMsgClientGetLegacyGameKey = 730; + k_EMsgClientContentServerLogOn_Deprecated = 731; + k_EMsgClientAckVACBan2 = 732; + k_EMsgClientGetPurchaseReceipts = 736; + k_EMsgClientGamesPlayed3_obsolete = 738; + k_EMsgClientAckGuestPass = 740; + k_EMsgClientRedeemGuestPass = 741; + k_EMsgClientGamesPlayed = 742; + k_EMsgClientRegisterKey = 743; + k_EMsgClientInviteUserToClan = 744; + k_EMsgClientAcknowledgeClanInvite = 745; + k_EMsgClientPurchaseWithMachineID = 746; + k_EMsgClientAppUsageEvent = 747; + k_EMsgClientLogOnResponse = 751; + k_EMsgClientSetHeartbeatRate = 755; + k_EMsgClientNotLoggedOnDeprecated = 756; + k_EMsgClientLoggedOff = 757; + k_EMsgGSApprove = 758; + k_EMsgGSDeny = 759; + k_EMsgGSKick = 760; + k_EMsgClientPurchaseResponse = 763; + k_EMsgClientPing = 764; + k_EMsgClientNOP = 765; + k_EMsgClientPersonaState = 766; + k_EMsgClientFriendsList = 767; + k_EMsgClientAccountInfo = 768; + k_EMsgClientNewsUpdate = 771; + k_EMsgClientGameConnectDeny = 773; + k_EMsgGSStatusReply = 774; + k_EMsgClientGameConnectTokens = 779; + k_EMsgClientLicenseList = 780; + k_EMsgClientVACBanStatus = 782; + k_EMsgClientCMList = 783; + k_EMsgClientEncryptPct = 784; + k_EMsgClientGetLegacyGameKeyResponse = 785; + k_EMsgClientAddFriend = 791; + k_EMsgClientAddFriendResponse = 792; + k_EMsgClientAckGuestPassResponse = 796; + k_EMsgClientRedeemGuestPassResponse = 797; + k_EMsgClientUpdateGuestPassesList = 798; + k_EMsgClientChatMsg = 799; + k_EMsgClientChatInvite = 800; + k_EMsgClientJoinChat = 801; + k_EMsgClientChatMemberInfo = 802; + k_EMsgClientLogOnWithCredentials_Deprecated = 803; + k_EMsgClientPasswordChangeResponse = 805; + k_EMsgClientChatEnter = 807; + k_EMsgClientFriendRemovedFromSource = 808; + k_EMsgClientCreateChat = 809; + k_EMsgClientCreateChatResponse = 810; + k_EMsgClientP2PIntroducerMessage = 813; + k_EMsgClientChatActionResult = 814; + k_EMsgClientRequestFriendData = 815; + k_EMsgClientGetUserStats = 818; + k_EMsgClientGetUserStatsResponse = 819; + k_EMsgClientStoreUserStats = 820; + k_EMsgClientStoreUserStatsResponse = 821; + k_EMsgClientClanState = 822; + k_EMsgClientServiceModule = 830; + k_EMsgClientServiceCall = 831; + k_EMsgClientServiceCallResponse = 832; + k_EMsgClientNatTraversalStatEvent = 839; + k_EMsgClientSteamUsageEvent = 842; + k_EMsgClientCheckPassword = 845; + k_EMsgClientResetPassword = 846; + k_EMsgClientCheckPasswordResponse = 848; + k_EMsgClientResetPasswordResponse = 849; + k_EMsgClientSessionToken = 850; + k_EMsgClientDRMProblemReport = 851; + k_EMsgClientSetIgnoreFriend = 855; + k_EMsgClientSetIgnoreFriendResponse = 856; + k_EMsgClientGetAppOwnershipTicket = 857; + k_EMsgClientGetAppOwnershipTicketResponse = 858; + k_EMsgClientGetLobbyListResponse = 860; + k_EMsgClientServerList = 880; + k_EMsgClientDRMBlobRequest = 896; + k_EMsgClientDRMBlobResponse = 897; + k_EMsgBaseGameServer = 900; + k_EMsgGSDisconnectNotice = 901; + k_EMsgGSStatus = 903; + k_EMsgGSUserPlaying = 905; + k_EMsgGSStatus2 = 906; + k_EMsgGSStatusUpdate_Unused = 907; + k_EMsgGSServerType = 908; + k_EMsgGSPlayerList = 909; + k_EMsgGSGetUserAchievementStatus = 910; + k_EMsgGSGetUserAchievementStatusResponse = 911; + k_EMsgGSGetPlayStats = 918; + k_EMsgGSGetPlayStatsResponse = 919; + k_EMsgGSGetUserGroupStatus = 920; + k_EMsgAMGetUserGroupStatus = 921; + k_EMsgAMGetUserGroupStatusResponse = 922; + k_EMsgGSGetUserGroupStatusResponse = 923; + k_EMsgGSGetReputation = 936; + k_EMsgGSGetReputationResponse = 937; + k_EMsgGSAssociateWithClan = 938; + k_EMsgGSAssociateWithClanResponse = 939; + k_EMsgGSComputeNewPlayerCompatibility = 940; + k_EMsgGSComputeNewPlayerCompatibilityResponse = 941; + k_EMsgBaseAdmin = 1000; + k_EMsgAdminCmd = 1000; + k_EMsgAdminCmdResponse = 1004; + k_EMsgAdminLogListenRequest = 1005; + k_EMsgAdminLogEvent = 1006; + k_EMsgUniverseData = 1010; + k_EMsgAdminSpew = 1019; + k_EMsgAdminConsoleTitle = 1020; + k_EMsgAdminGCSpew = 1023; + k_EMsgAdminGCCommand = 1024; + k_EMsgAdminGCGetCommandList = 1025; + k_EMsgAdminGCGetCommandListResponse = 1026; + k_EMsgFBSConnectionData = 1027; + k_EMsgAdminMsgSpew = 1028; + k_EMsgBaseFBS = 1100; + k_EMsgFBSReqVersion = 1100; + k_EMsgFBSVersionInfo = 1101; + k_EMsgFBSForceRefresh = 1102; + k_EMsgFBSForceBounce = 1103; + k_EMsgFBSDeployPackage = 1104; + k_EMsgFBSDeployResponse = 1105; + k_EMsgFBSUpdateBootstrapper = 1106; + k_EMsgFBSSetState = 1107; + k_EMsgFBSApplyOSUpdates = 1108; + k_EMsgFBSRunCMDScript = 1109; + k_EMsgFBSRebootBox = 1110; + k_EMsgFBSSetBigBrotherMode = 1111; + k_EMsgFBSMinidumpServer = 1112; + k_EMsgFBSDeployHotFixPackage = 1114; + k_EMsgFBSDeployHotFixResponse = 1115; + k_EMsgFBSDownloadHotFix = 1116; + k_EMsgFBSDownloadHotFixResponse = 1117; + k_EMsgFBSUpdateTargetConfigFile = 1118; + k_EMsgFBSApplyAccountCred = 1119; + k_EMsgFBSApplyAccountCredResponse = 1120; + k_EMsgFBSSetShellCount = 1121; + k_EMsgFBSTerminateShell = 1122; + k_EMsgFBSQueryGMForRequest = 1123; + k_EMsgFBSQueryGMResponse = 1124; + k_EMsgFBSTerminateZombies = 1125; + k_EMsgFBSInfoFromBootstrapper = 1126; + k_EMsgFBSRebootBoxResponse = 1127; + k_EMsgFBSBootstrapperPackageRequest = 1128; + k_EMsgFBSBootstrapperPackageResponse = 1129; + k_EMsgFBSBootstrapperGetPackageChunk = 1130; + k_EMsgFBSBootstrapperGetPackageChunkResponse = 1131; + k_EMsgFBSBootstrapperPackageTransferProgress = 1132; + k_EMsgFBSRestartBootstrapper = 1133; + k_EMsgFBSPauseFrozenDumps = 1134; + k_EMsgBaseFileXfer = 1200; + k_EMsgFileXferRequest = 1200; + k_EMsgFileXferResponse = 1201; + k_EMsgFileXferData = 1202; + k_EMsgFileXferEnd = 1203; + k_EMsgFileXferDataAck = 1204; + k_EMsgBaseChannelAuth = 1300; + k_EMsgChannelAuthChallenge = 1300; + k_EMsgChannelAuthResponse = 1301; + k_EMsgChannelAuthResult = 1302; + k_EMsgChannelEncryptRequest = 1303; + k_EMsgChannelEncryptResponse = 1304; + k_EMsgChannelEncryptResult = 1305; + k_EMsgBaseBS = 1400; + k_EMsgBSPurchaseStart = 1401; + k_EMsgBSPurchaseResponse = 1402; + k_EMsgBSAuthenticateCCTrans = 1403; + k_EMsgBSAuthenticateCCTransResponse = 1404; + k_EMsgBSSettleComplete = 1406; + k_EMsgBSInitPayPalTxn = 1408; + k_EMsgBSInitPayPalTxnResponse = 1409; + k_EMsgBSGetPayPalUserInfo = 1410; + k_EMsgBSGetPayPalUserInfoResponse = 1411; + k_EMsgBSPaymentInstrBan = 1417; + k_EMsgBSPaymentInstrBanResponse = 1418; + k_EMsgBSInitGCBankXferTxn = 1421; + k_EMsgBSInitGCBankXferTxnResponse = 1422; + k_EMsgBSCommitGCTxn = 1425; + k_EMsgBSQueryTransactionStatus = 1426; + k_EMsgBSQueryTransactionStatusResponse = 1427; + k_EMsgBSQueryTxnExtendedInfo = 1433; + k_EMsgBSQueryTxnExtendedInfoResponse = 1434; + k_EMsgBSUpdateConversionRates = 1435; + k_EMsgBSPurchaseRunFraudChecks = 1437; + k_EMsgBSPurchaseRunFraudChecksResponse = 1438; + k_EMsgBSQueryBankInformation = 1440; + k_EMsgBSQueryBankInformationResponse = 1441; + k_EMsgBSValidateXsollaSignature = 1445; + k_EMsgBSValidateXsollaSignatureResponse = 1446; + k_EMsgBSQiwiWalletInvoice = 1448; + k_EMsgBSQiwiWalletInvoiceResponse = 1449; + k_EMsgBSUpdateInventoryFromProPack = 1450; + k_EMsgBSUpdateInventoryFromProPackResponse = 1451; + k_EMsgBSSendShippingRequest = 1452; + k_EMsgBSSendShippingRequestResponse = 1453; + k_EMsgBSGetProPackOrderStatus = 1454; + k_EMsgBSGetProPackOrderStatusResponse = 1455; + k_EMsgBSCheckJobRunning = 1456; + k_EMsgBSCheckJobRunningResponse = 1457; + k_EMsgBSResetPackagePurchaseRateLimit = 1458; + k_EMsgBSResetPackagePurchaseRateLimitResponse = 1459; + k_EMsgBSUpdatePaymentData = 1460; + k_EMsgBSUpdatePaymentDataResponse = 1461; + k_EMsgBSGetBillingAddress = 1462; + k_EMsgBSGetBillingAddressResponse = 1463; + k_EMsgBSGetCreditCardInfo = 1464; + k_EMsgBSGetCreditCardInfoResponse = 1465; + k_EMsgBSRemoveExpiredPaymentData = 1468; + k_EMsgBSRemoveExpiredPaymentDataResponse = 1469; + k_EMsgBSConvertToCurrentKeys = 1470; + k_EMsgBSConvertToCurrentKeysResponse = 1471; + k_EMsgBSInitPurchase = 1472; + k_EMsgBSInitPurchaseResponse = 1473; + k_EMsgBSCompletePurchase = 1474; + k_EMsgBSCompletePurchaseResponse = 1475; + k_EMsgBSPruneCardUsageStats = 1476; + k_EMsgBSPruneCardUsageStatsResponse = 1477; + k_EMsgBSStoreBankInformation = 1478; + k_EMsgBSStoreBankInformationResponse = 1479; + k_EMsgBSVerifyPOSAKey = 1480; + k_EMsgBSVerifyPOSAKeyResponse = 1481; + k_EMsgBSReverseRedeemPOSAKey = 1482; + k_EMsgBSReverseRedeemPOSAKeyResponse = 1483; + k_EMsgBSQueryFindCreditCard = 1484; + k_EMsgBSQueryFindCreditCardResponse = 1485; + k_EMsgBSStatusInquiryPOSAKey = 1486; + k_EMsgBSStatusInquiryPOSAKeyResponse = 1487; + k_EMsgBSBoaCompraConfirmProductDelivery = 1494; + k_EMsgBSBoaCompraConfirmProductDeliveryResponse = 1495; + k_EMsgBSGenerateBoaCompraMD5 = 1496; + k_EMsgBSGenerateBoaCompraMD5Response = 1497; + k_EMsgBSCommitWPTxn = 1498; + k_EMsgBSCommitAdyenTxn = 1499; + k_EMsgBaseATS = 1500; + k_EMsgATSStartStressTest = 1501; + k_EMsgATSStopStressTest = 1502; + k_EMsgATSRunFailServerTest = 1503; + k_EMsgATSUFSPerfTestTask = 1504; + k_EMsgATSUFSPerfTestResponse = 1505; + k_EMsgATSCycleTCM = 1506; + k_EMsgATSInitDRMSStressTest = 1507; + k_EMsgATSCallTest = 1508; + k_EMsgATSCallTestReply = 1509; + k_EMsgATSStartExternalStress = 1510; + k_EMsgATSExternalStressJobStart = 1511; + k_EMsgATSExternalStressJobQueued = 1512; + k_EMsgATSExternalStressJobRunning = 1513; + k_EMsgATSExternalStressJobStopped = 1514; + k_EMsgATSExternalStressJobStopAll = 1515; + k_EMsgATSExternalStressActionResult = 1516; + k_EMsgATSStarted = 1517; + k_EMsgATSCSPerfTestTask = 1518; + k_EMsgATSCSPerfTestResponse = 1519; + k_EMsgBaseDP = 1600; + k_EMsgDPSetPublishingState = 1601; + k_EMsgDPUniquePlayersStat = 1603; + k_EMsgDPCloudStats = 1612; + k_EMsgDPGetPlayerCount = 1615; + k_EMsgDPGetPlayerCountResponse = 1616; + k_EMsgDPGameServersPlayersStats = 1617; + k_EMsgClientDPCheckSpecialSurvey = 1620; + k_EMsgClientDPCheckSpecialSurveyResponse = 1621; + k_EMsgClientDPSendSpecialSurveyResponse = 1622; + k_EMsgClientDPSendSpecialSurveyResponseReply = 1623; + k_EMsgDPStoreSaleStatistics = 1624; + k_EMsgDPPartnerMicroTxns = 1628; + k_EMsgDPPartnerMicroTxnsResponse = 1629; + k_EMsgDPVRUniquePlayersStat = 1631; + k_EMsgBaseCM = 1700; + k_EMsgCMSetAllowState = 1701; + k_EMsgCMSpewAllowState = 1702; + k_EMsgCMSessionRejected = 1703; + k_EMsgCMSetSecrets = 1704; + k_EMsgCMGetSecrets = 1705; + k_EMsgCMRemotePlayReplyPacket = 1706; + k_EMsgBaseGC = 2200; + k_EMsgGCCmdRevive = 2203; + k_EMsgGCCmdDown = 2206; + k_EMsgGCCmdDeploy = 2207; + k_EMsgGCCmdDeployResponse = 2208; + k_EMsgGCCmdSwitch = 2209; + k_EMsgAMRefreshSessions = 2210; + k_EMsgGCAchievementAwarded = 2212; + k_EMsgGCCmdStatus = 2216; + k_EMsgGCRegisterWebInterfaces_Deprecated = 2217; + k_EMsgGCGetAccountDetails_DEPRECATED = 2218; + k_EMsgGCInterAppMessage = 2219; + k_EMsgGCGetEmailTemplate = 2220; + k_EMsgGCGetEmailTemplateResponse = 2221; + k_EMsgGCHRelay = 2222; + k_EMsgGCHRelayToClient = 2223; + k_EMsgGCHUpdateSession = 2224; + k_EMsgGCHRequestUpdateSession = 2225; + k_EMsgGCHRequestStatus = 2226; + k_EMsgGCHRequestStatusResponse = 2227; + k_EMsgGCHAccountVacStatusChange = 2228; + k_EMsgGCHSpawnGC = 2229; + k_EMsgGCHSpawnGCResponse = 2230; + k_EMsgGCHKillGC = 2231; + k_EMsgGCHKillGCResponse = 2232; + k_EMsgGCHAccountTradeBanStatusChange = 2233; + k_EMsgGCHAccountLockStatusChange = 2234; + k_EMsgGCHVacVerificationChange = 2235; + k_EMsgGCHAccountPhoneNumberChange = 2236; + k_EMsgGCHAccountTwoFactorChange = 2237; + k_EMsgGCHInviteUserToLobby = 2238; + k_EMsgGCHUpdateMultipleSessions = 2239; + k_EMsgGCHMarkAppSessionsAuthoritative = 2240; + k_EMsgGCHRecurringSubscriptionStatusChange = 2241; + k_EMsgGCHAppCheersReceived = 2242; + k_EMsgGCHAppCheersGetAllowedTypes = 2243; + k_EMsgGCHAppCheersGetAllowedTypesResponse = 2244; + k_EMsgGCHRoutingRulesFromGCHtoGM = 2245; + k_EMsgGCHRoutingRulesToGCHfromGM = 2246; + k_EMsgUpdateCMMessageRateRules = 2247; + k_EMsgBaseP2P = 2500; + k_EMsgP2PIntroducerMessage = 2502; + k_EMsgBaseSM = 2900; + k_EMsgSMExpensiveReport = 2902; + k_EMsgSMHourlyReport = 2903; + k_EMsgSMPartitionRenames = 2905; + k_EMsgSMMonitorSpace = 2906; + k_EMsgSMTestNextBuildSchemaConversion = 2907; + k_EMsgSMTestNextBuildSchemaConversionResponse = 2908; + k_EMsgBaseTest = 3000; + k_EMsgFailServer = 3000; + k_EMsgJobHeartbeatTest = 3001; + k_EMsgJobHeartbeatTestResponse = 3002; + k_EMsgBaseFTSRange = 3100; + k_EMsgBaseCCSRange = 3150; + k_EMsgCCSDeleteAllCommentsByAuthor = 3161; + k_EMsgCCSDeleteAllCommentsByAuthorResponse = 3162; + k_EMsgBaseLBSRange = 3200; + k_EMsgLBSSetScore = 3201; + k_EMsgLBSSetScoreResponse = 3202; + k_EMsgLBSFindOrCreateLB = 3203; + k_EMsgLBSFindOrCreateLBResponse = 3204; + k_EMsgLBSGetLBEntries = 3205; + k_EMsgLBSGetLBEntriesResponse = 3206; + k_EMsgLBSGetLBList = 3207; + k_EMsgLBSGetLBListResponse = 3208; + k_EMsgLBSSetLBDetails = 3209; + k_EMsgLBSDeleteLB = 3210; + k_EMsgLBSDeleteLBEntry = 3211; + k_EMsgLBSResetLB = 3212; + k_EMsgLBSResetLBResponse = 3213; + k_EMsgLBSDeleteLBResponse = 3214; + k_EMsgBaseOGS = 3400; + k_EMsgOGSBeginSession = 3401; + k_EMsgOGSBeginSessionResponse = 3402; + k_EMsgOGSEndSession = 3403; + k_EMsgOGSEndSessionResponse = 3404; + k_EMsgOGSWriteAppSessionRow = 3406; + k_EMsgBaseBRP = 3600; + k_EMsgBaseAMRange2 = 4000; + k_EMsgAMCreateChat = 4001; + k_EMsgAMCreateChatResponse = 4002; + k_EMsgAMGetAccountEmailAddress = 4006; + k_EMsgAMGetAccountEmailAddressResponse = 4007; + k_EMsgAMRequestClanData = 4008; + k_EMsgAMRouteToClients = 4009; + k_EMsgAMLeaveClan = 4010; + k_EMsgAMClanPermissions = 4011; + k_EMsgAMClanPermissionsResponse = 4012; + k_EMsgAMCreateClanEventDummyForRateLimiting = 4013; + k_EMsgAMUpdateClanEventDummyForRateLimiting = 4015; + k_EMsgAMSetClanPermissionSettings = 4021; + k_EMsgAMSetClanPermissionSettingsResponse = 4022; + k_EMsgAMGetClanPermissionSettings = 4023; + k_EMsgAMGetClanPermissionSettingsResponse = 4024; + k_EMsgAMPublishChatRoomInfo = 4025; + k_EMsgClientChatRoomInfo = 4026; + k_EMsgAMGetClanHistory = 4039; + k_EMsgAMGetClanHistoryResponse = 4040; + k_EMsgAMGetClanPermissionBits = 4041; + k_EMsgAMGetClanPermissionBitsResponse = 4042; + k_EMsgAMSetClanPermissionBits = 4043; + k_EMsgAMSetClanPermissionBitsResponse = 4044; + k_EMsgAMSessionInfoRequest = 4045; + k_EMsgAMSessionInfoResponse = 4046; + k_EMsgAMValidateWGToken = 4047; + k_EMsgAMGetClanRank = 4050; + k_EMsgAMGetClanRankResponse = 4051; + k_EMsgAMSetClanRank = 4052; + k_EMsgAMSetClanRankResponse = 4053; + k_EMsgAMGetClanPOTW = 4054; + k_EMsgAMGetClanPOTWResponse = 4055; + k_EMsgAMSetClanPOTW = 4056; + k_EMsgAMSetClanPOTWResponse = 4057; + k_EMsgAMDumpUser = 4059; + k_EMsgAMKickUserFromClan = 4060; + k_EMsgAMAddFounderToClan = 4061; + k_EMsgAMValidateWGTokenResponse = 4062; + k_EMsgAMSetAccountDetails = 4064; + k_EMsgAMGetChatBanList = 4065; + k_EMsgAMGetChatBanListResponse = 4066; + k_EMsgAMUnBanFromChat = 4067; + k_EMsgAMSetClanDetails = 4068; + k_EMsgUGSGetUserGameStats = 4073; + k_EMsgUGSGetUserGameStatsResponse = 4074; + k_EMsgAMCheckClanMembership = 4075; + k_EMsgAMGetClanMembers = 4076; + k_EMsgAMGetClanMembersResponse = 4077; + k_EMsgAMNotifyChatOfClanChange = 4079; + k_EMsgAMResubmitPurchase = 4080; + k_EMsgAMAddFriend = 4081; + k_EMsgAMAddFriendResponse = 4082; + k_EMsgAMRemoveFriend = 4083; + k_EMsgAMDumpClan = 4084; + k_EMsgAMChangeClanOwner = 4085; + k_EMsgAMCancelEasyCollect = 4086; + k_EMsgAMCancelEasyCollectResponse = 4087; + k_EMsgAMClansInCommon = 4090; + k_EMsgAMClansInCommonResponse = 4091; + k_EMsgAMIsValidAccountID = 4092; + k_EMsgAMWipeFriendsList = 4095; + k_EMsgAMSetIgnored = 4096; + k_EMsgAMClansInCommonCountResponse = 4097; + k_EMsgAMFriendsList = 4098; + k_EMsgAMFriendsListResponse = 4099; + k_EMsgAMFriendsInCommon = 4100; + k_EMsgAMFriendsInCommonResponse = 4101; + k_EMsgAMFriendsInCommonCountResponse = 4102; + k_EMsgAMClansInCommonCount = 4103; + k_EMsgAMChallengeVerdict = 4104; + k_EMsgAMChallengeNotification = 4105; + k_EMsgAMFindGSByIP = 4106; + k_EMsgAMFoundGSByIP = 4107; + k_EMsgAMGiftRevoked = 4108; + k_EMsgAMUserClanList = 4110; + k_EMsgAMUserClanListResponse = 4111; + k_EMsgAMGetAccountDetails2 = 4112; + k_EMsgAMGetAccountDetailsResponse2 = 4113; + k_EMsgAMSetCommunityProfileSettings = 4114; + k_EMsgAMSetCommunityProfileSettingsResponse = 4115; + k_EMsgAMGetCommunityPrivacyState = 4116; + k_EMsgAMGetCommunityPrivacyStateResponse = 4117; + k_EMsgAMCheckClanInviteRateLimiting = 4118; + k_EMsgUGSGetUserAchievementStatus = 4119; + k_EMsgAMGetIgnored = 4120; + k_EMsgAMGetIgnoredResponse = 4121; + k_EMsgAMSetIgnoredResponse = 4122; + k_EMsgAMSetFriendRelationshipNone = 4123; + k_EMsgAMGetFriendRelationship = 4124; + k_EMsgAMGetFriendRelationshipResponse = 4125; + k_EMsgAMServiceModulesCache = 4126; + k_EMsgAMServiceModulesCall = 4127; + k_EMsgAMServiceModulesCallResponse = 4128; + k_EMsgCommunityAddFriendNews = 4140; + k_EMsgAMFindClanUser = 4143; + k_EMsgAMFindClanUserResponse = 4144; + k_EMsgAMBanFromChat = 4145; + k_EMsgAMGetUserNewsSubscriptions = 4147; + k_EMsgAMGetUserNewsSubscriptionsResponse = 4148; + k_EMsgAMSetUserNewsSubscriptions = 4149; + k_EMsgAMSendQueuedEmails = 4152; + k_EMsgAMSetLicenseFlags = 4153; + k_EMsgAMGetAccountStatus = 4158; + k_EMsgAMGetAccountStatusResponse = 4159; + k_EMsgAMEditBanReason = 4160; + k_EMsgAMCheckClanMembershipResponse = 4161; + k_EMsgAMProbeClanMembershipList = 4162; + k_EMsgAMProbeClanMembershipListResponse = 4163; + k_EMsgUGSGetUserAchievementStatusResponse = 4164; + k_EMsgAMGetFriendsLobbies = 4165; + k_EMsgAMGetFriendsLobbiesResponse = 4166; + k_EMsgAMGetUserFriendNewsResponse = 4172; + k_EMsgCommunityGetUserFriendNews = 4173; + k_EMsgAMGetUserClansNewsResponse = 4174; + k_EMsgAMGetUserClansNews = 4175; + k_EMsgAMGetPreviousCBAccount = 4184; + k_EMsgAMGetPreviousCBAccountResponse = 4185; + k_EMsgAMGetUserLicenseHistory = 4190; + k_EMsgAMGetUserLicenseHistoryResponse = 4191; + k_EMsgAMSupportChangePassword = 4194; + k_EMsgAMSupportChangeEmail = 4195; + k_EMsgAMResetUserVerificationGSByIP = 4197; + k_EMsgAMUpdateGSPlayStats = 4198; + k_EMsgAMSupportEnableOrDisable = 4199; + k_EMsgAMGetPurchaseStatus = 4206; + k_EMsgAMSupportIsAccountEnabled = 4209; + k_EMsgAMSupportIsAccountEnabledResponse = 4210; + k_EMsgUGSGetUserStats = 4211; + k_EMsgAMGSSearch = 4213; + k_EMsgChatServerRouteFriendMsg = 4219; + k_EMsgAMTicketAuthRequestOrResponse = 4220; + k_EMsgAMAddFreeLicense = 4224; + k_EMsgAMValidateEmailLink = 4231; + k_EMsgAMValidateEmailLinkResponse = 4232; + k_EMsgUGSStoreUserStats = 4236; + k_EMsgAMDeleteStoredCard = 4241; + k_EMsgAMRevokeLegacyGameKeys = 4242; + k_EMsgAMGetWalletDetails = 4244; + k_EMsgAMGetWalletDetailsResponse = 4245; + k_EMsgAMDeleteStoredPaymentInfo = 4246; + k_EMsgAMGetStoredPaymentSummary = 4247; + k_EMsgAMGetStoredPaymentSummaryResponse = 4248; + k_EMsgAMGetWalletConversionRate = 4249; + k_EMsgAMGetWalletConversionRateResponse = 4250; + k_EMsgAMConvertWallet = 4251; + k_EMsgAMConvertWalletResponse = 4252; + k_EMsgAMSetPreApproval = 4255; + k_EMsgAMSetPreApprovalResponse = 4256; + k_EMsgAMCreateRefund = 4258; + k_EMsgAMCreateChargeback = 4260; + k_EMsgAMCreateDispute = 4262; + k_EMsgAMClearDispute = 4264; + k_EMsgAMCreateFinancialAdjustment = 4265; + k_EMsgAMPlayerNicknameList = 4266; + k_EMsgAMPlayerNicknameListResponse = 4267; + k_EMsgAMGetUserCurrentGameInfo = 4269; + k_EMsgAMGetUserCurrentGameInfoResponse = 4270; + k_EMsgAMGetGSPlayerList = 4271; + k_EMsgAMGetGSPlayerListResponse = 4272; + k_EMsgAMGetSteamIDForMicroTxn = 4278; + k_EMsgAMGetSteamIDForMicroTxnResponse = 4279; + k_EMsgAMSetPartnerMember = 4280; + k_EMsgAMRemovePublisherUser = 4281; + k_EMsgAMGetUserLicenseList = 4282; + k_EMsgAMGetUserLicenseListResponse = 4283; + k_EMsgAMReloadGameGroupPolicy = 4284; + k_EMsgAMAddFreeLicenseResponse = 4285; + k_EMsgAMVACStatusUpdate = 4286; + k_EMsgAMGetAccountDetails = 4287; + k_EMsgAMGetAccountDetailsResponse = 4288; + k_EMsgAMGetPlayerLinkDetails = 4289; + k_EMsgAMGetPlayerLinkDetailsResponse = 4290; + k_EMsgAMGetAccountFlagsForWGSpoofing = 4294; + k_EMsgAMGetAccountFlagsForWGSpoofingResponse = 4295; + k_EMsgAMGetClanOfficers = 4298; + k_EMsgAMGetClanOfficersResponse = 4299; + k_EMsgAMNameChange = 4300; + k_EMsgAMGetNameHistory = 4301; + k_EMsgAMGetNameHistoryResponse = 4302; + k_EMsgAMSupportRemoveAccountSecurity = 4307; + k_EMsgAMIsAccountInCaptchaGracePeriod = 4308; + k_EMsgAMIsAccountInCaptchaGracePeriodResponse = 4309; + k_EMsgAMAccountPS3Unlink = 4310; + k_EMsgAMAccountPS3UnlinkResponse = 4311; + k_EMsgUGSStoreUserStatsResponse = 4312; + k_EMsgAMGetAccountPSNInfo = 4313; + k_EMsgAMGetAccountPSNInfoResponse = 4314; + k_EMsgAMAuthenticatedPlayerList = 4315; + k_EMsgAMGetUserGifts = 4316; + k_EMsgAMGetUserGiftsResponse = 4317; + k_EMsgAMTransferLockedGifts = 4320; + k_EMsgAMTransferLockedGiftsResponse = 4321; + k_EMsgAMPlayerHostedOnGameServer = 4322; + k_EMsgAMGetAccountBanInfo = 4323; + k_EMsgAMGetAccountBanInfoResponse = 4324; + k_EMsgAMRecordBanEnforcement = 4325; + k_EMsgAMRollbackGiftTransfer = 4326; + k_EMsgAMRollbackGiftTransferResponse = 4327; + k_EMsgAMHandlePendingTransaction = 4328; + k_EMsgAMRequestClanDetails = 4329; + k_EMsgAMDeleteStoredPaypalAgreement = 4330; + k_EMsgAMGameServerUpdate = 4331; + k_EMsgAMGameServerRemove = 4332; + k_EMsgAMGetPaypalAgreements = 4333; + k_EMsgAMGetPaypalAgreementsResponse = 4334; + k_EMsgAMGameServerPlayerCompatibilityCheck = 4335; + k_EMsgAMGameServerPlayerCompatibilityCheckResponse = 4336; + k_EMsgAMRenewLicense = 4337; + k_EMsgAMGetAccountCommunityBanInfo = 4338; + k_EMsgAMGetAccountCommunityBanInfoResponse = 4339; + k_EMsgAMGameServerAccountChangePassword = 4340; + k_EMsgAMGameServerAccountDeleteAccount = 4341; + k_EMsgAMRenewAgreement = 4342; + k_EMsgAMXsollaPayment = 4344; + k_EMsgAMXsollaPaymentResponse = 4345; + k_EMsgAMAcctAllowedToPurchase = 4346; + k_EMsgAMAcctAllowedToPurchaseResponse = 4347; + k_EMsgAMSwapKioskDeposit = 4348; + k_EMsgAMSwapKioskDepositResponse = 4349; + k_EMsgAMSetUserGiftUnowned = 4350; + k_EMsgAMSetUserGiftUnownedResponse = 4351; + k_EMsgAMClaimUnownedUserGift = 4352; + k_EMsgAMClaimUnownedUserGiftResponse = 4353; + k_EMsgAMSetClanName = 4354; + k_EMsgAMSetClanNameResponse = 4355; + k_EMsgAMGrantCoupon = 4356; + k_EMsgAMGrantCouponResponse = 4357; + k_EMsgAMIsPackageRestrictedInUserCountry = 4358; + k_EMsgAMIsPackageRestrictedInUserCountryResponse = 4359; + k_EMsgAMHandlePendingTransactionResponse = 4360; + k_EMsgAMGrantGuestPasses2 = 4361; + k_EMsgAMGrantGuestPasses2Response = 4362; + k_EMsgAMGetPlayerBanDetails = 4365; + k_EMsgAMGetPlayerBanDetailsResponse = 4366; + k_EMsgAMFinalizePurchase = 4367; + k_EMsgAMFinalizePurchaseResponse = 4368; + k_EMsgAMPersonaChangeResponse = 4372; + k_EMsgAMGetClanDetailsForForumCreation = 4373; + k_EMsgAMGetClanDetailsForForumCreationResponse = 4374; + k_EMsgAMGetPendingNotificationCount = 4375; + k_EMsgAMGetPendingNotificationCountResponse = 4376; + k_EMsgAMPasswordHashUpgrade = 4377; + k_EMsgAMBoaCompraPayment = 4380; + k_EMsgAMBoaCompraPaymentResponse = 4381; + k_EMsgAMCompleteExternalPurchase = 4383; + k_EMsgAMCompleteExternalPurchaseResponse = 4384; + k_EMsgAMResolveNegativeWalletCredits = 4385; + k_EMsgAMResolveNegativeWalletCreditsResponse = 4386; + k_EMsgAMPlayerGetClanBasicDetails = 4389; + k_EMsgAMPlayerGetClanBasicDetailsResponse = 4390; + k_EMsgAMMOLPayment = 4391; + k_EMsgAMMOLPaymentResponse = 4392; + k_EMsgGetUserIPCountry = 4393; + k_EMsgGetUserIPCountryResponse = 4394; + k_EMsgNotificationOfSuspiciousActivity = 4395; + k_EMsgAMDegicaPayment = 4396; + k_EMsgAMDegicaPaymentResponse = 4397; + k_EMsgAMEClubPayment = 4398; + k_EMsgAMEClubPaymentResponse = 4399; + k_EMsgAMPayPalPaymentsHubPayment = 4400; + k_EMsgAMPayPalPaymentsHubPaymentResponse = 4401; + k_EMsgAMTwoFactorRecoverAuthenticatorRequest = 4402; + k_EMsgAMTwoFactorRecoverAuthenticatorResponse = 4403; + k_EMsgAMSmart2PayPayment = 4404; + k_EMsgAMSmart2PayPaymentResponse = 4405; + k_EMsgAMValidatePasswordResetCodeAndSendSmsRequest = 4406; + k_EMsgAMValidatePasswordResetCodeAndSendSmsResponse = 4407; + k_EMsgAMGetAccountResetDetailsRequest = 4408; + k_EMsgAMGetAccountResetDetailsResponse = 4409; + k_EMsgAMBitPayPayment = 4410; + k_EMsgAMBitPayPaymentResponse = 4411; + k_EMsgAMSendAccountInfoUpdate = 4412; + k_EMsgAMSendScheduledGift = 4413; + k_EMsgAMNodwinPayment = 4414; + k_EMsgAMNodwinPaymentResponse = 4415; + k_EMsgAMResolveWalletRevoke = 4416; + k_EMsgAMResolveWalletReverseRevoke = 4417; + k_EMsgAMFundedPayment = 4418; + k_EMsgAMFundedPaymentResponse = 4419; + k_EMsgAMRequestPersonaUpdateForChatServer = 4420; + k_EMsgAMPerfectWorldPayment = 4421; + k_EMsgAMPerfectWorldPaymentResponse = 4422; + k_EMsgAMECommPayPayment = 4423; + k_EMsgAMECommPayPaymentResponse = 4424; + k_EMsgAMSetRemoteClientID = 4425; + k_EMsgBasePSRange = 5000; + k_EMsgPSIsValidShoppingCart = 5003; + k_EMsgPSIsValidShoppingCartResponse = 5004; + k_EMsgPSGetShoppingCartContents = 5009; + k_EMsgPSGetShoppingCartContentsResponse = 5010; + k_EMsgPSAddWalletCreditToShoppingCart = 5011; + k_EMsgPSAddWalletCreditToShoppingCartResponse = 5012; + k_EMsgPSGetAccountCartContents = 5013; + k_EMsgPSGetAccountCartContentsResponse = 5014; + k_EMsgBaseUFSRange = 5200; + k_EMsgUFSReloadPartitionInfo = 5215; + k_EMsgUFSSynchronizeFile = 5217; + k_EMsgUFSSynchronizeFileResponse = 5218; + k_EMsgClientUFSGetUGCDetails = 5226; + k_EMsgClientUFSGetUGCDetailsResponse = 5227; + k_EMsgUFSUpdateFileFlags = 5228; + k_EMsgUFSUpdateFileFlagsResponse = 5229; + k_EMsgClientUFSGetSingleFileInfo = 5230; + k_EMsgClientUFSGetSingleFileInfoResponse = 5231; + k_EMsgClientUFSShareFile = 5232; + k_EMsgClientUFSShareFileResponse = 5233; + k_EMsgUFSReloadAccount = 5234; + k_EMsgUFSReloadAccountResponse = 5235; + k_EMsgUFSUpdateRecordBatched = 5236; + k_EMsgUFSUpdateRecordBatchedResponse = 5237; + k_EMsgUFSMigrateFile = 5238; + k_EMsgUFSMigrateFileResponse = 5239; + k_EMsgUFSGetUGCURLs = 5240; + k_EMsgUFSGetUGCURLsResponse = 5241; + k_EMsgUFSHttpUploadFileFinishRequest = 5242; + k_EMsgUFSHttpUploadFileFinishResponse = 5243; + k_EMsgUFSDownloadStartRequest = 5244; + k_EMsgUFSDownloadStartResponse = 5245; + k_EMsgUFSDownloadChunkRequest = 5246; + k_EMsgUFSDownloadChunkResponse = 5247; + k_EMsgUFSDownloadFinishRequest = 5248; + k_EMsgUFSDownloadFinishResponse = 5249; + k_EMsgUFSFlushURLCache = 5250; + k_EMsgUFSMigrateFileAppID = 5253; + k_EMsgUFSMigrateFileAppIDResponse = 5254; + k_EMsgBaseClient2 = 5400; + k_EMsgClientRequestForgottenPasswordEmail = 5401; + k_EMsgClientRequestForgottenPasswordEmailResponse = 5402; + k_EMsgClientCreateAccountResponse = 5403; + k_EMsgClientResetForgottenPassword = 5404; + k_EMsgClientResetForgottenPasswordResponse = 5405; + k_EMsgClientInformOfResetForgottenPassword = 5407; + k_EMsgClientInformOfResetForgottenPasswordResponse = 5408; + k_EMsgClientAnonUserLogOn_Deprecated = 5409; + k_EMsgClientGamesPlayedWithDataBlob = 5410; + k_EMsgClientUpdateUserGameInfo = 5411; + k_EMsgClientFileToDownload = 5412; + k_EMsgClientFileToDownloadResponse = 5413; + k_EMsgClientLBSSetScore = 5414; + k_EMsgClientLBSSetScoreResponse = 5415; + k_EMsgClientLBSFindOrCreateLB = 5416; + k_EMsgClientLBSFindOrCreateLBResponse = 5417; + k_EMsgClientLBSGetLBEntries = 5418; + k_EMsgClientLBSGetLBEntriesResponse = 5419; + k_EMsgClientChatDeclined = 5426; + k_EMsgClientFriendMsgIncoming = 5427; + k_EMsgClientAuthList_Deprecated = 5428; + k_EMsgClientTicketAuthComplete = 5429; + k_EMsgClientIsLimitedAccount = 5430; + k_EMsgClientRequestAuthList = 5431; + k_EMsgClientAuthList = 5432; + k_EMsgClientStat = 5433; + k_EMsgClientP2PConnectionInfo = 5434; + k_EMsgClientP2PConnectionFailInfo = 5435; + k_EMsgClientGetDepotDecryptionKey = 5438; + k_EMsgClientGetDepotDecryptionKeyResponse = 5439; + k_EMsgClientEnableTestLicense = 5443; + k_EMsgClientEnableTestLicenseResponse = 5444; + k_EMsgClientDisableTestLicense = 5445; + k_EMsgClientDisableTestLicenseResponse = 5446; + k_EMsgClientRequestValidationMail = 5448; + k_EMsgClientRequestValidationMailResponse = 5449; + k_EMsgClientCheckAppBetaPassword = 5450; + k_EMsgClientCheckAppBetaPasswordResponse = 5451; + k_EMsgClientToGC = 5452; + k_EMsgClientFromGC = 5453; + k_EMsgClientEmailAddrInfo = 5456; + k_EMsgClientPasswordChange3 = 5457; + k_EMsgClientEmailChange3 = 5458; + k_EMsgClientPersonalQAChange3 = 5459; + k_EMsgClientResetForgottenPassword3 = 5460; + k_EMsgClientRequestForgottenPasswordEmail3 = 5461; + k_EMsgClientNewLoginKey = 5463; + k_EMsgClientNewLoginKeyAccepted_Deprecated = 5464; + k_EMsgClientLogOnWithHash_Deprecated = 5465; + k_EMsgClientStoreUserStats2 = 5466; + k_EMsgClientStatsUpdated = 5467; + k_EMsgClientRequestedClientStats = 5480; + k_EMsgClientStat2Int32 = 5481; + k_EMsgClientStat2 = 5482; + k_EMsgClientVerifyPassword = 5483; + k_EMsgClientVerifyPasswordResponse = 5484; + k_EMsgClientDRMDownloadRequest = 5485; + k_EMsgClientDRMDownloadResponse = 5486; + k_EMsgClientDRMFinalResult = 5487; + k_EMsgClientGetFriendsWhoPlayGame = 5488; + k_EMsgClientGetFriendsWhoPlayGameResponse = 5489; + k_EMsgClientOGSBeginSession = 5490; + k_EMsgClientOGSBeginSessionResponse = 5491; + k_EMsgClientOGSEndSession = 5492; + k_EMsgClientOGSEndSessionResponse = 5493; + k_EMsgClientOGSWriteRow = 5494; + k_EMsgClientGetPeerContentInfo = 5495; + k_EMsgClientGetPeerContentInfoResponse = 5496; + k_EMsgClientStartPeerContentServer = 5497; + k_EMsgClientStartPeerContentServerResponse = 5498; + k_EMsgClientServerUnavailable = 5500; + k_EMsgClientServersAvailable = 5501; + k_EMsgClientRegisterAuthTicketWithCM = 5502; + k_EMsgClientGCMsgFailed = 5503; + k_EMsgClientMicroTxnAuthRequest = 5504; + k_EMsgClientMicroTxnAuthorize = 5505; + k_EMsgClientMicroTxnAuthorizeResponse = 5506; + k_EMsgClientGetMicroTxnInfo = 5508; + k_EMsgClientGetMicroTxnInfoResponse = 5509; + k_EMsgClientDeregisterWithServer = 5511; + k_EMsgClientSubscribeToPersonaFeed = 5512; + k_EMsgClientLogon = 5514; + k_EMsgClientGetClientDetails = 5515; + k_EMsgClientGetClientDetailsResponse = 5516; + k_EMsgClientReportOverlayDetourFailure = 5517; + k_EMsgClientGetClientAppList = 5518; + k_EMsgClientGetClientAppListResponse = 5519; + k_EMsgClientInstallClientApp = 5520; + k_EMsgClientInstallClientAppResponse = 5521; + k_EMsgClientUninstallClientApp = 5522; + k_EMsgClientUninstallClientAppResponse = 5523; + k_EMsgClientSetClientAppUpdateState = 5524; + k_EMsgClientSetClientAppUpdateStateResponse = 5525; + k_EMsgClientRequestEncryptedAppTicket = 5526; + k_EMsgClientRequestEncryptedAppTicketResponse = 5527; + k_EMsgClientWalletInfoUpdate = 5528; + k_EMsgClientLBSSetUGC = 5529; + k_EMsgClientLBSSetUGCResponse = 5530; + k_EMsgClientAMGetClanOfficers = 5531; + k_EMsgClientAMGetClanOfficersResponse = 5532; + k_EMsgClientFriendProfileInfo = 5535; + k_EMsgClientFriendProfileInfoResponse = 5536; + k_EMsgClientUpdateMachineAuth = 5537; + k_EMsgClientUpdateMachineAuthResponse = 5538; + k_EMsgClientReadMachineAuth = 5539; + k_EMsgClientReadMachineAuthResponse = 5540; + k_EMsgClientRequestMachineAuth = 5541; + k_EMsgClientRequestMachineAuthResponse = 5542; + k_EMsgClientScreenshotsChanged = 5543; + k_EMsgClientLaunchClientApp = 5544; + k_EMsgClientLaunchClientAppResponse = 5545; + k_EMsgClientGetCDNAuthToken = 5546; + k_EMsgClientGetCDNAuthTokenResponse = 5547; + k_EMsgClientDownloadRateStatistics = 5548; + k_EMsgClientRequestAccountData = 5549; + k_EMsgClientRequestAccountDataResponse = 5550; + k_EMsgClientResetForgottenPassword4 = 5551; + k_EMsgClientHideFriend = 5552; + k_EMsgClientFriendsGroupsList = 5553; + k_EMsgClientGetClanActivityCounts = 5554; + k_EMsgClientGetClanActivityCountsResponse = 5555; + k_EMsgClientOGSReportString = 5556; + k_EMsgClientOGSReportBug = 5557; + k_EMsgClientSentLogs = 5558; + k_EMsgClientLogonGameServer = 5559; + k_EMsgAMClientCreateFriendsGroup = 5560; + k_EMsgAMClientCreateFriendsGroupResponse = 5561; + k_EMsgAMClientDeleteFriendsGroup = 5562; + k_EMsgAMClientDeleteFriendsGroupResponse = 5563; + k_EMsgAMClientManageFriendsGroup = 5564; + k_EMsgAMClientManageFriendsGroupResponse = 5565; + k_EMsgAMClientAddFriendToGroup = 5566; + k_EMsgAMClientAddFriendToGroupResponse = 5567; + k_EMsgAMClientRemoveFriendFromGroup = 5568; + k_EMsgAMClientRemoveFriendFromGroupResponse = 5569; + k_EMsgClientAMGetPersonaNameHistory = 5570; + k_EMsgClientAMGetPersonaNameHistoryResponse = 5571; + k_EMsgClientRequestFreeLicense = 5572; + k_EMsgClientRequestFreeLicenseResponse = 5573; + k_EMsgClientDRMDownloadRequestWithCrashData = 5574; + k_EMsgClientAuthListAck = 5575; + k_EMsgClientItemAnnouncements = 5576; + k_EMsgClientRequestItemAnnouncements = 5577; + k_EMsgClientFriendMsgEchoToSender = 5578; + k_EMsgClientCommentNotifications = 5582; + k_EMsgClientRequestCommentNotifications = 5583; + k_EMsgClientPersonaChangeResponse = 5584; + k_EMsgClientRequestWebAPIAuthenticateUserNonce_Deprecated = 5585; + k_EMsgClientRequestWebAPIAuthenticateUserNonceResponse_Deprecated = 5586; + k_EMsgClientPlayerNicknameList = 5587; + k_EMsgAMClientSetPlayerNickname = 5588; + k_EMsgAMClientSetPlayerNicknameResponse = 5589; + k_EMsgClientGetNumberOfCurrentPlayersDP = 5592; + k_EMsgClientGetNumberOfCurrentPlayersDPResponse = 5593; + k_EMsgClientServiceMethodLegacy = 5594; + k_EMsgClientServiceMethodLegacyResponse = 5595; + k_EMsgClientFriendUserStatusPublished = 5596; + k_EMsgClientCurrentUIMode = 5597; + k_EMsgClientVanityURLChangedNotification = 5598; + k_EMsgClientUserNotifications = 5599; + k_EMsgBaseDFS = 5600; + k_EMsgDFSGetFile = 5601; + k_EMsgDFSInstallLocalFile = 5602; + k_EMsgDFSConnection = 5603; + k_EMsgDFSConnectionReply = 5604; + k_EMsgClientDFSAuthenticateRequest = 5605; + k_EMsgClientDFSAuthenticateResponse = 5606; + k_EMsgClientDFSEndSession = 5607; + k_EMsgDFSPurgeFile = 5608; + k_EMsgDFSRouteFile = 5609; + k_EMsgDFSGetFileFromServer = 5610; + k_EMsgDFSAcceptedResponse = 5611; + k_EMsgDFSRequestPingback = 5612; + k_EMsgDFSRecvTransmitFile = 5613; + k_EMsgDFSSendTransmitFile = 5614; + k_EMsgDFSRequestPingback2 = 5615; + k_EMsgDFSResponsePingback2 = 5616; + k_EMsgClientDFSDownloadStatus = 5617; + k_EMsgDFSStartTransfer = 5618; + k_EMsgDFSTransferComplete = 5619; + k_EMsgDFSRouteFileResponse = 5620; + k_EMsgClientNetworkingCertRequest = 5621; + k_EMsgClientNetworkingCertRequestResponse = 5622; + k_EMsgClientChallengeRequest = 5623; + k_EMsgClientChallengeResponse = 5624; + k_EMsgBadgeCraftedNotification = 5625; + k_EMsgClientNetworkingMobileCertRequest = 5626; + k_EMsgClientNetworkingMobileCertRequestResponse = 5627; + k_EMsgBaseMDS = 5800; + k_EMsgMDSGetDepotDecryptionKey = 5812; + k_EMsgMDSGetDepotDecryptionKeyResponse = 5813; + k_EMsgMDSContentServerConfigRequest = 5827; + k_EMsgMDSContentServerConfig = 5828; + k_EMsgMDSGetDepotManifest = 5829; + k_EMsgMDSGetDepotManifestResponse = 5830; + k_EMsgMDSGetDepotManifestChunk = 5831; + k_EMsgMDSToCSFlushChunk = 5844; + k_EMsgMDSMigrateChunk = 5847; + k_EMsgMDSMigrateChunkResponse = 5848; + k_EMsgMDSToCSFlushManifest = 5849; + k_EMsgCSBase = 6200; + k_EMsgCSPing = 6201; + k_EMsgCSPingResponse = 6202; + k_EMsgGMSBase = 6400; + k_EMsgGMSGameServerReplicate = 6401; + k_EMsgClientGMSServerQuery = 6403; + k_EMsgGMSClientServerQueryResponse = 6404; + k_EMsgAMGMSGameServerUpdate = 6405; + k_EMsgAMGMSGameServerRemove = 6406; + k_EMsgGameServerOutOfDate = 6407; + k_EMsgDeviceAuthorizationBase = 6500; + k_EMsgClientAuthorizeLocalDeviceRequest = 6501; + k_EMsgClientAuthorizeLocalDeviceResponse = 6502; + k_EMsgClientDeauthorizeDeviceRequest = 6503; + k_EMsgClientDeauthorizeDevice = 6504; + k_EMsgClientUseLocalDeviceAuthorizations = 6505; + k_EMsgClientGetAuthorizedDevices = 6506; + k_EMsgClientGetAuthorizedDevicesResponse = 6507; + k_EMsgAMNotifySessionDeviceAuthorized = 6508; + k_EMsgClientAuthorizeLocalDeviceNotification = 6509; + k_EMsgMMSBase = 6600; + k_EMsgClientMMSCreateLobby = 6601; + k_EMsgClientMMSCreateLobbyResponse = 6602; + k_EMsgClientMMSJoinLobby = 6603; + k_EMsgClientMMSJoinLobbyResponse = 6604; + k_EMsgClientMMSLeaveLobby = 6605; + k_EMsgClientMMSLeaveLobbyResponse = 6606; + k_EMsgClientMMSGetLobbyList = 6607; + k_EMsgClientMMSGetLobbyListResponse = 6608; + k_EMsgClientMMSSetLobbyData = 6609; + k_EMsgClientMMSSetLobbyDataResponse = 6610; + k_EMsgClientMMSGetLobbyData = 6611; + k_EMsgClientMMSLobbyData = 6612; + k_EMsgClientMMSSendLobbyChatMsg = 6613; + k_EMsgClientMMSLobbyChatMsg = 6614; + k_EMsgClientMMSSetLobbyOwner = 6615; + k_EMsgClientMMSSetLobbyOwnerResponse = 6616; + k_EMsgClientMMSSetLobbyGameServer = 6617; + k_EMsgClientMMSLobbyGameServerSet = 6618; + k_EMsgClientMMSUserJoinedLobby = 6619; + k_EMsgClientMMSUserLeftLobby = 6620; + k_EMsgClientMMSInviteToLobby = 6621; + k_EMsgClientMMSFlushFrenemyListCache = 6622; + k_EMsgClientMMSFlushFrenemyListCacheResponse = 6623; + k_EMsgClientMMSSetLobbyLinked = 6624; + k_EMsgClientMMSSetRatelimitPolicyOnClient = 6625; + k_EMsgClientMMSGetLobbyStatus = 6626; + k_EMsgClientMMSGetLobbyStatusResponse = 6627; + k_EMsgMMSGetLobbyList = 6628; + k_EMsgMMSGetLobbyListResponse = 6629; + k_EMsgNonStdMsgBase = 6800; + k_EMsgNonStdMsgMemcached = 6801; + k_EMsgNonStdMsgHTTPServer = 6802; + k_EMsgNonStdMsgHTTPClient = 6803; + k_EMsgNonStdMsgWGResponse = 6804; + k_EMsgNonStdMsgPHPSimulator = 6805; + k_EMsgNonStdMsgChase = 6806; + k_EMsgNonStdMsgDFSTransfer = 6807; + k_EMsgNonStdMsgTests = 6808; + k_EMsgNonStdMsgUMQpipeAAPL = 6809; + k_EMSgNonStdMsgSyslog = 6810; + k_EMsgNonStdMsgLogsink = 6811; + k_EMsgNonStdMsgSteam2Emulator = 6812; + k_EMsgNonStdMsgRTMPServer = 6813; + k_EMsgNonStdMsgWebSocket = 6814; + k_EMsgNonStdMsgRedis = 6815; + k_EMsgUDSBase = 7000; + k_EMsgClientUDSP2PSessionStarted = 7001; + k_EMsgClientUDSP2PSessionEnded = 7002; + k_EMsgUDSRenderUserAuth = 7003; + k_EMsgUDSRenderUserAuthResponse = 7004; + k_EMsgClientInviteToGame = 7005; + k_EMsgUDSHasSession = 7006; + k_EMsgUDSHasSessionResponse = 7007; + k_EMsgMPASBase = 7100; + k_EMsgMPASVacBanReset = 7101; + k_EMsgKGSBase = 7200; + k_EMsgUCMBase = 7300; + k_EMsgClientUCMAddScreenshot = 7301; + k_EMsgClientUCMAddScreenshotResponse = 7302; + k_EMsgUCMResetCommunityContent = 7307; + k_EMsgUCMResetCommunityContentResponse = 7308; + k_EMsgClientUCMDeleteScreenshot = 7309; + k_EMsgClientUCMDeleteScreenshotResponse = 7310; + k_EMsgClientUCMPublishFile = 7311; + k_EMsgClientUCMPublishFileResponse = 7312; + k_EMsgClientUCMDeletePublishedFile = 7315; + k_EMsgClientUCMDeletePublishedFileResponse = 7316; + k_EMsgClientUCMUpdatePublishedFile = 7325; + k_EMsgClientUCMUpdatePublishedFileResponse = 7326; + k_EMsgUCMUpdatePublishedFile = 7327; + k_EMsgUCMUpdatePublishedFileResponse = 7328; + k_EMsgUCMUpdatePublishedFileStat = 7331; + k_EMsgUCMReloadPublishedFile = 7337; + k_EMsgUCMReloadUserFileListCaches = 7338; + k_EMsgUCMPublishedFileReported = 7339; + k_EMsgUCMPublishedFilePreviewAdd = 7341; + k_EMsgUCMPublishedFilePreviewAddResponse = 7342; + k_EMsgUCMPublishedFilePreviewRemove = 7343; + k_EMsgUCMPublishedFilePreviewRemoveResponse = 7344; + k_EMsgUCMPublishedFileSubscribed = 7349; + k_EMsgUCMPublishedFileUnsubscribed = 7350; + k_EMsgUCMPublishFile = 7351; + k_EMsgUCMPublishFileResponse = 7352; + k_EMsgUCMPublishedFileChildAdd = 7353; + k_EMsgUCMPublishedFileChildAddResponse = 7354; + k_EMsgUCMPublishedFileChildRemove = 7355; + k_EMsgUCMPublishedFileChildRemoveResponse = 7356; + k_EMsgUCMPublishedFileParentChanged = 7359; + k_EMsgClientUCMSetUserPublishedFileAction = 7364; + k_EMsgClientUCMSetUserPublishedFileActionResponse = 7365; + k_EMsgClientUCMEnumeratePublishedFilesByUserAction = 7366; + k_EMsgClientUCMEnumeratePublishedFilesByUserActionResponse = 7367; + k_EMsgUCMGetUserSubscribedFiles = 7369; + k_EMsgUCMGetUserSubscribedFilesResponse = 7370; + k_EMsgUCMFixStatsPublishedFile = 7371; + k_EMsgClientUCMEnumerateUserSubscribedFilesWithUpdates = 7378; + k_EMsgClientUCMEnumerateUserSubscribedFilesWithUpdatesResponse = 7379; + k_EMsgUCMPublishedFileContentUpdated = 7380; + k_EMsgClientUCMPublishedFileUpdated = 7381; + k_EMsgFSBase = 7500; + k_EMsgClientRichPresenceUpload = 7501; + k_EMsgClientRichPresenceRequest = 7502; + k_EMsgClientRichPresenceInfo = 7503; + k_EMsgFSRichPresenceRequest = 7504; + k_EMsgFSRichPresenceResponse = 7505; + k_EMsgFSComputeFrenematrix = 7506; + k_EMsgFSComputeFrenematrixResponse = 7507; + k_EMsgFSPlayStatusNotification = 7508; + k_EMsgFSAddOrRemoveFollower = 7510; + k_EMsgFSAddOrRemoveFollowerResponse = 7511; + k_EMsgFSUpdateFollowingList = 7512; + k_EMsgFSCommentNotification = 7513; + k_EMsgFSCommentNotificationViewed = 7514; + k_EMsgClientFSGetFollowerCount = 7515; + k_EMsgClientFSGetFollowerCountResponse = 7516; + k_EMsgClientFSGetIsFollowing = 7517; + k_EMsgClientFSGetIsFollowingResponse = 7518; + k_EMsgClientFSEnumerateFollowingList = 7519; + k_EMsgClientFSEnumerateFollowingListResponse = 7520; + k_EMsgFSGetPendingNotificationCount = 7521; + k_EMsgFSGetPendingNotificationCountResponse = 7522; + k_EMsgClientChatOfflineMessageNotification = 7523; + k_EMsgClientChatRequestOfflineMessageCount = 7524; + k_EMsgClientChatGetFriendMessageHistory = 7525; + k_EMsgClientChatGetFriendMessageHistoryResponse = 7526; + k_EMsgClientChatGetFriendMessageHistoryForOfflineMessages = 7527; + k_EMsgClientFSGetFriendsSteamLevels = 7528; + k_EMsgClientFSGetFriendsSteamLevelsResponse = 7529; + k_EMsgAMRequestFriendData = 7530; + k_EMsgDRMRange2 = 7600; + k_EMsgCEGVersionSetEnableDisableRequest = 7600; + k_EMsgCEGVersionSetEnableDisableResponse = 7601; + k_EMsgCEGPropStatusDRMSRequest = 7602; + k_EMsgCEGPropStatusDRMSResponse = 7603; + k_EMsgCEGWhackFailureReportRequest = 7604; + k_EMsgCEGWhackFailureReportResponse = 7605; + k_EMsgDRMSFetchVersionSet = 7606; + k_EMsgDRMSFetchVersionSetResponse = 7607; + k_EMsgEconBase = 7700; + k_EMsgEconTrading_InitiateTradeRequest = 7701; + k_EMsgEconTrading_InitiateTradeProposed = 7702; + k_EMsgEconTrading_InitiateTradeResponse = 7703; + k_EMsgEconTrading_InitiateTradeResult = 7704; + k_EMsgEconTrading_StartSession = 7705; + k_EMsgEconTrading_CancelTradeRequest = 7706; + k_EMsgEconFlushInventoryCache = 7707; + k_EMsgEconFlushInventoryCacheResponse = 7708; + k_EMsgEconCDKeyProcessTransaction = 7711; + k_EMsgEconCDKeyProcessTransactionResponse = 7712; + k_EMsgEconGetErrorLogs = 7713; + k_EMsgEconGetErrorLogsResponse = 7714; + k_EMsgRMRange = 7800; + k_EMsgRMTestVerisignOTP = 7800; + k_EMsgRMTestVerisignOTPResponse = 7801; + k_EMsgRMDeleteMemcachedKeys = 7803; + k_EMsgRMRemoteInvoke = 7804; + k_EMsgBadLoginIPList = 7805; + k_EMsgRMMsgTraceAddTrigger = 7806; + k_EMsgRMMsgTraceRemoveTrigger = 7807; + k_EMsgRMMsgTraceEvent = 7808; + k_EMsgUGSBase = 7900; + k_EMsgUGSUpdateGlobalStats = 7900; + k_EMsgClientUGSGetGlobalStats = 7901; + k_EMsgClientUGSGetGlobalStatsResponse = 7902; + k_EMsgStoreBase = 8000; + k_EMsgUMQBase = 8100; + k_EMsgWorkshopBase = 8200; + k_EMsgWebAPIBase = 8300; + k_EMsgWebAPIValidateOAuth2Token = 8300; + k_EMsgWebAPIValidateOAuth2TokenResponse = 8301; + k_EMsgWebAPIRegisterGCInterfaces = 8303; + k_EMsgWebAPIInvalidateOAuthClientCache = 8304; + k_EMsgWebAPIInvalidateOAuthTokenCache = 8305; + k_EMsgWebAPISetSecrets = 8306; + k_EMsgBackpackBase = 8400; + k_EMsgBackpackAddToCurrency = 8401; + k_EMsgBackpackAddToCurrencyResponse = 8402; + k_EMsgCREBase = 8500; + k_EMsgCREItemVoteSummary = 8503; + k_EMsgCREItemVoteSummaryResponse = 8504; + k_EMsgCREUpdateUserPublishedItemVote = 8507; + k_EMsgCREUpdateUserPublishedItemVoteResponse = 8508; + k_EMsgCREGetUserPublishedItemVoteDetails = 8509; + k_EMsgCREGetUserPublishedItemVoteDetailsResponse = 8510; + k_EMsgSecretsBase = 8600; + k_EMsgSecretsRequestCredentialPair = 8600; + k_EMsgSecretsCredentialPairResponse = 8601; + k_EMsgBoxMonitorBase = 8700; + k_EMsgBoxMonitorReportRequest = 8700; + k_EMsgBoxMonitorReportResponse = 8701; + k_EMsgLogsinkBase = 8800; + k_EMsgLogsinkWriteReport = 8800; + k_EMsgPICSBase = 8900; + k_EMsgClientPICSChangesSinceRequest = 8901; + k_EMsgClientPICSChangesSinceResponse = 8902; + k_EMsgClientPICSProductInfoRequest = 8903; + k_EMsgClientPICSProductInfoResponse = 8904; + k_EMsgClientPICSAccessTokenRequest = 8905; + k_EMsgClientPICSAccessTokenResponse = 8906; + k_EMsgClientPICSPrivateBetaRequest = 8907; + k_EMsgClientPICSPrivateBetaResponse = 8908; + k_EMsgWorkerProcess = 9000; + k_EMsgWorkerProcessPingRequest = 9000; + k_EMsgWorkerProcessPingResponse = 9001; + k_EMsgWorkerProcessShutdown = 9002; + k_EMsgDRMWorkerProcess = 9100; + k_EMsgDRMWorkerProcessDRMAndSign = 9100; + k_EMsgDRMWorkerProcessDRMAndSignResponse = 9101; + k_EMsgDRMWorkerProcessSteamworksInfoRequest = 9102; + k_EMsgDRMWorkerProcessSteamworksInfoResponse = 9103; + k_EMsgDRMWorkerProcessInstallDRMDLLRequest = 9104; + k_EMsgDRMWorkerProcessInstallDRMDLLResponse = 9105; + k_EMsgDRMWorkerProcessSecretIdStringRequest = 9106; + k_EMsgDRMWorkerProcessSecretIdStringResponse = 9107; + k_EMsgDRMWorkerProcessInstallProcessedFilesRequest = 9110; + k_EMsgDRMWorkerProcessInstallProcessedFilesResponse = 9111; + k_EMsgDRMWorkerProcessExamineBlobRequest = 9112; + k_EMsgDRMWorkerProcessExamineBlobResponse = 9113; + k_EMsgDRMWorkerProcessDescribeSecretRequest = 9114; + k_EMsgDRMWorkerProcessDescribeSecretResponse = 9115; + k_EMsgDRMWorkerProcessBackfillOriginalRequest = 9116; + k_EMsgDRMWorkerProcessBackfillOriginalResponse = 9117; + k_EMsgDRMWorkerProcessValidateDRMDLLRequest = 9118; + k_EMsgDRMWorkerProcessValidateDRMDLLResponse = 9119; + k_EMsgDRMWorkerProcessValidateFileRequest = 9120; + k_EMsgDRMWorkerProcessValidateFileResponse = 9121; + k_EMsgDRMWorkerProcessSplitAndInstallRequest = 9122; + k_EMsgDRMWorkerProcessSplitAndInstallResponse = 9123; + k_EMsgDRMWorkerProcessGetBlobRequest = 9124; + k_EMsgDRMWorkerProcessGetBlobResponse = 9125; + k_EMsgDRMWorkerProcessEvaluateCrashRequest = 9126; + k_EMsgDRMWorkerProcessEvaluateCrashResponse = 9127; + k_EMsgDRMWorkerProcessAnalyzeFileRequest = 9128; + k_EMsgDRMWorkerProcessAnalyzeFileResponse = 9129; + k_EMsgDRMWorkerProcessUnpackBlobRequest = 9130; + k_EMsgDRMWorkerProcessUnpackBlobResponse = 9131; + k_EMsgDRMWorkerProcessInstallAllRequest = 9132; + k_EMsgDRMWorkerProcessInstallAllResponse = 9133; + k_EMsgTestWorkerProcess = 9200; + k_EMsgTestWorkerProcessLoadUnloadModuleRequest = 9200; + k_EMsgTestWorkerProcessLoadUnloadModuleResponse = 9201; + k_EMsgTestWorkerProcessServiceModuleCallRequest = 9202; + k_EMsgTestWorkerProcessServiceModuleCallResponse = 9203; + k_EMsgQuestServerBase = 9300; + k_EMsgClientGetEmoticonList = 9330; + k_EMsgClientEmoticonList = 9331; + k_EMsgSLCBase = 9400; + k_EMsgSLCUserSessionStatus = 9400; + k_EMsgSLCRequestUserSessionStatus = 9401; + k_EMsgSLCSharedLicensesLockStatus = 9402; + k_EMsgClientSharedLibraryLockStatus = 9405; + k_EMsgClientSharedLibraryStopPlaying = 9406; + k_EMsgSLCSharedLibraryChanged = 9408; + k_EMsgRemoteClientBase = 9500; + k_EMsgRemoteClientAuth_OBSOLETE = 9500; + k_EMsgRemoteClientAuthResponse_OBSOLETE = 9501; + k_EMsgRemoteClientAppStatus = 9502; + k_EMsgRemoteClientStartStream = 9503; + k_EMsgRemoteClientStartStreamResponse = 9504; + k_EMsgRemoteClientPing = 9505; + k_EMsgRemoteClientPingResponse = 9506; + k_EMsgClientUnlockH264 = 9507; + k_EMsgClientUnlockH264Response = 9508; + k_EMsgRemoteClientAcceptEULA = 9509; + k_EMsgRemoteClientGetControllerConfig = 9510; + k_EMsgRemoteClientGetControllerConfigResponse = 9511; + k_EMsgRemoteClientStreamingEnabled = 9512; + k_EMsgClientUnlockHEVC_OBSOLETE = 9513; + k_EMsgClientUnlockHEVCResponse_OBSOLETE = 9514; + k_EMsgRemoteClientStatusRequest = 9515; + k_EMsgRemoteClientStatusResponse = 9516; + k_EMsgRemoteClientAuthorizationRequest = 9517; + k_EMsgRemoteClientAuthorizationResponse = 9518; + k_EMsgRemoteClientAuthorizationCancelRequest = 9519; + k_EMsgRemoteClientAuthorizationConfirmed = 9520; + k_EMsgRemoteClientProofRequest = 9521; + k_EMsgRemoteClientProofResponse = 9522; + k_EMsgClientConcurrentSessionsBase = 9600; + k_EMsgClientPlayingSessionState = 9600; + k_EMsgClientKickPlayingSession = 9601; + k_EMsgClientBroadcastBase = 9700; + k_EMsgClientBroadcastInit = 9700; + k_EMsgClientBroadcastFrames = 9701; + k_EMsgClientBroadcastDisconnect = 9702; + k_EMsgClientBroadcastUploadConfig = 9704; + k_EMsgBaseClient3 = 9800; + k_EMsgClientVoiceCallPreAuthorize = 9800; + k_EMsgClientVoiceCallPreAuthorizeResponse = 9801; + k_EMsgClientServerTimestampRequest = 9802; + k_EMsgClientServerTimestampResponse = 9803; + k_EMsgServiceMethodCallFromClientNonAuthed = 9804; + k_EMsgClientHello = 9805; + k_EMsgClientEnableOrDisableDownloads = 9806; + k_EMsgClientEnableOrDisableDownloadsResponse = 9807; + k_EMsgClientFeatureGroupInfo = 9808; + k_EMsgClientLANP2PBase = 9900; + k_EMsgClientLANP2PRequestChunk = 9900; + k_EMsgClientLANP2PRequestChunkResponse = 9901; + k_EMsgClientPeerChunkRequest = 9902; + k_EMsgClientPeerChunkResponse = 9903; + k_EMsgClientLANP2PMax = 9999; + k_EMsgBaseWatchdogServer = 10000; + k_EMsgNotifyWatchdog = 10000; + k_EMsgClientSiteLicenseBase = 10100; + k_EMsgClientSiteLicenseSiteInfoNotification = 10100; + k_EMsgClientSiteLicenseCheckout = 10101; + k_EMsgClientSiteLicenseCheckoutResponse = 10102; + k_EMsgClientSiteLicenseGetAvailableSeats = 10103; + k_EMsgClientSiteLicenseGetAvailableSeatsResponse = 10104; + k_EMsgClientSiteLicenseGetContentCacheInfo = 10105; + k_EMsgClientSiteLicenseGetContentCacheInfoResponse = 10106; + k_EMsgBaseChatServer = 12000; + k_EMsgChatServerGetPendingNotificationCount = 12000; + k_EMsgChatServerGetPendingNotificationCountResponse = 12001; + k_EMsgBaseSecretServer = 12100; + k_EMsgServerSecretChanged = 12100; + k_EMsgBaseWG = 12200; + k_EMsgWGConnectionProtocolError = 12200; + k_EMsgWGConnectionValidateUserToken = 12201; + k_EMsgWGConnectionValidateUserTokenResponse = 12202; + k_EMsgWGConnectionLegacyWGRequest = 12203; + k_EMsgWGConnectionLegacyWGResponse = 12204; + k_EMsgClientPendingGameLaunch = 12300; + k_EMsgClientPendingGameLaunchResponse = 12301; +} + +enum EClientPersonaStateFlag { + k_EClientPersonaStateFlagStatus = 1; + k_EClientPersonaStateFlagPlayerName = 2; + k_EClientPersonaStateFlagQueryPort = 4; + k_EClientPersonaStateFlagSourceID = 8; + k_EClientPersonaStateFlagPresence = 16; + k_EClientPersonaStateFlagLastSeen = 64; + k_EClientPersonaStateFlagUserClanRank = 128; + k_EClientPersonaStateGameExtraInfo = 256; + k_EClientPersonaStateGameDataBlob = 512; + k_EClientPersonaStateFlagClanData = 1024; + k_EClientPersonaStateFlagFacebook = 2048; + k_EClientPersonaStateFlagRichPresence = 4096; + k_EClientPersonaStateFlagBroadcast = 8192; + k_EClientPersonaStateFlagWatching = 16384; +} + +enum EMsgClanAccountFlags { + k_EMsgClanAccountFlagPublic = 1; + k_EMsgClanAccountFlagLarge = 2; + k_EMsgClanAccountFlagLocked = 4; + k_EMsgClanAccountFlagDisabled = 8; + k_EMsgClanAccountFlagOGG = 16; +} + +enum ESteamReviewScore { + k_ESteamReviewScore_OverwhelminglyPositive = 9; + k_ESteamReviewScore_VeryPositive = 8; + k_ESteamReviewScore_Positive = 7; + k_ESteamReviewScore_MostlyPositive = 6; + k_ESteamReviewScore_Mixed = 5; + k_ESteamReviewScore_MostlyNegative = 4; + k_ESteamReviewScore_Negative = 3; + k_ESteamReviewScore_VeryNegative = 2; + k_ESteamReviewScore_OverwhelminglyNegative = 1; + k_ESteamReviewScore_None = 0; +} + +enum ECodecUsagePlatform { + k_ECodecUsagePlatformUnknown = 0; + k_ECodecUsagePlatformWindows = 1; + k_ECodecUsagePlatformMacOS = 2; + k_ECodecUsagePlatformLinux = 3; + k_ECodecUsagePlatformSteamDeck = 4; +} + +enum ECodecUsageReason { + k_ECodecUsageReasonUnknown = 0; + k_ECodecUsageReasonRemotePlay = 1; + k_ECodecUsageReasonBroadcasting = 2; + k_ECodecUsageReasonGameVideo = 3; + k_ECodecUsageReasonGameRecording = 4; +} diff --git a/Protobufs/steam/enums_productinfo.proto b/Protobufs/steam/enums_productinfo.proto new file mode 100644 index 0000000..dc171cf --- /dev/null +++ b/Protobufs/steam/enums_productinfo.proto @@ -0,0 +1,14 @@ +import "steammessages_base.proto"; + +option optimize_for = SPEED; +option cc_generic_services = true; +option (force_php_generation) = true; + +enum EContentDescriptorID { + k_EContentDescriptor_NudityOrSexualContent = 1; + k_EContentDescriptor_FrequentViolenceOrGore = 2; + k_EContentDescriptor_AdultOnlySexualContent = 3; + k_EContentDescriptor_GratuitousSexualContent = 4; + k_EContentDescriptor_AnyMatureContent = 5; + k_EContentDescriptorMAX = 6; +} diff --git a/Protobufs/steam/htmlmessages.proto b/Protobufs/steam/htmlmessages.proto new file mode 100644 index 0000000..3955647 --- /dev/null +++ b/Protobufs/steam/htmlmessages.proto @@ -0,0 +1,1024 @@ +option optimize_for = SPEED; +option cc_generic_services = false; + +enum EJSRegisterMethodType { + k_EJSRegisterMethodType_Invalid = 0; + k_EJSRegisterMethodType_Function = 1; + k_EJSRegisterMethodType_Callback = 2; + k_EJSRegisterMethodType_Promise = 3; +} + +message CMsgKeyUp { + optional uint32 browser_handle = 1; + optional uint32 keyCode = 2; + optional uint32 modifiers = 3; + optional uint32 nativeKeyCode = 4; +} + +message CMsgKeyDown { + optional uint32 browser_handle = 1; + optional uint32 keyCode = 2; + optional uint32 modifiers = 3; + optional bool is_system_key = 4; + optional uint32 nativeKeyCode = 5; +} + +message CMsgKeyChar { + optional uint32 browser_handle = 1; + optional uint32 unichar = 2; + optional uint32 modifiers = 3; + optional uint32 keyCode = 4; + optional uint32 nativeKeyCode = 5; +} + +message CMsgMouseDown { + optional uint32 browser_handle = 1; + optional uint32 mouse_button = 2; + optional uint32 modifiers = 3; +} + +message CMsgMouseUp { + optional uint32 browser_handle = 1; + optional uint32 mouse_button = 2; + optional uint32 modifiers = 3; + optional bool is_off_panel = 4; + optional int32 x = 5; + optional int32 y = 6; +} + +message CMsgMouseDblClick { + optional uint32 browser_handle = 1; + optional uint32 mouse_button = 2; + optional uint32 modifiers = 3; +} + +message CMsgMouseWheel { + optional uint32 browser_handle = 1; + optional int32 deltax = 2; + optional int32 deltay = 3; + optional uint32 modifiers = 4; +} + +message CMsgMouseMove { + optional uint32 browser_handle = 1; + optional int32 x = 2; + optional int32 y = 3; + optional uint32 modifiers = 4; +} + +message CMsgMouseLeave { + optional uint32 browser_handle = 1; +} + +message CMsgBrowserCreate { + optional uint32 request_id = 1; + optional string useragent = 3; + optional string user_css = 5; + optional bool native_dropdowns = 6; + optional float dpi_scaling = 7; + optional bool offscreen = 8 [default = true]; + optional uint32 initial_width = 9 [default = 0]; + optional uint32 initial_height = 10 [default = 0]; + optional string window_icon = 11; + optional bool borderless = 12 [default = false]; + optional string vroverlay_key = 13; + optional uint32 browser_type = 14 [default = 0]; + optional int32 initial_top = 15 [default = -2147483648]; + optional int32 initial_left = 16 [default = -2147483648]; + optional bool only_allow_trusted_popups = 17 [default = false]; + optional string initial_url = 18; + optional fixed64 hwnd_parent = 19; + optional uint32 creation_flags = 20 [default = 0]; +} + +message CMsgBrowserCreateResponse { + optional uint32 browser_handle = 1; + optional uint32 request_id = 2; +} + +message CMsgBrowserRemove { + optional uint32 browser_handle = 1; +} + +message CMsgSetLocalFileRequestMapping { + message AdditionalRoute { + optional string relative_url = 1; + optional string local_path = 2; + optional string allowed_extensions = 3; + optional bool url_rewrite = 4; + } + + optional uint32 browser_handle = 1; + optional string request_url = 2; + optional string default_local_path = 3; + repeated .CMsgSetLocalFileRequestMapping.AdditionalRoute routes = 4; +} + +message CMsgBrowserErrorStrings { + optional uint32 browser_handle = 1; + optional string title = 2; + optional string header = 3; + optional string cache_miss = 4; + optional string bad_url = 5; + optional string connection_problem = 6; + optional string proxy_problem = 7; + optional string unknown = 8; +} + +message CMsgBrowserSetName { + optional uint32 browser_handle = 1; + optional string name = 2; +} + +message CMsgBrowserSize { + optional uint32 browser_handle = 1; + optional double width = 2; + optional double height = 3; +} + +message CMsgBrowserSetMinSize { + optional uint32 browser_handle = 1; + optional double width = 2; + optional double height = 3; +} + +message CMsgBrowserPosition { + optional uint32 browser_handle = 1; + optional double x = 2; + optional double y = 3; + optional double x_local = 4; + optional double y_local = 5; +} + +message CMsgBrowserResized { + optional uint32 browser_handle = 1; + optional double x = 2; + optional double y = 3; + optional double width = 4; + optional double height = 5; + optional double dpi_horizontal = 6; + optional double dpi_vertical = 7; + optional string display_name = 8; +} + +message CMsgPostURL { + optional uint32 browser_handle = 1; + optional string url = 2; + optional string post = 3; + optional uint32 pageserial = 4; + optional bool replace_entry = 5; +} + +message CMsgAddHeader { + optional uint32 browser_handle = 1; + optional string key = 2; + optional string value = 3; +} + +message CMsgStopLoad { + optional uint32 browser_handle = 1; +} + +message CMsgReload { + optional uint32 browser_handle = 1; +} + +message CMsgGoForward { + optional uint32 browser_handle = 1; +} + +message CMsgGoBack { + optional uint32 browser_handle = 1; +} + +message CMsgWasHidden { + optional uint32 browser_handle = 1; + optional bool hidden = 2; +} + +message CMsgSetWindowVisibility { + optional uint32 browser_handle = 1; + optional bool visible = 2; +} + +message CMsgClearHistory { + optional uint32 browser_handle = 1; +} + +message CMsgClearAllBrowsingData { + optional uint32 browser_handle = 1; +} + +message CMsgCopy { + optional uint32 browser_handle = 1; +} + +message CMsgPaste { + optional uint32 browser_handle = 1; +} + +message CMsgExecuteJavaScript { + optional uint32 browser_handle = 1; + optional string script = 2; +} + +message CMsgSetFocus { + optional uint32 browser_handle = 1; + optional bool focus = 2; +} + +message CMsgHorizontalScrollBarSize { + optional uint32 browser_handle = 1; +} + +message CMsgHorizontalScrollBarSizeResponse { + optional uint32 browser_handle = 1; + optional uint32 scroll_max = 6; + optional uint32 scroll = 7; + optional float zoom = 8; + optional bool visible = 9; + optional uint32 page_size = 10; +} + +message CMsgVerticalScrollBarSize { + optional uint32 browser_handle = 1; +} + +message CMsgVerticalScrollBarSizeResponse { + optional uint32 browser_handle = 1; + optional uint32 scroll_max = 6; + optional uint32 scroll = 7; + optional float zoom = 8; + optional bool visible = 9; + optional uint32 page_size = 10; +} + +message CMsgFind { + optional uint32 browser_handle = 1; + optional string find = 2; + optional bool infind = 3; + optional bool reverse = 4 [default = false]; +} + +message CMsgStopFind { + optional uint32 browser_handle = 1; +} + +message CMsgSetHorizontalScroll { + optional uint32 browser_handle = 1; + optional uint32 scroll = 2; +} + +message CMsgSetVerticalScroll { + optional uint32 browser_handle = 1; + optional uint32 scroll = 2; +} + +message CMsgSetZoomLevel { + optional uint32 browser_handle = 1; + optional double zoom = 2; +} + +message CMsgViewSource { + optional uint32 browser_handle = 1; +} + +message CMsgBrowserReady { + optional uint32 browser_handle = 1; + optional string vr_overlay_key = 2; + optional fixed64 hwnd_browser = 3; +} + +message CMsgURLChanged { + optional uint32 browser_handle = 1; + optional string url = 2; + optional string postData = 3; + optional bool bIsRedirect = 4; + optional string pagetitle = 5; + optional bool bNewNavigation = 6; +} + +message CHistoryEntry { + optional string url = 1; +} + +message CMsgHistoryChanged { + optional uint32 browser_handle = 1; + optional uint32 index = 2; + repeated .CHistoryEntry entries = 3; +} + +message CMsgLoadError { + optional uint32 browser_handle = 1; + optional int32 error_code = 2; + optional string url = 3; + optional string error_description = 4; +} + +message CHTMLHeader { + optional string key = 1; + optional string value = 2; +} + +message CHTMLPageSecurityInfo { + optional bool bIsSecure = 1 [default = false]; + optional bool bHasCertError = 2 [default = false]; + optional string issuerName = 3; + optional string certName = 4; + optional int32 certExpiry = 5 [default = 0]; + optional int32 nCertBits = 6 [default = 0]; + optional bool bIsEVCert = 7 [default = false]; +} + +message CMsgFinishedRequest { + optional uint32 browser_handle = 1; + optional string url = 2; + optional string pageTitle = 3; +} + +message CMsgLoadedRequest { + optional uint32 browser_handle = 1; + optional string url = 2; + optional string pageTitle = 3; + repeated .CHTMLHeader headers = 5; +} + +message CMsgFavIconURLChanged { + optional uint32 browser_handle = 1; + repeated string urls = 2; +} + +message CMsgPageSecurity { + optional uint32 browser_handle = 1; + optional string url = 2; + optional .CHTMLPageSecurityInfo security_info = 3; +} + +message CMsgStartRequest { + optional uint32 browser_handle = 1; + optional string url = 2; + optional string target = 3; + optional string postData = 4; + optional bool bIsRedirect = 5; +} + +message CMsgStartRequestResponse { + optional uint32 browser_handle = 1; + optional bool bAllow = 2; +} + +message CMsgShowPopup { + optional uint32 browser_handle = 1; +} + +message CMsgHidePopup { + optional uint32 browser_handle = 1; +} + +message CMsgSizePopup { + optional uint32 browser_handle = 1; + optional int32 x = 2; + optional int32 y = 3; + optional uint32 wide = 4; + optional uint32 tall = 5; +} + +message CMsgOpenNewTab { + optional uint32 browser_handle = 1; + optional string url = 2; + optional bool bForeground = 3; +} + +message CMsgPopupHTMLWindow { + optional uint32 browser_handle = 1; + optional string url = 2; + optional int32 x = 3 [default = -2147483648]; + optional int32 y = 4 [default = -2147483648]; + optional uint32 wide = 5; + optional uint32 tall = 6; + optional uint32 popup_index = 7; + optional bool trusted_creator = 8; + optional string name = 9; + optional uint64 hwnd = 10; + optional uint32 parent_popup_index = 11; +} + +message CMsgPopupHTMLWindowResponse { + optional uint32 browser_handle = 1; + optional bool bAllow = 2; +} + +message CMsgSetHTMLTitle { + optional uint32 browser_handle = 1; + optional string title = 2; +} + +message CMsgLoadingResource { + optional uint32 browser_handle = 1; + optional string url = 2; +} + +message CMsgStatusText { + optional uint32 browser_handle = 1; + optional string text = 2; +} + +message CMsgSetCursor { + optional uint32 browser_handle = 1; + optional uint32 cursor = 2; + optional bytes custom_data = 3; + optional uint32 wide = 4; + optional uint32 tall = 5; + optional uint32 xhotspot = 6; + optional uint32 yhotspot = 7; +} + +message CMsgFileLoadDialog { + message Filter { + optional string name = 1; + repeated string patterns = 2; + optional bool is_default = 3; + } + + optional uint32 browser_handle = 1; + optional uint32 owning_browser_handle = 2; + optional string title = 3; + optional string initialFile = 4; + repeated string accept_types = 5; + optional bool is_save = 6; + optional bool choose_directory = 7; + repeated .CMsgFileLoadDialog.Filter filters = 8; +} + +message CMsgFileLoadDialogResponse { + optional uint32 browser_handle = 1; + optional uint32 owning_browser_handle = 2; + optional bool bsuccess = 3; + repeated string files = 4; +} + +message CMsgShowToolTip { + optional uint32 browser_handle = 1; + optional string text = 2; +} + +message CMsgUpdateToolTip { + optional uint32 browser_handle = 1; + optional string text = 2; +} + +message CMsgHideToolTip { + optional uint32 browser_handle = 1; +} + +message CMsgSearchResults { + optional uint32 browser_handle = 1; + optional int32 activeMatch = 2; + optional int32 results = 3; +} + +message CMsgClose { + optional uint32 browser_handle = 1; +} + +message CMsgSetSharedPaintBuffers { + optional uint32 browser_handle = 1; + optional uint32 wide = 2; + optional uint32 tall = 3; + optional uint64 source_pid = 4; + optional uint64 source_handle = 5; + optional uint64 handle = 6; +} + +message CMsgAckSharedPaintBuffers { + optional uint32 browser_handle = 1; +} + +message CMsgNeedsPaint { + optional uint32 browser_handle = 1; + optional uint32 scrollx = 10; + optional uint32 scrolly = 11; + optional float pagescale = 12; + optional uint32 pageserial = 15; + optional uint32 avg_frame_ms = 20; + optional float stddev_sum_frame_ms = 21; + optional uint32 long_frame_ms = 22; +} + +message CMsgComboNeedsPaint { + optional uint32 browser_handle = 1; + optional uint64 rgba = 2; + optional uint32 combobox_wide = 3 [default = 0]; + optional uint32 combobox_tall = 4 [default = 0]; + optional uint64 shared_memory_handle = 5 [default = 0]; + optional uint64 shared_memory_size = 7 [default = 0]; +} + +message CMsgNeedsSharedTexturePaint { + optional uint32 browser_handle = 1; + optional uint32 share_handle = 2; + optional uint32 width = 3; + optional uint32 height = 4; + optional uint32 scrollx = 5; + optional uint32 scrolly = 6; + optional float pagescale = 7; + optional uint32 pageserial = 8; +} + +message CMsgGetZoom { + optional uint32 browser_handle = 1; +} + +message CMsgGetZoomResponse { + optional uint32 browser_handle = 1; + optional float zoom = 2; +} + +message CMsgLinkAtPosition { + optional uint32 browser_handle = 1; + optional uint32 x = 2; + optional uint32 y = 3; +} + +message CMsgLinkAtPositionResponse { + optional uint32 browser_handle = 1; + optional uint32 x = 2; + optional uint32 y = 3; + optional string url = 4; + optional bool blivelink = 5; + optional bool binput = 6; +} + +message CMsgZoomToElementAtPosition { + optional uint32 browser_handle = 1; + optional uint32 x = 2; + optional uint32 y = 3; +} + +message CMsgZoomToElementAtPositionResponse { + optional uint32 browser_handle = 1; + optional float scale = 2; + optional float duration = 3; +} + +message CMsgScalePageToValue { + optional uint32 browser_handle = 1; + optional float scale = 2; + optional float x = 3; + optional float y = 4; +} + +message CMsgForcePopupsToDirectHWND { + optional uint32 browser_handle = 1; + optional bool force_direct_hwnd_popups = 2; +} + +message CMsgScalePageToValueResponse { + optional uint32 browser_handle = 1; + optional float zoom = 2; +} + +message CMsgSavePageToJPEG { + optional uint32 browser_handle = 1; + optional string url = 2; + optional string filename = 3; + optional uint32 width = 4; + optional uint32 height = 5; +} + +message CMsgSavePageToJPEGResponse { + optional uint32 browser_handle = 1; + optional string url = 2; + optional string filename = 3; +} + +message CMsgJSAlert { + optional uint32 browser_handle = 1; + optional string message = 2; +} + +message CMsgJSConfirm { + optional uint32 browser_handle = 1; + optional string message = 2; +} + +message CMsgJSDialogResponse { + optional uint32 browser_handle = 1; + optional bool result = 2; +} + +message CMsgCanGoBackAndForward { + optional uint32 browser_handle = 1; + optional bool bgoback = 2; + optional bool bgoforward = 3; +} + +message CMsgOpenSteamURL { + optional uint32 browser_handle = 1; + optional string url = 2; + optional string referrer = 3; +} + +message CMsgSetCookie { + optional string key = 1; + optional string value = 2; + optional string path = 3; + optional string host = 4; + optional uint32 expires = 5; + optional bool secure = 6; + optional bool httponly = 7; + optional int32 samesite = 8; +} + +message CMsgSetTargetFrameRate { + optional uint32 browser_handle = 1; + optional uint32 nTargetFrameRate = 2; +} + +message CMsgPauseRepaint { + optional uint32 browser_handle = 1; +} + +message CMsgFullRepaint { + optional uint32 browser_handle = 1; +} + +message CMsgRequestFullScreen { + optional uint32 browser_handle = 1; +} + +message CMsgExitFullScreen { + optional uint32 browser_handle = 1; +} + +message CMsgToggleFindInPageDialog { + optional uint32 browser_handle = 1; +} + +message CMsgSetPIDShuttingDown { + optional uint32 browser_handle = 1; +} + +message CMsgDisableBackgroundThrottling { + optional uint32 browser_handle = 1; +} + +message CMsgAckPIDShuttingDown { + optional uint32 browser_handle = 1; +} + +message CMsgGetCookiesForURL { + optional uint32 browser_handle = 1; + optional string url = 2; +} + +message CCookie { + optional string name = 1; + optional string value = 2; + optional string domain = 3; + optional string path = 4; +} + +message CMsgGetCookiesForURLResponse { + optional uint32 browser_handle = 1; + optional string url = 2; + repeated .CCookie cookies = 3; +} + +message CMsgNodeHasFocus { + optional uint32 browser_handle = 1; + optional bool bInput = 2; + optional string name = 3; + optional string elementtagname = 4; + optional string searchbuttontext = 5; + optional bool bHasMultipleInputs = 6; + optional string input_type = 7; + optional bool bIsMainFrame = 8; +} + +message CMsgZoomToFocusedElement { + optional uint32 browser_handle = 1; +} + +message CMsgFocusedNodeText { + optional uint32 browser_handle = 1; +} + +message CMsgFocusedNodeTextResponse { + optional uint32 browser_handle = 1; + optional string value = 2; +} + +message CMsgBuildID { + optional uint64 build_id = 1; +} + +message CMsgOpenDevTools { + optional uint32 browser_handle = 1; +} + +message CMsgCloseDevTools { + optional uint32 browser_handle = 1; +} + +message CMsgUnlockH264 { + optional uint32 browser_handle = 1; + optional string unlock_code = 2; +} + +message CMsgScreenInformationChanged { + optional uint32 browser_handle = 1; + optional uint32 override_width = 2; + optional uint32 override_height = 3; + optional uint32 monitor_left = 4; + optional uint32 monitor_top = 5; + optional uint32 monitor_right = 6; + optional uint32 monitor_bottom = 7; + optional uint32 usable_left = 8; + optional uint32 usable_top = 9; + optional uint32 usable_right = 10; + optional uint32 usable_bottom = 11; +} + +message CMsgClearAllCookies { + optional uint32 browser_handle = 1; +} + +message CMsgScreenDPI { + optional uint32 browser_handle = 1; + optional float dpi_scaling = 2; +} + +message CMsgAckScreenDPI { + optional uint32 browser_handle = 1; +} + +message CMsgAuthedSteamDomains { + repeated string domains = 1; +} + +message CMsgSteamAuthNeeded { + optional bool filler = 1; +} + +message CMsgSteamAuthCookiesSet { + optional bool success = 1; +} + +message CMsgJSRegisterMethod { + optional uint32 browser_handle = 1; + optional string name = 2; + optional .EJSRegisterMethodType method_type = 3 [default = k_EJSRegisterMethodType_Invalid]; +} + +message CMsgJSValue { + message JSObjectProperty { + optional string name = 1; + optional .CMsgJSValue value = 2; + } + + optional bool bool_value = 1; + optional int32 int_value = 2; + optional uint32 uint_value = 3; + optional double double_value = 4; + optional string string_value = 5; + optional uint64 function_handle = 6; + optional bytes bytes_value = 12; + optional bool is_array = 8; + repeated .CMsgJSValue array_values = 9; + optional bool is_object = 10; + repeated .CMsgJSValue.JSObjectProperty object_properties = 11; +} + +message CMsgJSMethodCall { + optional uint32 browser_handle = 1; + optional uint32 owning_browser_handle = 2; + optional string name = 3; + repeated .CMsgJSValue arguments = 4; +} + +message CMsgJSExecuteCallback { + optional uint32 browser_handle = 1; + optional uint32 owning_browser_handle = 2; + optional uint64 function_handle = 3; + repeated .CMsgJSValue arguments = 4; +} + +message CMsgJSExecutePromise { + optional uint32 browser_handle = 1; + optional uint32 owning_browser_handle = 2; + optional uint64 promise_handle = 3; + optional string reject_reason = 4; + optional .CMsgJSValue argument = 5; +} + +message CMsgJSReleaseCallback { + optional uint32 browser_handle = 1; + optional uint32 owning_browser_handle = 2; + optional uint64 function_handle = 3; +} + +message CMsgJSRaiseException { + optional uint32 browser_handle = 1; + optional uint32 owning_browser_handle = 2; + optional string exception = 3; +} + +message CMsgLoadLocalization { + optional uint32 browser_handle = 1; + optional string localization_path = 2; + optional string language = 3; +} + +message CMsgNotifyUserActivation { + optional uint32 browser_handle = 1; +} + +message CMsgSetNetFakeLocalSystemState { + optional uint32 state = 1; +} + +message CMsgDraggableRegionsChanged { + message DraggableRects { + optional int32 x = 1; + optional int32 y = 2; + optional int32 width = 3; + optional int32 height = 4; + optional bool draggable = 5; + optional bool transparent = 6; + } + + optional uint32 browser_handle = 1; + repeated .CMsgDraggableRegionsChanged.DraggableRects rects = 2; +} + +message CMsgResizeGripChanged { + optional uint32 browser_handle = 1; + optional int32 width = 2; + optional int32 height = 3; +} + +message CMsgSetWindowPosition { + optional uint32 browser_handle = 1; + optional double x = 2; + optional double y = 3; + optional double width = 4; + optional double height = 5; + optional double min_width = 6; + optional double min_height = 7; + optional double max_width = 8; + optional double max_height = 9; +} + +message CMsgShowWindow { + optional uint32 browser_handle = 1; +} + +message CMsgHideWindow { + optional uint32 browser_handle = 1; +} + +message CMsgBringWindowToFront { + optional uint32 browser_handle = 1; +} + +message CMsgSetForegroundWindow { + optional uint32 browser_handle = 1; +} + +message CMsgMaximizeRestoreWindow { + optional uint32 browser_handle = 1; +} + +message CMsgMinimizeWindow { + optional uint32 browser_handle = 1; +} + +message CMsgShowBrowserContextMenu { + message ContextCommand { + optional int32 id = 1; + optional string label = 2; + } + + optional uint32 browser_handle = 1; + repeated .CMsgShowBrowserContextMenu.ContextCommand custom_commands = 2; + optional uint32 type_flags = 3; + optional string page_url = 4; + optional int32 coord_x = 5; + optional int32 coord_y = 6; + optional string link_url = 7; + optional string unfiltered_link_url = 8; + optional string selection_text = 9; + optional string misspelled_word = 10; + optional uint32 edit_state_flags = 11; +} + +message CMsgHandleContextMenuCommand { + optional uint32 browser_handle = 1; + optional int32 command_id = 2; +} + +message CMsgTouchGesture { + optional uint32 browser_handle = 1; + optional int32 id = 2; + optional uint32 gesture = 3; + optional double x = 4; + optional double y = 5; + optional double width = 6; + optional double height = 7; + optional uint32 tap_count = 8; + optional double pinch_scale = 9; +} + +message CMsgSetTouchGesturesToCancel { + optional uint32 browser_handle = 1; + repeated uint32 gestures = 2; +} + +message CMsgImeSetComposition { + optional uint32 browser_handle = 1; + optional string text = 2; +} + +message CMsgImeCommitText { + optional uint32 browser_handle = 1; + optional string text = 2; +} + +message CMsgImeCancelComposition { + optional uint32 browser_handle = 1; +} + +message CMsgImeCompositionRangeChanged { + optional uint32 browser_handle = 1; + optional uint32 x = 2; + optional uint32 y = 3; +} + +message CMsgInspectElement { + optional uint32 browser_handle = 1; + optional uint32 x = 2; + optional uint32 y = 3; +} + +message CMsgDisableF5 { + optional uint32 browser_handle = 1; + optional bool disable = 2; +} + +message CMsgStartDownload { + optional uint32 browser_handle = 1; + optional string url = 2; +} + +message CMsgSetWindowStackingOrder { + optional uint32 browser_handle = 1; + optional uint32 estackingorder = 2; +} + +message CMsgBrowserViewPostMessageToParentRequest { + optional uint32 browser_handle = 1; + optional string message = 2; + optional string args = 3; + optional string requesting_url = 4; +} + +message CMsgBlockedRequest { + optional uint32 browser_handle = 1; + optional string url = 2; +} + +message CMsgBrowserFocusChanged { + optional uint32 browser_handle = 1; + optional bool focused = 2; +} + +message CMsgSetProtocolBlockList { + optional uint32 browser_handle = 1; + optional string list = 2; +} + +message CMsgSetForceDeviceScaleFactors { + optional double dpi_scale = 1; + optional double browser_scale = 2; +} + +message CMsgSetUIMode { + optional int32 ui_mode = 1; +} + +message CMsgSetSteamBetaName { + optional string steam_beta_name = 1; +} + +message CMsgPopupCreated { + optional uint32 browser_handle = 1; +} + +message CMsgSetVRKeyboardVisibility { + optional uint32 browser_handle = 1; + optional bool visible = 2; +} + +message CMsgRestartJSContext { +} diff --git a/Protobufs/steam/offline_ticket.proto b/Protobufs/steam/offline_ticket.proto new file mode 100644 index 0000000..3afd3be --- /dev/null +++ b/Protobufs/steam/offline_ticket.proto @@ -0,0 +1,8 @@ +message Offline_Ticket { + optional bytes encrypted_ticket = 1; + optional bytes signature = 2; + optional int32 kdf1 = 3; + optional bytes salt1 = 4; + optional int32 kdf2 = 5; + optional bytes salt2 = 6; +} diff --git a/Protobufs/steam/steamdatagram_messages_auth.proto b/Protobufs/steam/steamdatagram_messages_auth.proto new file mode 100644 index 0000000..c97793e --- /dev/null +++ b/Protobufs/steam/steamdatagram_messages_auth.proto @@ -0,0 +1,65 @@ +import "steamnetworkingsockets_messages_certs.proto"; + +option optimize_for = SPEED; +option cc_generic_services = false; + +message CMsgSteamDatagramRelayAuthTicket { + message ExtraField { + optional string name = 1; + optional string string_value = 2; + optional sint64 int64_value = 3; + optional fixed64 fixed64_value = 5; + } + + optional fixed32 time_expiry = 1; + optional string authorized_client_identity_string = 14; + optional string gameserver_identity_string = 15; + optional fixed32 authorized_public_ip = 3; + optional bytes gameserver_address = 11; + optional uint32 app_id = 7; + optional uint32 virtual_port = 10; + repeated .CMsgSteamDatagramRelayAuthTicket.ExtraField extra_fields = 8; + optional fixed64 legacy_authorized_steam_id = 2; + optional fixed64 legacy_gameserver_steam_id = 4; + optional fixed32 legacy_gameserver_pop_id = 9; + optional bytes legacy_authorized_client_identity_binary = 12; + optional bytes legacy_gameserver_identity_binary = 13; +} + +message CMsgSteamDatagramSignedRelayAuthTicket { + optional fixed64 reserved_do_not_use = 1; + optional bytes ticket = 3; + optional bytes signature = 4; + optional fixed64 key_id = 2; + repeated .CMsgSteamDatagramCertificateSigned certs = 5; +} + +message CMsgSteamDatagramCachedCredentialsForApp { + optional bytes private_key = 1; + optional bytes cert = 2; + repeated bytes relay_tickets = 3; +} + +message CMsgSteamDatagramGameCoordinatorServerLogin { + optional uint32 time_generated = 1; + optional uint32 appid = 2; + optional bytes routing = 3; + optional bytes appdata = 4; + optional bytes legacy_identity_binary = 5; + optional string identity_string = 6; + optional fixed64 dummy_steam_id = 99; +} + +message CMsgSteamDatagramSignedGameCoordinatorServerLogin { + optional .CMsgSteamDatagramCertificateSigned cert = 1; + optional bytes login = 2; + optional bytes signature = 3; +} + +message CMsgSteamDatagramHostedServerAddressPlaintext { + optional fixed32 ipv4 = 1; + optional bytes ipv6 = 2; + optional uint32 port = 3; + optional fixed64 routing_secret = 4; + optional uint32 protocol_version = 5; +} diff --git a/Protobufs/steam/steamdatagram_messages_sdr.proto b/Protobufs/steam/steamdatagram_messages_sdr.proto new file mode 100644 index 0000000..d56905e --- /dev/null +++ b/Protobufs/steam/steamdatagram_messages_sdr.proto @@ -0,0 +1,533 @@ +import "steamnetworkingsockets_messages_certs.proto"; +import "steamnetworkingsockets_messages.proto"; + +option optimize_for = SPEED; +option cc_generic_services = false; + +enum ESteamDatagramMsgID { + k_ESteamDatagramMsg_Invalid = 0; + k_ESteamDatagramMsg_RouterPingRequest = 1; + k_ESteamDatagramMsg_RouterPingReply = 2; + k_ESteamDatagramMsg_GameserverPingRequest = 3; + k_ESteamDatagramMsg_GameserverSessionRequest = 5; + k_ESteamDatagramMsg_GameserverSessionEstablished = 6; + k_ESteamDatagramMsg_NoSession = 7; + k_ESteamDatagramMsg_Diagnostic = 8; + k_ESteamDatagramMsg_DataClientToRouter = 9; + k_ESteamDatagramMsg_DataRouterToServer = 10; + k_ESteamDatagramMsg_DataServerToRouter = 11; + k_ESteamDatagramMsg_DataRouterToClient = 12; + k_ESteamDatagramMsg_Stats = 13; + k_ESteamDatagramMsg_ClientPingSampleRequest = 14; + k_ESteamDatagramMsg_ClientPingSampleReply = 15; + k_ESteamDatagramMsg_ClientToRouterSwitchedPrimary = 16; + k_ESteamDatagramMsg_RelayHealth = 17; + k_ESteamDatagramMsg_ConnectRequest = 18; + k_ESteamDatagramMsg_ConnectOK = 19; + k_ESteamDatagramMsg_ConnectionClosed = 20; + k_ESteamDatagramMsg_NoConnection = 21; + k_ESteamDatagramMsg_TicketDecryptRequest = 22; + k_ESteamDatagramMsg_TicketDecryptReply = 23; + k_ESteamDatagramMsg_P2PSessionRequest = 24; + k_ESteamDatagramMsg_P2PSessionEstablished = 25; + k_ESteamDatagramMsg_P2PStatsClient = 26; + k_ESteamDatagramMsg_P2PStatsRelay = 27; + k_ESteamDatagramMsg_P2PBadRoute = 28; + k_ESteamDatagramMsg_GameserverPingReply = 29; + k_ESteamDatagramMsg_LegacyGameserverRegistration = 30; + k_ESteamDatagramMsg_SetSecondaryAddressRequest = 31; + k_ESteamDatagramMsg_SetSecondaryAddressResult = 32; + k_ESteamDatagramMsg_RelayToRelayPingRequest = 33; + k_ESteamDatagramMsg_RelayToRelayPingReply = 34; +} + +message CMsgSteamNetworkingIPAddress { + optional fixed32 v4 = 1; + optional bytes v6 = 2; +} + +message CMsgSteamDatagramSignedMessageGeneric { + optional .CMsgSteamDatagramCertificateSigned cert = 1; + optional bytes signed_data = 2; + optional bytes signature = 3; + optional bytes dummy_pad = 1023; +} + +message CMsgSteamDatagramRouterPingReply { + message RouteException { + optional fixed32 data_center_id = 1; + optional uint32 flags = 2; + optional uint32 penalty = 3; + } + + message AltAddress { + enum Protocol { + DefaultProtocol = 0; + } + + optional fixed32 ipv4 = 1; + optional uint32 port = 2; + optional uint32 penalty = 3; + optional .CMsgSteamDatagramRouterPingReply.AltAddress.Protocol protocol = 4 [default = DefaultProtocol]; + optional string id = 5; + } + + enum Flags { + FLAG_MAYBE_MORE_DATA_CENTERS = 1; + FLAG_MAYBE_MORE_ALT_ADDRESSES = 2; + } + + optional fixed32 client_timestamp = 1; + repeated fixed32 latency_datacenter_ids = 2 [packed = true]; + repeated uint32 latency_ping_ms = 3 [packed = true]; + repeated fixed32 latency_datacenter_ids_p2p = 14 [packed = true]; + repeated uint32 latency_ping_ms_p2p = 15 [packed = true]; + optional fixed32 your_public_ip = 4; + optional fixed32 your_public_port = 11; + optional fixed32 server_time = 5; + optional fixed64 challenge = 6; + optional uint32 seconds_until_shutdown = 7; + optional fixed32 client_cookie = 8; + optional uint32 scoring_penalty_relay_cluster = 9; + optional uint32 flags = 12; + repeated .CMsgSteamDatagramRouterPingReply.RouteException route_exceptions = 10; + repeated .CMsgSteamDatagramRouterPingReply.AltAddress alt_addresses = 13; + optional bytes dummy_pad = 99; +} + +message CMsgSteamDatagramGameserverPingRequestBody { + optional fixed32 relay_popid = 1; + optional .CMsgSteamNetworkingIPAddress your_public_ip = 2; + optional uint32 your_public_port = 3; + optional uint64 relay_unix_time = 4; + optional fixed64 routing_secret = 5; + repeated .CMsgSteamNetworkingIPAddress my_ips = 6; + optional bytes echo = 8; +} + +message CMsgSteamDatagramGameserverPingRequestEnvelope { + optional .CMsgSteamDatagramCertificateSigned cert = 6; + optional bytes signed_data = 7; + optional bytes signature = 8; + optional fixed32 legacy_your_public_ip = 1; + optional fixed32 legacy_your_public_port = 5; + optional fixed32 legacy_relay_unix_time = 2; + optional fixed64 legacy_challenge = 3; + optional fixed32 legacy_router_timestamp = 4; + optional bytes dummy_pad = 1023; +} + +message CMsgSteamDatagramGameserverPingReplyData { + optional fixed32 echo_relay_unix_time = 2; + optional bytes echo = 8; + optional fixed64 legacy_challenge = 3; + optional fixed32 legacy_router_timestamp = 4; + optional fixed32 data_center_id = 5; + optional uint32 appid = 6; + optional uint32 protocol_version = 7; + optional string build = 9; + optional uint64 network_config_version = 10; + optional fixed32 my_unix_time = 11; + optional bytes routing_blob = 12; +} + +message CMsgSteamDatagramNoSessionRelayToClient { + optional fixed32 connection_id = 7; + optional fixed32 your_public_ip = 2; + optional fixed32 your_public_port = 6; + optional fixed32 server_time = 3; + optional fixed64 challenge = 4; + optional uint32 seconds_until_shutdown = 5; +} + +message CMsgSteamDatagramNoSessionRelayToPeer { + optional uint32 legacy_relay_session_id = 1; + optional fixed32 from_relay_session_id = 2; + optional fixed32 from_connection_id = 7; + optional fixed64 kludge_pad = 99; +} + +message CMsgSteamDatagramClientPingSampleRequest { + optional fixed32 connection_id = 1; +} + +message CMsgSteamDatagramClientPingSampleReply { + message POP { + message AltAddress { + optional string id = 1; + optional uint32 front_ping_ms = 2; + optional uint32 penalty = 3; + } + + optional fixed32 pop_id = 1; + optional uint32 default_front_ping_ms = 2; + optional uint32 cluster_penalty = 4; + repeated .CMsgSteamDatagramClientPingSampleReply.POP.AltAddress alt_addresses = 7; + optional uint32 default_e2e_ping_ms = 3; + optional uint32 default_e2e_score = 5; + optional fixed32 p2p_via_peer_relay_pop_id = 6; + optional uint32 best_dc_ping_ms = 9; + optional uint32 best_dc_score = 10; + optional fixed32 best_dc_via_relay_pop_id = 11; + optional uint32 default_dc_ping_ms = 12; + optional uint32 default_dc_score = 13; + optional fixed32 default_dc_via_relay_pop_id = 14; + optional uint32 test_dc_ping_ms = 15; + optional uint32 test_dc_score = 16; + optional fixed32 test_dc_via_relay_pop_id = 17; + } + + message LegacyDataCenter { + optional fixed32 data_center_id = 1; + optional fixed32 best_dc_via_relay_pop_id = 2; + optional uint32 best_dc_ping_ms = 3; + } + + optional fixed32 connection_id = 1; + optional bool relay_override_active = 5; + repeated .CMsgSteamDatagramClientPingSampleReply.POP pops = 2; + repeated .CMsgSteamDatagramClientPingSampleReply.LegacyDataCenter legacy_data_centers = 3; +} + +message CMsgSteamDatagramClientSwitchedPrimary { + message RouterQuality { + optional uint32 score = 1; + optional uint32 front_ping = 2; + optional uint32 back_ping = 3; + optional uint32 seconds_until_down = 4; + } + + optional fixed32 connection_id = 1; + optional fixed32 from_ip = 2; + optional uint32 from_port = 3; + optional fixed32 from_router_cluster = 4; + optional uint32 from_active_time = 5; + optional uint32 from_active_packets_recv = 6; + optional string from_dropped_reason = 7; + optional uint32 gap_ms = 8; + optional .CMsgSteamDatagramClientSwitchedPrimary.RouterQuality from_quality_now = 9; + optional .CMsgSteamDatagramClientSwitchedPrimary.RouterQuality to_quality_now = 10; + optional .CMsgSteamDatagramClientSwitchedPrimary.RouterQuality from_quality_then = 11; + optional .CMsgSteamDatagramClientSwitchedPrimary.RouterQuality to_quality_then = 12; +} + +message CMsgSteamDatagramConnectRequest { + optional fixed32 connection_id = 1; + optional fixed64 my_timestamp = 4; + optional uint32 ping_est_ms = 5; + optional uint32 virtual_port = 9; + optional uint32 gameserver_relay_session_id = 2; + optional .CMsgSteamDatagramSessionCryptInfoSigned crypt = 6; + optional .CMsgSteamDatagramCertificateSigned cert = 7; + optional fixed64 routing_secret = 10; + optional fixed64 legacy_client_steam_id = 3; +} + +message CMsgSteamDatagramConnectOK { + optional fixed32 client_connection_id = 1; + optional fixed32 server_connection_id = 7; + optional fixed64 your_timestamp = 3; + optional uint32 delay_time_usec = 4; + optional uint32 gameserver_relay_session_id = 2; + optional .CMsgSteamDatagramSessionCryptInfoSigned crypt = 5; + optional .CMsgSteamDatagramCertificateSigned cert = 6; +} + +message CMsgSteamNetworkingP2PSDRRoutingSummary { + optional uint32 initial_ping = 1; + optional uint32 initial_ping_front_local = 2; + optional uint32 initial_ping_front_remote = 3; + optional uint32 initial_score = 4; + optional fixed32 initial_pop_local = 5; + optional fixed32 initial_pop_remote = 6; + optional uint32 best_ping = 11; + optional uint32 best_ping_front_local = 12; + optional uint32 best_ping_front_remote = 13; + optional uint32 best_score = 14; + optional fixed32 best_pop_local = 15; + optional fixed32 best_pop_remote = 16; + optional uint32 best_time = 17; + optional uint32 negotiation_ms = 7; + optional uint32 selected_seconds = 8; +} + +message CMsgSteamDatagramP2PRoutingSummary { + optional .CMsgSteamNetworkingICESessionSummary ice = 2; + optional .CMsgSteamNetworkingP2PSDRRoutingSummary sdr = 3; +} + +message CMsgSteamDatagramConnectionClosed { + enum ERelayMode { + None = 0; + EndToEnd = 1; + ClosedByPeer = 2; + } + + optional fixed32 to_connection_id = 7; + optional fixed32 from_connection_id = 8; + optional string from_identity_string = 15; + optional .CMsgSteamNetworkingIdentityLegacyBinary legacy_from_identity_binary = 13; + optional fixed64 legacy_from_steam_id = 3; + optional uint32 legacy_gameserver_relay_session_id = 2; + optional fixed32 to_relay_session_id = 9; + optional fixed32 from_relay_session_id = 10; + optional bytes forward_target_relay_routing_token = 11; + optional uint32 forward_target_revision = 12; + optional .CMsgSteamDatagramConnectionClosed.ERelayMode relay_mode = 4 [default = None]; + optional string debug = 5; + optional uint32 reason_code = 6; + optional fixed64 routing_secret = 14; + optional bool not_primary_session = 16; + optional bool not_primary_transport = 19; + optional bool relay_override_active = 22; + optional .CMsgSteamDatagramConnectionQuality quality_relay = 17; + optional .CMsgSteamDatagramConnectionQuality quality_e2e = 18; + optional .CMsgSteamDatagramP2PRoutingSummary p2p_routing_summary = 21; +} + +message CMsgSteamDatagramNoConnection { + optional fixed32 to_connection_id = 5; + optional fixed32 from_connection_id = 6; + optional uint32 legacy_gameserver_relay_session_id = 2; + optional fixed32 to_relay_session_id = 9; + optional fixed32 from_relay_session_id = 10; + optional string from_identity_string = 7; + optional fixed64 legacy_from_steam_id = 3; + optional bool end_to_end = 4; + optional bool not_primary_session = 12; + optional bool not_primary_transport = 15; + optional bool relay_override_active = 17; + optional .CMsgSteamDatagramConnectionQuality quality_relay = 13; + optional .CMsgSteamDatagramConnectionQuality quality_e2e = 14; + optional .CMsgSteamDatagramP2PRoutingSummary p2p_routing_summary = 16; + optional fixed64 routing_secret = 11; + optional fixed32 dummy_pad = 1023; +} + +message CMsgSteamDatagramGameserverSessionRequest { + optional bytes ticket = 1; + optional fixed32 challenge_time = 3; + optional fixed64 challenge = 4; + optional fixed32 client_connection_id = 5; + optional fixed32 server_connection_id = 8; + optional uint64 network_config_version = 6; + optional uint32 protocol_version = 7; + optional string platform = 9; + optional string build = 10; + optional string dev_gameserver_identity = 100; + optional .CMsgSteamDatagramCertificateSigned dev_client_cert = 101; +} + +message CMsgSteamDatagramGameserverSessionEstablished { + optional fixed32 connection_id = 1; + optional string gameserver_identity_string = 2; + optional uint32 seconds_until_shutdown = 4; + optional uint32 seq_num_r2c = 6; + optional bytes dummy_legacy_identity_binary = 7; + optional fixed64 legacy_gameserver_steamid = 3; +} + +message CMsgSteamDatagramConnectionStatsClientToRouter { + enum Flags { + ACK_REQUEST_RELAY = 1; + ACK_REQUEST_E2E = 2; + ACK_REQUEST_IMMEDIATE = 4; + NOT_PRIMARY_SESSION = 8; + CLIENT_RELAY_OVERRIDE = 32; + } + + optional .CMsgSteamDatagramConnectionQuality quality_relay = 1; + optional .CMsgSteamDatagramConnectionQuality quality_e2e = 2; + repeated fixed32 ack_relay = 4; + repeated fixed32 legacy_ack_e2e = 5; + optional uint32 flags = 6; + optional fixed32 client_connection_id = 8; + optional uint32 seq_num_c2r = 9; + optional uint32 seq_num_e2e = 10; +} + +message CMsgSteamDatagramConnectionStatsRouterToClient { + enum Flags { + ACK_REQUEST_RELAY = 1; + ACK_REQUEST_E2E = 2; + ACK_REQUEST_IMMEDIATE = 4; + } + + optional .CMsgSteamDatagramConnectionQuality quality_relay = 1; + optional .CMsgSteamDatagramConnectionQuality quality_e2e = 2; + optional uint32 seconds_until_shutdown = 6; + optional fixed32 migrate_request_ip = 10; + optional uint32 migrate_request_port = 11; + optional uint32 scoring_penalty_relay_cluster = 12; + repeated fixed32 ack_relay = 13; + repeated fixed32 legacy_ack_e2e = 14; + optional uint32 flags = 15; + optional fixed32 client_connection_id = 7; + optional uint32 seq_num_r2c = 8; + optional uint32 seq_num_e2e = 9; +} + +message CMsgSteamDatagramConnectionStatsRouterToServer { + enum Flags { + ACK_REQUEST_RELAY = 1; + ACK_REQUEST_E2E = 2; + ACK_REQUEST_IMMEDIATE = 4; + } + + optional .CMsgSteamDatagramConnectionQuality quality_relay = 1; + optional .CMsgSteamDatagramConnectionQuality quality_e2e = 2; + repeated fixed32 ack_relay = 10; + repeated fixed32 legacy_ack_e2e = 11; + optional uint32 flags = 12; + optional uint32 seq_num_r2s = 5; + optional uint32 seq_num_e2e = 6; + optional string client_identity_string = 15; + optional fixed64 legacy_client_steam_id = 7; + optional uint32 relay_session_id = 8; + optional fixed32 client_connection_id = 9; + optional fixed32 server_connection_id = 13; + optional fixed64 routing_secret = 14; +} + +message CMsgSteamDatagramConnectionStatsServerToRouter { + enum Flags { + ACK_REQUEST_RELAY = 1; + ACK_REQUEST_E2E = 2; + ACK_REQUEST_IMMEDIATE = 4; + } + + optional .CMsgSteamDatagramConnectionQuality quality_relay = 1; + optional .CMsgSteamDatagramConnectionQuality quality_e2e = 2; + repeated fixed32 ack_relay = 8; + repeated fixed32 legacy_ack_e2e = 9; + optional uint32 flags = 10; + optional uint32 seq_num_s2r = 3; + optional uint32 seq_num_e2e = 4; + optional uint32 relay_session_id = 6; + optional fixed32 client_connection_id = 7; + optional fixed32 server_connection_id = 11; +} + +message CMsgSteamDatagramP2PSessionRequestBody { + message EncryptedData { + optional string peer_identity_string = 1; + } + + optional fixed32 challenge_time = 1; + optional fixed64 challenge = 2; + optional fixed32 client_connection_id = 3; + optional fixed64 legacy_peer_steam_id = 4; + optional string peer_identity_string = 11; + optional fixed32 peer_connection_id = 5; + optional bytes encrypted_data = 14; + optional uint32 encryption_your_public_key_lead_byte = 15; + optional bytes encryption_my_ephemeral_public_key = 16; + optional uint32 protocol_version = 8; + optional uint64 network_config_version = 9; + optional string platform = 12; + optional string build = 13; +} + +message CMsgSteamDatagramP2PSessionRequest { + optional .CMsgSteamDatagramCertificateSigned cert = 1; + optional bytes body = 2; + optional bytes signature = 3; +} + +message CMsgSteamDatagramP2PSessionEstablished { + optional fixed32 connection_id = 1; + optional uint32 seconds_until_shutdown = 3; + optional bytes relay_routing_token = 4; + optional uint32 seq_num_r2c = 5; +} + +message CMsgSteamDatagramConnectionStatsP2PClientToRouter { + enum Flags { + ACK_REQUEST_RELAY = 1; + ACK_REQUEST_E2E = 2; + ACK_REQUEST_IMMEDIATE = 4; + NOT_PRIMARY_SESSION = 8; + NOT_PRIMARY_TRANSPORT_E2E = 16; + CLIENT_RELAY_OVERRIDE = 32; + } + + optional .CMsgSteamDatagramConnectionQuality quality_relay = 1; + optional .CMsgSteamDatagramConnectionQuality quality_e2e = 2; + optional .CMsgSteamDatagramP2PRoutingSummary p2p_routing_summary = 14; + repeated fixed32 ack_relay = 3; + repeated fixed32 legacy_ack_e2e = 4; + optional uint32 flags = 5; + optional bytes forward_target_relay_routing_token = 6; + optional uint32 forward_target_revision = 7; + optional bytes routes = 8; + optional uint32 ack_peer_routes_revision = 9; + optional fixed32 connection_id = 10; + optional uint32 seq_num_c2r = 11; + optional uint32 seq_num_e2e = 12; +} + +message CMsgSteamDatagramConnectionStatsP2PRouterToClient { + enum Flags { + ACK_REQUEST_RELAY = 1; + ACK_REQUEST_E2E = 2; + ACK_REQUEST_IMMEDIATE = 4; + NOT_PRIMARY_TRANSPORT_E2E = 16; + } + + optional .CMsgSteamDatagramConnectionQuality quality_relay = 1; + optional .CMsgSteamDatagramConnectionQuality quality_e2e = 2; + optional uint32 seconds_until_shutdown = 3; + optional fixed32 migrate_request_ip = 4; + optional uint32 migrate_request_port = 5; + optional uint32 scoring_penalty_relay_cluster = 6; + repeated fixed32 ack_relay = 7; + repeated fixed32 legacy_ack_e2e = 8; + optional uint32 flags = 9; + optional uint32 ack_forward_target_revision = 10; + optional bytes routes = 11; + optional uint32 ack_peer_routes_revision = 12; + optional fixed32 connection_id = 13; + optional uint32 seq_num_r2c = 14; + optional uint32 seq_num_e2e = 15; +} + +message CMsgSteamDatagramP2PBadRouteRouterToClient { + optional fixed32 connection_id = 1; + optional bytes failed_relay_routing_token = 2; + optional uint32 ack_forward_target_revision = 3; + optional fixed64 kludge_pad = 99; +} + +message CMsgSteamDatagramP2PRoutes { + message RelayCluster { + optional fixed32 pop_id = 1; + optional uint32 ping_ms = 2; + optional uint32 score_penalty = 3; + optional bytes session_relay_routing_token = 4; + } + + message Route { + optional fixed32 my_pop_id = 1; + optional fixed32 your_pop_id = 2; + optional uint32 legacy_score = 3; + optional uint32 interior_score = 4; + } + + repeated .CMsgSteamDatagramP2PRoutes.RelayCluster relay_clusters = 1; + repeated .CMsgSteamDatagramP2PRoutes.Route routes = 2; + optional uint32 revision = 3; +} + +message CMsgSteamDatagramSetSecondaryAddressRequest { + optional fixed32 client_main_ip = 1; + optional fixed32 client_main_port = 2; + optional fixed32 client_connection_id = 3; + optional string client_identity = 4; + optional bool request_send_duplication = 5; + optional bytes kludge_pad = 99; +} + +message CMsgSteamDatagramSetSecondaryAddressResult { + optional bool success = 1; + optional string message = 2; +} diff --git a/Protobufs/steam/steammessages_accounthardware.steamclient.proto b/Protobufs/steam/steammessages_accounthardware.steamclient.proto new file mode 100644 index 0000000..24d12a2 --- /dev/null +++ b/Protobufs/steam/steammessages_accounthardware.steamclient.proto @@ -0,0 +1,170 @@ +import "steammessages_base.proto"; +import "steammessages_unified_base.steamclient.proto"; + +option cc_generic_services = true; + +enum EValveIndexComponent { + k_EValveIndexComponentUnknown = 0; + k_EValveIndexComponentHMD = 1; + k_EValveIndexComponentLeftKnuckle = 2; + k_EValveIndexComponentRightKnuckle = 3; + k_ETempDTst1 = 4; + k_ETempDTst2 = 5; + k_ETempDTst3 = 6; +} + +message CAccountHardware_RegisterSteamController_Request { + optional string serial_number = 1; + optional string controller_code = 2; +} + +message CAccountHardware_RegisterSteamController_Response { +} + +message CAccountHardware_CompleteSteamControllerRegistration_Request { + optional string serial_number = 1; + optional string controller_code = 2; +} + +message CAccountHardware_CompleteSteamControllerRegistration_Response { +} + +message CAccountHardware_QueryAccountsRegisteredToSerial_Request { + optional string serial_number = 1; + optional string controller_code = 2; +} + +message CAccountHardware_QueryAccountsRegisteredToSerial_Accounts { + optional uint32 accountid = 1; + optional bool registration_complete = 2; +} + +message CAccountHardware_QueryAccountsRegisteredToSerial_Response { + repeated .CAccountHardware_QueryAccountsRegisteredToSerial_Accounts accounts = 1; +} + +message CAccountHardware_SteamControllerSetConfig_ControllerConfig { + optional string appidorname = 1; + optional uint64 publishedfileid = 2; + optional string templatename = 3; +} + +message CAccountHardware_SteamControllerSetConfig_Request { + optional string serial_number = 1; + optional string controller_code = 2; + optional uint32 accountid = 3; + repeated .CAccountHardware_SteamControllerSetConfig_ControllerConfig configurations = 4; + optional int32 controller_type = 5 [default = 2]; + optional bool only_for_this_serial = 6 [default = false]; +} + +message CAccountHardware_SteamControllerSetConfig_Response { +} + +message CAccountHardware_SteamControllerGetConfig_Request { + optional string serial_number = 1; + optional string controller_code = 2; + optional uint32 accountid = 3; + optional string appidorname = 4; + optional int32 controller_type = 5 [default = 2]; + optional bool only_for_this_serial = 6 [default = false]; +} + +message CAccountHardware_SteamControllerGetConfig_ControllerConfig { + optional string appidorname = 1; + optional uint64 publishedfileid = 2; + optional string templatename = 3; + optional string serial_number = 4; + optional bool autosave = 5 [default = false]; +} + +message CAccountHardware_SteamControllerGetConfig_Response { + repeated .CAccountHardware_SteamControllerGetConfig_ControllerConfig configurations = 1; +} + +message CAccountHardware_DeRegisterSteamController_Request { + optional string serial_number = 1; + optional string controller_code = 2; + optional uint32 accountid = 3; +} + +message CAccountHardware_DeRegisterSteamController_Response { +} + +message CAccountHardware_SetPersonalizationFile_Request { + optional string serial_number = 1; + optional uint64 publishedfileid = 2; + optional uint32 accountid = 3; +} + +message CAccountHardware_SetPersonalizationFile_Response { +} + +message CAccountHardware_GetPersonalizationFile_Request { + optional string serial_number = 1; + optional uint32 accountid = 2; +} + +message CAccountHardware_GetPersonalizationFile_Response { + optional uint64 publishedfileid = 1; +} + +message CAccountHardware_VRCompatibilityCheck_Request { + message Pair { + optional string key = 1; + optional string value = 2; + } + + optional string product_name = 1; + repeated .CAccountHardware_VRCompatibilityCheck_Request.Pair values = 2; +} + +message CAccountHardware_VRCompatibilityCheck_Response { + message Pair { + optional string key = 1; + optional string value = 2; + } + + message ComponentDisplay { + optional string name = 1; + optional string image = 2; + optional string value = 3; + } + + repeated .CAccountHardware_VRCompatibilityCheck_Response.Pair values = 1; + repeated .CAccountHardware_VRCompatibilityCheck_Response.ComponentDisplay components = 2; +} + +message CAccountHardware_RegisterValveIndexComponent_Request { + optional string serial_number = 1; + optional string manufacturer_serial_number = 2; + optional string component_code = 3; + optional .EValveIndexComponent component_type = 4 [default = k_EValveIndexComponentUnknown]; + optional int32 estimated_time_registered = 5; +} + +message CAccountHardware_RegisterValveIndexComponent_Response { +} + +message CAccountHardware_GetSteamDeckComponents_Request { + optional string serial_number = 1; + optional string controller_code = 2; +} + +message CAccountHardware_GetSteamDeckComponents_Response { + optional string json_components = 1; +} + +service AccountHardware { + rpc RegisterSteamController (.CAccountHardware_RegisterSteamController_Request) returns (.CAccountHardware_RegisterSteamController_Response); + rpc CompleteSteamControllerRegistration (.CAccountHardware_CompleteSteamControllerRegistration_Request) returns (.CAccountHardware_CompleteSteamControllerRegistration_Response); + rpc QueryAccountsRegisteredToController (.CAccountHardware_QueryAccountsRegisteredToSerial_Request) returns (.CAccountHardware_QueryAccountsRegisteredToSerial_Response); + rpc SetDesiredControllerConfigForApp (.CAccountHardware_SteamControllerSetConfig_Request) returns (.CAccountHardware_SteamControllerSetConfig_Response); + rpc GetDesiredControllerConfigForApp (.CAccountHardware_SteamControllerGetConfig_Request) returns (.CAccountHardware_SteamControllerGetConfig_Response); + rpc DeRegisterSteamController (.CAccountHardware_DeRegisterSteamController_Request) returns (.CAccountHardware_DeRegisterSteamController_Response); + rpc SetControllerPersonalizationFile (.CAccountHardware_SetPersonalizationFile_Request) returns (.CAccountHardware_SetPersonalizationFile_Response); + rpc GetControllerPersonalizationFile (.CAccountHardware_GetPersonalizationFile_Request) returns (.CAccountHardware_GetPersonalizationFile_Response); + rpc VRCompatibilityCheck (.CAccountHardware_VRCompatibilityCheck_Request) returns (.CAccountHardware_VRCompatibilityCheck_Response); + rpc RegisterValveIndexComponent (.CAccountHardware_RegisterValveIndexComponent_Request) returns (.CAccountHardware_RegisterValveIndexComponent_Response); + rpc GetSteamDeckComponents (.CAccountHardware_GetSteamDeckComponents_Request) returns (.CAccountHardware_GetSteamDeckComponents_Response); +} diff --git a/Protobufs/steam/steammessages_appoverview.proto b/Protobufs/steam/steammessages_appoverview.proto new file mode 100644 index 0000000..9cab04d --- /dev/null +++ b/Protobufs/steam/steammessages_appoverview.proto @@ -0,0 +1,165 @@ +import "enums.proto"; + +option optimize_for = SPEED; +option cc_generic_services = true; + +enum EDisplayStatus { + k_EDisplayStatusInvalid = 0; + k_EDisplayStatusLaunching = 1; + k_EDisplayStatusUninstalling = 2; + k_EDisplayStatusInstalling = 3; + k_EDisplayStatusRunning = 4; + k_EDisplayStatusValidating = 5; + k_EDisplayStatusUpdating = 6; + k_EDisplayStatusDownloading = 7; + k_EDisplayStatusSynchronizing = 8; + k_EDisplayStatusReadyToInstall = 9; + k_EDisplayStatusReadyToPreload = 10; + k_EDisplayStatusReadyToLaunch = 11; + k_EDisplayStatusRegionRestricted = 12; + k_EDisplayStatusPresaleOnly = 13; + k_EDisplayStatusInvalidPlatform = 14; + k_EDisplayStatusPreloadComplete = 16; + k_EDisplayStatusBorrowerLocked = 17; + k_EDisplayStatusUpdatePaused = 18; + k_EDisplayStatusUpdateQueued = 19; + k_EDisplayStatusUpdateRequired = 20; + k_EDisplayStatusUpdateDisabled = 21; + k_EDisplayStatusDownloadPaused = 22; + k_EDisplayStatusDownloadQueued = 23; + k_EDisplayStatusDownloadRequired = 24; + k_EDisplayStatusDownloadDisabled = 25; + k_EDisplayStatusLicensePending = 26; + k_EDisplayStatusLicenseExpired = 27; + k_EDisplayStatusAvailForFree = 28; + k_EDisplayStatusAvailToBorrow = 29; + k_EDisplayStatusAvailGuestPass = 30; + k_EDisplayStatusPurchase = 31; + k_EDisplayStatusUnavailable = 32; + k_EDisplayStatusNotLaunchable = 33; + k_EDisplayStatusCloudError = 34; + k_EDisplayStatusCloudOutOfDate = 35; + k_EDisplayStatusTerminating = 36; + k_EDisplayStatusOwnerLocked = 37; + k_EDisplayStatusDownloadFailed = 38; + k_EDisplayStatusUpdateFailed = 39; +} + +enum EAppCloudStatus { + k_EAppCloudStatusInvalid = 0; + k_EAppCloudStatusDisabled = 1; + k_EAppCloudStatusUnknown = 2; + k_EAppCloudStatusSynchronized = 3; + k_EAppCloudStatusChecking = 4; + k_EAppCloudStatusOutOfSync = 5; + k_EAppCloudStatusUploading = 6; + k_EAppCloudStatusDownloading = 7; + k_EAppCloudStatusSyncFailed = 8; + k_EAppCloudStatusConflict = 9; + k_EAppCloudStatusPendingElsewhere = 10; +} + +enum EAppControllerSupportLevel { + k_EAppControllerSupportLevelNone = 0; + k_EAppControllerSupportLevelPartial = 1; + k_EAppControllerSupportLevelFull = 2; +} + +enum EAppGamepadGyroTrackpadSupportLevel { + k_EAppGamepadGyroTrackpadSupportLevelUnknown = -1; + k_EAppGamepadGyroTrackpadSupportLevelNoGamepad = 0; + k_EAppGamepadGyroTrackpadSupportLevelGamepad = 1; + k_EAppGamepadGyroTrackpadSupportLevelSimultaneous = 2; +} + +enum EAppHDRSupport { + k_EHDRSupport_Unknown = 0; + k_EHDRSupport_SDR = 1; + k_EHDRSupport_HDR = 2; + k_EHDRSupport_HDR_Broken = 3; + k_EHDRSupport_HDR_RequiresUserAction = 4; +} + +message CAppOverview_PerClientData { + optional uint64 clientid = 1 [default = 0]; + optional string client_name = 2; + optional .EDisplayStatus display_status = 3 [default = k_EDisplayStatusInvalid]; + optional uint32 status_percentage = 4 [default = 0]; + optional string active_beta = 5; + optional bool installed = 6; + optional uint64 bytes_downloaded = 7 [default = 0]; + optional uint64 bytes_total = 8 [default = 0]; + optional bool streaming_to_local_client = 9; + optional bool is_available_on_current_platform = 10; + optional bool is_invalid_os_type = 11; + optional uint32 playtime_left = 12; + optional bool update_available_but_disabled_by_app = 14; +} + +message CAppOverview { + optional uint32 appid = 1; + optional string display_name = 2; + optional bool visible_in_game_list = 4; + optional bool subscribed_to = 5; + optional string sort_as = 6; + optional .EProtoAppType app_type = 7 [default = k_EAppTypeInvalid]; + optional uint32 mru_index = 13; + optional uint32 rt_recent_activity_time = 14 [default = 0]; + optional uint32 minutes_playtime_forever = 16 [default = 0]; + optional uint32 minutes_playtime_last_two_weeks = 17 [default = 0]; + optional uint32 rt_last_time_played = 18 [default = 0]; + repeated uint32 store_tag = 19; + repeated uint32 store_category = 23; + optional uint32 rt_original_release_date = 25 [default = 0]; + optional uint32 rt_steam_release_date = 26 [default = 0]; + optional string icon_hash = 27; + optional .EAppControllerSupportLevel xbox_controller_support = 31 [default = k_EAppControllerSupportLevelNone]; + optional bool vr_supported = 32; + optional uint32 metacritic_score = 36; + optional uint64 size_on_disk = 37; + optional bool third_party_mod = 38; + optional string icon_data = 39; + optional string icon_data_format = 40; + optional string gameid = 41; + optional string library_capsule_filename = 42; + repeated .CAppOverview_PerClientData per_client_data = 43; + optional uint64 most_available_clientid = 44 [default = 0]; + optional uint64 selected_clientid = 45 [default = 0]; + optional uint32 rt_store_asset_mtime = 46; + optional uint32 rt_custom_image_mtime = 47; + optional uint32 optional_parent_app_id = 48; + optional uint32 owner_account_id = 49; + optional uint32 review_score_with_bombs = 53 [default = 0]; + optional uint32 review_percentage_with_bombs = 54 [default = 0]; + optional uint32 review_score_without_bombs = 55 [default = 0]; + optional uint32 review_percentage_without_bombs = 56 [default = 0]; + optional string library_id = 57; + optional bool vr_only = 58; + optional uint32 mastersub_appid = 59; + optional string mastersub_includedwith_logo = 60; + optional string site_license_site_name = 62; + optional uint32 shortcut_override_appid = 63; + optional uint32 rt_last_time_locally_played = 65; + optional uint32 rt_purchased_time = 66; + optional string header_filename = 67; + optional uint32 local_cache_version = 68; + optional uint32 number_of_copies = 72 [default = 1]; + optional uint32 steam_hw_compat_category_packed = 73 [default = 0]; +} + +message CAppOverview_Change { + repeated .CAppOverview app_overview = 1; + repeated uint32 removed_appid = 2; + optional bool full_update = 3; + optional bool update_complete = 4; +} + +message CAppBootstrapData { + optional uint32 appid = 1; + optional bool hidden = 2; + repeated string user_tag = 3; +} + +message CLibraryBootstrapData { + repeated .CAppBootstrapData app_data = 1; +} diff --git a/Protobufs/steam/steammessages_auth.steamclient.proto b/Protobufs/steam/steammessages_auth.steamclient.proto new file mode 100644 index 0000000..f946bfb --- /dev/null +++ b/Protobufs/steam/steammessages_auth.steamclient.proto @@ -0,0 +1,384 @@ +import "steammessages_base.proto"; +import "steammessages_unified_base.steamclient.proto"; +import "enums.proto"; + +option cc_generic_services = true; + +enum EAuthTokenPlatformType { + k_EAuthTokenPlatformType_Unknown = 0; + k_EAuthTokenPlatformType_SteamClient = 1; + k_EAuthTokenPlatformType_WebBrowser = 2; + k_EAuthTokenPlatformType_MobileApp = 3; +} + +enum EAuthSessionGuardType { + k_EAuthSessionGuardType_Unknown = 0; + k_EAuthSessionGuardType_None = 1; + k_EAuthSessionGuardType_EmailCode = 2; + k_EAuthSessionGuardType_DeviceCode = 3; + k_EAuthSessionGuardType_DeviceConfirmation = 4; + k_EAuthSessionGuardType_EmailConfirmation = 5; + k_EAuthSessionGuardType_MachineToken = 6; + k_EAuthSessionGuardType_LegacyMachineAuth = 7; +} + +enum EAuthSessionSecurityHistory { + k_EAuthSessionSecurityHistory_Invalid = 0; + k_EAuthSessionSecurityHistory_UsedPreviously = 1; + k_EAuthSessionSecurityHistory_NoPriorHistory = 2; +} + +enum ETokenRenewalType { + k_ETokenRenewalType_None = 0; + k_ETokenRenewalType_Allow = 1; +} + +enum EAuthenticationType { + k_EAuthenticationType_Unknown = 0; + k_EAuthenticationType_Password = 1; + k_EAuthenticationType_QR = 2; + k_EAuthenticationType_AccountCreation = 3; + k_EAuthenticationType_GuestAccount = 4; +} + +enum EAuthTokenRevokeAction { + k_EAuthTokenRevokeLogout = 0; + k_EAuthTokenRevokePermanent = 1; + k_EAuthTokenRevokeReplaced = 2; + k_EAuthTokenRevokeSupport = 3; + k_EAuthTokenRevokeConsume = 4; + k_EAuthTokenRevokeNonRememberedLogout = 5; + k_EAuthTokenRevokeNonRememberedPermanent = 6; + k_EAuthTokenRevokeAutomatic = 7; +} + +enum EAuthTokenState { + k_EAuthTokenState_Invalid = 0; + k_EAuthTokenState_New = 1; + k_EAuthTokenState_Confirmed = 2; + k_EAuthTokenState_Issued = 3; + k_EAuthTokenState_Denied = 4; + k_EAuthTokenState_LoggedOut = 5; + k_EAuthTokenState_Consumed = 6; + k_EAuthTokenState_Revoked = 99; +} + +message CAuthentication_GetPasswordRSAPublicKey_Request { + optional string account_name = 1; +} + +message CAuthentication_GetPasswordRSAPublicKey_Response { + optional string publickey_mod = 1; + optional string publickey_exp = 2; + optional uint64 timestamp = 3; +} + +message CAuthentication_DeviceDetails { + optional string device_friendly_name = 1; + optional .EAuthTokenPlatformType platform_type = 2 [default = k_EAuthTokenPlatformType_Unknown]; + optional int32 os_type = 3; + optional uint32 gaming_device_type = 4; + optional uint32 client_count = 5; + optional bytes machine_id = 6; +} + +message CAuthentication_BeginAuthSessionViaQR_Request { + optional string device_friendly_name = 1; + optional .EAuthTokenPlatformType platform_type = 2 [default = k_EAuthTokenPlatformType_Unknown]; + optional .CAuthentication_DeviceDetails device_details = 3; + optional string website_id = 4 [default = "Unknown"]; +} + +message CAuthentication_AllowedConfirmation { + optional .EAuthSessionGuardType confirmation_type = 1 [default = k_EAuthSessionGuardType_Unknown]; + optional string associated_message = 2; +} + +message CAuthentication_BeginAuthSessionViaQR_Response { + optional uint64 client_id = 1; + optional string challenge_url = 2; + optional bytes request_id = 3; + optional float interval = 4; + repeated .CAuthentication_AllowedConfirmation allowed_confirmations = 5; + optional int32 version = 6; +} + +message CAuthentication_BeginAuthSessionViaCredentials_Request { + optional string device_friendly_name = 1; + optional string account_name = 2; + optional string encrypted_password = 3; + optional uint64 encryption_timestamp = 4; + optional bool remember_login = 5; + optional .EAuthTokenPlatformType platform_type = 6 [default = k_EAuthTokenPlatformType_Unknown]; + optional .ESessionPersistence persistence = 7 [default = k_ESessionPersistence_Persistent]; + optional string website_id = 8 [default = "Unknown"]; + optional .CAuthentication_DeviceDetails device_details = 9; + optional string guard_data = 10; + optional uint32 language = 11; + optional int32 qos_level = 12 [default = 2]; +} + +message CAuthentication_BeginAuthSessionViaCredentials_Response { + optional uint64 client_id = 1; + optional bytes request_id = 2; + optional float interval = 3; + repeated .CAuthentication_AllowedConfirmation allowed_confirmations = 4; + optional uint64 steamid = 5; + optional string weak_token = 6; + optional string agreement_session_url = 7; + optional string extended_error_message = 8; +} + +message CAuthentication_PollAuthSessionStatus_Request { + optional uint64 client_id = 1; + optional bytes request_id = 2; + optional fixed64 token_to_revoke = 3; +} + +message CAuthentication_PollAuthSessionStatus_Response { + optional uint64 new_client_id = 1; + optional string new_challenge_url = 2; + optional string refresh_token = 3; + optional string access_token = 4; + optional bool had_remote_interaction = 5; + optional string account_name = 6; + optional string new_guard_data = 7; + optional string agreement_session_url = 8; +} + +message CAuthentication_GetAuthSessionInfo_Request { + optional uint64 client_id = 1; +} + +message CAuthentication_GetAuthSessionInfo_Response { + optional string ip = 1; + optional string geoloc = 2; + optional string city = 3; + optional string state = 4; + optional string country = 5; + optional .EAuthTokenPlatformType platform_type = 6 [default = k_EAuthTokenPlatformType_Unknown]; + optional string device_friendly_name = 7; + optional int32 version = 8; + optional .EAuthSessionSecurityHistory login_history = 9 [default = k_EAuthSessionSecurityHistory_Invalid]; + optional bool requestor_location_mismatch = 10; + optional bool high_usage_login = 11; + optional .ESessionPersistence requested_persistence = 12 [default = k_ESessionPersistence_Invalid]; +} + +message CAuthentication_UpdateAuthSessionWithMobileConfirmation_Request { + optional int32 version = 1; + optional uint64 client_id = 2; + optional fixed64 steamid = 3; + optional bytes signature = 4; + optional bool confirm = 5 [default = false]; + optional .ESessionPersistence persistence = 6 [default = k_ESessionPersistence_Persistent]; +} + +message CAuthentication_UpdateAuthSessionWithMobileConfirmation_Response { +} + +message CAuthentication_UpdateAuthSessionWithSteamGuardCode_Request { + optional uint64 client_id = 1; + optional fixed64 steamid = 2; + optional string code = 3; + optional .EAuthSessionGuardType code_type = 4 [default = k_EAuthSessionGuardType_Unknown]; +} + +message CAuthentication_UpdateAuthSessionWithSteamGuardCode_Response { + optional string agreement_session_url = 7; +} + +message CAuthentication_AccessToken_GenerateForApp_Request { + optional string refresh_token = 1; + optional fixed64 steamid = 2; + optional .ETokenRenewalType renewal_type = 3 [default = k_ETokenRenewalType_None]; +} + +message CAuthentication_AccessToken_GenerateForApp_Response { + optional string access_token = 1; + optional string refresh_token = 2; +} + +message CAuthentication_RefreshToken_Enumerate_Request { +} + +message CAuthentication_RefreshToken_Enumerate_Response { + message TokenUsageEvent { + optional uint32 time = 1; + optional .CMsgIPAddress ip = 2; + optional string locale = 3; + optional string country = 4; + optional string state = 5; + optional string city = 6; + } + + message RefreshTokenDescription { + optional fixed64 token_id = 1; + optional string token_description = 2; + optional uint32 time_updated = 3; + optional .EAuthTokenPlatformType platform_type = 4 [default = k_EAuthTokenPlatformType_Unknown]; + optional bool logged_in = 5; + optional uint32 os_platform = 6; + optional uint32 auth_type = 7; + optional uint32 gaming_device_type = 8; + optional .CAuthentication_RefreshToken_Enumerate_Response.TokenUsageEvent first_seen = 9; + optional .CAuthentication_RefreshToken_Enumerate_Response.TokenUsageEvent last_seen = 10; + optional int32 os_type = 11; + optional .EAuthenticationType authentication_type = 12 [default = k_EAuthenticationType_Unknown]; + } + + repeated .CAuthentication_RefreshToken_Enumerate_Response.RefreshTokenDescription refresh_tokens = 1; + optional fixed64 requesting_token = 2; +} + +message CAuthentication_GetAuthSessionsForAccount_Request { +} + +message CAuthentication_GetAuthSessionsForAccount_Response { + repeated uint64 client_ids = 1; +} + +message CAuthentication_MigrateMobileSession_Request { + optional fixed64 steamid = 1; + optional string token = 2; + optional string signature = 3; +} + +message CAuthentication_MigrateMobileSession_Response { + optional string refresh_token = 1; + optional string access_token = 2; +} + +message CAuthentication_Token_Revoke_Request { + optional string token = 1; + optional .EAuthTokenRevokeAction revoke_action = 2 [default = k_EAuthTokenRevokePermanent]; +} + +message CAuthentication_Token_Revoke_Response { +} + +message CAuthentication_RefreshToken_Revoke_Request { + optional fixed64 token_id = 1; + optional fixed64 steamid = 2; + optional .EAuthTokenRevokeAction revoke_action = 3 [default = k_EAuthTokenRevokePermanent]; + optional bytes signature = 4; +} + +message CAuthentication_RefreshToken_Revoke_Response { +} + +message CAuthenticationSupport_QueryRefreshTokensByAccount_Request { + optional fixed64 steamid = 1; + optional bool include_revoked_tokens = 2; +} + +message CSupportRefreshTokenDescription { + message TokenUsageEvent { + optional uint32 time = 1; + optional .CMsgIPAddress ip = 2; + optional string country = 3; + optional string state = 4; + optional string city = 5; + } + + optional fixed64 token_id = 1; + optional string token_description = 2; + optional uint32 time_updated = 3; + optional .EAuthTokenPlatformType platform_type = 4 [default = k_EAuthTokenPlatformType_Unknown]; + optional .EAuthTokenState token_state = 5 [default = k_EAuthTokenState_Invalid]; + optional fixed64 owner_steamid = 6; + optional uint32 os_platform = 7; + optional int32 os_type = 8; + optional uint32 auth_type = 9; + optional uint32 gaming_device_type = 10; + optional .CSupportRefreshTokenDescription.TokenUsageEvent first_seen = 11; + optional .CSupportRefreshTokenDescription.TokenUsageEvent last_seen = 12; +} + +message CAuthenticationSupport_QueryRefreshTokensByAccount_Response { + repeated .CSupportRefreshTokenDescription refresh_tokens = 1; + optional int32 last_token_reset = 2; +} + +message CAuthenticationSupport_QueryRefreshTokenByID_Request { + optional fixed64 token_id = 1; +} + +message CAuthenticationSupport_QueryRefreshTokenByID_Response { + repeated .CSupportRefreshTokenDescription refresh_tokens = 1; +} + +message CAuthenticationSupport_RevokeToken_Request { + optional fixed64 token_id = 1; + optional fixed64 steamid = 2; +} + +message CAuthenticationSupport_RevokeToken_Response { +} + +message CAuthenticationSupport_GetTokenHistory_Request { + optional fixed64 token_id = 1; +} + +message CSupportRefreshTokenAudit { + optional int32 action = 1; + optional uint32 time = 2; + optional .CMsgIPAddress ip = 3; + optional fixed64 actor = 4; +} + +message CAuthenticationSupport_GetTokenHistory_Response { + repeated .CSupportRefreshTokenAudit history = 1; +} + +message CCloudGaming_CreateNonce_Request { + optional string platform = 1; + optional uint32 appid = 2; +} + +message CCloudGaming_CreateNonce_Response { + optional string nonce = 1; + optional uint32 expiry = 2; +} + +message CCloudGaming_GetTimeRemaining_Request { + optional string platform = 1; + repeated uint32 appid_list = 2; +} + +message CCloudGaming_TimeRemaining { + optional uint32 appid = 1; + optional uint32 minutes_remaining = 2; +} + +message CCloudGaming_GetTimeRemaining_Response { + repeated .CCloudGaming_TimeRemaining entries = 2; +} + +service Authentication { + rpc GetPasswordRSAPublicKey (.CAuthentication_GetPasswordRSAPublicKey_Request) returns (.CAuthentication_GetPasswordRSAPublicKey_Response); + rpc BeginAuthSessionViaQR (.CAuthentication_BeginAuthSessionViaQR_Request) returns (.CAuthentication_BeginAuthSessionViaQR_Response); + rpc BeginAuthSessionViaCredentials (.CAuthentication_BeginAuthSessionViaCredentials_Request) returns (.CAuthentication_BeginAuthSessionViaCredentials_Response); + rpc PollAuthSessionStatus (.CAuthentication_PollAuthSessionStatus_Request) returns (.CAuthentication_PollAuthSessionStatus_Response); + rpc GetAuthSessionInfo (.CAuthentication_GetAuthSessionInfo_Request) returns (.CAuthentication_GetAuthSessionInfo_Response); + rpc UpdateAuthSessionWithMobileConfirmation (.CAuthentication_UpdateAuthSessionWithMobileConfirmation_Request) returns (.CAuthentication_UpdateAuthSessionWithMobileConfirmation_Response); + rpc UpdateAuthSessionWithSteamGuardCode (.CAuthentication_UpdateAuthSessionWithSteamGuardCode_Request) returns (.CAuthentication_UpdateAuthSessionWithSteamGuardCode_Response); + rpc GenerateAccessTokenForApp (.CAuthentication_AccessToken_GenerateForApp_Request) returns (.CAuthentication_AccessToken_GenerateForApp_Response); + rpc EnumerateTokens (.CAuthentication_RefreshToken_Enumerate_Request) returns (.CAuthentication_RefreshToken_Enumerate_Response); + rpc GetAuthSessionsForAccount (.CAuthentication_GetAuthSessionsForAccount_Request) returns (.CAuthentication_GetAuthSessionsForAccount_Response); + rpc MigrateMobileSession (.CAuthentication_MigrateMobileSession_Request) returns (.CAuthentication_MigrateMobileSession_Response); + rpc RevokeToken (.CAuthentication_Token_Revoke_Request) returns (.CAuthentication_Token_Revoke_Response); + rpc RevokeRefreshToken (.CAuthentication_RefreshToken_Revoke_Request) returns (.CAuthentication_RefreshToken_Revoke_Response); +} + +service AuthenticationSupport { + rpc QueryRefreshTokensByAccount (.CAuthenticationSupport_QueryRefreshTokensByAccount_Request) returns (.CAuthenticationSupport_QueryRefreshTokensByAccount_Response); + rpc QueryRefreshTokenByID (.CAuthenticationSupport_QueryRefreshTokenByID_Request) returns (.CAuthenticationSupport_QueryRefreshTokenByID_Response); + rpc RevokeToken (.CAuthenticationSupport_RevokeToken_Request) returns (.CAuthenticationSupport_RevokeToken_Response); + rpc GetTokenHistory (.CAuthenticationSupport_GetTokenHistory_Request) returns (.CAuthenticationSupport_GetTokenHistory_Response); +} + +service CloudGaming { + rpc CreateNonce (.CCloudGaming_CreateNonce_Request) returns (.CCloudGaming_CreateNonce_Response); + rpc GetTimeRemaining (.CCloudGaming_GetTimeRemaining_Request) returns (.CCloudGaming_GetTimeRemaining_Response); +} diff --git a/Protobufs/steam/steammessages_base.proto b/Protobufs/steam/steammessages_base.proto new file mode 100644 index 0000000..e1d8f47 --- /dev/null +++ b/Protobufs/steam/steammessages_base.proto @@ -0,0 +1,335 @@ +import "google/protobuf/descriptor.proto"; + +option optimize_for = SPEED; +option cc_generic_services = true; +option (force_php_generation) = true; + +extend .google.protobuf.MessageOptions { + optional int32 msgpool_soft_limit = 50000 [default = 32]; + optional int32 msgpool_hard_limit = 50001 [default = 384]; +} + +extend .google.protobuf.FileOptions { + optional bool force_php_generation = 50000 [default = false]; +} + +extend .google.protobuf.FieldOptions { + optional bool php_output_always_number = 50020 [default = false]; + optional bool allow_field_named_steam_id = 50024 [default = false]; +} + +enum EBanContentCheckResult { + k_EBanContentCheckResult_NotScanned = 0; + k_EBanContentCheckResult_Reset = 1; + k_EBanContentCheckResult_NeedsChecking = 2; + k_EBanContentCheckResult_VeryUnlikely = 5; + k_EBanContentCheckResult_Unlikely = 30; + k_EBanContentCheckResult_Possible = 50; + k_EBanContentCheckResult_Likely = 75; + k_EBanContentCheckResult_VeryLikely = 100; +} + +enum EProtoClanEventType { + k_EClanOtherEvent = 1; + k_EClanGameEvent = 2; + k_EClanPartyEvent = 3; + k_EClanMeetingEvent = 4; + k_EClanSpecialCauseEvent = 5; + k_EClanMusicAndArtsEvent = 6; + k_EClanSportsEvent = 7; + k_EClanTripEvent = 8; + k_EClanChatEvent = 9; + k_EClanGameReleaseEvent = 10; + k_EClanBroadcastEvent = 11; + k_EClanSmallUpdateEvent = 12; + k_EClanPreAnnounceMajorUpdateEvent = 13; + k_EClanMajorUpdateEvent = 14; + k_EClanDLCReleaseEvent = 15; + k_EClanFutureReleaseEvent = 16; + k_EClanESportTournamentStreamEvent = 17; + k_EClanDevStreamEvent = 18; + k_EClanFamousStreamEvent = 19; + k_EClanGameSalesEvent = 20; + k_EClanGameItemSalesEvent = 21; + k_EClanInGameBonusXPEvent = 22; + k_EClanInGameLootEvent = 23; + k_EClanInGamePerksEvent = 24; + k_EClanInGameChallengeEvent = 25; + k_EClanInGameContestEvent = 26; + k_EClanIRLEvent = 27; + k_EClanNewsEvent = 28; + k_EClanBetaReleaseEvent = 29; + k_EClanInGameContentReleaseEvent = 30; + k_EClanFreeTrial = 31; + k_EClanSeasonRelease = 32; + k_EClanSeasonUpdate = 33; + k_EClanCrosspostEvent = 34; + k_EClanInGameEventGeneral = 35; +} + +enum PartnerEventNotificationType { + k_EEventStart = 0; + k_EEventBroadcastStart = 1; + k_EEventMatchStart = 2; + k_EEventPartnerMaxType = 3; +} + +message CMsgIPAddress { + oneof ip { + fixed32 v4 = 1; + bytes v6 = 2; + } +} + +message CMsgIPAddressBucket { + optional .CMsgIPAddress original_ip_address = 1; + optional fixed64 bucket = 2; +} + +message CMsgGCRoutingProtoBufHeader { + optional uint64 dst_gcid_queue = 1; + optional uint32 dst_gc_dir_index = 2; +} + +message CMsgProtoBufHeader { + enum ESessionDisposition { + k_ESessionDispositionNormal = 0; + k_ESessionDispositionDisconnect = 1; + } + + optional fixed64 steamid = 1; + optional int32 client_sessionid = 2; + optional uint32 routing_appid = 3; + optional fixed64 jobid_source = 10 [default = 18446744073709551615]; + optional fixed64 jobid_target = 11 [default = 18446744073709551615]; + optional string target_job_name = 12; + optional int32 seq_num = 24; + optional int32 eresult = 13 [default = 2]; + optional string error_message = 14; + optional uint32 auth_account_flags = 16; + optional uint32 token_source = 22; + optional bool admin_spoofing_user = 23; + optional int32 transport_error = 17 [default = 1]; + optional uint64 messageid = 18 [default = 18446744073709551615]; + optional uint32 publisher_group_id = 19; + optional uint32 sysid = 20; + optional uint64 trace_tag = 21; + optional uint32 webapi_key_id = 25; + optional bool is_from_external_source = 26; + repeated uint32 forward_to_sysid = 27; + optional uint32 cm_sysid = 28; + optional uint32 launcher_type = 31 [default = 0]; + optional uint32 realm = 32 [default = 0]; + optional int32 timeout_ms = 33 [default = -1]; + optional string debug_source = 34; + optional uint32 debug_source_string_index = 35; + optional uint64 token_id = 36; + optional .CMsgGCRoutingProtoBufHeader routing_gc = 37; + optional .CMsgProtoBufHeader.ESessionDisposition session_disposition = 38 [default = k_ESessionDispositionNormal]; + optional string wg_token = 39; + optional string webui_auth_key = 40; + repeated int32 exclude_client_sessionids = 41; + + oneof ip_addr { + uint32 ip = 15; + bytes ip_v6 = 29; + } +} + +message CMsgMulti { + optional uint32 size_unzipped = 1; + optional bytes message_body = 2; +} + +message CMsgProtobufWrapped { + optional bytes message_body = 1; +} + +message CMsgAuthTicket { + optional uint32 estate = 1; + optional uint32 eresult = 2 [default = 2]; + optional fixed64 steamid = 3; + optional fixed64 gameid = 4; + optional uint32 h_steam_pipe = 5; + optional uint32 ticket_crc = 6; + optional bytes ticket = 7; + optional bytes server_secret = 8; + optional uint32 ticket_type = 9; +} + +message CCDDBAppDetailCommon { + optional uint32 appid = 1; + optional string name = 2; + optional string icon = 3; + optional bool tool = 6; + optional bool demo = 7; + optional bool media = 8; + optional bool community_visible_stats = 9; + optional string friendly_name = 10; + optional string propagation = 11; + optional bool has_adult_content = 12; + optional bool is_visible_in_steam_china = 13; + optional uint32 app_type = 14; + optional bool has_adult_content_sex = 15; + optional bool has_adult_content_violence = 16; + repeated uint32 content_descriptorids = 17; +} + +message CMsgAppRights { + optional bool edit_info = 1; + optional bool publish = 2; + optional bool view_error_data = 3; + optional bool download = 4; + optional bool upload_cdkeys = 5; + optional bool generate_cdkeys = 6; + optional bool view_financials = 7; + optional bool manage_ceg = 8; + optional bool manage_signing = 9; + optional bool manage_cdkeys = 10; + optional bool edit_marketing = 11; + optional bool economy_support = 12; + optional bool economy_support_supervisor = 13; + optional bool manage_pricing = 14; + optional bool broadcast_live = 15; + optional bool view_marketing_traffic = 16; + optional bool edit_store_display_content = 17; +} + +message CCuratorPreferences { + optional uint32 supported_languages = 1; + optional bool platform_windows = 2; + optional bool platform_mac = 3; + optional bool platform_linux = 4; + optional bool vr_content = 5; + optional bool adult_content_violence = 6; + optional bool adult_content_sex = 7; + optional uint32 timestamp_updated = 8; + repeated uint32 tagids_curated = 9; + repeated uint32 tagids_filtered = 10; + optional string website_title = 11; + optional string website_url = 12; + optional string discussion_url = 13; + optional bool show_broadcast = 14; +} + +message CLocalizationToken { + optional uint32 language = 1; + optional string localized_string = 2; +} + +message CClanEventUserNewsTuple { + optional uint32 clanid = 1; + optional fixed64 event_gid = 2; + optional fixed64 announcement_gid = 3; + optional uint32 rtime_start = 4; + optional uint32 rtime_end = 5; + optional uint32 priority_score = 6; + optional uint32 type = 7; + optional uint32 clamp_range_slot = 8; + optional uint32 appid = 9; + optional uint32 rtime32_last_modified = 10; +} + +message CClanMatchEventByRange { + optional uint32 rtime_before = 1; + optional uint32 rtime_after = 2; + optional uint32 qualified = 3; + repeated .CClanEventUserNewsTuple events = 4; +} + +message CCommunity_ClanAnnouncementInfo { + optional uint64 gid = 1; + optional uint64 clanid = 2; + optional uint64 posterid = 3; + optional string headline = 4; + optional uint32 posttime = 5; + optional uint32 updatetime = 6; + optional string body = 7; + optional int32 commentcount = 8; + repeated string tags = 9; + optional int32 language = 10; + optional bool hidden = 11; + optional fixed64 forum_topic_id = 12; + optional fixed64 event_gid = 13; + optional int32 voteupcount = 14; + optional int32 votedowncount = 15; + optional .EBanContentCheckResult ban_check_result = 16 [default = k_EBanContentCheckResult_NotScanned]; + optional bool banned = 17; +} + +message CClanEventData { + optional fixed64 gid = 1; + optional fixed64 clan_steamid = 2; + optional string event_name = 3; + optional .EProtoClanEventType event_type = 4 [default = k_EClanOtherEvent]; + optional uint32 appid = 5; + optional string server_address = 6; + optional string server_password = 7; + optional uint32 rtime32_start_time = 8; + optional uint32 rtime32_end_time = 9; + optional int32 comment_count = 10; + optional fixed64 creator_steamid = 11; + optional fixed64 last_update_steamid = 12; + optional string event_notes = 13; + optional string jsondata = 14; + optional .CCommunity_ClanAnnouncementInfo announcement_body = 15; + optional bool published = 16; + optional bool hidden = 17; + optional uint32 rtime32_visibility_start = 18; + optional uint32 rtime32_visibility_end = 19; + optional uint32 broadcaster_accountid = 20; + optional uint32 follower_count = 21; + optional uint32 ignore_count = 22; + optional fixed64 forum_topic_id = 23; + optional uint32 rtime32_last_modified = 24; + optional fixed64 news_post_gid = 25; + optional uint32 rtime_mod_reviewed = 26; + optional uint32 featured_app_tagid = 27; + repeated uint32 referenced_appids = 28; + optional uint32 build_id = 29; + optional string build_branch = 30; +} + +message CBilling_Address { + optional string first_name = 1; + optional string last_name = 2; + optional string address1 = 3; + optional string address2 = 4; + optional string city = 5; + optional string us_state = 6; + optional string country_code = 7; + optional string postcode = 8; + optional int32 zip_plus4 = 9; + optional string phone = 10; +} + +message CPackageReservationStatus { + optional uint32 packageid = 1; + optional int32 reservation_state = 2; + optional int32 queue_position = 3; + optional int32 total_queue_size = 4; + optional string reservation_country_code = 5; + optional bool expired = 6; + optional uint32 time_expires = 7; + optional uint32 time_reserved = 8; + optional uint32 rtime_estimated_notification = 9; + optional string notificaton_token = 10; +} + +message CMsgKeyValuePair { + optional string name = 1; + optional string value = 2; +} + +message CMsgKeyValueSet { + repeated .CMsgKeyValuePair pairs = 1; +} + +message UserContentDescriptorPreferences { + message ContentDescriptor { + optional uint32 content_descriptorid = 1; + optional uint32 timestamp_added = 2; + } + + repeated .UserContentDescriptorPreferences.ContentDescriptor content_descriptors_to_exclude = 1; +} diff --git a/Protobufs/steam/steammessages_broadcast.steamclient.proto b/Protobufs/steam/steammessages_broadcast.steamclient.proto new file mode 100644 index 0000000..dd49b3a --- /dev/null +++ b/Protobufs/steam/steammessages_broadcast.steamclient.proto @@ -0,0 +1,618 @@ +import "steammessages_base.proto"; +import "steammessages_unified_base.steamclient.proto"; + +option cc_generic_services = true; + +enum EBroadcastWatchLocation { + k_EBroadcastWatchLocation_Invalid = 0; + k_EBroadcastWatchLocation_SteamTV_Tab = 1; + k_EBroadcastWatchLocation_SteamTV_WatchParty = 2; + k_EBroadcastWatchLocation_Chat_Tab = 3; + k_EBroadcastWatchLocation_Chat_WatchParty = 4; + k_EBroadcastWatchLocation_CommunityPage = 5; + k_EBroadcastWatchLocation_StoreAppPage = 6; + k_EBroadcastWatchLocation_InGame = 7; + k_EBroadcastWatchLocation_BigPicture = 8; + k_EBroadcastWatchLocation_SalesPage = 9; + k_EBroadcastWatchLocation_CuratorPage = 10; + k_EBroadcastWatchLocation_DeveloperPage = 11; + k_EBroadcastWatchLocation_Chat_Friends = 12; + k_EBroadcastWatchLocation_SteamTV_Web = 13; + k_EBroadcastWatchLocation_DesktopUI_Overlay = 14; +} + +enum EBroadcastChatPermission { + k_EBroadcastChatPermissionPublic = 0; + k_EBroadcastChatPermissionOwnsApp = 1; +} + +message CBroadcast_BeginBroadcastSession_Request { + optional int32 permission = 1; + optional uint64 gameid = 2; + optional uint64 client_instance_id = 3; + optional string title = 4; + optional uint32 cellid = 5; + optional uint64 rtmp_token = 6; + optional bool thumbnail_upload = 7; + optional uint32 sysid = 9; + optional bool allow_webrtc = 10; +} + +message CBroadcast_BeginBroadcastSession_Response { + optional fixed64 broadcast_id = 1; + optional string thumbnail_upload_address = 2; + optional string thumbnail_upload_token = 3; + optional uint32 thumbnail_interval_seconds = 4; + optional uint32 heartbeat_interval_seconds = 5; +} + +message CBroadcast_EndBroadcastSession_Request { + optional fixed64 broadcast_id = 1; +} + +message CBroadcast_EndBroadcastSession_Response { +} + +message CBroadcast_StartBroadcastUpload_Request { + optional fixed64 broadcast_id = 1; + optional uint32 cellid = 2; + optional bool as_rtmp = 3; + optional uint32 delay_seconds = 4; + optional uint64 rtmp_token = 5 [default = 0]; + optional uint32 upload_ip_address = 6; + optional bool is_replay = 7; + optional uint32 sysid = 8; +} + +message CBroadcast_StartBroadcastUpload_Response { + optional string upload_token = 1; + optional string upload_address = 2; + optional fixed64 broadcast_upload_id = 3; + optional bool enable_replay = 6; + optional string http_address = 7; +} + +message CBroadcast_NotifyBroadcastUploadStop_Notification { + optional fixed64 broadcast_upload_id = 1; + optional uint32 upload_result = 2; +} + +message CBroadcast_WatchBroadcast_Request { + optional fixed64 steamid = 1; + optional fixed64 existing_broadcast_id = 2; + optional fixed64 viewer_token = 3; + optional uint32 client_cell = 5; + optional .EBroadcastWatchLocation watch_location = 6 [default = k_EBroadcastWatchLocation_Invalid]; + optional bool is_webrtc = 7; +} + +message CBroadcast_WatchBroadcast_Response { + enum EWatchResponse { + k_EWatchResponseReady = 1; + k_EWatchResponseNotAvailable = 2; + k_EWatchResponseWaitingForApproval = 3; + k_EWatchResponseWaitingForStart = 4; + k_EWatchResponseInvalidSession = 5; + k_EWatchResponseTooManyBroadcasts = 6; + k_EWatchResponseWaitingForReconnect = 7; + k_EWatchResponseSystemNotSupported = 8; + k_EWatchResponseUserRestricted = 9; + k_EWatchResponseClientOutOfDate = 10; + k_EWatchResponsePoorUploadQuality = 11; + k_EWatchResponseMissingSubscription = 12; + k_EWatchResponseTooManyViewers = 13; + } + + optional .CBroadcast_WatchBroadcast_Response.EWatchResponse response = 1 [default = k_EWatchResponseReady]; + optional string mpd_url = 2; + optional fixed64 broadcast_id = 3; + optional uint64 gameid = 4; + optional string title = 5; + optional uint32 num_viewers = 6; + optional int32 permission = 7; + optional bool is_rtmp = 8; + optional int32 seconds_delay = 9; + optional fixed64 viewer_token = 10; + optional string hls_m3u8_master_url = 11; + optional int32 heartbeat_interval = 12; + optional string thumbnail_url = 13; + optional bool is_webrtc = 14; + optional fixed64 webrtc_session_id = 15; + optional string webrtc_offer_sdp = 16; + optional string webrtc_turn_server = 17; + optional bool is_replay = 18; + optional int32 duration = 19; + optional string cdn_auth_url_parameters = 20; +} + +message CBroadcast_HeartbeatBroadcast_Notification { + optional fixed64 steamid = 1; + optional fixed64 broadcast_id = 2; + optional fixed64 viewer_token = 3; + optional uint32 representation = 4; +} + +message CBroadcast_StopWatchingBroadcast_Notification { + optional fixed64 steamid = 1; + optional fixed64 broadcast_id = 2; + optional fixed64 viewer_token = 3; +} + +message CBroadcast_GetBroadcastStatus_Request { + optional fixed64 steamid = 1; + optional fixed64 broadcast_id = 2; +} + +message CBroadcast_GetBroadcastStatus_Response { + optional uint64 gameid = 1; + optional string title = 2; + optional uint32 num_viewers = 3; + optional int32 permission = 4; + optional bool is_rtmp = 5; + optional int32 seconds_delay = 6; + optional bool is_publisher = 7; + optional string thumbnail_url = 8; + optional int32 update_interval = 9; + optional bool is_uploading = 10; + optional uint32 duration = 11; + optional bool is_replay = 12; + optional bool is_capturing_vod = 13; + optional bool is_store_whitelisted = 14; +} + +message CBroadcast_GetBroadcastThumbnail_Request { + optional fixed64 steamid = 1; + optional fixed64 broadcast_id = 2; +} + +message CBroadcast_GetBroadcastThumbnail_Response { + optional string thumbnail_url = 1; + optional int32 update_interval = 2; + optional int32 num_viewers = 3; + optional int32 duration = 4; +} + +message CBroadcast_InviteToBroadcast_Request { + optional fixed64 steamid = 1; + optional bool approval_response = 2; +} + +message CBroadcast_InviteToBroadcast_Response { + optional bool success = 1; +} + +message CBroadcast_SendBroadcastStateToServer_Request { + optional int32 permission = 1; + optional uint64 gameid = 2; + optional string title = 3; + optional string game_data_config = 4; +} + +message CBroadcast_SendBroadcastStateToServer_Response { +} + +message CBroadcast_NotifyBroadcastSessionHeartbeat_Notification { + optional fixed64 broadcast_id = 1; +} + +message CBroadcast_GetBroadcastChatInfo_Request { + optional fixed64 steamid = 1; + optional fixed64 broadcast_id = 2; + optional uint32 client_ip = 3; + optional uint32 client_cell = 4; +} + +message CBroadcast_GetBroadcastChatInfo_Response { + optional fixed64 chat_id = 1; + optional string view_url_template = 3; + repeated uint32 flair_group_ids = 4; +} + +message CBroadcast_PostChatMessage_Request { + optional fixed64 chat_id = 1; + optional string message = 2; + optional uint32 instance_id = 3; + optional uint32 language = 4 [default = 0]; + optional string country_code = 5; +} + +message CBroadcast_PostChatMessage_Response { + optional string persona_name = 1; + optional bool in_game = 2; + optional int32 result = 3; + optional int32 cooldown_time_seconds = 4; +} + +message CBroadcast_UpdateChatMessageFlair_Request { + optional fixed64 chat_id = 1; + optional string flair = 2; +} + +message CBroadcast_UpdateChatMessageFlair_Response { + optional int32 result = 1; + optional fixed64 chat_id = 2; + optional string flair = 3; +} + +message CBroadcast_MuteBroadcastChatUser_Request { + optional fixed64 chat_id = 1; + optional fixed64 user_steamid = 2; + optional bool muted = 3; +} + +message CBroadcast_MuteBroadcastChatUser_Response { +} + +message CBroadcast_RemoveUserChatText_Request { + optional fixed64 chat_id = 1; + optional fixed64 user_steamid = 2; +} + +message CBroadcast_RemoveUserChatText_Response { +} + +message CBroadcast_GetBroadcastChatUserNames_Request { + optional fixed64 chat_id = 1; + repeated fixed64 user_steamid = 2; +} + +message CBroadcast_GetBroadcastChatUserNames_Response { + message PersonaName { + optional fixed64 steam_id = 1 [(allow_field_named_steam_id) = true]; + optional string persona = 2; + } + + repeated .CBroadcast_GetBroadcastChatUserNames_Response.PersonaName persona_names = 1; +} + +message CBroadcast_StartBuildClip_Request { + optional fixed64 steamid = 1; + optional fixed64 broadcast_session_id = 2; + optional int32 first_segment = 3; + optional int32 num_segments = 4; + optional string clip_description = 5; +} + +message CBroadcast_StartBuildClip_Response { + optional fixed64 broadcast_clip_id = 1; +} + +message CBroadcast_GetBuildClipStatus_Request { + optional fixed64 broadcast_clip_id = 1; +} + +message CBroadcast_GetBuildClipStatus_Response { +} + +message CBroadcast_SetClipDetails_Request { + optional uint64 broadcast_clip_id = 1; + optional uint32 start_time = 2; + optional uint32 end_time = 3; + optional string video_description = 4; +} + +message CBroadcast_SetClipDetails_Response { +} + +message CBroadcast_GetClipDetails_Request { + optional uint64 broadcast_clip_id = 1; +} + +message CBroadcast_GetClipDetails_Response { + optional uint64 broadcast_clip_id = 1; + optional uint64 video_id = 2; + optional uint64 channel_id = 3; + optional uint32 app_id = 4; + optional uint32 accountid_broadcaster = 5; + optional uint32 accountid_clipmaker = 6; + optional string video_description = 7; + optional uint32 start_time = 8; + optional uint32 length_milliseconds = 9; + optional string thumbnail_path = 10; +} + +message CBroadcast_SetRTMPInfo_Request { + optional int32 broadcast_permission = 1; + optional bool update_token = 2; + optional int32 broadcast_delay = 3; + optional uint32 app_id = 4; + optional uint32 required_app_id = 5; + optional .EBroadcastChatPermission broadcast_chat_permission = 6 [default = k_EBroadcastChatPermissionPublic]; + optional int32 broadcast_buffer = 7; + optional fixed64 steamid = 8; + optional uint32 chat_rate_limit = 9; + optional bool enable_replay = 10; + optional bool is_partner_chat_only = 11; + optional string wordban_list = 12; +} + +message CBroadcast_SetRTMPInfo_Response { +} + +message CBroadcast_GetRTMPInfo_Request { + optional uint32 ip = 1; + optional fixed64 steamid = 2; +} + +message CBroadcast_GetRTMPInfo_Response { + optional int32 broadcast_permission = 1; + optional string rtmp_host = 2; + optional string rtmp_token = 3; + optional int32 broadcast_delay = 4; + optional uint32 app_id = 5; + optional uint32 required_app_id = 6; + optional .EBroadcastChatPermission broadcast_chat_permission = 7 [default = k_EBroadcastChatPermissionPublic]; + optional int32 broadcast_buffer = 8; + optional fixed64 steamid = 9; + optional uint32 chat_rate_limit = 10; + optional bool enable_replay = 11; + optional bool is_partner_chat_only = 12; + optional string wordban_list = 13; +} + +message CBroadcast_WebRTCHaveTURNServer_Notification { + optional fixed64 broadcast_session_id = 1; + optional string turn_server = 2; +} + +message CBroadcast_WebRTCStartResult_Request { + optional fixed64 webrtc_session_id = 1; + optional bool started = 2; + optional string offer = 3; + optional uint32 resolution_x = 4; + optional uint32 resolution_y = 5; + optional uint32 fps = 6; +} + +message CBroadcast_WebRTCStartResult_Response { +} + +message CBroadcast_WebRTCStopped_Request { + optional fixed64 webrtc_session_id = 1; +} + +message CBroadcast_WebRTCStopped_Response { +} + +message CBroadcast_WebRTCSetAnswer_Request { + optional fixed64 broadcaster_steamid = 1; + optional fixed64 webrtc_session_id = 2; + optional string answer = 3; +} + +message CBroadcast_WebRTCSetAnswer_Response { +} + +message CBroadcast_WebRTCLookupTURNServer_Request { + optional uint32 cellid = 1; +} + +message CBroadcast_WebRTCLookupTURNServer_Response { + optional string turn_server = 1; +} + +message CBroadcast_WebRTC_Candidate { + optional string sdp_mid = 1; + optional int32 sdp_mline_index = 2; + optional string candidate = 3; +} + +message CBroadcast_WebRTCAddHostCandidate_Request { + optional fixed64 webrtc_session_id = 1; + optional .CBroadcast_WebRTC_Candidate candidate = 2; +} + +message CBroadcast_WebRTCAddHostCandidate_Response { +} + +message CBroadcast_WebRTCAddViewerCandidate_Request { + optional fixed64 broadcaster_steamid = 1; + optional fixed64 webrtc_session_id = 2; + optional .CBroadcast_WebRTC_Candidate candidate = 3; +} + +message CBroadcast_WebRTCAddViewerCandidate_Response { +} + +message CBroadcast_WebRTCGetHostCandidates_Request { + optional fixed64 broadcaster_steamid = 1; + optional fixed64 webrtc_session_id = 2; + optional uint32 candidate_generation = 3; +} + +message CBroadcast_WebRTCGetHostCandidates_Response { + optional uint32 candidate_generation = 1; + repeated .CBroadcast_WebRTC_Candidate candidates = 2; +} + +message CBroadcast_GetBroadcastUploadStats_Request { + optional uint32 row_limit = 1 [default = 100]; + optional uint32 start_time = 2 [default = 0]; + optional uint64 upload_id = 3; + optional fixed64 steamid = 4; + optional uint64 session_id = 5; +} + +message CBroadcast_GetBroadcastUploadStats_Response { + message UploadStats { + optional uint32 upload_result = 1; + optional uint32 time_stopped = 2; + optional uint32 seconds_uploaded = 3; + optional uint32 max_viewers = 4; + optional uint32 resolution_x = 5; + optional uint32 resolution_y = 6; + optional uint32 avg_bandwidth = 7; + optional uint64 total_bytes = 8; + optional uint32 app_id = 9; + optional uint32 total_unique_viewers = 10; + optional uint64 total_seconds_watched = 11; + optional uint32 time_started = 12; + optional uint64 upload_id = 13; + optional string local_address = 14; + optional string remote_address = 15; + optional uint32 frames_per_second = 16; + optional uint32 num_representations = 17; + optional string app_name = 18; + optional bool is_replay = 19; + optional uint64 session_id = 20; + } + + repeated .CBroadcast_GetBroadcastUploadStats_Response.UploadStats upload_stats = 1; +} + +message CBroadcast_GetBroadcastViewerStats_Request { + optional uint64 upload_id = 1; + optional fixed64 steamid = 2; +} + +message CBroadcast_GetBroadcastViewerStats_Response { + message ViewerStats { + optional uint32 time = 1; + optional uint32 num_viewers = 2; + } + + message CountryStats { + optional string country_code = 1; + optional uint32 num_viewers = 2; + } + + repeated .CBroadcast_GetBroadcastViewerStats_Response.ViewerStats viewer_stats = 1; + repeated .CBroadcast_GetBroadcastViewerStats_Response.CountryStats country_stats = 2; +} + +message CBroadcast_BroadcastViewerState_Notification { + enum EViewerState { + k_EViewerNeedsApproval = 1; + k_EViewerWatching = 2; + k_EViewerLeft = 3; + } + + optional fixed64 steamid = 1; + optional .CBroadcast_BroadcastViewerState_Notification.EViewerState state = 2 [default = k_EViewerNeedsApproval]; +} + +message CBroadcast_WaitingBroadcastViewer_Notification { + optional fixed64 broadcast_id = 1; +} + +message CBroadcast_BroadcastUploadStarted_Notification { + optional fixed64 broadcast_id = 1; + optional string upload_token = 2; + optional string upload_address = 3; + optional string http_address = 4; + optional fixed64 broadcast_upload_id = 5; + optional uint32 heartbeat_interval_seconds = 6; + optional bool is_rtmp = 7; +} + +message CBroadcast_StopBroadcastUpload_Notification { + optional fixed64 broadcast_id = 1; + optional fixed64 broadcast_relay_id = 2; + optional uint32 upload_result = 3; + optional bool too_many_poor_uploads = 4; +} + +message CBroadcast_SessionClosed_Notification { + optional fixed64 broadcast_id = 1; +} + +message CBroadcast_ViewerBroadcastInvite_Notification { + optional fixed64 broadcaster_steamid = 1; +} + +message CBroadcast_BroadcastStatus_Notification { + optional fixed64 broadcast_id = 1; + optional int32 num_viewers = 2; +} + +message CBroadcast_BroadcastChannelLive_Notification { + optional fixed64 broadcast_channel_id = 1; + optional string broadcast_channel_name = 2; + optional string broadcast_channel_avatar = 3; +} + +message CBroadcast_SendThumbnailToRelay_Notification { + optional string thumbnail_upload_token = 1; + optional fixed64 thumbnail_broadcast_session_id = 2; + optional bytes thumbnail_data = 3; + optional uint32 thumbnail_width = 4; + optional uint32 thumbnail_height = 5; +} + +message CBroadcast_WebRTCNeedTURNServer_Notification { + optional fixed64 broadcast_session_id = 1; +} + +message CBroadcast_WebRTCStart_Notification { + optional fixed64 broadcast_session_id = 1; + optional fixed64 webrtc_session_id = 2; + optional fixed64 viewer_steamid = 3; + optional fixed64 viewer_token = 4; +} + +message CBroadcast_WebRTCSetAnswer_Notification { + optional fixed64 broadcast_session_id = 1; + optional fixed64 webrtc_session_id = 2; + optional string answer = 3; +} + +message CBroadcast_WebRTCAddViewerCandidate_Notification { + optional fixed64 broadcast_session_id = 1; + optional fixed64 webrtc_session_id = 2; + optional .CBroadcast_WebRTC_Candidate candidate = 3; +} + +service Broadcast { + rpc BeginBroadcastSession (.CBroadcast_BeginBroadcastSession_Request) returns (.CBroadcast_BeginBroadcastSession_Response); + rpc EndBroadcastSession (.CBroadcast_EndBroadcastSession_Request) returns (.CBroadcast_EndBroadcastSession_Response); + rpc StartBroadcastUpload (.CBroadcast_StartBroadcastUpload_Request) returns (.CBroadcast_StartBroadcastUpload_Response); + rpc NotifyBroadcastUploadStop (.CBroadcast_NotifyBroadcastUploadStop_Notification) returns (.NoResponse); + rpc WatchBroadcast (.CBroadcast_WatchBroadcast_Request) returns (.CBroadcast_WatchBroadcast_Response); + rpc HeartbeatBroadcast (.CBroadcast_HeartbeatBroadcast_Notification) returns (.NoResponse); + rpc StopWatchingBroadcast (.CBroadcast_StopWatchingBroadcast_Notification) returns (.NoResponse); + rpc GetBroadcastStatus (.CBroadcast_GetBroadcastStatus_Request) returns (.CBroadcast_GetBroadcastStatus_Response); + rpc GetBroadcastThumbnail (.CBroadcast_GetBroadcastThumbnail_Request) returns (.CBroadcast_GetBroadcastThumbnail_Response); + rpc InviteToBroadcast (.CBroadcast_InviteToBroadcast_Request) returns (.CBroadcast_InviteToBroadcast_Response); + rpc SendBroadcastStateToServer (.CBroadcast_SendBroadcastStateToServer_Request) returns (.CBroadcast_SendBroadcastStateToServer_Response); + rpc NotifyBroadcastSessionHeartbeat (.CBroadcast_NotifyBroadcastSessionHeartbeat_Notification) returns (.NoResponse); + rpc GetBroadcastChatInfo (.CBroadcast_GetBroadcastChatInfo_Request) returns (.CBroadcast_GetBroadcastChatInfo_Response); + rpc PostChatMessage (.CBroadcast_PostChatMessage_Request) returns (.CBroadcast_PostChatMessage_Response); + rpc UpdateChatMessageFlair (.CBroadcast_UpdateChatMessageFlair_Request) returns (.CBroadcast_UpdateChatMessageFlair_Response); + rpc MuteBroadcastChatUser (.CBroadcast_MuteBroadcastChatUser_Request) returns (.CBroadcast_MuteBroadcastChatUser_Response); + rpc RemoveUserChatText (.CBroadcast_RemoveUserChatText_Request) returns (.CBroadcast_RemoveUserChatText_Response); + rpc GetBroadcastChatUserNames (.CBroadcast_GetBroadcastChatUserNames_Request) returns (.CBroadcast_GetBroadcastChatUserNames_Response); + rpc StartBuildClip (.CBroadcast_StartBuildClip_Request) returns (.CBroadcast_StartBuildClip_Response); + rpc GetBuildClipStatus (.CBroadcast_GetBuildClipStatus_Request) returns (.CBroadcast_GetBuildClipStatus_Response); + rpc SetClipDetails (.CBroadcast_SetClipDetails_Request) returns (.CBroadcast_SetClipDetails_Response); + rpc GetClipDetails (.CBroadcast_GetClipDetails_Request) returns (.CBroadcast_GetClipDetails_Response); + rpc SetRTMPInfo (.CBroadcast_SetRTMPInfo_Request) returns (.CBroadcast_SetRTMPInfo_Response); + rpc GetRTMPInfo (.CBroadcast_GetRTMPInfo_Request) returns (.CBroadcast_GetRTMPInfo_Response); + rpc NotifyWebRTCHaveTURNServer (.CBroadcast_WebRTCHaveTURNServer_Notification) returns (.NoResponse); + rpc WebRTCStartResult (.CBroadcast_WebRTCStartResult_Request) returns (.CBroadcast_WebRTCStartResult_Response); + rpc WebRTCStopped (.CBroadcast_WebRTCStopped_Request) returns (.CBroadcast_WebRTCStopped_Response); + rpc WebRTCSetAnswer (.CBroadcast_WebRTCSetAnswer_Request) returns (.CBroadcast_WebRTCSetAnswer_Response); + rpc WebRTCLookupTURNServer (.CBroadcast_WebRTCLookupTURNServer_Request) returns (.CBroadcast_WebRTCLookupTURNServer_Response); + rpc WebRTCAddHostCandidate (.CBroadcast_WebRTCAddHostCandidate_Request) returns (.CBroadcast_WebRTCAddHostCandidate_Response); + rpc WebRTCAddViewerCandidate (.CBroadcast_WebRTCAddViewerCandidate_Request) returns (.CBroadcast_WebRTCAddViewerCandidate_Response); + rpc WebRTCGetHostCandidates (.CBroadcast_WebRTCGetHostCandidates_Request) returns (.CBroadcast_WebRTCGetHostCandidates_Response); + rpc GetBroadcastUploadStats (.CBroadcast_GetBroadcastUploadStats_Request) returns (.CBroadcast_GetBroadcastUploadStats_Response); + rpc GetBroadcastViewerStats (.CBroadcast_GetBroadcastViewerStats_Request) returns (.CBroadcast_GetBroadcastViewerStats_Response); +} + +service BroadcastClient { + option (service_execution_site) = k_EProtoExecutionSiteSteamClient; + + rpc NotifyBroadcastViewerState (.CBroadcast_BroadcastViewerState_Notification) returns (.NoResponse); + rpc NotifyWaitingBroadcastViewer (.CBroadcast_WaitingBroadcastViewer_Notification) returns (.NoResponse); + rpc NotifyBroadcastUploadStarted (.CBroadcast_BroadcastUploadStarted_Notification) returns (.NoResponse); + rpc NotifyStopBroadcastUpload (.CBroadcast_StopBroadcastUpload_Notification) returns (.NoResponse); + rpc NotifySessionClosed (.CBroadcast_SessionClosed_Notification) returns (.NoResponse); + rpc NotifyViewerBroadcastInvite (.CBroadcast_ViewerBroadcastInvite_Notification) returns (.NoResponse); + rpc NotifyBroadcastStatus (.CBroadcast_BroadcastStatus_Notification) returns (.NoResponse); + rpc NotifyBroadcastChannelLive (.CBroadcast_BroadcastChannelLive_Notification) returns (.NoResponse); + rpc SendThumbnailToRelay (.CBroadcast_SendThumbnailToRelay_Notification) returns (.NoResponse); + rpc NotifyWebRTCNeedTURNServer (.CBroadcast_WebRTCNeedTURNServer_Notification) returns (.NoResponse); + rpc NotifyWebRTCStart (.CBroadcast_WebRTCStart_Notification) returns (.NoResponse); + rpc NotifyWebRTCSetAnswer (.CBroadcast_WebRTCSetAnswer_Notification) returns (.NoResponse); + rpc NotifyWebRTCAddViewerCandidate (.CBroadcast_WebRTCAddViewerCandidate_Notification) returns (.NoResponse); +} diff --git a/Protobufs/steam/steammessages_chat.steamclient.proto b/Protobufs/steam/steammessages_chat.steamclient.proto new file mode 100644 index 0000000..2c16abc --- /dev/null +++ b/Protobufs/steam/steammessages_chat.steamclient.proto @@ -0,0 +1,1071 @@ +import "steammessages_base.proto"; +import "steammessages_unified_base.steamclient.proto"; +import "steammessages_clientserver_friends.proto"; + +option cc_generic_services = true; + +enum EChatRoomJoinState { + k_EChatRoomJoinState_Default = 0; + k_EChatRoomJoinState_None = 1; + k_EChatRoomJoinState_Joined = 2; + k_EChatRoomJoinState_TestInvalid = 99; +} + +enum EChatRoomGroupRank { + k_EChatRoomGroupRank_Default = 0; + k_EChatRoomGroupRank_Viewer = 10; + k_EChatRoomGroupRank_Guest = 15; + k_EChatRoomGroupRank_Member = 20; + k_EChatRoomGroupRank_Moderator = 30; + k_EChatRoomGroupRank_Officer = 40; + k_EChatRoomGroupRank_Owner = 50; + k_EChatRoomGroupRank_TestInvalid = 99; +} + +enum EChatRoomNotificationLevel { + k_EChatroomNotificationLevel_Invalid = 0; + k_EChatroomNotificationLevel_None = 1; + k_EChatroomNotificationLevel_MentionMe = 2; + k_EChatroomNotificationLevel_MentionAll = 3; + k_EChatroomNotificationLevel_AllMessages = 4; +} + +enum EChatRoomServerMessage { + k_EChatRoomServerMsg_Invalid = 0; + k_EChatRoomServerMsg_RenameChatRoom = 1; + k_EChatRoomServerMsg_Joined = 2; + k_EChatRoomServerMsg_Parted = 3; + k_EChatRoomServerMsg_Kicked = 4; + k_EChatRoomServerMsg_Invited = 5; + k_EChatRoomServerMsg_InviteDismissed = 8; + k_EChatRoomServerMsg_ChatRoomTaglineChanged = 9; + k_EChatRoomServerMsg_ChatRoomAvatarChanged = 10; + k_EChatRoomServerMsg_AppCustom = 11; +} + +enum EChatRoomMessageReactionType { + k_EChatRoomMessageReactionType_Invalid = 0; + k_EChatRoomMessageReactionType_Emoticon = 1; + k_EChatRoomMessageReactionType_Sticker = 2; +} + +enum EChatRoomMemberStateChange { + k_EChatRoomMemberStateChange_Invalid = 0; + k_EChatRoomMemberStateChange_Joined = 1; + k_EChatRoomMemberStateChange_Parted = 2; + k_EChatRoomMemberStateChange_Kicked = 3; + k_EChatRoomMemberStateChange_Invited = 4; + k_EChatRoomMemberStateChange_RankChanged = 7; + k_EChatRoomMemberStateChange_InviteDismissed = 8; + k_EChatRoomMemberStateChange_Muted = 9; + k_EChatRoomMemberStateChange_Banned = 10; + k_EChatRoomMemberStateChange_RolesChanged = 12; +} + +message CChat_RequestFriendPersonaStates_Request { +} + +message CChat_RequestFriendPersonaStates_Response { +} + +message CChatRoom_CreateChatRoomGroup_Request { + optional fixed64 steamid_partner = 1; + optional fixed64 steamid_invited = 2; + optional string name = 3; + repeated fixed64 steamid_invitees = 4; + optional uint32 watching_broadcast_accountid = 6; + optional uint64 watching_broadcast_channel_id = 7; +} + +message CChatRole { + optional uint64 role_id = 1; + optional string name = 2; + optional uint32 ordinal = 3; +} + +message CChatRoleActions { + optional uint64 role_id = 1; + optional bool can_create_rename_delete_channel = 2; + optional bool can_kick = 3; + optional bool can_ban = 4; + optional bool can_invite = 5; + optional bool can_change_tagline_avatar_name = 6; + optional bool can_chat = 7; + optional bool can_view_history = 8; + optional bool can_change_group_roles = 9; + optional bool can_change_user_roles = 10; + optional bool can_mention_all = 11; + optional bool can_set_watching_broadcast = 12; +} + +message CChatPartyBeacon { + optional uint32 app_id = 1; + optional fixed64 steamid_owner = 2; + optional fixed64 beacon_id = 3; + optional string game_metadata = 4; +} + +message CChatRoomGroupHeaderState { + optional uint64 chat_group_id = 1; + optional string chat_name = 2; + optional uint32 clanid = 13; + optional uint32 accountid_owner = 14; + optional uint32 appid = 21; + optional string tagline = 15; + optional bytes avatar_sha = 16; + optional uint64 default_role_id = 17; + repeated .CChatRole roles = 18; + repeated .CChatRoleActions role_actions = 19; + optional uint32 watching_broadcast_accountid = 20; + repeated .CChatPartyBeacon party_beacons = 22; + optional uint64 watching_broadcast_channel_id = 23; + optional uint64 active_minigame_id = 24; + optional string avatar_ugc_url = 25; + optional bool disabled = 26; +} + +message CChatRoomMember { + optional uint32 accountid = 1; + optional .EChatRoomJoinState state = 3 [default = k_EChatRoomJoinState_Default]; + optional .EChatRoomGroupRank rank = 4 [default = k_EChatRoomGroupRank_Default]; + optional uint32 time_kick_expire = 6; + repeated uint64 role_ids = 7; +} + +message CChatRoomState { + optional uint64 chat_id = 1; + optional string chat_name = 2; + optional bool voice_allowed = 3; + repeated uint32 members_in_voice = 4; + optional uint32 time_last_message = 5; + optional uint32 sort_order = 6; + optional string last_message = 7; + optional uint32 accountid_last_message = 8; +} + +message CChatRoomGroupState { + optional .CChatRoomGroupHeaderState header_state = 1; + repeated .CChatRoomMember members = 2; + optional uint64 default_chat_id = 4; + repeated .CChatRoomState chat_rooms = 5; + repeated .CChatRoomMember kicked = 7; +} + +message CUserChatRoomState { + optional uint64 chat_id = 1; + optional uint32 time_joined = 2; + optional uint32 time_last_ack = 3; + optional .EChatRoomNotificationLevel desktop_notification_level = 4 [default = k_EChatroomNotificationLevel_Invalid]; + optional .EChatRoomNotificationLevel mobile_notification_level = 5 [default = k_EChatroomNotificationLevel_Invalid]; + optional uint32 time_last_mention = 6; + optional bool unread_indicator_muted = 7 [default = false]; + optional uint32 time_first_unread = 8; +} + +message CUserChatRoomGroupState { + optional uint64 chat_group_id = 1; + optional uint32 time_joined = 2; + repeated .CUserChatRoomState user_chat_room_state = 3; + optional .EChatRoomNotificationLevel desktop_notification_level = 4 [default = k_EChatroomNotificationLevel_Invalid]; + optional .EChatRoomNotificationLevel mobile_notification_level = 5 [default = k_EChatroomNotificationLevel_Invalid]; + optional uint32 time_last_group_ack = 6; + optional bool unread_indicator_muted = 7 [default = false]; +} + +message CChatRoom_CreateChatRoomGroup_Response { + optional uint64 chat_group_id = 1; + optional .CChatRoomGroupState state = 2; + optional .CUserChatRoomGroupState user_chat_state = 3; +} + +message CChatRoom_SaveChatRoomGroup_Request { + optional uint64 chat_group_id = 1; + optional string name = 2; +} + +message CChatRoom_SaveChatRoomGroup_Response { +} + +message CChatRoom_RenameChatRoomGroup_Request { + optional uint64 chat_group_id = 1; + optional string name = 2; +} + +message CChatRoom_RenameChatRoomGroup_Response { + optional string name = 1; +} + +message CChatRoom_SetChatRoomGroupTagline_Request { + optional uint64 chat_group_id = 1; + optional string tagline = 2; +} + +message CChatRoom_SetChatRoomGroupTagline_Response { +} + +message CChatRoom_SetChatRoomGroupAvatar_Request { + optional uint64 chat_group_id = 1; + optional bytes avatar_sha = 2; +} + +message CChatRoom_SetChatRoomGroupAvatar_Response { +} + +message CChatRoom_SetChatRoomGroupWatchingBroadcast_Request { + optional uint64 chat_group_id = 1; + optional uint32 watching_broadcast_accountid = 2; + optional uint64 watching_broadcast_channel_id = 3; +} + +message CChatRoom_SetChatRoomGroupWatchingBroadcast_Response { +} + +message CChatRoom_JoinMiniGameForChatRoomGroup_Request { + optional uint64 chat_group_id = 1; + optional uint64 chat_id = 2; +} + +message CChatRoom_JoinMiniGameForChatRoomGroup_Response { + optional uint64 minigame_id = 1; +} + +message CChatRoom_EndMiniGameForChatRoomGroup_Request { + optional uint64 chat_group_id = 1; + optional uint64 chat_id = 2; + optional uint64 minigame_id = 3; +} + +message CChatRoom_EndMiniGameForChatRoomGroup_Response { +} + +message CChatRoom_MuteUser_Request { + optional uint64 chat_group_id = 1; + optional fixed64 steamid = 2; + optional int32 expiration = 3; +} + +message CChatRoom_MuteUser_Response { +} + +message CChatRoom_KickUser_Request { + optional uint64 chat_group_id = 1; + optional fixed64 steamid = 2; + optional int32 expiration = 3; +} + +message CChatRoom_KickUser_Response { +} + +message CChatRoom_SetUserBanState_Request { + optional uint64 chat_group_id = 1; + optional fixed64 steamid = 2; + optional bool ban_state = 3; +} + +message CChatRoom_SetUserBanState_Response { +} + +message CChatRoom_RevokeInvite_Request { + optional uint64 chat_group_id = 1; + optional fixed64 steamid = 2; +} + +message CChatRoom_RevokeInvite_Response { +} + +message CChatRoom_CreateRole_Request { + optional uint64 chat_group_id = 1; + optional string name = 2; +} + +message CChatRoom_CreateRole_Response { + optional .CChatRoleActions actions = 2; +} + +message CChatRoom_GetRoles_Request { + optional uint64 chat_group_id = 1; +} + +message CChatRoom_GetRoles_Response { + repeated .CChatRole roles = 1; +} + +message CChatRoom_RenameRole_Request { + optional uint64 chat_group_id = 1; + optional uint64 role_id = 2; + optional string name = 3; +} + +message CChatRoom_RenameRole_Response { +} + +message CChatRoom_ReorderRole_Request { + optional uint64 chat_group_id = 1; + optional uint64 role_id = 2; + optional uint32 ordinal = 3; +} + +message CChatRoom_ReorderRole_Response { +} + +message CChatRoom_DeleteRole_Request { + optional uint64 chat_group_id = 1; + optional uint64 role_id = 2; +} + +message CChatRoom_DeleteRole_Response { +} + +message CChatRoom_GetRoleActions_Request { + optional uint64 chat_group_id = 1; + optional uint64 role_id = 2; +} + +message CChatRoom_GetRoleActions_Response { + repeated .CChatRoleActions actions = 1; +} + +message CChatRoom_ReplaceRoleActions_Request { + optional uint64 chat_group_id = 1; + optional uint64 role_id = 2; + optional .CChatRoleActions actions = 4; +} + +message CChatRoom_ReplaceRoleActions_Response { +} + +message CChatRoom_AddRoleToUser_Request { + optional uint64 chat_group_id = 1; + optional uint64 role_id = 3; + optional fixed64 steamid = 4; +} + +message CChatRoom_AddRoleToUser_Response { +} + +message CChatRoom_GetRolesForUser_Request { + optional uint64 chat_group_id = 1; + optional fixed64 steamid = 3; +} + +message CChatRoom_GetRolesForUser_Response { + repeated uint64 role_ids = 1; +} + +message CChatRoom_DeleteRoleFromUser_Request { + optional uint64 chat_group_id = 1; + optional uint64 role_id = 3; + optional fixed64 steamid = 4; +} + +message CChatRoom_DeleteRoleFromUser_Response { +} + +message CChatRoom_JoinChatRoomGroup_Request { + optional uint64 chat_group_id = 1; + optional string invite_code = 2; + optional uint64 chat_id = 3; +} + +message CChatRoom_JoinChatRoomGroup_Response { + optional .CChatRoomGroupState state = 1; + optional .CUserChatRoomGroupState user_chat_state = 3; + optional uint64 join_chat_id = 4; + optional uint32 time_expire = 5; +} + +message CChatRoom_InviteFriendToChatRoomGroup_Request { + optional uint64 chat_group_id = 1; + optional fixed64 steamid = 2; + optional uint64 chat_id = 3; + optional bool skip_friendsui_check = 4; +} + +message CChatRoom_InviteFriendToChatRoomGroup_Response { +} + +message CChatRoom_LeaveChatRoomGroup_Request { + optional uint64 chat_group_id = 1; +} + +message CChatRoom_LeaveChatRoomGroup_Response { +} + +message CChatRoom_CreateChatRoom_Request { + optional uint64 chat_group_id = 1; + optional string name = 2; + optional bool allow_voice = 3; +} + +message CChatRoom_CreateChatRoom_Response { + optional .CChatRoomState chat_room = 1; +} + +message CChatRoom_DeleteChatRoom_Request { + optional uint64 chat_group_id = 1; + optional uint64 chat_id = 2; +} + +message CChatRoom_DeleteChatRoom_Response { +} + +message CChatRoom_RenameChatRoom_Request { + optional uint64 chat_group_id = 1; + optional uint64 chat_id = 2; + optional string name = 3; +} + +message CChatRoom_RenameChatRoom_Response { +} + +message CChatRoom_ReorderChatRoom_Request { + optional uint64 chat_group_id = 1; + optional uint64 chat_id = 2; + optional uint64 move_after_chat_id = 3; +} + +message CChatRoom_ReorderChatRoom_Response { +} + +message CChatRoom_SendChatMessage_Request { + optional uint64 chat_group_id = 1; + optional uint64 chat_id = 2; + optional string message = 3; + optional bool echo_to_sender = 4; +} + +message CChatRoom_SendChatMessage_Response { + optional string modified_message = 1; + optional uint32 server_timestamp = 2; + optional uint32 ordinal = 3; + optional string message_without_bb_code = 4; +} + +message CChatRoom_JoinVoiceChat_Request { + optional uint64 chat_group_id = 1; + optional uint64 chat_id = 2; +} + +message CChatRoom_JoinVoiceChat_Response { + optional uint64 voice_chatid = 1; +} + +message CChatRoom_LeaveVoiceChat_Request { + optional uint64 chat_group_id = 1; + optional uint64 chat_id = 2; +} + +message CChatRoom_LeaveVoiceChat_Response { +} + +message CChatRoom_GetMessageHistory_Request { + optional uint64 chat_group_id = 1; + optional uint64 chat_id = 2; + optional uint32 last_time = 3; + optional uint32 last_ordinal = 4; + optional uint32 start_time = 5; + optional uint32 start_ordinal = 6; + optional uint32 max_count = 7; +} + +message ServerMessage { + optional .EChatRoomServerMessage message = 1 [default = k_EChatRoomServerMsg_Invalid]; + optional string string_param = 2; + optional uint32 accountid_param = 3; +} + +message CChatRoom_GetMessageHistory_Response { + message ChatMessage { + message MessageReaction { + optional .EChatRoomMessageReactionType reaction_type = 1 [default = k_EChatRoomMessageReactionType_Invalid]; + optional string reaction = 2; + optional uint32 num_reactors = 3; + optional bool has_user_reacted = 4; + } + + optional uint32 sender = 1; + optional uint32 server_timestamp = 2; + optional string message = 3; + optional uint32 ordinal = 4; + optional .ServerMessage server_message = 5; + optional bool deleted = 6; + repeated .CChatRoom_GetMessageHistory_Response.ChatMessage.MessageReaction reactions = 7; + } + + repeated .CChatRoom_GetMessageHistory_Response.ChatMessage messages = 1; + optional bool more_available = 4; +} + +message CChatRoom_GetMyChatRoomGroups_Request { +} + +message CChatRoom_GetChatRoomGroupSummary_Response { + optional uint64 chat_group_id = 1; + optional string chat_group_name = 2; + optional uint32 active_member_count = 3; + optional uint32 active_voice_member_count = 4; + optional uint64 default_chat_id = 5; + repeated .CChatRoomState chat_rooms = 6; + optional uint32 clanid = 7; + optional string chat_group_tagline = 8; + optional uint32 accountid_owner = 9; + repeated uint32 top_members = 10; + optional bytes chat_group_avatar_sha = 11; + optional .EChatRoomGroupRank rank = 12 [default = k_EChatRoomGroupRank_Default]; + optional uint64 default_role_id = 13; + repeated uint64 role_ids = 14; + repeated .CChatRoleActions role_actions = 15; + optional uint32 watching_broadcast_accountid = 16; + optional uint32 appid = 17; + repeated .CChatPartyBeacon party_beacons = 18; + optional uint64 watching_broadcast_channel_id = 19; + optional uint64 active_minigame_id = 20; + optional string avatar_ugc_url = 21; + optional bool disabled = 22; +} + +message CChatRoomSummaryPair { + optional .CUserChatRoomGroupState user_chat_group_state = 1; + optional .CChatRoom_GetChatRoomGroupSummary_Response group_summary = 2; +} + +message CChatRoom_GetMyChatRoomGroups_Response { + repeated .CChatRoomSummaryPair chat_room_groups = 1; +} + +message CChatRoom_GetChatRoomGroupState_Request { + optional uint64 chat_group_id = 1; +} + +message CChatRoom_GetChatRoomGroupState_Response { + optional .CChatRoomGroupState state = 1; +} + +message CChatRoom_GetChatRoomGroupSummary_Request { + optional uint64 chat_group_id = 1; +} + +message CChatRoom_SetAppChatRoomGroupForceActive_Request { + optional uint64 chat_group_id = 1; + optional uint32 requesting_app_id = 2; +} + +message CChatRoom_SetAppChatRoomGroupForceActive_Response { + optional uint32 result = 1; + repeated uint32 accounts_in_channel = 2; +} + +message CChatRoom_SetAppChatRoomGroupStopForceActive_Notification { + optional uint64 chat_group_id = 1; + optional uint32 requesting_app_id = 2; +} + +message CChatRoom_AckChatMessage_Notification { + optional uint64 chat_group_id = 1; + optional uint64 chat_id = 2; + optional uint32 timestamp = 3; +} + +message CChatRoom_CreateInviteLink_Request { + optional uint64 chat_group_id = 1; + optional uint32 seconds_valid = 2; + optional uint64 chat_id = 3; +} + +message CChatRoom_CreateInviteLink_Response { + optional string invite_code = 1; + optional uint32 seconds_valid = 2; +} + +message CChatRoom_GetInviteLinkInfo_Request { + optional string invite_code = 1; +} + +message CChatRoom_GetInviteLinkInfo_Response { + optional fixed64 steamid_sender = 3; + optional uint32 time_expires = 4; + optional uint64 chat_id = 6; + optional .CChatRoom_GetChatRoomGroupSummary_Response group_summary = 8; + optional .CUserChatRoomGroupState user_chat_group_state = 9; + optional uint32 time_kick_expire = 10; + optional bool banned = 11; +} + +message CChatRoom_GetInviteInfo_Request { + optional fixed64 steamid_invitee = 1; + optional uint64 chat_group_id = 2; + optional uint64 chat_id = 3; + optional string invite_code = 4; +} + +message CChatRoom_GetInviteInfo_Response { + optional .CChatRoom_GetChatRoomGroupSummary_Response group_summary = 1; + optional uint32 time_kick_expire = 2; + optional bool banned = 3; +} + +message CChatRoom_GetInviteLinksForGroup_Request { + optional uint64 chat_group_id = 1; +} + +message CChatRoom_GetInviteLinksForGroup_Response { + message LinkInfo { + optional string invite_code = 1; + optional fixed64 steamid_creator = 2; + optional uint32 time_expires = 3; + optional uint64 chat_id = 4; + } + + repeated .CChatRoom_GetInviteLinksForGroup_Response.LinkInfo invite_links = 1; +} + +message CChatRoom_GetBanList_Request { + optional uint64 chat_group_id = 1; +} + +message CChatRoom_GetBanList_Response { + message BanInfo { + optional uint32 accountid = 1; + optional uint32 accountid_actor = 2; + optional uint32 time_banned = 3; + optional string ban_reason = 4; + } + + repeated .CChatRoom_GetBanList_Response.BanInfo bans = 1; +} + +message CChatRoom_GetInviteList_Request { + optional uint64 chat_group_id = 1; +} + +message CChatRoomGroupInvite { + optional uint32 accountid = 1; + optional uint32 accountid_actor = 2; + optional uint32 time_invited = 3; +} + +message CChatRoom_GetInviteList_Response { + repeated .CChatRoomGroupInvite invites = 1; +} + +message CChatRoom_DeleteInviteLink_Request { + optional uint64 chat_group_id = 1; + optional string invite_code = 2; +} + +message CChatRoom_DeleteInviteLink_Response { +} + +message CChatRoom_SetSessionActiveChatRoomGroups_Request { + repeated uint64 chat_group_ids = 1; + repeated uint64 chat_groups_data_requested = 2; + optional int32 virtualize_members_threshold = 3; +} + +message CChatRoom_SetSessionActiveChatRoomGroups_Response { + repeated .CChatRoomGroupState chat_states = 1; + repeated uint64 virtualize_members_chat_group_ids = 2; +} + +message CChatRoom_SetUserChatGroupPreferences_Request { + message ChatGroupPreferences { + optional .EChatRoomNotificationLevel desktop_notification_level = 1 [default = k_EChatroomNotificationLevel_Invalid]; + optional .EChatRoomNotificationLevel mobile_notification_level = 2 [default = k_EChatroomNotificationLevel_Invalid]; + optional bool unread_indicator_muted = 3; + } + + message ChatRoomPreferences { + optional uint64 chat_id = 1; + optional .EChatRoomNotificationLevel desktop_notification_level = 2 [default = k_EChatroomNotificationLevel_Invalid]; + optional .EChatRoomNotificationLevel mobile_notification_level = 3 [default = k_EChatroomNotificationLevel_Invalid]; + optional bool unread_indicator_muted = 4; + } + + optional uint64 chat_group_id = 1; + optional .CChatRoom_SetUserChatGroupPreferences_Request.ChatGroupPreferences chat_group_preferences = 2; + repeated .CChatRoom_SetUserChatGroupPreferences_Request.ChatRoomPreferences chat_room_preferences = 3; +} + +message CChatRoom_SetUserChatGroupPreferences_Response { +} + +message CChatRoom_DeleteChatMessages_Request { + message Message { + optional uint32 server_timestamp = 1; + optional uint32 ordinal = 2; + } + + optional uint64 chat_group_id = 1; + optional uint64 chat_id = 2; + repeated .CChatRoom_DeleteChatMessages_Request.Message messages = 3; +} + +message CChatRoom_DeleteChatMessages_Response { +} + +message CChatRoom_UpdateMemberListView_Notification { + optional uint64 chat_group_id = 1; + optional uint64 view_id = 2; + optional int32 start = 3; + optional int32 end = 4; + optional int32 client_changenumber = 5; + optional bool delete_view = 6; + repeated int32 persona_subscribe_accountids = 7; + repeated int32 persona_unsubscribe_accountids = 8; +} + +message CChatRoom_SearchMembers_Request { + optional uint64 chat_group_id = 1; + optional uint64 search_id = 2; + optional string search_text = 3; + optional int32 max_results = 4; +} + +message CChatRoom_SearchMembers_Response { + message MemberMatch { + optional int32 accountid = 1; + optional .CMsgClientPersonaState.Friend persona = 2; + } + + repeated .CChatRoom_SearchMembers_Response.MemberMatch matching_members = 1; + optional uint32 status_flags = 2; +} + +message CChatRoom_UpdateMessageReaction_Request { + optional uint64 chat_group_id = 1; + optional uint64 chat_id = 2; + optional uint32 server_timestamp = 3; + optional uint32 ordinal = 4; + optional .EChatRoomMessageReactionType reaction_type = 5 [default = k_EChatRoomMessageReactionType_Invalid]; + optional string reaction = 6; + optional bool is_add = 7; +} + +message CChatRoom_UpdateMessageReaction_Response { + optional uint32 num_reactors = 1; +} + +message CChatRoom_GetMessageReactionReactors_Request { + optional uint64 chat_group_id = 1; + optional uint64 chat_id = 2; + optional uint32 server_timestamp = 3; + optional uint32 ordinal = 4; + optional .EChatRoomMessageReactionType reaction_type = 5 [default = k_EChatRoomMessageReactionType_Invalid]; + optional string reaction = 6; + optional uint32 limit = 7; +} + +message CChatRoom_GetMessageReactionReactors_Response { + repeated uint32 reactors = 1; +} + +message CClanChatRooms_GetClanChatRoomInfo_Request { + optional fixed64 steamid = 1; + optional bool autocreate = 2 [default = true]; +} + +message CClanChatRooms_GetClanChatRoomInfo_Response { + optional .CChatRoom_GetChatRoomGroupSummary_Response chat_group_summary = 1; +} + +message CClanChatRooms_SetClanChatRoomPrivate_Request { + optional fixed64 steamid = 1; + optional bool chat_room_private = 2; +} + +message CClanChatRooms_SetClanChatRoomPrivate_Response { + optional bool chat_room_private = 1; +} + +message CChatMentions { + optional bool mention_all = 1; + optional bool mention_here = 2; + repeated uint32 mention_accountids = 3; +} + +message CChatRoom_IncomingChatMessage_Notification { + optional uint64 chat_group_id = 1; + optional uint64 chat_id = 2; + optional fixed64 steamid_sender = 3; + optional string message = 4; + optional uint32 timestamp = 5; + optional .CChatMentions mentions = 6; + optional uint32 ordinal = 7; + optional .ServerMessage server_message = 8; + optional string message_no_bbcode = 9; + optional string chat_name = 10; + optional string notification_key = 11; +} + +message CChatRoom_ChatMessageModified_Notification { + message ChatMessage { + optional uint32 server_timestamp = 1; + optional uint32 ordinal = 2; + optional bool deleted = 3; + } + + optional uint64 chat_group_id = 1; + optional uint64 chat_id = 2; + repeated .CChatRoom_ChatMessageModified_Notification.ChatMessage messages = 3; +} + +message CChatRoom_MemberStateChange_Notification { + optional uint64 chat_group_id = 1; + optional .CChatRoomMember member = 2; + optional .EChatRoomMemberStateChange change = 3 [default = k_EChatRoomMemberStateChange_Invalid]; +} + +message CChatRoom_ChatRoomHeaderState_Notification { + optional .CChatRoomGroupHeaderState header_state = 1; +} + +message CChatRoom_ChatRoomGroupRoomsChange_Notification { + optional uint64 chat_group_id = 1; + optional uint64 default_chat_id = 2; + repeated .CChatRoomState chat_rooms = 3; +} + +message CChatRoom_NotifyShouldRejoinChatRoomVoiceChat_Notification { + optional uint64 chat_id = 1; + optional uint64 chat_group_id = 2; +} + +message ChatRoomClient_NotifyChatGroupUserStateChanged_Notification { + optional uint64 chat_group_id = 1; + optional .CUserChatRoomGroupState user_chat_group_state = 2; + optional .CChatRoom_GetChatRoomGroupSummary_Response group_summary = 3; + optional .EChatRoomMemberStateChange user_action = 4 [default = k_EChatRoomMemberStateChange_Invalid]; +} + +message ChatRoomClient_NotifyChatRoomDisconnect_Notification { + repeated uint64 chat_group_ids = 1; +} + +message CChatRoomMemberListView { + optional int32 start = 3; + optional int32 end = 4; + optional int32 total_count = 5; + optional int32 client_changenumber = 6; + optional int32 server_changenumber = 7; +} + +message CChatRoomMemberSummaryCounts { + optional int32 ingame = 1; + optional int32 online = 2; + optional int32 offline = 3; +} + +message CChatRoomClient_MemberListViewUpdated_Notification { + message MemberListViewEntry { + optional int32 rank = 1; + optional uint32 accountid = 2; + optional .CMsgClientPersonaState.Friend persona = 3; + } + + optional uint64 chat_group_id = 1; + optional uint64 view_id = 2; + optional .CChatRoomMemberListView view = 3; + repeated .CChatRoomClient_MemberListViewUpdated_Notification.MemberListViewEntry members = 4; + optional uint32 status_flags = 5; + optional .CChatRoomMemberSummaryCounts member_summary = 6; + repeated .CMsgClientPersonaState.Friend subscribed_personas = 7; +} + +message CChatRoom_MessageReaction_Notification { + optional uint64 chat_group_id = 1; + optional uint64 chat_id = 2; + optional uint32 server_timestamp = 3; + optional uint32 ordinal = 4; + optional fixed64 reactor = 5; + optional .EChatRoomMessageReactionType reaction_type = 6 [default = k_EChatRoomMessageReactionType_Invalid]; + optional string reaction = 7; + optional bool is_add = 8; +} + +message CChatUsability_ClientUsabilityMetrics_Notification { + message Settings { + optional bool notifications_show_ingame = 1; + optional bool notifications_show_online = 2; + optional bool notifications_show_message = 3; + optional bool notifications_events_and_announcements = 4; + optional bool sounds_play_ingame = 5; + optional bool sounds_play_online = 6; + optional bool sounds_play_message = 7; + optional bool sounds_events_and_announcements = 8; + optional bool always_new_chat_window = 9; + optional bool force_alphabetic_friend_sorting = 10; + optional int32 chat_flash_mode = 11; + optional bool remember_open_chats = 12; + optional bool compact_quick_access = 13; + optional bool compact_friends_list = 14; + optional bool notifications_show_chat_room_notification = 15; + optional bool sounds_play_chat_room_notification = 16; + optional bool hide_offline_friends_in_tag_groups = 17; + optional bool hide_categorized_friends = 18; + optional bool categorize_in_game_friends_by_game = 19; + optional int32 chat_font_size = 20; + optional bool use24hour_clock = 21; + optional bool do_not_disturb_mode = 22; + optional bool disable_embed_inlining = 23; + optional bool sign_into_friends = 24; + optional bool animated_avatars = 25; + } + + message VoiceSettings { + optional float voice_input_gain = 1; + optional float voice_output_gain = 2; + optional int32 noise_gate_level = 3; + optional bool voice_use_echo_cancellation = 4; + optional bool voice_use_noise_cancellation = 5; + optional bool voice_use_auto_gain_control = 6; + optional bool selected_non_default_mic = 7; + optional bool selected_non_default_output = 8; + optional bool push_to_talk_enabled = 9; + optional bool push_to_mute_enabled = 10; + optional bool play_ptt_sounds = 11; + } + + message UIState { + message CategoryCollapseState { + optional bool in_game_collapsed = 1; + optional bool online_collapsed = 2; + optional bool offline_collapsed = 3; + optional int32 game_groups_collapsed = 4; + optional int32 categories_collapsed = 5; + } + + optional int32 friends_list_height = 1; + optional int32 friends_list_width = 2; + optional bool friends_list_docked = 3; + optional bool friends_list_collapsed = 4; + optional int32 friends_list_group_chats_height = 5; + optional bool friends_list_visible = 6; + optional int32 chat_popups_opened = 7; + optional int32 group_chat_tabs_opened = 8; + optional int32 friend_chat_tabs_opened = 9; + optional int32 chat_window_width = 10; + optional int32 chat_window_height = 11; + optional .CChatUsability_ClientUsabilityMetrics_Notification.UIState.CategoryCollapseState category_collapse = 12; + optional int32 group_chat_left_col_collapsed = 13; + optional int32 group_chat_right_col_collapsed = 14; + optional bool in_one_on_one_voice_chat = 15; + optional bool in_group_voice_chat = 16; + } + + message Metrics { + optional int32 friends_count = 1; + optional int32 friends_category_count = 2; + optional int32 friends_categorized_count = 3; + optional int32 friends_online_count = 4; + optional int32 friends_in_game_count = 5; + optional int32 friends_in_game_singleton_count = 6; + optional int32 game_group_count = 7; + optional int32 friends_favorite_count = 8; + optional int32 group_chat_count = 9; + optional int32 group_chat_favorite_count = 10; + } + + optional uint32 metrics_run_id = 1; + optional uint32 client_build = 2; + optional uint32 metrics_version = 3; + optional bool in_web = 4; + optional .CChatUsability_ClientUsabilityMetrics_Notification.Settings settings = 10; + optional .CChatUsability_ClientUsabilityMetrics_Notification.VoiceSettings voice_settings = 11; + optional .CChatUsability_ClientUsabilityMetrics_Notification.UIState ui_state = 12; + optional .CChatUsability_ClientUsabilityMetrics_Notification.Metrics metrics = 13; +} + +message CChatUsability_RequestClientUsabilityMetrics_Notification { + optional uint32 metrics_run_id = 1; +} + +service Chat { + rpc RequestFriendPersonaStates (.CChat_RequestFriendPersonaStates_Request) returns (.CChat_RequestFriendPersonaStates_Response); +} + +service ChatRoom { + rpc CreateChatRoomGroup (.CChatRoom_CreateChatRoomGroup_Request) returns (.CChatRoom_CreateChatRoomGroup_Response); + rpc SaveChatRoomGroup (.CChatRoom_SaveChatRoomGroup_Request) returns (.CChatRoom_SaveChatRoomGroup_Response); + rpc RenameChatRoomGroup (.CChatRoom_RenameChatRoomGroup_Request) returns (.CChatRoom_RenameChatRoomGroup_Response); + rpc SetChatRoomGroupTagline (.CChatRoom_SetChatRoomGroupTagline_Request) returns (.CChatRoom_SetChatRoomGroupTagline_Response); + rpc SetChatRoomGroupAvatar (.CChatRoom_SetChatRoomGroupAvatar_Request) returns (.CChatRoom_SetChatRoomGroupAvatar_Response); + rpc SetChatRoomGroupWatchingBroadcast (.CChatRoom_SetChatRoomGroupWatchingBroadcast_Request) returns (.CChatRoom_SetChatRoomGroupWatchingBroadcast_Response); + rpc JoinMiniGameForChatRoomGroup (.CChatRoom_JoinMiniGameForChatRoomGroup_Request) returns (.CChatRoom_JoinMiniGameForChatRoomGroup_Response); + rpc EndMiniGameForChatRoomGroup (.CChatRoom_EndMiniGameForChatRoomGroup_Request) returns (.CChatRoom_EndMiniGameForChatRoomGroup_Response); + rpc MuteUserInGroup (.CChatRoom_MuteUser_Request) returns (.CChatRoom_MuteUser_Response); + rpc KickUserFromGroup (.CChatRoom_KickUser_Request) returns (.CChatRoom_KickUser_Response); + rpc SetUserBanState (.CChatRoom_SetUserBanState_Request) returns (.CChatRoom_SetUserBanState_Response); + rpc RevokeInviteToGroup (.CChatRoom_RevokeInvite_Request) returns (.CChatRoom_RevokeInvite_Response); + rpc CreateRole (.CChatRoom_CreateRole_Request) returns (.CChatRoom_CreateRole_Response); + rpc GetRoles (.CChatRoom_GetRoles_Request) returns (.CChatRoom_GetRoles_Response); + rpc RenameRole (.CChatRoom_RenameRole_Request) returns (.CChatRoom_RenameRole_Response); + rpc ReorderRole (.CChatRoom_ReorderRole_Request) returns (.CChatRoom_ReorderRole_Response); + rpc DeleteRole (.CChatRoom_DeleteRole_Request) returns (.CChatRoom_DeleteRole_Response); + rpc GetRoleActions (.CChatRoom_GetRoleActions_Request) returns (.CChatRoom_GetRoleActions_Response); + rpc ReplaceRoleActions (.CChatRoom_ReplaceRoleActions_Request) returns (.CChatRoom_ReplaceRoleActions_Response); + rpc AddRoleToUser (.CChatRoom_AddRoleToUser_Request) returns (.CChatRoom_AddRoleToUser_Response); + rpc GetRolesForUser (.CChatRoom_GetRolesForUser_Request) returns (.CChatRoom_GetRolesForUser_Response); + rpc DeleteRoleFromUser (.CChatRoom_DeleteRoleFromUser_Request) returns (.CChatRoom_DeleteRoleFromUser_Response); + rpc JoinChatRoomGroup (.CChatRoom_JoinChatRoomGroup_Request) returns (.CChatRoom_JoinChatRoomGroup_Response); + rpc InviteFriendToChatRoomGroup (.CChatRoom_InviteFriendToChatRoomGroup_Request) returns (.CChatRoom_InviteFriendToChatRoomGroup_Response); + rpc LeaveChatRoomGroup (.CChatRoom_LeaveChatRoomGroup_Request) returns (.CChatRoom_LeaveChatRoomGroup_Response); + rpc CreateChatRoom (.CChatRoom_CreateChatRoom_Request) returns (.CChatRoom_CreateChatRoom_Response); + rpc DeleteChatRoom (.CChatRoom_DeleteChatRoom_Request) returns (.CChatRoom_DeleteChatRoom_Response); + rpc RenameChatRoom (.CChatRoom_RenameChatRoom_Request) returns (.CChatRoom_RenameChatRoom_Response); + rpc ReorderChatRoom (.CChatRoom_ReorderChatRoom_Request) returns (.CChatRoom_ReorderChatRoom_Response); + rpc SendChatMessage (.CChatRoom_SendChatMessage_Request) returns (.CChatRoom_SendChatMessage_Response); + rpc JoinVoiceChat (.CChatRoom_JoinVoiceChat_Request) returns (.CChatRoom_JoinVoiceChat_Response); + rpc LeaveVoiceChat (.CChatRoom_LeaveVoiceChat_Request) returns (.CChatRoom_LeaveVoiceChat_Response); + rpc GetMessageHistory (.CChatRoom_GetMessageHistory_Request) returns (.CChatRoom_GetMessageHistory_Response); + rpc GetMyChatRoomGroups (.CChatRoom_GetMyChatRoomGroups_Request) returns (.CChatRoom_GetMyChatRoomGroups_Response); + rpc GetChatRoomGroupState (.CChatRoom_GetChatRoomGroupState_Request) returns (.CChatRoom_GetChatRoomGroupState_Response); + rpc GetChatRoomGroupSummary (.CChatRoom_GetChatRoomGroupSummary_Request) returns (.CChatRoom_GetChatRoomGroupSummary_Response); + rpc SetAppChatRoomGroupForceActive (.CChatRoom_SetAppChatRoomGroupForceActive_Request) returns (.CChatRoom_SetAppChatRoomGroupForceActive_Response); + rpc SetAppChatRoomGroupStopForceActive (.CChatRoom_SetAppChatRoomGroupStopForceActive_Notification) returns (.NoResponse); + rpc AckChatMessage (.CChatRoom_AckChatMessage_Notification) returns (.NoResponse); + rpc CreateInviteLink (.CChatRoom_CreateInviteLink_Request) returns (.CChatRoom_CreateInviteLink_Response); + rpc GetInviteLinkInfo (.CChatRoom_GetInviteLinkInfo_Request) returns (.CChatRoom_GetInviteLinkInfo_Response); + rpc GetInviteInfo (.CChatRoom_GetInviteInfo_Request) returns (.CChatRoom_GetInviteInfo_Response); + rpc GetInviteLinksForGroup (.CChatRoom_GetInviteLinksForGroup_Request) returns (.CChatRoom_GetInviteLinksForGroup_Response); + rpc GetBanList (.CChatRoom_GetBanList_Request) returns (.CChatRoom_GetBanList_Response); + rpc GetInviteList (.CChatRoom_GetInviteList_Request) returns (.CChatRoom_GetInviteList_Response); + rpc DeleteInviteLink (.CChatRoom_DeleteInviteLink_Request) returns (.CChatRoom_DeleteInviteLink_Response); + rpc SetSessionActiveChatRoomGroups (.CChatRoom_SetSessionActiveChatRoomGroups_Request) returns (.CChatRoom_SetSessionActiveChatRoomGroups_Response); + rpc SetUserChatGroupPreferences (.CChatRoom_SetUserChatGroupPreferences_Request) returns (.CChatRoom_SetUserChatGroupPreferences_Response); + rpc DeleteChatMessages (.CChatRoom_DeleteChatMessages_Request) returns (.CChatRoom_DeleteChatMessages_Response); + rpc UpdateMemberListView (.CChatRoom_UpdateMemberListView_Notification) returns (.NoResponse); + rpc SearchMembers (.CChatRoom_SearchMembers_Request) returns (.CChatRoom_SearchMembers_Response); + rpc UpdateMessageReaction (.CChatRoom_UpdateMessageReaction_Request) returns (.CChatRoom_UpdateMessageReaction_Response); + rpc GetMessageReactionReactors (.CChatRoom_GetMessageReactionReactors_Request) returns (.CChatRoom_GetMessageReactionReactors_Response); +} + +service ClanChatRooms { + rpc GetClanChatRoomInfo (.CClanChatRooms_GetClanChatRoomInfo_Request) returns (.CClanChatRooms_GetClanChatRoomInfo_Response); + rpc SetClanChatRoomPrivate (.CClanChatRooms_SetClanChatRoomPrivate_Request) returns (.CClanChatRooms_SetClanChatRoomPrivate_Response); +} + +service ChatRoomClient { + option (service_execution_site) = k_EProtoExecutionSiteSteamClient; + + rpc NotifyIncomingChatMessage (.CChatRoom_IncomingChatMessage_Notification) returns (.NoResponse); + rpc NotifyChatMessageModified (.CChatRoom_ChatMessageModified_Notification) returns (.NoResponse); + rpc NotifyMemberStateChange (.CChatRoom_MemberStateChange_Notification) returns (.NoResponse); + rpc NotifyChatRoomHeaderStateChange (.CChatRoom_ChatRoomHeaderState_Notification) returns (.NoResponse); + rpc NotifyChatRoomGroupRoomsChange (.CChatRoom_ChatRoomGroupRoomsChange_Notification) returns (.NoResponse); + rpc NotifyShouldRejoinChatRoomVoiceChat (.CChatRoom_NotifyShouldRejoinChatRoomVoiceChat_Notification) returns (.NoResponse); + rpc NotifyChatGroupUserStateChanged (.ChatRoomClient_NotifyChatGroupUserStateChanged_Notification) returns (.NoResponse); + rpc NotifyAckChatMessageEcho (.CChatRoom_AckChatMessage_Notification) returns (.NoResponse); + rpc NotifyChatRoomDisconnect (.ChatRoomClient_NotifyChatRoomDisconnect_Notification) returns (.NoResponse); + rpc NotifyMemberListViewUpdated (.CChatRoomClient_MemberListViewUpdated_Notification) returns (.NoResponse); + rpc NotifyMessageReaction (.CChatRoom_MessageReaction_Notification) returns (.NoResponse); +} + +service ChatUsability { + rpc NotifyClientUsabilityMetrics (.CChatUsability_ClientUsabilityMetrics_Notification) returns (.NoResponse); +} + +service ChatUsabilityClient { + option (service_execution_site) = k_EProtoExecutionSiteSteamClient; + + rpc NotifyRequestClientUsabilityMetrics (.CChatUsability_RequestClientUsabilityMetrics_Notification) returns (.NoResponse); +} diff --git a/Protobufs/steam/steammessages_client_objects.proto b/Protobufs/steam/steammessages_client_objects.proto new file mode 100644 index 0000000..db39bc0 --- /dev/null +++ b/Protobufs/steam/steammessages_client_objects.proto @@ -0,0 +1,665 @@ +import "enums.proto"; + +option optimize_for = SPEED; +option cc_generic_services = false; + +enum ECloudPendingRemoteOperation { + k_ECloudPendingRemoteOperationNone = 0; + k_ECloudPendingRemoteOperationAppSessionActive = 1; + k_ECloudPendingRemoteOperationUploadInProgress = 2; + k_ECloudPendingRemoteOperationUploadPending = 3; + k_ECloudPendingRemoteOperationAppSessionSuspended = 4; +} + +enum ESteamDeckKeyboardLayout { + k_ESteamDeckKeyboardLayout_QWERTY = 0; + k_ESteamDeckKeyboardLayout_Bulgarian = 1; + k_ESteamDeckKeyboardLayout_Chinese_Simplified = 2; + k_ESteamDeckKeyboardLayout_Chinese_Traditional = 3; + k_ESteamDeckKeyboardLayout_Czech = 4; + k_ESteamDeckKeyboardLayout_Danish = 5; + k_ESteamDeckKeyboardLayout_Finnish = 6; + k_ESteamDeckKeyboardLayout_French = 7; + k_ESteamDeckKeyboardLayout_German = 8; + k_ESteamDeckKeyboardLayout_Greek = 9; + k_ESteamDeckKeyboardLayout_Hungarian = 10; + k_ESteamDeckKeyboardLayout_Italian = 11; + k_ESteamDeckKeyboardLayout_Japanese = 12; + k_ESteamDeckKeyboardLayout_Korean = 13; + k_ESteamDeckKeyboardLayout_Norwegian = 14; + k_ESteamDeckKeyboardLayout_Polish = 15; + k_ESteamDeckKeyboardLayout_Portuguese = 16; + k_ESteamDeckKeyboardLayout_Romanian = 17; + k_ESteamDeckKeyboardLayout_Russian = 18; + k_ESteamDeckKeyboardLayout_Spanish = 19; + k_ESteamDeckKeyboardLayout_Swedish = 20; + k_ESteamDeckKeyboardLayout_Thai = 21; + k_ESteamDeckKeyboardLayout_Turkish_F = 22; + k_ESteamDeckKeyboardLayout_Turkish_Q = 23; + k_ESteamDeckKeyboardLayout_Ukrainian = 24; + k_ESteamDeckKeyboardLayout_Vietnamese = 25; + k_ESteamDeckKeyboardLayout_QWERTY_International = 26; + k_ESteamDeckKeyboardLayout_Dvorak = 27; + k_ESteamDeckKeyboardLayout_Colemak = 28; + k_ESteamDeckKeyboardLayout_Bulgarian_Phonetic_Traditional = 29; + k_ESteamDeckKeyboardLayout_Bulgarian_Phonetic = 30; + k_ESteamDeckKeyboardLayout_Chinese_Traditional_Bopomofo = 31; + k_ESteamDeckKeyboardLayout_Chinese_Traditional_Cangjie = 32; + k_ESteamDeckKeyboardLayout_Japanese_Kana = 33; + k_ESteamDeckKeyboardLayout_Chinese_Traditional_Quick = 34; + k_ESteamDeckKeyboardLayout_Indonesian = 35; +} + +message SteamMessagesClientIClientForcedEnumDependencies { + optional .EBluetoothDeviceType a = 1 [default = k_BluetoothDeviceType_Invalid]; + optional .EStorageBlockContentType b = 2 [default = k_EStorageBlockContentType_Invalid]; + optional .EStorageBlockFileSystemType c = 3 [default = k_EStorageBlockFileSystemType_Invalid]; + optional .ESDCardFormatStage d = 4 [default = k_ESDCardFormatStage_Invalid]; +} + +message CMsgNetworkDeviceIP4Address { + optional int32 ip = 1 [default = 0]; + optional int32 netmask = 2; +} + +message CMsgNetworkDeviceIP4Config { + repeated .CMsgNetworkDeviceIP4Address addresses = 1; + repeated int32 dns_ip = 2; + optional int32 gateway_ip = 3; + optional bool is_dhcp_enabled = 4; + optional bool is_default_route = 5; + optional bool is_enabled = 6 [default = false]; +} + +message CMsgNetworkDeviceIP6Address { + optional string ip = 1; +} + +message CMsgNetworkDeviceIP6Config { + repeated .CMsgNetworkDeviceIP6Address addresses = 1; + repeated string dns_ip = 2; + optional string gateway_ip = 3; + optional bool is_dhcp_enabled = 4; + optional bool is_default_route = 5; + optional bool is_enabled = 6 [default = false]; +} + +message CMsgNetworkDevicesData { + message Device { + message Wired { + optional bool is_cable_present = 1 [default = false]; + optional uint32 speed_mbit = 2; + optional string friendly_name = 3; + } + + message Wireless { + message AP { + optional uint32 id = 1 [default = 0]; + optional int32 estrength = 2; + optional string ssid = 3; + optional bool is_active = 4; + optional bool is_autoconnect = 5; + optional int32 esecurity = 6; + optional string user_name = 7; + optional string password = 8; + optional int32 strength_raw = 9; + } + + repeated .CMsgNetworkDevicesData.Device.Wireless.AP aps = 1; + optional int32 esecurity_supported = 2; + } + + optional uint32 id = 1 [default = 0]; + optional int32 etype = 2; + optional int32 estate = 3; + optional string mac = 4; + optional string vendor = 5; + optional string product = 6; + optional .CMsgNetworkDeviceIP4Config ip4 = 7; + optional .CMsgNetworkDeviceIP6Config ip6 = 8; + optional .CMsgNetworkDevicesData.Device.Wired wired = 9; + optional .CMsgNetworkDevicesData.Device.Wireless wireless = 10; + } + + repeated .CMsgNetworkDevicesData.Device devices = 1; + optional bool is_wifi_enabled = 2; + optional bool is_wifi_scanning_enabled = 3; +} + +message CMsgNetworkDeviceConnect { + message KnownAP { + optional uint32 ap_id = 1; + } + + message CustomAP { + optional string ssid = 1; + optional int32 esecurity = 2; + } + + message Credentials { + optional string username = 1; + optional string password = 2; + } + + optional uint32 device_id = 1 [default = 0]; + optional .CMsgNetworkDeviceConnect.Credentials credentials = 4; + optional .CMsgNetworkDeviceIP4Config ip4 = 5; + optional .CMsgNetworkDeviceIP6Config ip6 = 6; + + oneof ap_info { + .CMsgNetworkDeviceConnect.KnownAP ap_known = 2; + .CMsgNetworkDeviceConnect.CustomAP ap_custom = 3; + } +} + +message CMsgStorageDevicesData { + message Drive { + optional uint32 id = 1 [default = 0]; + optional string model = 2; + optional string vendor = 3; + optional string serial = 4; + optional bool is_ejectable = 5; + optional uint64 size_bytes = 6; + optional .EStorageDriveMediaType media_type = 7 [default = k_EStorageDriveMediaType_Invalid]; + } + + message BlockDevice { + optional uint32 id = 1 [default = 0]; + optional uint32 drive_id = 2 [default = 0]; + optional string path = 3; + optional string friendly_path = 4; + optional string label = 5; + optional uint64 size_bytes = 6; + optional bool is_formattable = 7; + optional bool is_read_only = 8; + optional bool is_root_device = 9; + optional .EStorageBlockContentType content_type = 10 [default = k_EStorageBlockContentType_Invalid]; + optional .EStorageBlockFileSystemType filesystem_type = 11 [default = k_EStorageBlockFileSystemType_Invalid]; + optional string mount_path = 12; + } + + repeated .CMsgStorageDevicesData.Drive drives = 1; + repeated .CMsgStorageDevicesData.BlockDevice block_devices = 2; + optional bool is_unmount_supported = 3; + optional bool is_trim_supported = 4; + optional bool is_trim_running = 5; +} + +message CCloud_PendingRemoteOperation { + optional .ECloudPendingRemoteOperation operation = 1 [default = k_ECloudPendingRemoteOperationNone]; + optional string machine_name = 2; + optional uint64 client_id = 3; + optional uint32 time_last_updated = 4; + optional int32 os_type = 5; + optional int32 device_type = 6; +} + +message CMsgCloudPendingRemoteOperations { + repeated .CCloud_PendingRemoteOperation operations = 1; +} + +message CMsgBluetoothDevicesData { + message Adapter { + optional uint32 id = 1 [default = 0]; + optional string mac = 2; + optional string name = 3; + optional bool is_enabled = 4; + optional bool is_discovering = 5; + } + + message Device { + optional uint32 id = 1 [default = 0]; + optional uint32 adapter_id = 2 [default = 0]; + optional .EBluetoothDeviceType etype = 3 [default = k_BluetoothDeviceType_Invalid]; + optional string mac = 4; + optional string name = 5; + optional bool is_connected = 6; + optional bool is_paired = 7; + optional int32 strength_raw = 8; + optional bool wake_allowed = 9; + optional bool wake_allowed_supported = 10; + optional int32 battery_percent = 11; + } + + message Manager { + optional bool is_bluetooth_enabled = 1; + } + + repeated .CMsgBluetoothDevicesData.Adapter adapters = 1; + repeated .CMsgBluetoothDevicesData.Device devices = 2; + optional .CMsgBluetoothDevicesData.Manager manager = 3; +} + +message CMsgSystemPerfDiagnosticEntry { + optional string name = 1; + optional string value = 2; +} + +message CMsgSystemPerfNetworkInterface { + optional string name = 1; + optional double timestamp = 2; + optional int64 tx_bytes_total = 3; + optional int64 rx_bytes_total = 4; + optional int32 tx_bytes_per_sec = 5; + optional int32 rx_bytes_per_sec = 6; +} + +message CMsgSystemPerfDiagnosticInfo { + repeated .CMsgSystemPerfDiagnosticEntry entries = 1; + repeated .CMsgSystemPerfNetworkInterface interfaces = 2; + optional float battery_temp_c = 3; +} + +message CMsgSystemPerfLimits { + optional int32 cpu_governor_manual_min_mhz = 1; + optional int32 cpu_governor_manual_max_mhz = 2; + optional int32 fsr_sharpness_min = 3; + optional int32 fsr_sharpness_max = 4; + optional int32 gpu_performance_manual_min_mhz = 5; + optional int32 gpu_performance_manual_max_mhz = 6; + optional bool perf_overlay_is_standalone = 7; + optional bool is_dynamic_vrs_available = 8; + optional bool is_manual_display_refresh_rate_available = 9; + repeated .EGPUPerformanceLevel gpu_performance_levels_available = 10; + optional int32 display_refresh_manual_hz_min = 11; + optional int32 display_refresh_manual_hz_max = 12; + repeated int32 fps_limit_options = 13; + optional int32 tdp_limit_min = 14; + optional int32 tdp_limit_max = 15; + optional bool is_nis_supported = 16; + optional int32 nis_sharpness_min = 17; + optional int32 nis_sharpness_max = 18; + optional int32 display_external_refresh_manual_hz_min = 19; + optional int32 display_external_refresh_manual_hz_max = 20; + repeated int32 fps_limit_options_external = 21; + optional bool is_vrr_supported = 23; + optional bool is_dynamic_refresh_rate_in_steam_supported = 24; + optional bool is_split_scaling_and_filtering_supported = 25; + repeated .ESplitScalingFilter split_scaling_filters_available = 26; + repeated .ESplitScalingScaler split_scaling_scalers_available = 27; + optional bool is_hdr_supported = 28; + optional int32 display_refresh_manual_hz_oc_max = 29; + optional bool disable_refresh_rate_management = 30; +} + +message CMsgSystemPerfSettingsGlobal { + optional float diagnostic_update_rate = 1; + optional .ESystemServiceState system_trace_service_state = 2 [default = k_ESystemServiceState_Unavailable]; + optional .ESystemServiceState graphics_profiling_service_state = 3 [default = k_ESystemServiceState_Unavailable]; + optional .ESystemServiceState perf_overlay_service_state = 4 [default = k_ESystemServiceState_Unavailable]; + optional .EGraphicsPerfOverlayLevel perf_overlay_level = 5 [default = k_EGraphicsPerfOverlayLevel_Hidden]; + optional bool is_show_perf_overlay_over_steam_enabled = 6; + optional bool is_advanced_settings_enabled = 7; + optional bool allow_external_display_refresh_control = 8; + optional bool is_hdr_enabled = 9; + optional .EHDRToneMapOperator hdr_on_sdr_tonemap_operator = 12 [default = k_EHDRToneMapOperator_Invalid]; + optional bool is_hdr_debug_heatmap_enabled = 13; + optional bool force_hdr_wide_gammut_for_sdr = 15 [default = true]; + optional bool allow_experimental_hdr = 16; + optional float sdr_to_hdr_brightness = 22; + optional bool debug_force_hdr_support = 18; + optional bool force_hdr_10pq_output_debug = 19; + optional bool is_display_oc_enabled = 20; + optional bool is_color_management_enabled = 21; +} + +message CMsgSystemPerfSettingsPerApp { + optional int32 gpu_performance_manual_mhz = 1; + optional int32 fps_limit = 2; + optional bool is_variable_resolution_enabled = 3; + optional bool is_dynamic_refresh_rate_enabled = 4; + optional int32 tdp_limit = 5; + optional .ECPUGovernor cpu_governor = 6 [default = k_ECPUGovernor_Invalid]; + optional int32 cpu_governor_manual_mhz = 7; + optional int32 scaling_filter = 8; + optional int32 fsr_sharpness = 9; + optional bool is_fps_limit_enabled = 10; + optional bool is_tdp_limit_enabled = 11; + optional bool is_low_latency_mode_enabled = 12; + optional int32 display_refresh_manual_hz = 13; + optional bool is_game_perf_profile_enabled = 14; + optional .EGPUPerformanceLevel gpu_performance_level = 15 [default = k_EGPUPerformanceLevel_Invalid]; + optional int32 nis_sharpness = 16; + optional int32 display_external_refresh_manual_hz = 17; + optional int32 fps_limit_external = 18; + optional bool is_tearing_enabled = 19; + optional bool is_vrr_enabled = 20; + optional bool use_dynamic_refresh_rate_in_steam = 23; + optional .ESplitScalingFilter split_scaling_filter = 24 [default = k_ESplitScalingFilter_Invalid]; + optional .ESplitScalingScaler split_scaling_scaler = 25 [default = k_ESplitScalingScaler_Invalid]; +} + +message CMsgSystemPerfSettings { + optional .CMsgSystemPerfSettingsGlobal global = 1; + optional .CMsgSystemPerfSettingsPerApp per_app = 2; +} + +message CMsgSystemPerfSettingsV1 { + optional float diagnostic_update_rate = 1; + optional .ESystemServiceState system_trace_service_state = 2 [default = k_ESystemServiceState_Unavailable]; + optional .ESystemServiceState graphics_profiling_service_state = 3 [default = k_ESystemServiceState_Unavailable]; + optional .ESystemServiceState perf_overlay_service_state = 4 [default = k_ESystemServiceState_Unavailable]; + optional .EGraphicsPerfOverlayLevel perf_overlay_level = 5 [default = k_EGraphicsPerfOverlayLevel_Hidden]; + optional .EGPUPerformanceLevel gpu_performance_level = 6 [default = k_EGPUPerformanceLevel_Invalid]; + optional int32 gpu_performance_manual_mhz = 7; + optional int32 fps_limit = 8; + optional bool is_variable_resolution_enabled = 9; + optional bool is_dynamic_refresh_rate_enabled = 10; + optional int32 tdp_limit = 11; + optional .ECPUGovernor cpu_governor = 12 [default = k_ECPUGovernor_Invalid]; + optional int32 cpu_governor_manual_mhz = 13; + optional int32 scaling_filter = 14; + optional int32 fsr_sharpness = 15; + optional bool is_fps_limit_enabled = 16; + optional bool is_tdp_limit_enabled = 17; + optional bool is_show_perf_overlay_over_steam_enabled = 18; + optional bool is_low_latency_mode_enabled = 19; + optional int32 display_refresh_manual_hz = 20; + optional bool is_game_perf_profile_enabled = 21; +} + +message CMsgSystemPerfState { + optional .CMsgSystemPerfLimits limits = 1; + optional .CMsgSystemPerfSettings settings = 2; + optional uint64 current_game_id = 3; + optional uint64 active_profile_game_id = 4; +} + +message CMsgSystemPerfUpdateSettings { + optional uint64 gameid = 1; + optional bool skip_storage_update = 4; + + oneof update { + bool reset_to_default = 2; + .CMsgSystemPerfSettings settings_delta = 3; + } +} + +message CMsgSystemPerfLegacySettingEntry { + optional uint64 profile_game_id = 1; + optional .CMsgSystemPerfSettingsPerApp settings = 2; +} + +message CMsgSystemPerfLegacySettings { + optional .CMsgSystemPerfSettingsGlobal global = 1; + repeated .CMsgSystemPerfLegacySettingEntry per_app_settings = 2; +} + +message CMsgSystemDockUpdateState { + optional .EUpdaterState state = 1 [default = k_EUpdaterState_Invalid]; + optional fixed32 rtime_last_checked = 2; + optional string version_current = 3; + optional string version_available = 4; + optional float stage_progress = 5; + optional fixed32 rtime_estimated_completion = 6; + optional int32 old_fw_workaround = 7; +} + +message CMsgSystemDockState { + optional .CMsgSystemDockUpdateState update_state = 1; +} + +message CMsgSystemDockUpdateFirmware { + optional bool check_only = 1; +} + +message CMsgSystemAudioVolume { + message ChannelEntry { + optional .ESystemAudioChannel echannel = 1 [default = k_SystemAudioChannel_Invalid]; + optional float volume = 2; + } + + repeated .CMsgSystemAudioVolume.ChannelEntry entries = 1; + optional bool is_muted = 2; +} + +message CMsgSystemAudioManagerObject { + optional uint32 id = 1; + optional fixed32 rtime_last_update = 2; +} + +message CMsgSystemAudioManagerDevice { + optional .CMsgSystemAudioManagerObject base = 1; + optional string name = 2; + optional string nick = 3; + optional string description = 4; + optional string api = 5; +} + +message CMsgSystemAudioManagerNode { + optional .CMsgSystemAudioManagerObject base = 1; + optional uint32 device_id = 2; + optional string name = 3; + optional string nick = 4; + optional string description = 5; + optional .ESystemAudioDirection edirection = 6 [default = k_SystemAudioDirection_Invalid]; + optional .CMsgSystemAudioVolume volume = 7; +} + +message CMsgSystemAudioManagerPort { + optional .CMsgSystemAudioManagerObject base = 1; + optional uint32 node_id = 3; + optional string name = 4; + optional string alias = 5; + optional .ESystemAudioPortType etype = 6 [default = k_SystemAudioPortType_Invalid]; + optional .ESystemAudioPortDirection edirection = 7 [default = k_SystemAudioPortDirection_Invalid]; + optional bool is_physical = 8; + optional bool is_terminal = 9; + optional bool is_control = 10; + optional bool is_monitor = 11; +} + +message CMsgSystemAudioManagerLink { + optional .CMsgSystemAudioManagerObject base = 1; + optional uint32 output_node_id = 2; + optional uint32 output_port_id = 3; + optional uint32 input_node_id = 4; + optional uint32 input_port_id = 5; +} + +message CMsgSystemAudioManagerStateHW { + repeated .CMsgSystemAudioManagerDevice devices = 1; + repeated .CMsgSystemAudioManagerNode nodes = 2; + repeated .CMsgSystemAudioManagerPort ports = 3; + repeated .CMsgSystemAudioManagerLink links = 4; +} + +message CMsgSystemAudioManagerState { + optional fixed32 rtime_filter = 1; + optional int32 counter = 2; + optional .CMsgSystemAudioManagerStateHW hw = 3; +} + +message CMsgSystemAudioManagerUpdateSomething { + optional int32 counter = 1; +} + +message CMsgSystemDisplayMode { + optional int32 id = 1; + optional int32 width = 2; + optional int32 height = 3; + optional int32 refresh_hz = 4; +} + +message CMsgSystemDisplay { + optional int32 id = 1; + optional string name = 2; + optional string description = 3; + optional bool is_primary = 4; + optional bool is_enabled = 5; + optional bool is_internal = 6; + optional bool has_mode_override = 7; + optional int32 width_mm = 8; + optional int32 height_mm = 9; + optional int32 current_mode_id = 10; + repeated .CMsgSystemDisplayMode modes = 11; + optional int32 refresh_rate_min = 12; + optional int32 refresh_rate_max = 13; + optional bool is_vrr_capable = 14; + optional bool is_vrr_enabled = 15; + optional bool is_hdr_capable = 16; + optional bool is_hdr_enabled = 17; + repeated int32 supported_refresh_rates = 18; +} + +message CMsgSystemDisplayManagerState { + repeated .CMsgSystemDisplay displays = 1; + optional bool is_mode_switching_supported = 2; + optional .ESystemDisplayCompatibilityMode compatibility_mode = 3 [default = k_ESystemDisplayCompatibilityMode_Invalid]; +} + +message CMsgSystemDisplayManagerSetMode { + optional int32 display_id = 1; + optional int32 mode_id = 2; +} + +message CMsgSystemManagerSettings { + optional float idle_backlight_dim_battery_seconds = 1; + optional float idle_backlight_dim_ac_seconds = 2; + optional float idle_suspend_battery_seconds = 3; + optional float idle_suspend_ac_seconds = 4; + optional bool idle_suspend_supressed = 5; + optional bool is_adaptive_brightness_available = 6; + optional bool display_adaptive_brightness_enabled = 7; + optional bool display_nightmode_enabled = 10; + optional float display_nightmode_tintstrength = 11; + optional float display_nightmode_maxhue = 12; + optional float display_nightmode_maxsat = 13; + optional float display_nightmode_uiexp = 14; + optional float display_nightmode_blend = 15; + optional bool display_nightmode_reset = 16; + optional bool display_nightmode_schedule_enabled = 17; + optional float display_nightmode_schedule_starttime = 18; + optional float display_nightmode_schedule_endtime = 19; + optional bool display_diagnostics_enabled = 20; + optional float als_lux_primary = 21; + optional float als_lux_median = 22; + optional float display_backlight_raw = 23; + optional float display_brightness_adaptivemin = 24; + optional float display_brightness_adaptivemax = 25; + optional bool is_wifi_powersave_enabled = 26; + optional bool is_fan_control_available = 27; + optional .ESystemFanControlMode fan_control_mode = 28 [default = k_SystemFanControlMode_Invalid]; + optional bool is_display_brightness_available = 29; + optional bool is_display_colormanagement_available = 31; + optional float display_colorgamut = 32; + optional float als_lux_alternate = 33; + optional bool is_display_colortemp_available = 34; + optional float display_colortemp = 35; + optional float display_colortemp_default = 36; + optional bool display_colortemp_enabled = 37; + optional .EColorGamutLabelSet display_colorgamut_labelset = 38 [default = k_ColorGamutLabelSet_Default]; + optional float display_brightness_overdrive_hdr_split = 39; +} + +message CMsgSelectOSBranchParams { + optional .EOSBranch branch = 1 [default = k_EOSBranch_Unknown]; + optional string custom_branch = 2; +} + +message CMsgSystemUpdateProgress { + optional float stage_progress = 1; + optional int64 stage_size_bytes = 2; + optional fixed32 rtime_estimated_completion = 3; +} + +message CMsgSystemUpdateCheckResult { + optional .EUpdaterType type = 1 [default = k_EUpdaterType_Invalid]; + optional uint32 eresult = 2 [default = 2]; + optional fixed32 rtime_checked = 3; + optional bool available = 4; + optional string version = 5; + optional string auto_message = 6; + optional bool system_restart_pending = 7; +} + +message CMsgSystemUpdateApplyParams { + repeated .EUpdaterType apply_types = 1; +} + +message CMsgSystemUpdateApplyResult { + optional .EUpdaterType type = 1 [default = k_EUpdaterType_Invalid]; + optional uint32 eresult = 2 [default = 2]; + optional bool requires_client_restart = 3 [default = false]; + optional bool requires_system_restart = 4 [default = false]; +} + +message CMsgSystemUpdateState { + optional .EUpdaterState state = 1 [default = k_EUpdaterState_Invalid]; + optional .CMsgSystemUpdateProgress progress = 2; + repeated .CMsgSystemUpdateCheckResult update_check_results = 3; + repeated .CMsgSystemUpdateApplyResult update_apply_results = 4; + optional bool supports_os_updates = 5; +} + +message CMsgAchievementChange { + optional uint32 appid = 1; +} + +message CMsgCellList { + message Cell { + optional uint32 cell_id = 1; + optional string loc_name = 2; + } + + repeated .CMsgCellList.Cell cells = 1; +} + +message CMsgShortcutInfo { + optional uint32 appid = 1; + optional string exe = 2; + optional string start_dir = 3; + optional string icon = 4; + optional string path = 5; + optional string args = 6; + optional string app_name = 7; + optional uint32 override_appid = 8; + optional string flatpak_appid = 9; + repeated string tags = 10; + optional bool is_remote = 11; + optional bool is_hidden = 12; + optional bool is_temporary = 13; + optional bool is_openvr = 14; + optional bool allow_desktop_config = 15; + optional bool allow_overlay = 16; + optional uint32 rt_last_played_time = 17; + optional bool is_devkit_shortcut = 18; + optional string devkit_gameid = 19; +} + +message CMsgShortcutAppIds { + repeated uint32 appids = 1; +} + +message CMsgMonitorInfo { + message MonitorInfo { + required string monitor_device_name = 1; + required string monitor_display_name = 2; + } + + required string selected_display_name = 1; + repeated .CMsgMonitorInfo.MonitorInfo monitors = 2; +} + +message CMsgGenerateSystemReportReply { + optional string report_id = 1; +} + +message CMsgWebUITransportInfo { + optional uint32 port = 1; + optional string auth_key = 2; +} + +message CMsgWebUITransportFailure { + optional uint32 connect_count = 1; +} + +message CMsgClientShaderHitCacheEntry { + optional bytes key_sha = 1; + optional bytes code_sha = 2; + optional uint64 time_last_reported = 3; +} + +message CMsgClientShaderHitCache { + repeated .CMsgClientShaderHitCacheEntry entries = 1; +} diff --git a/Protobufs/steam/steammessages_clientlanp2p.proto b/Protobufs/steam/steammessages_clientlanp2p.proto new file mode 100644 index 0000000..d6a0f5a --- /dev/null +++ b/Protobufs/steam/steammessages_clientlanp2p.proto @@ -0,0 +1,43 @@ +import "steammessages_base.proto"; + +option optimize_for = SPEED; +option cc_generic_services = false; + +message CMsgClientLANP2PRequestChunks { + message ChunkKey { + optional uint32 depot_id = 1; + optional bytes sha = 2; + } + + repeated .CMsgClientLANP2PRequestChunks.ChunkKey chunk_keys = 1; +} + +message CMsgClientLANP2PRequestChunksResponse { + message ChunkData { + optional uint32 result = 1; + optional uint32 depot_id = 2; + optional bytes sha = 3; + optional bytes chunk_data = 4; + optional bool encrypted = 5; + optional bool compressed = 6; + } + + repeated .CMsgClientLANP2PRequestChunksResponse.ChunkData chunk_responses = 1; +} + +message CMsgClientPeerChunkRequest { + optional uint32 app_id = 1; + optional uint32 depot_id = 2; + optional bytes sha = 3; + optional uint64 access_token = 4; +} + +message CMsgClientPeerChunkResponse { + optional uint32 result = 1; + optional uint32 app_id = 2; + optional uint32 depot_id = 3; + optional bytes sha = 4; + optional bool encrypted = 5; + optional bool compressed = 6; + optional bytes chunk_data = 7; +} diff --git a/Protobufs/steam/steammessages_clientmetrics.steamclient.proto b/Protobufs/steam/steammessages_clientmetrics.steamclient.proto new file mode 100644 index 0000000..db01886 --- /dev/null +++ b/Protobufs/steam/steammessages_clientmetrics.steamclient.proto @@ -0,0 +1,247 @@ +import "steammessages_base.proto"; +import "steammessages_unified_base.steamclient.proto"; +import "clientmetrics.proto"; +import "enums.proto"; + +option cc_generic_services = true; + +enum ESteamPipeWorkType { + k_ESteamPipeClientWorkType_Invalid = 0; + k_ESteamPipeClientWorkType_StageFromChunkStores = 1; +} + +enum ESteamPipeOperationType { + k_ESteamPipeOperationType_Invalid = 0; + k_ESteamPipeOperationType_DecryptCPU = 1; + k_ESteamPipeOperationType_DiskRead = 2; + k_ESteamPipeOperationType_DiskWrite = 3; +} + +enum EClipShareMethod { + k_EClipShareMethod_Chat = 1; + k_EClipShareMethod_Clipboard = 2; + k_EClipShareMethod_File = 3; + k_EClipShareMethod_SendClip = 4; + k_EClipShareMethod_SaveToMedia = 5; + k_EClipShareMethod_CreateLink = 6; +} + +enum EClipRangeMethod { + k_EClipRangeMethod_CreateClipButton = 1; + k_EClipRangeMethod_Highlight = 2; + k_EClipRangeMethod_BeginEndButtons = 3; + k_EClipRangeMethod_ContextMenu = 4; + k_EClipRangeMethod_Drag = 5; + k_EClipRangeMethod_EntireClip = 6; +} + +message CClientMetrics_AppInterfaceCreation { + optional string raw_version = 1; + optional string requested_interface_type = 2; +} + +message CClientMetrics_AppInterfaceMethodCounts { + optional string interface_name = 1; + optional string method_name = 2; + optional uint32 call_count = 3; +} + +message CClientMetrics_AppInterfaceStats_Notification { + optional uint64 game_id = 1; + repeated .CClientMetrics_AppInterfaceCreation interfaces_created = 2; + repeated .CClientMetrics_AppInterfaceMethodCounts methods_called = 3; + optional uint32 session_length_seconds = 4; +} + +message CClientMetrics_IPv6Connectivity_Result { + optional uint32 protocol_tested = 1; + optional uint32 connectivity_state = 2; +} + +message CClientMetrics_IPv6Connectivity_Notification { + optional uint32 cell_id = 1; + repeated .CClientMetrics_IPv6Connectivity_Result results = 2; + optional bool private_ip_is_rfc6598 = 3; +} + +message CClientMetrics_SteamPipeWorkStats_Operation { + optional .ESteamPipeOperationType type = 1 [default = k_ESteamPipeOperationType_Invalid]; + optional uint32 num_ops = 2; + optional uint64 num_bytes = 3; + optional uint64 busy_time_ms = 4; + optional uint64 idle_time_ms = 5; + optional uint64 sum_run_time_ms = 6; + optional uint64 sum_wait_time_ms = 7; +} + +message CClientMetrics_SteamPipeWorkStats_Notification { + optional uint32 appid = 1; + optional uint32 depotid = 2; + optional .ESteamPipeWorkType work_type = 3 [default = k_ESteamPipeClientWorkType_Invalid]; + repeated .CClientMetrics_SteamPipeWorkStats_Operation operations = 4; + optional uint32 hardware_type = 5; +} + +message CClientMetrics_ReportReactUsage_Notification { + message RouteData { + optional string route = 1; + optional uint32 count = 2; + } + + message ComponentData { + optional string component = 1; + optional uint32 count = 2; + } + + message ActionData { + optional string action = 1; + optional uint32 count = 2; + } + + optional string product = 1; + optional string version = 2; + repeated .CClientMetrics_ReportReactUsage_Notification.RouteData routes = 3; + repeated .CClientMetrics_ReportReactUsage_Notification.ComponentData components = 4; + repeated .CClientMetrics_ReportReactUsage_Notification.ActionData actions = 5; +} + +message CClientMetrics_ReportClientError_Notification { + message Error { + optional string identifier = 1; + optional string message = 2; + optional uint32 count = 3; + } + + optional string product = 1; + optional string version = 2; + repeated .CClientMetrics_ReportClientError_Notification.Error errors = 3; +} + +message CClientMetrics_ClientBootstrap_Notification { + optional .CClientMetrics_ClientBootstrap_Summary summary = 1; +} + +message CClientMetrics_DownloadRates_Notification { + message StatsInfo { + optional uint32 source_type = 1; + optional uint32 source_id = 2; + optional uint64 bytes = 3; + optional string host_name = 4; + optional uint64 microseconds = 5; + optional bool used_ipv6 = 6; + optional bool proxied = 7; + optional bool used_http2 = 8; + optional uint32 cache_hits = 9; + optional uint32 cache_misses = 10; + optional uint64 hit_bytes = 11; + optional uint64 miss_bytes = 12; + } + + optional uint32 cell_id = 1; + repeated .CClientMetrics_DownloadRates_Notification.StatsInfo stats = 2; + optional uint32 throttling_kbps = 3; + optional uint32 os_type = 4; + optional uint32 device_type = 5; +} + +message CClientMetrics_ContentValidation_Notification { + optional int32 validation_result = 1; + optional uint32 app_id = 2; + optional bool staged_files = 3; + optional bool user_initiated = 4; + optional bool early_out = 5; + optional uint32 chunks_scanned = 6; + optional uint32 chunks_corrupt = 7; + optional uint64 bytes_scanned = 8; + optional uint64 chunk_bytes_corrupt = 9; + optional uint64 total_file_size_corrupt = 10; +} + +message CClientMetrics_CloudAppSyncStats_Notification { + optional uint32 app_id = 1; + optional uint32 platform_type = 2; + optional bool preload = 3; + optional bool blocking_app_launch = 4; + optional uint32 files_uploaded = 5; + optional uint32 files_downloaded = 6; + optional uint32 files_deleted = 7; + optional uint64 bytes_uploaded = 8; + optional uint64 bytes_downloaded = 9; + optional uint64 microsec_total = 10; + optional uint64 microsec_init_caches = 11; + optional uint64 microsec_validate_state = 12; + optional uint64 microsec_ac_launch = 13; + optional uint64 microsec_ac_prep_user_files = 14; + optional uint64 microsec_ac_exit = 15; + optional uint64 microsec_build_sync_list = 16; + optional uint64 microsec_delete_files = 17; + optional uint64 microsec_download_files = 18; + optional uint64 microsec_upload_files = 19; + optional uint32 hardware_type = 20; + optional uint32 files_managed = 21; +} + +message CClientMetrics_ContentDownloadResponse_Counts_Notification { + optional uint32 cell_id = 1; + optional .CClientMetrics_ContentDownloadResponse_Hosts data = 2; +} + +message CClientMetrics_ReportClientArgs_Notification { + repeated string client_args = 1; + optional bool gpu_webview_regkey_disabled = 2; + optional bool suppress_gpu_chrome = 3; + optional bool browser_not_supported = 4; + optional bool hw_accel_video_regkey_disabled = 5; + optional bool mini_mode_enabled = 6; + optional bool fps_counter_enabled = 7; + optional bool library_low_bandwidth_mode_enabled = 8; + optional bool library_low_perf_mode_enabled = 9; + optional int32 gr_mode = 10; +} + +message CClientMetrics_ClipShare_Notification { + optional uint32 eresult = 1 [default = 2]; + optional .EClipShareMethod share_method = 2 [default = k_EClipShareMethod_Chat]; + optional float seconds = 3; + optional uint64 bytes = 4; + optional fixed64 gameid = 5; +} + +message CClientMetrics_ClipRange_Notification { + message RelativeRangeEdge { + optional .EClipRangeMethod original_range_method = 1 [default = k_EClipRangeMethod_CreateClipButton]; + optional .EClipRangeMethod latest_range_method = 2 [default = k_EClipRangeMethod_CreateClipButton]; + optional int32 delta_ms = 3; + } + + optional .EClipRangeMethod original_range_method = 1 [default = k_EClipRangeMethod_CreateClipButton]; + optional .CClientMetrics_ClipRange_Notification.RelativeRangeEdge start = 2; + optional .CClientMetrics_ClipRange_Notification.RelativeRangeEdge end = 3; + optional float seconds = 4; + optional fixed64 gameid = 5; +} + +message CClientMetrics_EndGameRecording_Notification { + optional .EGameRecordingType recording_type = 1 [default = k_EGameRecordingType_Unknown]; + optional float seconds = 2; + optional uint64 bytes = 3; + optional fixed64 gameid = 4; + optional bool instant_clip = 5; +} + +service ClientMetrics { + rpc ClientAppInterfaceStatsReport (.CClientMetrics_AppInterfaceStats_Notification) returns (.NoResponse); + rpc ClientIPv6ConnectivityReport (.CClientMetrics_IPv6Connectivity_Notification) returns (.NoResponse); + rpc SteamPipeWorkStatsReport (.CClientMetrics_SteamPipeWorkStats_Notification) returns (.NoResponse); + rpc ReportReactUsage (.CClientMetrics_ReportReactUsage_Notification) returns (.NoResponse); + rpc ReportClientError (.CClientMetrics_ReportClientError_Notification) returns (.NoResponse); + rpc ClientBootstrapReport (.CClientMetrics_ClientBootstrap_Notification) returns (.NoResponse); + rpc ClientDownloadRatesReport (.CClientMetrics_DownloadRates_Notification) returns (.NoResponse); + rpc ClientContentValidationReport (.CClientMetrics_ContentValidation_Notification) returns (.NoResponse); + rpc ClientCloudAppSyncStats (.CClientMetrics_CloudAppSyncStats_Notification) returns (.NoResponse); + rpc ClientDownloadResponseCodeCounts (.CClientMetrics_ContentDownloadResponse_Counts_Notification) returns (.NoResponse); + rpc ReportClientArgs (.CClientMetrics_ReportClientArgs_Notification) returns (.NoResponse); + rpc ReportClipShare (.CClientMetrics_ClipShare_Notification) returns (.NoResponse); + rpc ReportClipRange (.CClientMetrics_ClipRange_Notification) returns (.NoResponse); + rpc ReportEndGameRecording (.CClientMetrics_EndGameRecording_Notification) returns (.NoResponse); +} diff --git a/Protobufs/steam/steammessages_clientnotificationtypes.proto b/Protobufs/steam/steammessages_clientnotificationtypes.proto new file mode 100644 index 0000000..8451489 --- /dev/null +++ b/Protobufs/steam/steammessages_clientnotificationtypes.proto @@ -0,0 +1,280 @@ +option optimize_for = SPEED; +option cc_generic_services = true; + +enum EClientNotificationType { + k_EClientNotificationType_Invalid = 0; + k_EClientNotificationType_DownloadCompleted = 1; + k_EClientNotificationType_FriendInvite = 2; + k_EClientNotificationType_FriendInGame = 3; + k_EClientNotificationType_FriendOnline = 4; + k_EClientNotificationType_Achievement = 5; + k_EClientNotificationType_LowBattery = 6; + k_EClientNotificationType_SystemUpdate = 7; + k_EClientNotificationType_FriendMessage = 8; + k_EClientNotificationType_GroupChatMessage = 9; + k_EClientNotificationType_FriendInviteRollup = 10; + k_EClientNotificationType_FamilySharingDeviceAuthorizationChanged = 11; + k_EClientNotificationType_FamilySharingStopPlaying = 12; + k_EClientNotificationType_FamilySharingLibraryAvailable = 13; + k_EClientNotificationType_Screenshot = 14; + k_EClientNotificationType_CloudSyncFailure = 15; + k_EClientNotificationType_CloudSyncConflict = 16; + k_EClientNotificationType_IncomingVoiceChat = 17; + k_EClientNotificationType_ClaimSteamDeckRewards = 18; + k_EClientNotificationType_GiftReceived = 19; + k_EClientNotificationType_ItemAnnouncement = 20; + k_EClientNotificationType_HardwareSurvey = 21; + k_EClientNotificationType_LowDiskSpace = 22; + k_EClientNotificationType_BatteryTemperature = 23; + k_EClientNotificationType_DockUnsupportedFirmware = 24; + k_EClientNotificationType_PeerContentUpload = 25; + k_EClientNotificationType_CannotReadControllerGuideButton = 26; + k_EClientNotificationType_Comment = 27; + k_EClientNotificationType_Wishlist = 28; + k_EClientNotificationType_TradeOffer = 29; + k_EClientNotificationType_AsyncGame = 30; + k_EClientNotificationType_General = 31; + k_EClientNotificationType_HelpRequest = 32; + k_EClientNotificationType_OverlaySplashScreen = 33; + k_EClientNotificationType_BroadcastAvailableToWatch = 34; + k_EClientNotificationType_TimedTrialRemaining = 35; + k_EClientNotificationType_LoginRefresh = 36; + k_EClientNotificationType_MajorSale = 37; + k_EClientNotificationType_TimerExpired = 38; + k_EClientNotificationType_ModeratorMsg = 39; + k_EClientNotificationType_SteamInputActionSetChanged = 40; + k_EClientNotificationType_RemoteClientConnection = 41; + k_EClientNotificationType_RemoteClientStartStream = 42; + k_EClientNotificationType_StreamingClientConnection = 43; + k_EClientNotificationType_FamilyInvite = 44; + k_EClientNotificationType_PlaytimeWarning = 45; + k_EClientNotificationType_FamilyPurchaseRequest = 46; + k_EClientNotificationType_FamilyPurchaseRequestResponse = 47; + k_EClientNotificationType_ParentalFeatureRequest = 48; + k_EClientNotificationType_ParentalPlaytimeRequest = 49; + k_EClientNotificationType_GameRecordingError = 50; + k_EClientNotificationType_ParentalFeatureResponse = 51; + k_EClientNotificationType_ParentalPlaytimeResponse = 52; + k_EClientNotificationType_RequestedGameAdded = 53; + k_EClientNotificationType_ClipDownloaded = 54; + k_EClientNotificationType_GameRecordingStart = 55; + k_EClientNotificationType_GameRecordingStop = 56; + k_EClientNotificationType_GameRecordingUserMarkerAdded = 57; + k_EClientNotificationType_GameRecordingInstantClip = 58; +} + +enum ESystemUpdateNotificationType { + k_ESystemUpdateNotificationType_Invalid = 0; + k_ESystemUpdateNotificationType_Available = 1; + k_ESystemUpdateNotificationType_NeedsRestart = 2; +} + +enum EGameRecordingErrorType { + k_EGameRecordingErrorGeneral = 1; + k_EGameRecordingErrorLowDiskSpace = 2; +} + +message CClientNotificationCloudSyncFailure { + optional uint32 appid = 1; +} + +message CClientNotificationCloudSyncConflict { + optional uint32 appid = 1; +} + +message CClientNotificationScreenshot { + optional string screenshot_handle = 1; + optional string description = 2; + optional string local_url = 3; +} + +message CClientNotificationDownloadCompleted { + optional uint32 appid = 1; + optional uint32 dlc_appid = 2; +} + +message CClientNotificationFriendInvite { + optional fixed64 steamid = 1; +} + +message CClientNotificationFriendInviteRollup { + optional uint32 new_invite_count = 1; +} + +message CClientNotificationFriendInGame { + optional fixed64 steamid = 1; + optional string game_name = 2; +} + +message CClientNotificationFriendOnline { + optional fixed64 steamid = 1; +} + +message CClientNotificationAchievement { + optional string achievement_id = 1; + optional uint32 appid = 2; + optional string name = 3; + optional string description = 4; + optional string image_url = 5; + optional bool achieved = 6; + optional uint32 rtime_unlocked = 7; + optional float min_progress = 8; + optional float current_progress = 9; + optional float max_progress = 10; + optional float global_achieved_pct = 11; +} + +message CClientNotificationLowBattery { + optional float pct_remaining = 1; +} + +message CClientNotificationSystemUpdate { + optional .ESystemUpdateNotificationType type = 1 [default = k_ESystemUpdateNotificationType_Invalid]; +} + +message CClientNotificationFriendMessage { + optional string tag = 1; + optional string steamid = 2; + optional string title = 3; + optional string body = 4; + optional string icon = 5; + optional uint32 notificationid = 6; + optional string response_steamurl = 7; +} + +message CClientNotificationGroupChatMessage { + optional string tag = 1; + optional string steamid_sender = 2; + optional string chat_group_id = 3; + optional string chat_id = 4; + optional string title = 5; + optional string body = 6; + optional string rawbody = 7; + optional string icon = 8; + optional uint32 notificationid = 9; +} + +message CClientNotificationFamilySharingDeviceAuthorizationChanged { + optional uint32 accountid_owner = 1; + optional bool authorized = 2; +} + +message CClientNotificationFamilySharingStopPlaying { + optional uint32 accountid_owner = 1; + optional uint32 seconds_remaining = 2; + optional uint32 appid = 3; +} + +message CClientNotificationFamilySharingLibraryAvailable { + optional uint32 accountid_owner = 1; +} + +message CClientNotificationIncomingVoiceChat { + optional fixed64 steamid = 1; +} + +message CClientNotificationClaimSteamDeckRewards { +} + +message CClientNotificationGiftReceived { + optional string sender_name = 1; +} + +message CClientNotificationItemAnnouncement { + optional uint32 new_item_count = 1; + optional bool new_backpack_items = 2; +} + +message CClientNotificationHardwareSurveyPending { +} + +message CClientNotificationLowDiskSpace { + optional uint32 folder_index = 1; +} + +message CClientNotificationBatteryTemperature { + optional uint32 temperature = 1; + optional string notification_type = 2; +} + +message CClientNotificationDockUnsupportedFirmware { +} + +message CClientNotificationPeerContentUpload { + optional uint32 appid = 1; + optional string peer_name = 2; +} + +message CClientNotificationCannotReadControllerGuideButton { + optional int32 controller_index = 1; +} + +message CClientNotificationOverlaySplashScreen { +} + +message CClientNotificationBroadcastAvailableToWatch { + optional int32 broadcast_permission = 1; +} + +message CClientNotificationTimedTrialRemaining { + optional uint32 appid = 1; + optional string icon = 2; + optional bool offline = 3; + optional uint32 allowed_seconds = 4; + optional uint32 played_seconds = 5; +} + +message CClientNotificationLoginRefresh { +} + +message CClientNotificationTimerExpired { +} + +message CClientNotificationSteamInputActionSetChanged { + optional int32 controller_index = 1; + optional string action_set_name = 2; +} + +message CClientNotificationRemoteClientConnection { + optional string machine = 1; + optional bool connected = 2; +} + +message CClientNotificationRemoteClientStartStream { + optional string machine = 1; + optional string game_name = 2; +} + +message CClientNotificationStreamingClientConnection { + optional string hostname = 1; + optional string machine = 2; + optional bool connected = 3; +} + +message CClientNotificationPlaytimeWarning { + optional string type = 1; + optional uint32 playtime_remaining = 2; +} + +message CClientNotificationGameRecordingError { + optional fixed64 game_id = 1; + optional .EGameRecordingErrorType error_type = 2 [default = k_EGameRecordingErrorGeneral]; +} + +message CClientNotificationGameRecordingStart { + optional fixed64 game_id = 1; +} + +message CClientNotificationGameRecordingStop { + optional fixed64 game_id = 1; + optional string clip_id = 2; +} + +message CClientNotificationGameRecordingUserMarkerAdded { + optional fixed64 game_id = 1; +} + +message CClientNotificationGameRecordingInstantClip { + optional fixed64 game_id = 1; + optional string clip_id = 2; +} diff --git a/Protobufs/steam/steammessages_clientserver.proto b/Protobufs/steam/steammessages_clientserver.proto new file mode 100644 index 0000000..a3610c9 --- /dev/null +++ b/Protobufs/steam/steammessages_clientserver.proto @@ -0,0 +1,392 @@ +import "steammessages_base.proto"; +import "encrypted_app_ticket.proto"; + +option optimize_for = SPEED; +option cc_generic_services = false; + +message CMsgClientRegisterAuthTicketWithCM { + optional uint32 protocol_version = 1; + optional bytes ticket = 3; + optional uint64 client_instance_id = 4; +} + +message CMsgClientTicketAuthComplete { + optional fixed64 steam_id = 1; + optional fixed64 game_id = 2; + optional uint32 estate = 3; + optional uint32 eauth_session_response = 4; + optional bytes DEPRECATED_ticket = 5; + optional uint32 ticket_crc = 6; + optional uint32 ticket_sequence = 7; + optional fixed64 owner_steam_id = 8; +} + +message CMsgClientCMList { + repeated uint32 cm_addresses = 1; + repeated uint32 cm_ports = 2; + repeated string cm_websocket_addresses = 3; + optional uint32 percent_default_to_websocket = 4; +} + +message CMsgClientP2PConnectionInfo { + optional fixed64 steam_id_dest = 1; + optional fixed64 steam_id_src = 2; + optional uint32 app_id = 3; + optional bytes candidate = 4; + optional fixed64 legacy_connection_id_src = 5; + optional bytes rendezvous = 6; +} + +message CMsgClientP2PConnectionFailInfo { + optional fixed64 steam_id_dest = 1; + optional fixed64 steam_id_src = 2; + optional uint32 app_id = 3; + optional uint32 ep2p_session_error = 4; + optional fixed64 connection_id_dest = 5; + optional uint32 close_reason = 7; + optional string close_message = 8; +} + +message CMsgClientNetworkingCertRequest { + optional bytes key_data = 2; + optional uint32 app_id = 3; +} + +message CMsgClientNetworkingCertReply { + optional bytes cert = 4; + optional fixed64 ca_key_id = 5; + optional bytes ca_signature = 6; +} + +message CMsgClientNetworkingMobileCertRequest { + optional uint32 app_id = 1; +} + +message CMsgClientNetworkingMobileCertReply { + optional string encoded_cert = 1; +} + +message CMsgClientGetAppOwnershipTicket { + optional uint32 app_id = 1; +} + +message CMsgClientGetAppOwnershipTicketResponse { + optional uint32 eresult = 1 [default = 2]; + optional uint32 app_id = 2; + optional bytes ticket = 3; +} + +message CMsgClientSessionToken { + optional uint64 token = 1; +} + +message CMsgClientGameConnectTokens { + optional uint32 max_tokens_to_keep = 1 [default = 10]; + repeated bytes tokens = 2; +} + +message CMsgClientGamesPlayed { + message ProcessInfo { + optional uint32 process_id = 1; + optional uint32 process_id_parent = 2; + optional bool parent_is_steam = 3; + } + + message GamePlayed { + optional uint64 steam_id_gs = 1; + optional fixed64 game_id = 2; + optional uint32 deprecated_game_ip_address = 3; + optional uint32 game_port = 4; + optional bool is_secure = 5; + optional bytes token = 6; + optional string game_extra_info = 7; + optional bytes game_data_blob = 8; + optional uint32 process_id = 9; + optional uint32 streaming_provider_id = 10; + optional uint32 game_flags = 11; + optional uint32 owner_id = 12; + optional string vr_hmd_vendor = 13; + optional string vr_hmd_model = 14; + optional uint32 launch_option_type = 15 [default = 0]; + optional int32 primary_controller_type = 16 [default = -1]; + optional string primary_steam_controller_serial = 17; + optional uint32 total_steam_controller_count = 18 [default = 0]; + optional uint32 total_non_steam_controller_count = 19 [default = 0]; + optional uint64 controller_workshop_file_id = 20 [default = 0]; + optional uint32 launch_source = 21 [default = 0]; + optional uint32 vr_hmd_runtime = 22; + optional .CMsgIPAddress game_ip_address = 23; + optional uint32 controller_connection_type = 24 [default = 0]; + optional int32 game_os_platform = 25; + optional uint32 game_build_id = 26; + optional uint32 compat_tool_id = 27 [default = 0]; + optional string compat_tool_cmd = 28; + optional uint32 compat_tool_build_id = 29; + optional string beta_name = 30; + optional uint32 dlc_context = 31; + repeated .CMsgClientGamesPlayed.ProcessInfo process_id_list = 32; + } + + repeated .CMsgClientGamesPlayed.GamePlayed games_played = 1; + optional uint32 client_os_type = 2; + optional uint32 cloud_gaming_platform = 3; + optional bool recent_reauthentication = 4; +} + +message CMsgGSApprove { + optional fixed64 steam_id = 1; + optional fixed64 owner_steam_id = 2; +} + +message CMsgGSDeny { + optional fixed64 steam_id = 1; + optional int32 edeny_reason = 2; + optional string deny_string = 3; +} + +message CMsgGSKick { + optional fixed64 steam_id = 1; + optional int32 edeny_reason = 2; +} + +message CMsgClientAuthList { + optional uint32 tokens_left = 1; + optional uint32 last_request_seq = 2; + optional uint32 last_request_seq_from_server = 3; + repeated .CMsgAuthTicket tickets = 4; + repeated uint32 app_ids = 5; + optional uint32 message_sequence = 6; + optional bool filtered = 7; +} + +message CMsgClientAuthListAck { + repeated uint32 ticket_crc = 1; + repeated uint32 app_ids = 2; + optional uint32 message_sequence = 3; +} + +message CMsgClientLicenseList { + message License { + optional uint32 package_id = 1; + optional fixed32 time_created = 2; + optional fixed32 time_next_process = 3; + optional int32 minute_limit = 4; + optional int32 minutes_used = 5; + optional uint32 payment_method = 6; + optional uint32 flags = 7; + optional string purchase_country_code = 8; + optional uint32 license_type = 9; + optional int32 territory_code = 10; + optional int32 change_number = 11; + optional uint32 owner_id = 12; + optional uint32 initial_period = 13; + optional uint32 initial_time_unit = 14; + optional uint32 renewal_period = 15; + optional uint32 renewal_time_unit = 16; + optional uint64 access_token = 17; + optional uint32 master_package_id = 18; + } + + optional int32 eresult = 1 [default = 2]; + repeated .CMsgClientLicenseList.License licenses = 2; +} + +message CMsgClientIsLimitedAccount { + optional bool bis_limited_account = 1; + optional bool bis_community_banned = 2; + optional bool bis_locked_account = 3; + optional bool bis_limited_account_allowed_to_invite_friends = 4; +} + +message CMsgClientRequestedClientStats { + message StatsToSend { + optional uint32 client_stat = 1; + optional uint32 stat_aggregate_method = 2; + } + + repeated .CMsgClientRequestedClientStats.StatsToSend stats_to_send = 1; +} + +message CMsgClientStat2 { + message StatDetail { + optional uint32 client_stat = 1; + optional int64 ll_value = 2; + optional uint32 time_of_day = 3; + optional uint32 cell_id = 4; + optional uint32 depot_id = 5; + optional uint32 app_id = 6; + } + + repeated .CMsgClientStat2.StatDetail stat_detail = 1; +} + +message CMsgClientInviteToGame { + optional fixed64 steam_id_dest = 1; + optional fixed64 steam_id_src = 2; + optional string connect_string = 3; + optional string remote_play = 4; +} + +message CMsgClientChatInvite { + optional fixed64 steam_id_invited = 1; + optional fixed64 steam_id_chat = 2; + optional fixed64 steam_id_patron = 3; + optional int32 chatroom_type = 4; + optional fixed64 steam_id_friend_chat = 5; + optional string chat_name = 6; + optional fixed64 game_id = 7; +} + +message CMsgClientConnectionStats { + message Stats_Logon { + optional int32 connect_attempts = 1; + optional int32 connect_successes = 2; + optional int32 connect_failures = 3; + optional int32 connections_dropped = 4; + optional uint32 seconds_running = 5; + optional uint32 msec_tologonthistime = 6; + optional uint32 count_bad_cms = 7; + optional bool no_udp_connectivity = 8; + optional bool no_tcp_connectivity = 9; + optional bool no_websocket_443_connectivity = 10; + optional bool no_websocket_non_443_connectivity = 11; + } + + message Stats_UDP { + optional uint64 pkts_sent = 1; + optional uint64 bytes_sent = 2; + optional uint64 pkts_recv = 3; + optional uint64 pkts_processed = 4; + optional uint64 bytes_recv = 5; + } + + message Stats_VConn { + optional uint32 connections_udp = 1; + optional uint32 connections_tcp = 2; + optional .CMsgClientConnectionStats.Stats_UDP stats_udp = 3; + optional uint64 pkts_abandoned = 4; + optional uint64 conn_req_received = 5; + optional uint64 pkts_resent = 6; + optional uint64 msgs_sent = 7; + optional uint64 msgs_sent_failed = 8; + optional uint64 msgs_recv = 9; + optional uint64 datagrams_sent = 10; + optional uint64 datagrams_recv = 11; + optional uint64 bad_pkts_recv = 12; + optional uint64 unknown_conn_pkts_recv = 13; + optional uint64 missed_pkts_recv = 14; + optional uint64 dup_pkts_recv = 15; + optional uint64 failed_connect_challenges = 16; + optional uint32 micro_sec_avg_latency = 17; + optional uint32 micro_sec_min_latency = 18; + optional uint32 micro_sec_max_latency = 19; + } + + optional .CMsgClientConnectionStats.Stats_Logon stats_logon = 1; + optional .CMsgClientConnectionStats.Stats_VConn stats_vconn = 2; +} + +message CMsgClientServersAvailable { + message Server_Types_Available { + optional uint32 server = 1; + optional bool changed = 2; + } + + repeated .CMsgClientServersAvailable.Server_Types_Available server_types_available = 1; + optional uint32 server_type_for_auth_services = 2; +} + +message CMsgClientReportOverlayDetourFailure { + repeated string failure_strings = 1; +} + +message CMsgClientRequestEncryptedAppTicket { + optional uint32 app_id = 1; + optional bytes userdata = 2; +} + +message CMsgClientRequestEncryptedAppTicketResponse { + optional uint32 app_id = 1; + optional int32 eresult = 2 [default = 2]; + optional .EncryptedAppTicket encrypted_app_ticket = 3; +} + +message CMsgClientWalletInfoUpdate { + optional bool has_wallet = 1; + optional int32 balance = 2; + optional int32 currency = 3; + optional int32 balance_delayed = 4; + optional int64 balance64 = 5 [(php_output_always_number) = true]; + optional int64 balance64_delayed = 6 [(php_output_always_number) = true]; + optional int32 realm = 7; +} + +message CMsgClientAMGetClanOfficers { + optional fixed64 steamid_clan = 1; +} + +message CMsgClientAMGetClanOfficersResponse { + optional int32 eresult = 1 [default = 2]; + optional fixed64 steamid_clan = 2; + optional int32 officer_count = 3; +} + +message CMsgClientAMGetPersonaNameHistory { + message IdInstance { + optional fixed64 steamid = 1; + } + + optional int32 id_count = 1; + repeated .CMsgClientAMGetPersonaNameHistory.IdInstance Ids = 2; +} + +message CMsgClientAMGetPersonaNameHistoryResponse { + message NameTableInstance { + message NameInstance { + optional fixed32 name_since = 1; + optional string name = 2; + } + + optional int32 eresult = 1 [default = 2]; + optional fixed64 steamid = 2; + repeated .CMsgClientAMGetPersonaNameHistoryResponse.NameTableInstance.NameInstance names = 3; + } + + repeated .CMsgClientAMGetPersonaNameHistoryResponse.NameTableInstance responses = 2; +} + +message CMsgClientDeregisterWithServer { + optional uint32 eservertype = 1; + optional uint32 app_id = 2; +} + +message CMsgClientClanState { + message NameInfo { + optional string clan_name = 1; + optional bytes sha_avatar = 2; + } + + message UserCounts { + optional uint32 members = 1; + optional uint32 online = 2; + optional uint32 chatting = 3; + optional uint32 in_game = 4; + optional uint32 chat_room_members = 5; + } + + message Event { + optional fixed64 gid = 1; + optional uint32 event_time = 2; + optional string headline = 3; + optional fixed64 game_id = 4; + optional bool just_posted = 5; + } + + optional fixed64 steamid_clan = 1; + optional uint32 clan_account_flags = 3; + optional .CMsgClientClanState.NameInfo name_info = 4; + optional .CMsgClientClanState.UserCounts user_counts = 5; + repeated .CMsgClientClanState.Event events = 6; + repeated .CMsgClientClanState.Event announcements = 7; + optional bool chat_room_private = 8; +} diff --git a/Protobufs/steam/steammessages_clientserver_2.proto b/Protobufs/steam/steammessages_clientserver_2.proto new file mode 100644 index 0000000..830c064 --- /dev/null +++ b/Protobufs/steam/steammessages_clientserver_2.proto @@ -0,0 +1,771 @@ +import "steammessages_base.proto"; + +option optimize_for = SPEED; +option cc_generic_services = false; + +message CMsgClientUpdateUserGameInfo { + optional fixed64 steamid_idgs = 1; + optional fixed64 gameid = 2; + optional uint32 game_ip = 3; + optional uint32 game_port = 4; + optional bytes token = 5; +} + +message CMsgClientRichPresenceUpload { + optional bytes rich_presence_kv = 1; + repeated fixed64 steamid_broadcast = 2; +} + +message CMsgClientRichPresenceRequest { + repeated fixed64 steamid_request = 1; +} + +message CMsgClientRichPresenceInfo { + message RichPresence { + optional fixed64 steamid_user = 1; + optional bytes rich_presence_kv = 2; + } + + repeated .CMsgClientRichPresenceInfo.RichPresence rich_presence = 1; +} + +message CMsgClientCheckFileSignature { + optional uint32 app_id = 1; +} + +message CMsgClientCheckFileSignatureResponse { + optional uint32 app_id = 1; + optional uint32 pid = 2; + optional uint32 eresult = 3; + optional string filename = 4; + optional uint32 esignatureresult = 5; + optional bytes sha_file = 6; + optional bytes signatureheader = 7; + optional uint32 filesize = 8; + optional uint32 getlasterror = 9; + optional uint32 evalvesignaturecheckdetail = 10; +} + +message CMsgClientReadMachineAuth { + optional string filename = 1; + optional uint32 offset = 2; + optional uint32 cubtoread = 3; +} + +message CMsgClientReadMachineAuthResponse { + optional string filename = 1; + optional uint32 eresult = 2; + optional uint32 filesize = 3; + optional bytes sha_file = 4; + optional uint32 getlasterror = 5; + optional uint32 offset = 6; + optional uint32 cubread = 7; + optional bytes bytes_read = 8; + optional string filename_sentry = 9; +} + +message CMsgClientUpdateMachineAuth { + optional string filename = 1; + optional uint32 offset = 2; + optional uint32 cubtowrite = 3; + optional bytes bytes = 4; + optional uint32 otp_type = 5; + optional string otp_identifier = 6; + optional bytes otp_sharedsecret = 7; + optional uint32 otp_timedrift = 8; +} + +message CMsgClientUpdateMachineAuthResponse { + optional string filename = 1; + optional uint32 eresult = 2; + optional uint32 filesize = 3; + optional bytes sha_file = 4; + optional uint32 getlasterror = 5; + optional uint32 offset = 6; + optional uint32 cubwrote = 7; + optional int32 otp_type = 8; + optional uint32 otp_value = 9; + optional string otp_identifier = 10; +} + +message CMsgClientRequestMachineAuth { + optional string filename = 1; + optional uint32 eresult_sentryfile = 2; + optional uint32 filesize = 3; + optional bytes sha_sentryfile = 4; + optional int32 lock_account_action = 6; + optional uint32 otp_type = 7; + optional string otp_identifier = 8; + optional bytes otp_sharedsecret = 9; + optional uint32 otp_value = 10; + optional string machine_name = 11; + optional string machine_name_userchosen = 12; +} + +message CMsgClientRequestMachineAuthResponse { + optional uint32 eresult = 1; +} + +message CMsgClientRegisterKey { + optional string key = 1; +} + +message CMsgClientPurchaseResponse { + optional int32 eresult = 1 [default = 2]; + optional int32 purchase_result_details = 2; + optional bytes purchase_receipt_info = 3; +} + +message CMsgClientActivateOEMLicense { + optional string bios_manufacturer = 1; + optional string bios_serialnumber = 2; + optional bytes license_file = 3; + optional string mainboard_manufacturer = 4; + optional string mainboard_product = 5; + optional string mainboard_serialnumber = 6; +} + +message CMsgClientRegisterOEMMachine { + optional bytes oem_register_file = 1; +} + +message CMsgClientRegisterOEMMachineResponse { + optional uint32 eresult = 1; +} + +message CMsgClientPurchaseWithMachineID { + optional uint32 package_id = 1; + optional bytes machine_info = 2; +} + +message CMsgTrading_InitiateTradeRequest { + optional uint32 trade_request_id = 1; + optional uint64 other_steamid = 2; + optional string other_name = 3; +} + +message CMsgTrading_InitiateTradeResponse { + optional uint32 response = 1; + optional uint32 trade_request_id = 2; + optional uint64 other_steamid = 3; + optional uint32 steamguard_required_days = 4; + optional uint32 new_device_cooldown_days = 5; + optional uint32 default_password_reset_probation_days = 6; + optional uint32 password_reset_probation_days = 7; + optional uint32 default_email_change_probation_days = 8; + optional uint32 email_change_probation_days = 9; +} + +message CMsgTrading_CancelTradeRequest { + optional uint64 other_steamid = 1; +} + +message CMsgTrading_StartSession { + optional uint64 other_steamid = 1; +} + +message CMsgClientGetCDNAuthToken { + optional uint32 depot_id = 1; + optional string host_name = 2; + optional uint32 app_id = 3; +} + +message CMsgClientGetDepotDecryptionKey { + optional uint32 depot_id = 1; + optional uint32 app_id = 2; +} + +message CMsgClientGetDepotDecryptionKeyResponse { + optional int32 eresult = 1 [default = 2]; + optional uint32 depot_id = 2; + optional bytes depot_encryption_key = 3; +} + +message CMsgClientCheckAppBetaPassword { + optional uint32 app_id = 1; + optional string betapassword = 2; + optional int32 language = 3; +} + +message CMsgClientCheckAppBetaPasswordResponse { + message BetaPassword { + optional string betaname = 1; + optional string betapassword = 2; + optional string betadescription = 3; + } + + optional int32 eresult = 1 [default = 2]; + repeated .CMsgClientCheckAppBetaPasswordResponse.BetaPassword betapasswords = 4; +} + +message CMsgClientGetCDNAuthTokenResponse { + optional uint32 eresult = 1 [default = 2]; + optional string token = 2; + optional uint32 expiration_time = 3; +} + +message CMsgDownloadRateStatistics { + message StatsInfo { + optional uint32 source_type = 1; + optional uint32 source_id = 2; + optional uint32 seconds = 3; + optional uint64 bytes = 4; + optional string host_name = 5; + optional uint64 microseconds = 6; + optional bool used_ipv6 = 7; + optional bool proxied = 8; + } + + optional uint32 cell_id = 1; + repeated .CMsgDownloadRateStatistics.StatsInfo stats = 2; + optional uint32 throttling_kbps = 3; + optional uint32 steam_realm = 4; +} + +message CMsgClientRequestAccountData { + optional string account_or_email = 1; + optional uint32 action = 2; +} + +message CMsgClientRequestAccountDataResponse { + optional uint32 action = 1; + optional uint32 eresult = 2; + optional string account_name = 3; + optional uint32 ct_matches = 4; + optional string account_name_suggestion1 = 5; + optional string account_name_suggestion2 = 6; + optional string account_name_suggestion3 = 7; +} + +message CMsgClientUGSGetGlobalStats { + optional uint64 gameid = 1; + optional uint32 history_days_requested = 2; + optional fixed32 time_last_requested = 3; + optional uint32 first_day_cached = 4; + optional uint32 days_cached = 5; +} + +message CMsgClientUGSGetGlobalStatsResponse { + message Day { + message Stat { + optional int32 stat_id = 1; + optional int64 data = 2; + } + + optional uint32 day_id = 1; + repeated .CMsgClientUGSGetGlobalStatsResponse.Day.Stat stats = 2; + } + + optional int32 eresult = 1 [default = 2]; + optional fixed32 timestamp = 2; + optional int32 day_current = 3; + repeated .CMsgClientUGSGetGlobalStatsResponse.Day days = 4; +} + +message CMsgClientRedeemGuestPass { + optional fixed64 guest_pass_id = 1; +} + +message CMsgClientRedeemGuestPassResponse { + optional uint32 eresult = 1 [default = 2]; + optional uint32 package_id = 2; + optional uint32 must_own_appid = 3; +} + +message CMsgClientGetClanActivityCounts { + repeated uint64 steamid_clans = 1; +} + +message CMsgClientGetClanActivityCountsResponse { + optional uint32 eresult = 1 [default = 2]; +} + +message CMsgClientOGSReportString { + optional bool accumulated = 1; + optional uint64 sessionid = 2; + optional int32 severity = 3; + optional string formatter = 4; + optional bytes varargs = 5; +} + +message CMsgClientOGSReportBug { + optional uint64 sessionid = 1; + optional string bugtext = 2; + optional bytes screenshot = 3; +} + +message CMsgClientSentLogs { +} + +message CMsgGCClient { + optional uint32 appid = 1; + optional uint32 msgtype = 2; + optional bytes payload = 3; + optional fixed64 steamid = 4; + optional string gcname = 5; + optional uint32 ip = 6; +} + +message CMsgClientRequestFreeLicense { + repeated uint32 appids = 2; +} + +message CMsgClientRequestFreeLicenseResponse { + optional uint32 eresult = 1 [default = 2]; + repeated uint32 granted_packageids = 2; + repeated uint32 granted_appids = 3; +} + +message CMsgDRMDownloadRequestWithCrashData { + optional uint32 download_flags = 1; + optional uint32 download_types_known = 2; + optional bytes guid_drm = 3; + optional bytes guid_split = 4; + optional bytes guid_merge = 5; + optional string module_name = 6; + optional string module_path = 7; + optional bytes crash_data = 8; +} + +message CMsgDRMDownloadResponse { + optional uint32 eresult = 1 [default = 2]; + optional uint32 app_id = 2; + optional uint32 blob_download_type = 3; + optional bytes merge_guid = 4; + optional uint32 download_file_dfs_ip = 5; + optional uint32 download_file_dfs_port = 6; + optional string download_file_url = 7; + optional string module_path = 8; +} + +message CMsgDRMFinalResult { + optional uint32 eResult = 1 [default = 2]; + optional uint32 app_id = 2; + optional uint32 blob_download_type = 3; + optional uint32 error_detail = 4; + optional bytes merge_guid = 5; + optional uint32 download_file_dfs_ip = 6; + optional uint32 download_file_dfs_port = 7; + optional string download_file_url = 8; +} + +message CMsgClientDPCheckSpecialSurvey { + optional uint32 survey_id = 1; +} + +message CMsgClientDPCheckSpecialSurveyResponse { + optional uint32 eResult = 1 [default = 2]; + optional uint32 state = 2; + optional string name = 3; + optional string custom_url = 4; + optional bool include_software = 5; + optional bytes token = 6; +} + +message CMsgClientDPSendSpecialSurveyResponse { + optional uint32 survey_id = 1; + optional bytes data = 2; +} + +message CMsgClientDPSendSpecialSurveyResponseReply { + optional uint32 eResult = 1 [default = 2]; + optional bytes token = 2; +} + +message CMsgClientRequestForgottenPasswordEmail { + optional string account_name = 1; + optional string password_tried = 2; +} + +message CMsgClientRequestForgottenPasswordEmailResponse { + optional uint32 eResult = 1; + optional bool use_secret_question = 2; +} + +message CMsgClientItemAnnouncements { + message UnseenItem { + optional uint32 appid = 1; + optional uint64 context_id = 2; + optional uint64 asset_id = 3; + optional uint64 amount = 4; + optional fixed32 rtime32_gained = 5; + optional uint32 source_appid = 6; + } + + optional uint32 count_new_items = 1; + repeated .CMsgClientItemAnnouncements.UnseenItem unseen_items = 2; +} + +message CMsgClientRequestItemAnnouncements { +} + +message CMsgClientUserNotifications { + message Notification { + optional uint32 user_notification_type = 1; + optional uint32 count = 2; + } + + repeated .CMsgClientUserNotifications.Notification notifications = 1; +} + +message CMsgClientCommentNotifications { + optional uint32 count_new_comments = 1; + optional uint32 count_new_comments_owner = 2; + optional uint32 count_new_comments_subscriptions = 3; +} + +message CMsgClientRequestCommentNotifications { +} + +message CMsgClientOfflineMessageNotification { + optional uint32 offline_messages = 1; + repeated uint32 friends_with_offline_messages = 2; +} + +message CMsgClientRequestOfflineMessageCount { +} + +message CMsgClientChatGetFriendMessageHistory { + optional fixed64 steamid = 1; +} + +message CMsgClientChatGetFriendMessageHistoryResponse { + message FriendMessage { + optional uint32 accountid = 1; + optional uint32 timestamp = 2; + optional string message = 3; + optional bool unread = 4; + } + + optional fixed64 steamid = 1; + optional uint32 success = 2; + repeated .CMsgClientChatGetFriendMessageHistoryResponse.FriendMessage messages = 3; +} + +message CMsgClientChatGetFriendMessageHistoryForOfflineMessages { +} + +message CMsgClientFSGetFriendsSteamLevels { + repeated uint32 accountids = 1; +} + +message CMsgClientFSGetFriendsSteamLevelsResponse { + message Friend { + optional uint32 accountid = 1; + optional uint32 level = 2; + } + + repeated .CMsgClientFSGetFriendsSteamLevelsResponse.Friend friends = 1; +} + +message CMsgClientEmailAddrInfo { + optional string email_address = 1; + optional bool email_is_validated = 2; + optional bool email_validation_changed = 3; + optional bool credential_change_requires_code = 4; + optional bool password_or_secretqa_change_requires_code = 5; +} + +message CMsgCREItemVoteSummary { + message PublishedFileId { + optional fixed64 published_file_id = 1; + } + + repeated .CMsgCREItemVoteSummary.PublishedFileId published_file_ids = 1; +} + +message CMsgCREItemVoteSummaryResponse { + message ItemVoteSummary { + optional fixed64 published_file_id = 1; + optional int32 votes_for = 2; + optional int32 votes_against = 3; + optional int32 reports = 4; + optional float score = 5; + } + + optional int32 eresult = 1 [default = 2]; + repeated .CMsgCREItemVoteSummaryResponse.ItemVoteSummary item_vote_summaries = 2; +} + +message CMsgCREUpdateUserPublishedItemVote { + optional fixed64 published_file_id = 1; + optional bool vote_up = 2; +} + +message CMsgCREUpdateUserPublishedItemVoteResponse { + optional int32 eresult = 1 [default = 2]; +} + +message CMsgCREGetUserPublishedItemVoteDetails { + message PublishedFileId { + optional fixed64 published_file_id = 1; + } + + repeated .CMsgCREGetUserPublishedItemVoteDetails.PublishedFileId published_file_ids = 1; +} + +message CMsgCREGetUserPublishedItemVoteDetailsResponse { + message UserItemVoteDetail { + optional fixed64 published_file_id = 1; + optional int32 vote = 2 [default = 0]; + } + + optional int32 eresult = 1 [default = 2]; + repeated .CMsgCREGetUserPublishedItemVoteDetailsResponse.UserItemVoteDetail user_item_vote_details = 2; +} + +message CMsgFSGetFollowerCount { + optional fixed64 steam_id = 1; +} + +message CMsgFSGetFollowerCountResponse { + optional int32 eresult = 1 [default = 2]; + optional int32 count = 2 [default = 0]; +} + +message CMsgFSGetIsFollowing { + optional fixed64 steam_id = 1; +} + +message CMsgFSGetIsFollowingResponse { + optional int32 eresult = 1 [default = 2]; + optional bool is_following = 2 [default = false]; +} + +message CMsgFSEnumerateFollowingList { + optional uint32 start_index = 1; +} + +message CMsgFSEnumerateFollowingListResponse { + optional int32 eresult = 1 [default = 2]; + optional int32 total_results = 2; + repeated fixed64 steam_ids = 3; +} + +message CMsgDPGetNumberOfCurrentPlayers { + optional uint32 appid = 1; +} + +message CMsgDPGetNumberOfCurrentPlayersResponse { + optional int32 eresult = 1 [default = 2]; + optional int32 player_count = 2; +} + +message CMsgClientFriendUserStatusPublished { + optional fixed64 friend_steamid = 1; + optional uint32 appid = 2; + optional string status_text = 3; +} + +message CMsgClientServiceMethodLegacy { + optional string method_name = 1; + optional bytes serialized_method = 2; + optional bool is_notification = 3; +} + +message CMsgClientServiceMethodLegacyResponse { + optional string method_name = 1; + optional bytes serialized_method_response = 2; +} + +message CMsgClientUIMode { + optional uint32 uimode = 1; + optional uint32 chat_mode = 2; +} + +message CMsgClientVanityURLChangedNotification { + optional string vanity_url = 1; +} + +message CMsgClientAuthorizeLocalDeviceRequest { + optional string device_description = 1; + optional uint32 owner_account_id = 2; + optional uint64 local_device_token = 3; +} + +message CMsgClientAuthorizeLocalDevice { + optional int32 eresult = 1 [default = 2]; + optional uint32 owner_account_id = 2; + optional uint64 authed_device_token = 3; +} + +message CMsgClientAuthorizeLocalDeviceNotification { + optional int32 eresult = 1 [default = 2]; + optional uint32 owner_account_id = 2; + optional uint64 local_device_token = 3; +} + +message CMsgClientDeauthorizeDeviceRequest { + optional uint32 deauthorization_account_id = 1; + optional uint64 deauthorization_device_token = 2; +} + +message CMsgClientDeauthorizeDevice { + optional int32 eresult = 1 [default = 2]; + optional uint32 deauthorization_account_id = 2; +} + +message CMsgClientUseLocalDeviceAuthorizations { + message DeviceToken { + optional uint32 owner_account_id = 1; + optional uint64 token_id = 2; + } + + repeated uint32 authorization_account_id = 1; + repeated .CMsgClientUseLocalDeviceAuthorizations.DeviceToken device_tokens = 2; +} + +message CMsgClientGetAuthorizedDevices { +} + +message CMsgClientGetAuthorizedDevicesResponse { + message AuthorizedDevice { + optional uint64 auth_device_token = 1; + optional string device_name = 2; + optional uint32 last_access_time = 3; + optional uint32 borrower_id = 4; + optional bool is_pending = 5; + optional uint32 app_played = 6; + } + + optional int32 eresult = 1 [default = 2]; + repeated .CMsgClientGetAuthorizedDevicesResponse.AuthorizedDevice authorized_device = 2; +} + +message CMsgClientSharedLibraryLockStatus { + message LockedLibrary { + optional uint32 owner_id = 1; + optional uint32 locked_by = 2; + } + + repeated .CMsgClientSharedLibraryLockStatus.LockedLibrary locked_library = 1; + optional uint32 own_library_locked_by = 2; +} + +message CMsgClientSharedLibraryStopPlaying { + message StopApp { + optional uint32 app_id = 1; + optional uint32 owner_id = 2; + } + + optional int32 seconds_left = 1; + repeated .CMsgClientSharedLibraryStopPlaying.StopApp stop_apps = 2; +} + +message CMsgClientServiceCall { + optional bytes sysid_routing = 1; + optional uint32 call_handle = 2; + optional uint32 module_crc = 3; + optional bytes module_hash = 4; + optional uint32 function_id = 5; + optional uint32 cub_output_max = 6; + optional uint32 flags = 7; + optional bytes callparameter = 8; + optional bool ping_only = 9; + optional uint32 max_outstanding_calls = 10; + optional uint32 app_id = 11; +} + +message CMsgClientServiceModule { + optional uint32 module_crc = 1; + optional bytes module_hash = 2; + optional bytes module_content = 3; +} + +message CMsgClientServiceCallResponse { + optional bytes sysid_routing = 1; + optional uint32 call_handle = 2; + optional uint32 module_crc = 3; + optional bytes module_hash = 4; + optional uint32 ecallresult = 5; + optional bytes result_content = 6; + optional bytes os_version_info = 7; + optional bytes system_info = 8; + optional fixed64 load_address = 9; + optional bytes exception_record = 10; + optional bytes portable_os_version_info = 11; + optional bytes portable_system_info = 12; + optional bool was_converted = 13; + optional uint32 internal_result = 14; + optional uint32 current_count = 15; + optional uint32 last_call_handle = 16; + optional uint32 last_call_module_crc = 17; + optional bytes last_call_sysid_routing = 18; + optional uint32 last_ecallresult = 19; + optional uint32 last_callissue_delta = 20; + optional uint32 last_callcomplete_delta = 21; +} + +message CMsgAMUnlockH264 { + optional uint32 appid = 1; + optional int32 platform = 2; + optional int32 reason = 3; +} + +message CMsgAMUnlockH264Response { + optional int32 eresult = 1 [default = 2]; + optional bytes encryption_key = 2; +} + +message CMsgClientPlayingSessionState { + optional bool playing_blocked = 2; + optional uint32 playing_app = 3; +} + +message CMsgClientKickPlayingSession { + optional bool only_stop_game = 1; +} + +message CMsgClientVoiceCallPreAuthorize { + optional fixed64 caller_steamid = 1; + optional fixed64 receiver_steamid = 2; + optional int32 caller_id = 3; + optional bool hangup = 4; +} + +message CMsgClientVoiceCallPreAuthorizeResponse { + optional fixed64 caller_steamid = 1; + optional fixed64 receiver_steamid = 2; + optional int32 eresult = 3 [default = 2]; + optional int32 caller_id = 4; +} + +message CMsgBadgeCraftedNotification { + optional uint32 appid = 1; + optional uint32 badge_level = 2; +} + +message CMsgClientStartPeerContentServer { + optional fixed64 steamid = 1; + optional fixed64 client_remote_id = 2; + optional uint32 app_id = 3; + optional uint32 current_build_id = 4; +} + +message CMsgClientStartPeerContentServerResponse { + optional uint32 result = 1; + optional uint32 server_port = 2; + repeated uint32 installed_depots = 3; + optional uint64 access_token = 4; +} + +message CMsgClientGetPeerContentInfo { + optional fixed64 steamid = 1; + optional fixed64 client_remote_id = 2; + optional bool owned_games_visible = 3; +} + +message CMsgClientGetPeerContentInfoResponse { + optional uint32 result = 1; + repeated uint32 apps = 2; +} + +message CMsgClientPendingGameLaunch { + optional uint32 app_id = 1; +} + +message CMsgClientPendingGameLaunchResponse { + optional int32 eresult = 1 [default = 2]; + optional uint32 app_id = 2; + optional string envkey = 3; +} diff --git a/Protobufs/steam/steammessages_clientserver_appinfo.proto b/Protobufs/steam/steammessages_clientserver_appinfo.proto new file mode 100644 index 0000000..36d47f3 --- /dev/null +++ b/Protobufs/steam/steammessages_clientserver_appinfo.proto @@ -0,0 +1,143 @@ +import "steammessages_base.proto"; + +option optimize_for = SPEED; +option cc_generic_services = false; + +message CMsgClientAppInfoUpdate { + optional uint32 last_changenumber = 1; + optional bool send_changelist = 2; +} + +message CMsgClientAppInfoChanges { + optional uint32 current_change_number = 1; + optional bool force_full_update = 2; + repeated uint32 appIDs = 3; +} + +message CMsgClientAppInfoRequest { + message App { + optional uint32 app_id = 1; + optional uint32 section_flags = 2; + repeated uint32 section_CRC = 3; + } + + repeated .CMsgClientAppInfoRequest.App apps = 1; + optional bool supports_batches = 2 [default = false]; +} + +message CMsgClientPICSChangesSinceRequest { + optional uint32 since_change_number = 1; + optional bool send_app_info_changes = 2; + optional bool send_package_info_changes = 3; + optional uint32 num_app_info_cached = 4; + optional uint32 num_package_info_cached = 5; +} + +message CMsgClientPICSChangesSinceResponse { + message PackageChange { + optional uint32 packageid = 1; + optional uint32 change_number = 2; + optional bool needs_token = 3; + } + + message AppChange { + optional uint32 appid = 1; + optional uint32 change_number = 2; + optional bool needs_token = 3; + } + + optional uint32 current_change_number = 1; + optional uint32 since_change_number = 2; + optional bool force_full_update = 3; + repeated .CMsgClientPICSChangesSinceResponse.PackageChange package_changes = 4; + repeated .CMsgClientPICSChangesSinceResponse.AppChange app_changes = 5; + optional bool force_full_app_update = 6; + optional bool force_full_package_update = 7; +} + +message CMsgClientPICSProductInfoRequest { + message AppInfo { + optional uint32 appid = 1; + optional uint64 access_token = 2; + optional bool only_public_obsolete = 3; + } + + message PackageInfo { + optional uint32 packageid = 1; + optional uint64 access_token = 2; + } + + repeated .CMsgClientPICSProductInfoRequest.PackageInfo packages = 1; + repeated .CMsgClientPICSProductInfoRequest.AppInfo apps = 2; + optional bool meta_data_only = 3; + optional uint32 num_prev_failed = 4; + optional uint32 OBSOLETE_supports_package_tokens = 5; + optional uint32 sequence_number = 6; + optional bool single_response = 7; +} + +message CMsgClientPICSProductInfoResponse { + option (msgpool_hard_limit) = 0; + + message AppInfo { + optional uint32 appid = 1; + optional uint32 change_number = 2; + optional bool missing_token = 3; + optional bytes sha = 4; + optional bytes buffer = 5; + optional bool only_public = 6; + optional uint32 size = 7; + } + + message PackageInfo { + optional uint32 packageid = 1; + optional uint32 change_number = 2; + optional bool missing_token = 3; + optional bytes sha = 4; + optional bytes buffer = 5; + optional uint32 size = 6; + } + + repeated .CMsgClientPICSProductInfoResponse.AppInfo apps = 1; + repeated uint32 unknown_appids = 2; + repeated .CMsgClientPICSProductInfoResponse.PackageInfo packages = 3; + repeated uint32 unknown_packageids = 4; + optional bool meta_data_only = 5; + optional bool response_pending = 6; + optional uint32 http_min_size = 7; + optional string http_host = 8; +} + +message CMsgClientPICSAccessTokenRequest { + repeated uint32 packageids = 1; + repeated uint32 appids = 2; +} + +message CMsgClientPICSAccessTokenResponse { + message PackageToken { + optional uint32 packageid = 1; + optional uint64 access_token = 2; + } + + message AppToken { + optional uint32 appid = 1; + optional uint64 access_token = 2; + } + + repeated .CMsgClientPICSAccessTokenResponse.PackageToken package_access_tokens = 1; + repeated uint32 package_denied_tokens = 2; + repeated .CMsgClientPICSAccessTokenResponse.AppToken app_access_tokens = 3; + repeated uint32 app_denied_tokens = 4; +} + +message CMsgClientPICSPrivateBetaRequest { + optional uint32 appid = 1; + optional uint64 access_token = 2; + optional string beta_name = 3; + optional bytes password_hash = 4; +} + +message CMsgClientPICSPrivateBetaResponse { + optional int32 eresult = 1 [default = 2]; + optional bytes depot_section = 2; +} diff --git a/Protobufs/steam/steammessages_clientserver_friends.proto b/Protobufs/steam/steammessages_clientserver_friends.proto new file mode 100644 index 0000000..7d28a08 --- /dev/null +++ b/Protobufs/steam/steammessages_clientserver_friends.proto @@ -0,0 +1,261 @@ +import "steammessages_base.proto"; + +option optimize_for = SPEED; +option cc_generic_services = false; + +message CMsgClientFriendMsg { + optional fixed64 steamid = 1; + optional int32 chat_entry_type = 2; + optional bytes message = 3; + optional fixed32 rtime32_server_timestamp = 4; + optional bool echo_to_sender = 5; +} + +message CMsgClientFriendMsgIncoming { + optional fixed64 steamid_from = 1; + optional int32 chat_entry_type = 2; + optional bool from_limited_account = 3; + optional bytes message = 4; + optional fixed32 rtime32_server_timestamp = 5; +} + +message CMsgClientAddFriend { + optional fixed64 steamid_to_add = 1; + optional string accountname_or_email_to_add = 2; +} + +message CMsgClientAddFriendResponse { + optional int32 eresult = 1 [default = 2]; + optional fixed64 steam_id_added = 2; + optional string persona_name_added = 3; +} + +message CMsgClientRemoveFriend { + optional fixed64 friendid = 1; +} + +message CMsgClientHideFriend { + optional fixed64 friendid = 1; + optional bool hide = 2; +} + +message CMsgClientFriendsList { + message Friend { + optional fixed64 ulfriendid = 1; + optional uint32 efriendrelationship = 2; + } + + optional bool bincremental = 1; + repeated .CMsgClientFriendsList.Friend friends = 2; + optional uint32 max_friend_count = 3; + optional uint32 active_friend_count = 4; + optional bool friends_limit_hit = 5; +} + +message CMsgClientFriendsGroupsList { + message FriendGroup { + optional int32 nGroupID = 1; + optional string strGroupName = 2; + } + + message FriendGroupsMembership { + optional fixed64 ulSteamID = 1; + optional int32 nGroupID = 2; + } + + optional bool bremoval = 1; + optional bool bincremental = 2; + repeated .CMsgClientFriendsGroupsList.FriendGroup friendGroups = 3; + repeated .CMsgClientFriendsGroupsList.FriendGroupsMembership memberships = 4; +} + +message CMsgClientPlayerNicknameList { + message PlayerNickname { + optional fixed64 steamid = 1; + optional string nickname = 3; + } + + optional bool removal = 1; + optional bool incremental = 2; + repeated .CMsgClientPlayerNicknameList.PlayerNickname nicknames = 3; +} + +message CMsgClientSetPlayerNickname { + optional fixed64 steamid = 1; + optional string nickname = 2; +} + +message CMsgClientSetPlayerNicknameResponse { + optional uint32 eresult = 1; +} + +message CMsgClientRequestFriendData { + optional uint32 persona_state_requested = 1; + repeated fixed64 friends = 2; +} + +message CMsgClientChangeStatus { + optional uint32 persona_state = 1; + optional string player_name = 2; + optional bool is_auto_generated_name = 3; + optional bool high_priority = 4; + optional bool persona_set_by_user = 5; + optional uint32 persona_state_flags = 6 [default = 0]; + optional bool need_persona_response = 7; + optional bool is_client_idle = 8; +} + +message CMsgPersonaChangeResponse { + optional uint32 result = 1; + optional string player_name = 2; +} + +message CMsgClientPersonaState { + message Friend { + message ClanData { + optional uint32 ogg_app_id = 1; + optional uint64 chat_group_id = 2; + } + + message KV { + optional string key = 1; + optional string value = 2; + } + + optional fixed64 friendid = 1; + optional uint32 persona_state = 2; + optional uint32 game_played_app_id = 3; + optional uint32 game_server_ip = 4; + optional uint32 game_server_port = 5; + optional uint32 persona_state_flags = 6; + optional uint32 online_session_instances = 7; + optional bool persona_set_by_user = 10; + optional string player_name = 15; + optional uint32 query_port = 20; + optional fixed64 steamid_source = 25; + optional bytes avatar_hash = 31; + optional uint32 last_logoff = 45; + optional uint32 last_logon = 46; + optional uint32 last_seen_online = 47; + optional uint32 clan_rank = 50; + optional string game_name = 55; + optional fixed64 gameid = 56; + optional bytes game_data_blob = 60; + optional .CMsgClientPersonaState.Friend.ClanData clan_data = 64; + optional string clan_tag = 65; + repeated .CMsgClientPersonaState.Friend.KV rich_presence = 71; + optional fixed64 broadcast_id = 72; + optional fixed64 game_lobby_id = 73; + optional uint32 watching_broadcast_accountid = 74; + optional uint32 watching_broadcast_appid = 75; + optional uint32 watching_broadcast_viewers = 76; + optional string watching_broadcast_title = 77; + optional bool is_community_banned = 78; + optional bool player_name_pending_review = 79; + optional bool avatar_pending_review = 80; + optional bool on_steam_deck = 81; + } + + optional uint32 status_flags = 1; + repeated .CMsgClientPersonaState.Friend friends = 2; +} + +message CMsgClientFriendProfileInfo { + optional fixed64 steamid_friend = 1; +} + +message CMsgClientFriendProfileInfoResponse { + optional int32 eresult = 1 [default = 2]; + optional fixed64 steamid_friend = 2; + optional uint32 time_created = 3; + optional string real_name = 4; + optional string city_name = 5; + optional string state_name = 6; + optional string country_name = 7; + optional string headline = 8; + optional string summary = 9; +} + +message CMsgClientCreateFriendsGroup { + optional fixed64 steamid = 1; + optional string groupname = 2; + repeated fixed64 steamid_friends = 3; +} + +message CMsgClientCreateFriendsGroupResponse { + optional uint32 eresult = 1; + optional int32 groupid = 2; +} + +message CMsgClientDeleteFriendsGroup { + optional fixed64 steamid = 1; + optional int32 groupid = 2; +} + +message CMsgClientDeleteFriendsGroupResponse { + optional uint32 eresult = 1; +} + +message CMsgClientManageFriendsGroup { + optional int32 groupid = 1; + optional string groupname = 2; + repeated fixed64 steamid_friends_added = 3; + repeated fixed64 steamid_friends_removed = 4; +} + +message CMsgClientManageFriendsGroupResponse { + optional uint32 eresult = 1; +} + +message CMsgClientAddFriendToGroup { + optional int32 groupid = 1; + optional fixed64 steamiduser = 2; +} + +message CMsgClientAddFriendToGroupResponse { + optional uint32 eresult = 1; +} + +message CMsgClientRemoveFriendFromGroup { + optional int32 groupid = 1; + optional fixed64 steamiduser = 2; +} + +message CMsgClientRemoveFriendFromGroupResponse { + optional uint32 eresult = 1; +} + +message CMsgClientGetEmoticonList { +} + +message CMsgClientEmoticonList { + message Emoticon { + optional string name = 1; + optional int32 count = 2; + optional uint32 time_last_used = 3; + optional uint32 use_count = 4; + optional uint32 time_received = 5; + optional uint32 appid = 6; + } + + message Sticker { + optional string name = 1; + optional int32 count = 2; + optional uint32 time_received = 3; + optional uint32 appid = 4; + optional uint32 time_last_used = 5; + optional uint32 use_count = 6; + } + + message Effect { + optional string name = 1; + optional int32 count = 2; + optional uint32 time_received = 3; + optional bool infinite_use = 4; + optional uint32 appid = 5; + } + + repeated .CMsgClientEmoticonList.Emoticon emoticons = 1; + repeated .CMsgClientEmoticonList.Sticker stickers = 2; + repeated .CMsgClientEmoticonList.Effect effects = 3; +} diff --git a/Protobufs/steam/steammessages_clientserver_gameservers.proto b/Protobufs/steam/steammessages_clientserver_gameservers.proto new file mode 100644 index 0000000..061b8a5 --- /dev/null +++ b/Protobufs/steam/steammessages_clientserver_gameservers.proto @@ -0,0 +1,159 @@ +import "steammessages_base.proto"; + +option optimize_for = SPEED; +option cc_generic_services = false; + +message CMsgGSServerType { + optional uint32 app_id_served = 1; + optional uint32 flags = 2; + optional uint32 deprecated_game_ip_address = 3; + optional uint32 game_port = 4; + optional string game_dir = 5; + optional string game_version = 6; + optional uint32 game_query_port = 7; + optional uint32 game_port_local = 10; + optional bytes sdr_logon = 8; + optional fixed32 fake_ip = 9; +} + +message CMsgGSStatusReply { + optional bool is_secure = 1; +} + +message CMsgGSPlayerList { + message Player { + optional uint64 steam_id = 1; + optional uint32 deprecated_public_ip = 2; + optional bytes token = 3; + optional .CMsgIPAddress public_ip = 4; + } + + repeated .CMsgGSPlayerList.Player players = 1; +} + +message CMsgGSUserPlaying { + optional fixed64 steam_id = 1; + optional uint32 deprecated_public_ip = 2; + optional bytes token = 3; + optional .CMsgIPAddress public_ip = 4; +} + +message CMsgGSDisconnectNotice { + optional fixed64 steam_id = 1; +} + +message CMsgGameServerData { + message Player { + optional fixed64 steam_id = 1; + } + + optional uint32 revision = 24; + optional uint32 query_port = 3; + optional uint32 game_port = 4; + optional uint32 spectator_port = 5; + optional string server_name = 22; + optional string game_description = 29; + optional string spectator_server_name = 27; + optional fixed32 fake_ip = 28; + optional string sdr_ping_location = 30; + optional uint32 app_id = 6; + optional string gamedir = 7; + optional string version = 8; + optional string product = 9; + optional string region = 10; + repeated .CMsgGameServerData.Player players = 11; + optional uint32 max_players = 12; + optional uint32 bot_count = 13; + optional bool password = 14; + optional bool secure = 15; + optional bool dedicated = 16; + optional string os = 17; + optional string game_data = 18; + optional string game_type = 20; + optional string map = 21; +} + +message CMsgGameServerRemove { + optional fixed64 legacy_steam_id_gs = 1; + optional uint32 legacy_query_port = 3; +} + +message CMsgClientGMSServerQuery { + optional uint32 app_id = 1; + optional uint32 geo_location_ip = 2; + optional uint32 region_code = 3; + optional string filter_text = 4; + optional uint32 max_servers = 5; +} + +message CMsgGMSClientServerQueryResponse { + message Server { + optional uint32 deprecated_server_ip = 1; + optional uint32 query_port = 2; + optional uint32 auth_players = 3; + optional .CMsgIPAddress server_ip = 4; + optional fixed64 steam_id = 6; + optional uint32 revision = 7; + optional uint32 players = 8; + optional uint32 game_port = 9; + optional fixed32 sdr_popid = 10; + optional string sdr_ping_location = 32; + optional uint32 flags = 11; + optional uint32 app_id = 12; + optional uint32 max_players = 13; + optional uint32 bots = 14; + optional uint32 spectator_port = 15; + optional string gamedir_str = 16; + optional uint32 gamedir_strindex = 17; + optional string map_str = 18; + optional uint32 map_strindex = 19; + optional string name_str = 20; + optional uint32 name_strindex = 21; + optional string game_description_str = 22; + optional uint32 game_description_strindex = 23; + optional string version_str = 24; + optional uint32 version_strindex = 25; + optional string gametype_str = 26; + optional uint32 gametype_strindex = 27; + optional string spectator_name_str = 30; + optional uint32 spectator_name_strindex = 31; + } + + enum EFlags { + k_EFlag_HasPassword = 1; + k_EFlag_Secure = 2; + } + + repeated .CMsgGMSClientServerQueryResponse.Server servers = 1; + optional string error = 2; + optional .CMsgGMSClientServerQueryResponse.Server default_server_data = 3; + repeated string server_strings = 4; +} + +message CMsgGameServerOutOfDate { + optional fixed64 steam_id_gs = 1; + optional bool reject = 2; + optional string message = 3; +} + +message CMsgGSAssociateWithClan { + optional fixed64 steam_id_clan = 1; +} + +message CMsgGSAssociateWithClanResponse { + optional fixed64 steam_id_clan = 1; + optional uint32 eresult = 2 [default = 2]; +} + +message CMsgGSComputeNewPlayerCompatibility { + optional fixed64 steam_id_candidate = 1; +} + +message CMsgGSComputeNewPlayerCompatibilityResponse { + optional fixed64 steam_id_candidate = 1; + optional uint32 eresult = 2 [default = 2]; + optional bool is_clan_member = 3; + optional int32 ct_dont_like_you = 4; + optional int32 ct_you_dont_like = 5; + optional int32 ct_clanmembers_dont_like_you = 6; +} diff --git a/Protobufs/steam/steammessages_clientserver_lbs.proto b/Protobufs/steam/steammessages_clientserver_lbs.proto new file mode 100644 index 0000000..466efeb --- /dev/null +++ b/Protobufs/steam/steammessages_clientserver_lbs.proto @@ -0,0 +1,70 @@ +import "steammessages_base.proto"; + +option optimize_for = SPEED; +option cc_generic_services = false; + +message CMsgClientLBSSetScore { + optional uint32 app_id = 1; + optional int32 leaderboard_id = 2; + optional int32 score = 3; + optional bytes details = 4; + optional int32 upload_score_method = 5; +} + +message CMsgClientLBSSetScoreResponse { + optional int32 eresult = 1 [default = 2]; + optional int32 leaderboard_entry_count = 2; + optional bool score_changed = 3; + optional int32 global_rank_previous = 4; + optional int32 global_rank_new = 5; +} + +message CMsgClientLBSSetUGC { + optional uint32 app_id = 1; + optional int32 leaderboard_id = 2; + optional fixed64 ugc_id = 3; +} + +message CMsgClientLBSSetUGCResponse { + optional int32 eresult = 1 [default = 2]; +} + +message CMsgClientLBSFindOrCreateLB { + optional uint32 app_id = 1; + optional int32 leaderboard_sort_method = 2; + optional int32 leaderboard_display_type = 3; + optional bool create_if_not_found = 4; + optional string leaderboard_name = 5; +} + +message CMsgClientLBSFindOrCreateLBResponse { + optional int32 eresult = 1 [default = 2]; + optional int32 leaderboard_id = 2; + optional int32 leaderboard_entry_count = 3; + optional int32 leaderboard_sort_method = 4 [default = 0]; + optional int32 leaderboard_display_type = 5 [default = 0]; + optional string leaderboard_name = 6; +} + +message CMsgClientLBSGetLBEntries { + optional int32 app_id = 1; + optional int32 leaderboard_id = 2; + optional int32 range_start = 3; + optional int32 range_end = 4; + optional int32 leaderboard_data_request = 5; + repeated fixed64 steamids = 6; +} + +message CMsgClientLBSGetLBEntriesResponse { + message Entry { + optional fixed64 steam_id_user = 1; + optional int32 global_rank = 2; + optional int32 score = 3; + optional bytes details = 4; + optional fixed64 ugc_id = 5; + } + + optional int32 eresult = 1 [default = 2]; + optional int32 leaderboard_entry_count = 2; + repeated .CMsgClientLBSGetLBEntriesResponse.Entry entries = 3; +} diff --git a/Protobufs/steam/steammessages_clientserver_login.proto b/Protobufs/steam/steammessages_clientserver_login.proto new file mode 100644 index 0000000..63c4fd3 --- /dev/null +++ b/Protobufs/steam/steammessages_clientserver_login.proto @@ -0,0 +1,167 @@ +import "steammessages_base.proto"; + +option optimize_for = SPEED; +option cc_generic_services = false; + +message CMsgClientHeartBeat { + optional bool send_reply = 1; +} + +message CMsgClientServerTimestampRequest { + optional uint64 client_request_timestamp = 1; +} + +message CMsgClientServerTimestampResponse { + optional uint64 client_request_timestamp = 1; + optional uint64 server_timestamp_ms = 2; +} + +message CMsgClientSecret { + optional uint32 version = 1; + optional uint32 appid = 2; + optional uint32 deviceid = 3; + optional fixed64 nonce = 4; + optional bytes hmac = 5; +} + +message CMsgClientHello { + optional uint32 protocol_version = 1; +} + +message CMsgClientLogon { + optional uint32 protocol_version = 1; + optional uint32 deprecated_obfustucated_private_ip = 2; + optional uint32 cell_id = 3; + optional uint32 last_session_id = 4; + optional uint32 client_package_version = 5; + optional string client_language = 6; + optional uint32 client_os_type = 7; + optional bool should_remember_password = 8 [default = false]; + optional string wine_version = 9; + optional uint32 deprecated_10 = 10; + optional .CMsgIPAddress obfuscated_private_ip = 11; + optional uint32 deprecated_public_ip = 20; + optional uint32 qos_level = 21; + optional fixed64 client_supplied_steam_id = 22; + optional .CMsgIPAddress public_ip = 23; + optional bytes machine_id = 30; + optional uint32 launcher_type = 31 [default = 0]; + optional uint32 ui_mode = 32 [default = 0]; + optional uint32 chat_mode = 33 [default = 0]; + optional bytes steam2_auth_ticket = 41; + optional string email_address = 42; + optional fixed32 rtime32_account_creation = 43; + optional string account_name = 50; + optional string password = 51; + optional string game_server_token = 52; + optional string login_key = 60; + optional bool was_converted_deprecated_msg = 70 [default = false]; + optional string anon_user_target_account_name = 80; + optional fixed64 resolved_user_steam_id = 81; + optional int32 eresult_sentryfile = 82; + optional bytes sha_sentryfile = 83; + optional string auth_code = 84; + optional int32 otp_type = 85; + optional uint32 otp_value = 86; + optional string otp_identifier = 87; + optional bool steam2_ticket_request = 88; + optional bytes sony_psn_ticket = 90; + optional string sony_psn_service_id = 91; + optional bool create_new_psn_linked_account_if_needed = 92 [default = false]; + optional string sony_psn_name = 93; + optional int32 game_server_app_id = 94; + optional bool steamguard_dont_remember_computer = 95; + optional string machine_name = 96; + optional string machine_name_userchosen = 97; + optional string country_override = 98; + optional bool is_steam_box = 99; + optional uint64 client_instance_id = 100; + optional string two_factor_code = 101; + optional bool supports_rate_limit_response = 102; + optional string web_logon_nonce = 103; + optional int32 priority_reason = 104; + optional .CMsgClientSecret embedded_client_secret = 105; + optional bool disable_partner_autogrants = 106; + optional bool is_steam_deck = 107; + optional string access_token = 108; + optional bool is_chrome_os = 109; + optional bool is_tesla = 110; +} + +message CMsgClientLogonResponse { + optional int32 eresult = 1 [default = 2]; + optional int32 legacy_out_of_game_heartbeat_seconds = 2; + optional int32 heartbeat_seconds = 3; + optional uint32 deprecated_public_ip = 4; + optional fixed32 rtime32_server_time = 5; + optional uint32 account_flags = 6; + optional uint32 cell_id = 7; + optional string email_domain = 8; + optional bytes steam2_ticket = 9; + optional int32 eresult_extended = 10; + optional uint32 cell_id_ping_threshold = 12; + optional bool deprecated_use_pics = 13; + optional string vanity_url = 14; + optional .CMsgIPAddress public_ip = 15; + optional string user_country = 16; + optional fixed64 client_supplied_steamid = 20; + optional string ip_country_code = 21; + optional bytes parental_settings = 22; + optional bytes parental_setting_signature = 23; + optional int32 count_loginfailures_to_migrate = 24; + optional int32 count_disconnects_to_migrate = 25; + optional int32 ogs_data_report_time_window = 26; + optional uint64 client_instance_id = 27; + optional bool force_client_update_check = 28; + optional string agreement_session_url = 29; + optional uint64 token_id = 30; + optional uint64 family_group_id = 31; +} + +message CMsgClientRequestWebAPIAuthenticateUserNonce { + optional int32 token_type = 1 [default = -1]; +} + +message CMsgClientRequestWebAPIAuthenticateUserNonceResponse { + optional int32 eresult = 1 [default = 2]; + optional string webapi_authenticate_user_nonce = 11; + optional int32 token_type = 3 [default = -1]; +} + +message CMsgClientLogOff { +} + +message CMsgClientLoggedOff { + optional int32 eresult = 1 [default = 2]; +} + +message CMsgClientNewLoginKey { + optional uint32 unique_id = 1; + optional string login_key = 2; +} + +message CMsgClientNewLoginKeyAccepted { + optional uint32 unique_id = 1; +} + +message CMsgClientAccountInfo { + optional string persona_name = 1; + optional string ip_country = 2; + optional int32 count_authed_computers = 5; + optional uint32 account_flags = 7; + optional uint64 facebook_id = 8; + optional string facebook_name = 9; + optional string steamguard_machine_name_user_chosen = 15; + optional bool is_phone_verified = 16; + optional uint32 two_factor_state = 17; + optional bool is_phone_identifying = 18; + optional bool is_phone_needing_reverify = 19; +} + +message CMsgClientChallengeRequest { + optional fixed64 steamid = 1; +} + +message CMsgClientChallengeResponse { + optional fixed64 challenge = 1; +} diff --git a/Protobufs/steam/steammessages_clientserver_mms.proto b/Protobufs/steam/steammessages_clientserver_mms.proto new file mode 100644 index 0000000..7b4878f --- /dev/null +++ b/Protobufs/steam/steammessages_clientserver_mms.proto @@ -0,0 +1,237 @@ +import "steammessages_base.proto"; + +option optimize_for = SPEED; +option cc_generic_services = false; + +enum EMMSLobbyStatus { + k_EMMSLobbyStatusInvalid = 0; + k_EMMSLobbyStatusExists = 1; + k_EMMSLobbyStatusDoesNotExist = 2; + k_EMMSLobbyStatusNotAMember = 3; +} + +message CMsgClientMMSSetRatelimitPolicyOnClient { + optional uint32 app_id = 1; + optional bool enable_rate_limits = 2; + optional int32 seconds_per_message = 3; + optional int32 milliseconds_per_data_update = 4; +} + +message CMsgClientMMSCreateLobby { + optional uint32 app_id = 1; + optional int32 max_members = 2; + optional int32 lobby_type = 3; + optional int32 lobby_flags = 4; + optional uint32 cell_id = 5; + optional uint32 deprecated_public_ip = 6; + optional bytes metadata = 7; + optional string persona_name_owner = 8; + optional .CMsgIPAddress public_ip = 9; + optional string network_ping_location = 10; +} + +message CMsgClientMMSCreateLobbyResponse { + optional uint32 app_id = 1; + optional fixed64 steam_id_lobby = 2; + optional int32 eresult = 3 [default = 2]; +} + +message CMsgClientMMSJoinLobby { + optional uint32 app_id = 1; + optional fixed64 steam_id_lobby = 2; + optional string persona_name = 3; + optional string network_ping_location = 4; + optional uint32 cell_id = 5; +} + +message CMsgClientMMSJoinLobbyResponse { + message Member { + optional fixed64 steam_id = 1; + optional string persona_name = 2; + optional bytes metadata = 3; + } + + optional uint32 app_id = 1; + optional fixed64 steam_id_lobby = 2; + optional int32 chat_room_enter_response = 3; + optional int32 max_members = 4; + optional int32 lobby_type = 5; + optional int32 lobby_flags = 6; + optional fixed64 steam_id_owner = 7; + optional bytes metadata = 8; + repeated .CMsgClientMMSJoinLobbyResponse.Member members = 9; +} + +message CMsgClientMMSLeaveLobby { + optional uint32 app_id = 1; + optional fixed64 steam_id_lobby = 2; +} + +message CMsgClientMMSLeaveLobbyResponse { + optional uint32 app_id = 1; + optional fixed64 steam_id_lobby = 2; + optional int32 eresult = 3 [default = 2]; +} + +message CMsgClientMMSGetLobbyList { + message Filter { + optional string key = 1; + optional string value = 2; + optional int32 comparision = 3; + optional int32 filter_type = 4; + } + + optional uint32 app_id = 1; + optional int32 num_lobbies_requested = 3; + optional uint32 cell_id = 4; + optional uint32 deprecated_public_ip = 5; + repeated .CMsgClientMMSGetLobbyList.Filter filters = 6; + optional .CMsgIPAddress public_ip = 7; + optional string network_ping_location = 8; +} + +message CMsgClientMMSGetLobbyListResponse { + message Lobby { + optional fixed64 steam_id = 1; + optional int32 max_members = 2; + optional int32 lobby_type = 3; + optional int32 lobby_flags = 4; + optional bytes metadata = 5; + optional int32 num_members = 6; + optional float distance = 7; + optional int64 weight = 8; + optional int32 ping = 9; + optional int32 missing_ping = 10; + } + + optional uint32 app_id = 1; + optional int32 eresult = 3 [default = 2]; + repeated .CMsgClientMMSGetLobbyListResponse.Lobby lobbies = 4; +} + +message CMsgClientMMSSetLobbyData { + optional uint32 app_id = 1; + optional fixed64 steam_id_lobby = 2; + optional fixed64 steam_id_member = 3; + optional int32 max_members = 4; + optional int32 lobby_type = 5; + optional int32 lobby_flags = 6; + optional bytes metadata = 7; + optional string network_ping_location = 8; +} + +message CMsgClientMMSSetLobbyDataResponse { + optional uint32 app_id = 1; + optional fixed64 steam_id_lobby = 2; + optional int32 eresult = 3 [default = 2]; +} + +message CMsgClientMMSGetLobbyData { + optional uint32 app_id = 1; + optional fixed64 steam_id_lobby = 2; +} + +message CMsgClientMMSLobbyData { + message Member { + optional fixed64 steam_id = 1; + optional string persona_name = 2; + optional bytes metadata = 3; + optional string ping_data = 4; + } + + optional uint32 app_id = 1; + optional fixed64 steam_id_lobby = 2; + optional int32 num_members = 3; + optional int32 max_members = 4; + optional int32 lobby_type = 5; + optional int32 lobby_flags = 6; + optional fixed64 steam_id_owner = 7; + optional bytes metadata = 8; + repeated .CMsgClientMMSLobbyData.Member members = 9; + optional uint32 lobby_cellid = 10; + optional bool owner_should_accept_changes = 11; +} + +message CMsgClientMMSSendLobbyChatMsg { + optional uint32 app_id = 1; + optional fixed64 steam_id_lobby = 2; + optional fixed64 steam_id_target = 3; + optional bytes lobby_message = 4; +} + +message CMsgClientMMSLobbyChatMsg { + optional uint32 app_id = 1; + optional fixed64 steam_id_lobby = 2; + optional fixed64 steam_id_sender = 3; + optional bytes lobby_message = 4; +} + +message CMsgClientMMSSetLobbyOwner { + optional uint32 app_id = 1; + optional fixed64 steam_id_lobby = 2; + optional fixed64 steam_id_new_owner = 3; +} + +message CMsgClientMMSSetLobbyOwnerResponse { + optional uint32 app_id = 1; + optional fixed64 steam_id_lobby = 2; + optional int32 eresult = 3 [default = 2]; +} + +message CMsgClientMMSSetLobbyLinked { + optional uint32 app_id = 1; + optional fixed64 steam_id_lobby = 2; + optional fixed64 steam_id_lobby2 = 3; +} + +message CMsgClientMMSSetLobbyGameServer { + optional uint32 app_id = 1; + optional fixed64 steam_id_lobby = 2; + optional uint32 deprecated_game_server_ip = 3; + optional uint32 game_server_port = 4; + optional fixed64 game_server_steam_id = 5; + optional .CMsgIPAddress game_server_ip = 6; + optional string network_ping_location = 7; +} + +message CMsgClientMMSLobbyGameServerSet { + optional uint32 app_id = 1; + optional fixed64 steam_id_lobby = 2; + optional uint32 deprecated_game_server_ip = 3; + optional uint32 game_server_port = 4; + optional fixed64 game_server_steam_id = 5; + optional .CMsgIPAddress game_server_ip = 6; +} + +message CMsgClientMMSUserJoinedLobby { + optional uint32 app_id = 1; + optional fixed64 steam_id_lobby = 2; + optional fixed64 steam_id_user = 3; + optional string persona_name = 4; +} + +message CMsgClientMMSUserLeftLobby { + optional uint32 app_id = 1; + optional fixed64 steam_id_lobby = 2; + optional fixed64 steam_id_user = 3; + optional string persona_name = 4; +} + +message CMsgClientMMSInviteToLobby { + optional uint32 app_id = 1; + optional fixed64 steam_id_lobby = 2; + optional fixed64 steam_id_user_invited = 3; +} + +message CMsgClientMMSGetLobbyStatus { + optional uint32 app_id = 1; + optional fixed64 steam_id_lobby = 2; + optional bool claim_membership = 3; + optional bool claim_ownership = 4; +} + +message CMsgClientMMSGetLobbyStatusResponse { + optional uint32 app_id = 1; + optional fixed64 steam_id_lobby = 2; + optional .EMMSLobbyStatus lobby_status = 3 [default = k_EMMSLobbyStatusInvalid]; +} diff --git a/Protobufs/steam/steammessages_clientserver_ucm.proto b/Protobufs/steam/steammessages_clientserver_ucm.proto new file mode 100644 index 0000000..ba3f66a --- /dev/null +++ b/Protobufs/steam/steammessages_clientserver_ucm.proto @@ -0,0 +1,217 @@ +import "steammessages_base.proto"; + +option optimize_for = SPEED; +option cc_generic_services = false; + +message CMsgClientUCMAddScreenshot { + message Tag { + optional string tag_name = 1; + optional string tag_value = 2; + } + + optional uint32 appid = 1; + optional string filename = 2; + optional string thumbname = 3; + optional string vr_filename = 14; + optional fixed32 rtime32_created = 4; + optional uint32 width = 5; + optional uint32 height = 6; + optional uint32 permissions = 7; + optional string caption = 8; + optional string shortcut_name = 9; + repeated .CMsgClientUCMAddScreenshot.Tag tag = 10; + repeated fixed64 tagged_steamid = 11; + optional bool spoiler_tag = 12; + repeated uint64 tagged_publishedfileid = 13; +} + +message CMsgClientUCMAddScreenshotResponse { + optional int32 eresult = 1 [default = 2]; + optional fixed64 screenshotid = 2 [default = 18446744073709551615]; + optional uint64 publishedfileid = 3; +} + +message CMsgClientUCMDeleteScreenshot { + optional fixed64 screenshotid = 1 [default = 18446744073709551615]; +} + +message CMsgClientUCMDeleteScreenshotResponse { + optional int32 eresult = 1 [default = 2]; +} + +message CMsgClientUCMPublishFile { + optional uint32 app_id = 1; + optional string file_name = 2; + optional string preview_file_name = 3; + optional uint32 consumer_app_id = 4; + optional string title = 5; + optional string description = 6; + repeated string tags = 8; + optional bool workshop_file = 9; + optional int32 visibility = 10; + optional uint32 file_type = 11; + optional string url = 12; + optional uint32 video_provider = 13; + optional string video_account_name = 14; + optional string video_identifier = 15; + optional bool in_progress = 16; +} + +message CMsgClientUCMPublishFileResponse { + optional int32 eresult = 1 [default = 2]; + optional fixed64 published_file_id = 2 [default = 18446744073709551615]; + optional bool needs_workshop_legal_agreement_acceptance = 3 [default = false]; +} + +message CMsgClientUCMUpdatePublishedFile { + message KeyValueTag { + optional string key = 1; + optional string value = 2; + } + + message AdditionalPreview { + optional string original_file_name = 1; + optional string internal_file_name = 2; + optional string videoid = 3; + optional uint32 preview_type = 4; + optional int32 update_index = 5 [default = -1]; + } + + optional uint32 app_id = 1; + optional fixed64 published_file_id = 2; + optional string file_name = 3; + optional string preview_file_name = 4; + optional string title = 5; + optional string description = 6; + repeated string tags = 7; + optional int32 visibility = 8; + optional bool update_file = 9; + optional bool update_preview_file = 10; + optional bool update_title = 11; + optional bool update_description = 12; + optional bool update_tags = 13; + optional bool update_visibility = 14; + optional string change_description = 15; + optional bool update_url = 16; + optional string url = 17; + optional bool update_content_manifest = 18; + optional fixed64 content_manifest = 19; + optional string metadata = 20; + optional bool update_metadata = 21; + optional int32 language = 22 [default = 0]; + repeated string removed_kvtags = 23; + repeated .CMsgClientUCMUpdatePublishedFile.KeyValueTag kvtags = 24; + repeated .CMsgClientUCMUpdatePublishedFile.AdditionalPreview previews = 25; + repeated int32 previews_to_remove = 26; + optional bool clear_in_progress = 27; + optional bool remove_all_kvtags = 28; + repeated int32 content_descriptors_to_add = 29; + repeated int32 content_descriptors_to_remove = 30; + optional bool allow_admin_tags = 31 [default = false]; + optional uint64 external_asset_id = 32; + optional string game_branch_min = 33; + optional string game_branch_max = 34; +} + +message CMsgClientUCMUpdatePublishedFileResponse { + optional int32 eresult = 1 [default = 2]; + optional bool needs_workshop_legal_agreement_acceptance = 2 [default = false]; +} + +message CMsgClientUCMDeletePublishedFile { + optional fixed64 published_file_id = 1; + optional uint32 app_id = 2; +} + +message CMsgClientUCMDeletePublishedFileResponse { + optional int32 eresult = 1 [default = 2]; +} + +message CMsgClientUCMEnumerateUserSubscribedFilesWithUpdates { + optional uint32 app_id = 1; + optional uint32 start_index = 2; + optional fixed32 start_time = 3; + optional uint32 desired_revision = 4 [default = 0]; +} + +message CMsgClientUCMEnumerateUserSubscribedFilesWithUpdatesResponse { + message AuthorSnapshot { + optional uint32 timestamp = 1; + optional string game_branch_min = 2; + optional string game_branch_max = 3; + optional fixed64 manifestid = 4; + } + + message PublishedFileId { + optional fixed64 published_file_id = 1; + optional fixed32 rtime32_subscribed = 2 [default = 0]; + optional uint32 appid = 3; + optional fixed64 file_hcontent = 4; + optional uint32 file_size = 5; + optional fixed32 rtime32_last_updated = 6; + optional bool is_depot_content = 7; + repeated .CMsgClientUCMEnumerateUserSubscribedFilesWithUpdatesResponse.AuthorSnapshot author_snapshots = 8; + } + + optional int32 eresult = 1 [default = 2]; + repeated .CMsgClientUCMEnumerateUserSubscribedFilesWithUpdatesResponse.PublishedFileId subscribed_files = 2; + optional uint32 total_results = 3; +} + +message CMsgClientUCMPublishedFileUpdated { + optional fixed64 published_file_id = 1; + optional uint32 app_id = 2; + optional uint32 time_updated = 3; + optional fixed64 hcontent = 4; + optional fixed32 file_size = 5; + optional bool is_depot_content = 6; + optional uint32 revision = 7; +} + +message CMsgClientWorkshopItemChangesRequest { + optional uint32 app_id = 1; + optional uint32 last_time_updated = 2; + optional uint32 num_items_needed = 3; +} + +message CMsgClientWorkshopItemChangesResponse { + message WorkshopItemInfo { + optional fixed64 published_file_id = 1; + optional uint32 time_updated = 2; + optional fixed64 manifest_id = 3; + } + + optional int32 eresult = 1 [default = 2]; + optional uint32 update_time = 2; + repeated .CMsgClientWorkshopItemChangesResponse.WorkshopItemInfo workshop_items = 5; +} + +message CMsgClientUCMSetUserPublishedFileAction { + optional fixed64 published_file_id = 1; + optional uint32 app_id = 2; + optional int32 action = 3; +} + +message CMsgClientUCMSetUserPublishedFileActionResponse { + optional int32 eresult = 1 [default = 2]; +} + +message CMsgClientUCMEnumeratePublishedFilesByUserAction { + optional uint32 app_id = 1; + optional uint32 start_index = 2; + optional int32 action = 3; +} + +message CMsgClientUCMEnumeratePublishedFilesByUserActionResponse { + message PublishedFileId { + optional fixed64 published_file_id = 1; + optional fixed32 rtime_time_stamp = 2 [default = 0]; + } + + optional int32 eresult = 1 [default = 2]; + repeated .CMsgClientUCMEnumeratePublishedFilesByUserActionResponse.PublishedFileId published_files = 2; + optional uint32 total_results = 3; +} + +message CMsgClientScreenshotsChanged { +} diff --git a/Protobufs/steam/steammessages_clientserver_uds.proto b/Protobufs/steam/steammessages_clientserver_uds.proto new file mode 100644 index 0000000..9d0d425 --- /dev/null +++ b/Protobufs/steam/steammessages_clientserver_uds.proto @@ -0,0 +1,141 @@ +import "steammessages_base.proto"; + +option optimize_for = SPEED; +option cc_generic_services = false; + +message CMsgClientUDSP2PSessionStarted { + optional fixed64 steamid_remote = 1; + optional int32 appid = 2; +} + +message CMsgClientUDSP2PSessionEnded { + optional fixed64 steamid_remote = 1; + optional int32 appid = 2; + optional int32 session_length_sec = 3; + optional int32 session_error = 4; + optional int32 nattype = 5; + optional int32 bytes_recv = 6; + optional int32 bytes_sent = 7; + optional int32 bytes_sent_relay = 8; + optional int32 bytes_recv_relay = 9; + optional int32 time_to_connect_ms = 10; +} + +message CMsgClientGetClientDetails { +} + +message CMsgClientGetClientDetailsResponse { + message Game { + optional uint32 appid = 1; + optional string extra_info = 2; + optional uint32 time_running_sec = 3; + } + + optional uint32 package_version = 1; + optional string os = 2; + optional string machine_name = 3; + optional string ip_public = 4; + optional string ip_private = 5; + repeated .CMsgClientGetClientDetailsResponse.Game games_running = 6; + optional uint64 bytes_available = 7; + optional uint32 protocol_version = 8; + optional uint32 clientcomm_version = 9; + repeated uint32 local_users = 10; +} + +message CMsgClientGetClientAppList { + optional bool media = 1; + optional bool tools = 2; + optional bool games = 3; + optional bool only_installed = 4; + optional bool only_changing = 5; + optional bool comics = 6; + optional bool include_client_info = 7; + repeated uint32 filter_appids = 8; +} + +message CMsgClientGetClientAppListResponse { + message App { + message DLC { + optional uint32 appid = 1; + optional bool installed = 2; + } + + optional uint32 appid = 1; + optional string category = 2; + optional string app_type = 10; + optional bool favorite = 3; + optional bool installed = 4; + optional bool auto_update = 5; + optional uint64 bytes_downloaded = 6; + optional uint64 bytes_to_download = 7; + optional uint32 bytes_download_rate = 8; + repeated .CMsgClientGetClientAppListResponse.App.DLC dlcs = 9; + optional bool download_paused = 11; + optional uint32 num_downloading = 12; + optional uint32 num_paused = 13; + optional bool changing = 14; + optional bool available_on_platform = 15; + optional uint64 bytes_staged = 16; + optional uint64 bytes_to_stage = 17; + optional uint64 bytes_required = 18; + optional uint32 source_buildid = 19; + optional uint32 target_buildid = 20; + optional uint32 estimated_seconds_remaining = 21; + optional int32 queue_position = 22; + optional bool uninstalling = 23; + optional uint32 rt_time_scheduled = 24; + optional bool running = 25; + } + + repeated .CMsgClientGetClientAppListResponse.App apps = 1; + optional uint64 bytes_available = 2; + optional .CMsgClientGetClientDetailsResponse client_info = 3; +} + +message CMsgClientInstallClientApp { + optional uint32 appid = 1; +} + +message CMsgClientInstallClientAppResponse { + optional uint32 result = 1; +} + +message CMsgClientUninstallClientApp { + optional uint32 appid = 1; +} + +message CMsgClientUninstallClientAppResponse { + optional uint32 result = 1; +} + +message CMsgClientSetClientAppUpdateState { + optional uint32 appid = 1; + optional bool update = 2; +} + +message CMsgClientSetClientAppUpdateStateResponse { + optional uint32 result = 1; +} + +message CMsgClientLaunchClientApp { + optional uint32 appid = 1; + optional uint32 language = 2; + optional uint32 launch_option_type = 3; + optional uint32 launch_option = 4; + optional uint32 launch_source = 5; + optional string args = 6; + optional string query_params = 7; +} + +message CMsgClientLaunchClientAppResponse { + optional uint32 result = 1; +} + +message CMsgClientEnableOrDisableDownloads { + optional bool enable = 1; +} + +message CMsgClientEnableOrDisableDownloadsResponse { + optional uint32 result = 1; +} diff --git a/Protobufs/steam/steammessages_clientserver_ufs.proto b/Protobufs/steam/steammessages_clientserver_ufs.proto new file mode 100644 index 0000000..51b815e --- /dev/null +++ b/Protobufs/steam/steammessages_clientserver_ufs.proto @@ -0,0 +1,45 @@ +import "steammessages_base.proto"; + +option optimize_for = SPEED; +option cc_generic_services = false; + +message CMsgClientUFSGetUGCDetails { + optional fixed64 hcontent = 1 [default = 18446744073709551615]; +} + +message CMsgClientUFSGetUGCDetailsResponse { + optional int32 eresult = 1 [default = 2]; + optional string url = 2; + optional uint32 app_id = 3; + optional string filename = 4; + optional fixed64 steamid_creator = 5; + optional uint32 file_size = 6; + optional uint32 compressed_file_size = 7; + optional string rangecheck_host = 8; + optional string file_encoded_sha1 = 9; +} + +message CMsgClientUFSGetSingleFileInfo { + optional uint32 app_id = 1; + optional string file_name = 2; +} + +message CMsgClientUFSGetSingleFileInfoResponse { + optional int32 eresult = 1 [default = 2]; + optional uint32 app_id = 2; + optional string file_name = 3; + optional bytes sha_file = 4; + optional uint64 time_stamp = 5; + optional uint32 raw_file_size = 6; + optional bool is_explicit_delete = 7; +} + +message CMsgClientUFSShareFile { + optional uint32 app_id = 1; + optional string file_name = 2; +} + +message CMsgClientUFSShareFileResponse { + optional int32 eresult = 1 [default = 2]; + optional fixed64 hcontent = 2 [default = 18446744073709551615]; +} diff --git a/Protobufs/steam/steammessages_clientserver_userstats.proto b/Protobufs/steam/steammessages_clientserver_userstats.proto new file mode 100644 index 0000000..fe52e9e --- /dev/null +++ b/Protobufs/steam/steammessages_clientserver_userstats.proto @@ -0,0 +1,80 @@ +import "steammessages_base.proto"; + +option optimize_for = SPEED; +option cc_generic_services = false; + +message CMsgClientGetUserStats { + optional fixed64 game_id = 1; + optional uint32 crc_stats = 2; + optional int32 schema_local_version = 3; + optional fixed64 steam_id_for_user = 4; +} + +message CMsgClientGetUserStatsResponse { + message Stats { + optional uint32 stat_id = 1; + optional uint32 stat_value = 2; + } + + message Achievement_Blocks { + optional uint32 achievement_id = 1; + repeated fixed32 unlock_time = 2; + } + + optional fixed64 game_id = 1; + optional int32 eresult = 2 [default = 2]; + optional uint32 crc_stats = 3; + optional bytes schema = 4; + repeated .CMsgClientGetUserStatsResponse.Stats stats = 5; + repeated .CMsgClientGetUserStatsResponse.Achievement_Blocks achievement_blocks = 6; +} + +message CMsgClientStoreUserStatsResponse { + message Stats_Failed_Validation { + optional uint32 stat_id = 1; + optional uint32 reverted_stat_value = 2; + } + + optional fixed64 game_id = 1; + optional int32 eresult = 2 [default = 2]; + optional uint32 crc_stats = 3; + repeated .CMsgClientStoreUserStatsResponse.Stats_Failed_Validation stats_failed_validation = 4; + optional bool stats_out_of_date = 5; +} + +message CMsgClientStoreUserStats2 { + message Stats { + optional uint32 stat_id = 1; + optional uint32 stat_value = 2; + } + + optional fixed64 game_id = 1; + optional fixed64 settor_steam_id = 2; + optional fixed64 settee_steam_id = 3; + optional uint32 crc_stats = 4; + optional bool explicit_reset = 5; + repeated .CMsgClientStoreUserStats2.Stats stats = 6; +} + +message CMsgClientStatsUpdated { + message Updated_Stats { + optional uint32 stat_id = 1; + optional uint32 stat_value = 2; + } + + optional fixed64 steam_id = 1; + optional fixed64 game_id = 2; + optional uint32 crc_stats = 3; + repeated .CMsgClientStatsUpdated.Updated_Stats updated_stats = 4; +} + +message CMsgClientStoreUserStats { + message Stats_To_Store { + optional uint32 stat_id = 1; + optional uint32 stat_value = 2; + } + + optional fixed64 game_id = 1; + optional bool explicit_reset = 2; + repeated .CMsgClientStoreUserStats.Stats_To_Store stats_to_store = 3; +} diff --git a/Protobufs/steam/steammessages_clientserver_video.proto b/Protobufs/steam/steammessages_clientserver_video.proto new file mode 100644 index 0000000..ca1d492 --- /dev/null +++ b/Protobufs/steam/steammessages_clientserver_video.proto @@ -0,0 +1,57 @@ +import "steammessages_base.proto"; + +option optimize_for = SPEED; +option cc_generic_services = false; + +message CMsgVideoGameRecordingRepresentation { + optional string representation_name = 2; + optional uint32 horizontal_resolution = 3; + optional uint32 vertical_resolution = 4; + optional double frame_rate = 5; + optional uint32 bandwidth = 6; + optional uint32 audio_sample_rate = 7; + optional string frame_rate_string = 8; + optional string codec = 9; + optional uint32 audio_channel_config = 10; + repeated .CVideo_GameRecordingSegmentInfo segment_info = 11; +} + +message CMsgVideoGameRecordingComponent { + optional string component_name = 1; + optional uint32 contents = 2; + optional uint32 segment_size = 3; + optional string file_type = 4; + repeated .CMsgVideoGameRecordingRepresentation representations = 5; +} + +message CMsgVideoGameRecordingDef { + optional uint64 steamid = 1; + optional uint32 app_id = 2; + optional uint32 num_segments = 3; + optional uint32 length_milliseconds = 4; + optional uint32 segment_duration_timescale = 5; + optional uint32 segment_duration = 6; + repeated .CMsgVideoGameRecordingComponent components = 7; + optional uint32 start_time_ms = 8; + optional uint32 start_offset_in_timeline_ms = 9; +} + +message CVideo_GameRecordingSegmentInfo { + optional uint32 segment_number = 1; + optional uint64 segment_size_bytes = 2; + optional string component_name = 3; + optional string representation_name = 4; +} + +message CVideo_GameRecordingSegmentUploadInfo { + message HTTPHeaders { + optional string name = 1; + optional string value = 2; + } + + optional .CVideo_GameRecordingSegmentInfo segment_info = 1; + optional string url_host = 2; + optional string url_path = 3; + optional bool use_https = 4; + repeated .CVideo_GameRecordingSegmentUploadInfo.HTTPHeaders request_headers = 5; +} diff --git a/Protobufs/steam/steammessages_clientsettings.proto b/Protobufs/steam/steammessages_clientsettings.proto new file mode 100644 index 0000000..e10378c --- /dev/null +++ b/Protobufs/steam/steammessages_clientsettings.proto @@ -0,0 +1,244 @@ +import "google/protobuf/descriptor.proto"; +import "enums.proto"; + +option optimize_for = SPEED; +option cc_generic_services = true; + +extend .google.protobuf.FieldOptions { + optional .EClientSettingStore setting_store = 60000 [default = k_EClientSettingStore_Invalid]; + optional string setting_name = 60001; + optional bool setting_pre_login = 60002; + optional bool setting_default_bool = 60003; + optional int32 setting_default_int = 60004; + optional uint32 setting_default_uint = 60005; + optional float setting_default_float = 60006; + optional string setting_default_string = 60007; + optional bool setting_readonly = 60008; + optional string setting_description = 60009; + optional .ESettingProfileMode setting_profile_mode = 60010 [default = k_ESettingProfileMode_None]; + optional int64 setting_clamp_min = 60011; + optional int64 setting_clamp_max = 60012; +} + +enum EClientSettingStore { + k_EClientSettingStore_Invalid = 0; + k_EClientSettingStore_ConfigStore_Install = 1; + k_EClientSettingStore_ConfigStore_UserRoaming = 2; + k_EClientSettingStore_ConfigStore_UserLocal = 3; + k_EClientSettingStore_Registry = 4; + k_EClientSettingStore_CustomFunc = 5; +} + +enum EOverlayToggleBarLocation { + k_EOverlayToggleBarLocation_Bottom = 0; + k_EOverlayToggleBarLocation_Left = 1; + k_EOverlayToggleBarLocation_Right = 2; + k_EOverlayToggleBarLocation_Top = 3; +} + +enum ESettingProfileMode { + k_ESettingProfileMode_None = 0; + k_ESettingProfileMode_PerGame = 1; + k_ESettingProfileMode_PerGamePerDisplay = 2; + k_ESettingProfileMode_PerDisplay = 3; +} + +enum EGRMode { + k_EGRMode_Never = 0; + k_EGRMode_Always = 1; + k_EGRMode_Manual = 2; +} + +enum EGRAudio { + k_EGRAudio_Game = 0; + k_EGRAudio_System = 1; + k_EGRAudio_Select = 2; +} + +message CMsgHotkey { + optional uint32 key_code = 1; + optional bool alt_key = 2; + optional bool shift_key = 3; + optional bool ctrl_key = 4; + optional bool meta_key = 5; + optional string display_name = 6; +} + +message CMsgSettingVariant { + oneof value { + bool value_bool = 1; + int32 value_int32 = 2; + uint32 value_uint32 = 3; + int64 value_uint64 = 5; + float value_float = 6; + string value_string = 7; + .CMsgHotkey value_hotkey = 8; + } +} + +message CMsgClientSettings { + optional bool no_save_personal_info = 1 [(setting_store) = k_EClientSettingStore_ConfigStore_Install, (setting_name) = "Software\\Valve\\Steam\\NoSavePersonalInfo"]; + optional bool oobe_test_mode_enabled = 2 [(setting_store) = k_EClientSettingStore_ConfigStore_Install, (setting_name) = "Software\\Valve\\Steam\\OOBETestModeEnabled"]; + optional bool in_client_beta = 3 [(setting_store) = k_EClientSettingStore_CustomFunc, (setting_pre_login) = true]; + optional bool is_steam_sideloaded = 4 [(setting_store) = k_EClientSettingStore_CustomFunc, (setting_pre_login) = true]; + optional string preferred_monitor = 5 [(setting_store) = k_EClientSettingStore_ConfigStore_Install, (setting_name) = "BigPicture/Monitor"]; + optional bool steam_cef_gpu_blocklist_disabled = 6 [(setting_store) = k_EClientSettingStore_Registry, (setting_name) = "HKEY_CURRENT_USER\\Software\\Valve\\Steam\\CEFGPUBlocklistDisabled"]; + optional bool bigpicture_windowed = 7 [(setting_store) = k_EClientSettingStore_ConfigStore_Install, (setting_name) = "BigPicture/Windowed", (setting_pre_login) = true]; + optional string display_name = 8 [(setting_store) = k_EClientSettingStore_ConfigStore_Install, (setting_name) = "UI/Display/Current/Name"]; + optional bool is_external_display = 9 [(setting_store) = k_EClientSettingStore_ConfigStore_Install, (setting_name) = "UI/Display/Current/IsExternalDisplay"]; + optional float steam_os_underscan_level = 10 [(setting_store) = k_EClientSettingStore_ConfigStore_Install, (setting_name) = "SteamOSScreenUnderscanLevel"]; + optional bool steam_os_underscan_enabled = 11 [(setting_store) = k_EClientSettingStore_ConfigStore_Install, (setting_name) = "SteamOSScreenUnderscanEnabled"]; + optional float min_scale_factor = 12 [(setting_store) = k_EClientSettingStore_ConfigStore_Install, (setting_name) = "UI/Display/Current/MinScaleFactor"]; + optional float max_scale_factor = 13 [(setting_store) = k_EClientSettingStore_ConfigStore_Install, (setting_name) = "UI/Display/Current/MaxScaleFactor"]; + optional float auto_scale_factor = 14 [(setting_store) = k_EClientSettingStore_ConfigStore_Install, (setting_name) = "UI/Display/Current/AutoScaleFactor"]; + optional bool small_mode = 16 [(setting_store) = k_EClientSettingStore_ConfigStore_UserLocal, (setting_name) = "Software\\Valve\\Steam\\SmallMode"]; + optional bool skip_steamvr_install_dialog = 19 [(setting_store) = k_EClientSettingStore_ConfigStore_UserLocal, (setting_name) = "system\\SteamVRHMDVGUIWarning"]; + optional bool always_show_user_chooser = 20 [(setting_store) = k_EClientSettingStore_ConfigStore_Install, (setting_name) = "WebStorage\\Auth\\AlwaysShowUserChooser"]; + optional bool os_version_unsupported = 21 [(setting_store) = k_EClientSettingStore_Registry, (setting_name) = "HKEY_CURRENT_USER\\Software\\Valve\\Steam\\OSVersionUnsupported"]; + optional bool show_family_sharing_notifications = 3000 [(setting_store) = k_EClientSettingStore_CustomFunc]; + optional bool show_copy_count_in_library = 3001 [(setting_store) = k_EClientSettingStore_ConfigStore_UserLocal, (setting_name) = "ShowCopyCountInLibrary", (setting_default_bool) = true]; + optional int32 overlay_fps_counter_corner = 4000 [(setting_store) = k_EClientSettingStore_ConfigStore_UserLocal, (setting_name) = "system\\InGameOverlayShowFPSCorner"]; + optional bool overlay_fps_counter_high_contrast = 4001 [(setting_store) = k_EClientSettingStore_ConfigStore_UserLocal, (setting_name) = "system\\InGameOverlayShowFPSContrast"]; + optional .CMsgHotkey overlay_key = 4002 [(setting_store) = k_EClientSettingStore_ConfigStore_UserLocal, (setting_name) = "system\\InGameOverlayShortcutKey", (setting_default_string) = "Shift\tKEY_TAB"]; + optional .CMsgHotkey screenshot_key = 4003 [(setting_store) = k_EClientSettingStore_ConfigStore_UserLocal, (setting_name) = "system\\InGameOverlayScreenshotHotKey", (setting_default_string) = "KEY_F12"]; + optional bool enable_overlay = 4004 [(setting_store) = k_EClientSettingStore_ConfigStore_UserLocal, (setting_name) = "system\\EnableGameOverlay", (setting_default_bool) = true]; + optional bool enable_screenshot_notification = 4006 [(setting_store) = k_EClientSettingStore_ConfigStore_UserLocal, (setting_name) = "system\\InGameOverlayScreenshotNotification", (setting_default_bool) = true]; + optional bool enable_screenshot_sound = 4007 [(setting_store) = k_EClientSettingStore_ConfigStore_UserLocal, (setting_name) = "system\\InGameOverlayScreenshotPlaySound", (setting_default_bool) = true]; + optional bool save_uncompressed_screenshots = 4008 [(setting_store) = k_EClientSettingStore_ConfigStore_UserLocal, (setting_name) = "system\\InGameOverlayScreenshotSaveUncompressed"]; + optional string screenshots_path = 4009 [(setting_store) = k_EClientSettingStore_CustomFunc]; + optional int32 default_ping_rate = 4010 [(setting_store) = k_EClientSettingStore_CustomFunc, (setting_readonly) = true, (setting_description) = "Computed default (automatic) server ping rate based on network speed"]; + optional int32 server_ping_rate = 4011 [(setting_store) = k_EClientSettingStore_CustomFunc]; + optional int32 steam_networking_share_ip = 4012 [(setting_store) = k_EClientSettingStore_CustomFunc]; + optional string web_browser_home = 4013 [(setting_store) = k_EClientSettingStore_CustomFunc]; + optional string voice_mic_device_name = 4014 [(setting_store) = k_EClientSettingStore_CustomFunc]; + optional float voice_mic_input_gain = 4015 [(setting_store) = k_EClientSettingStore_CustomFunc]; + optional float voice_speaker_output_gain = 4016 [(setting_store) = k_EClientSettingStore_CustomFunc]; + optional int32 voice_push_to_talk_setting = 4017 [(setting_store) = k_EClientSettingStore_CustomFunc]; + optional .CMsgHotkey voice_push_to_talk_key = 4018 [(setting_store) = k_EClientSettingStore_CustomFunc]; + optional bool overlay_toolbar_list_view = 4019 [(setting_store) = k_EClientSettingStore_ConfigStore_UserLocal, (setting_name) = "OverlayToolBarListView"]; + optional bool always_use_gamepadui_overlay = 4020 [(setting_store) = k_EClientSettingStore_ConfigStore_UserLocal, (setting_name) = "system\\EnableSCTenFootOverlayCheckNew"]; + optional string overlay_tabs = 4021 [(setting_store) = k_EClientSettingStore_ConfigStore_UserRoaming, (setting_name) = "OverlayTabs"]; + optional bool overlay_scale_interface = 4022 [(setting_store) = k_EClientSettingStore_Registry, (setting_name) = "HKEY_CURRENT_USER\\Software\\Valve\\Steam\\OverlayScaleInterface", (setting_default_bool) = true]; + optional bool overlay_restore_browser_tabs = 4023 [(setting_store) = k_EClientSettingStore_ConfigStore_UserLocal, (setting_name) = "system\\InGameOverlayRestoreBrowserTabs", (setting_default_bool) = true]; + optional bool enable_avif_screenshots = 4024 [(setting_store) = k_EClientSettingStore_ConfigStore_UserLocal, (setting_name) = "system\\InGameOverlayScreenshotEnableAVIF"]; + optional bool smooth_scroll_webviews = 5000 [(setting_store) = k_EClientSettingStore_Registry, (setting_name) = "HKEY_CURRENT_USER\\Software\\Valve\\Steam\\SmoothScrollWebViews", (setting_default_bool) = true]; + optional bool enable_gpu_accelerated_webviews = 5001 [(setting_store) = k_EClientSettingStore_CustomFunc]; + optional bool enable_hardware_video_decoding = 5003 [(setting_store) = k_EClientSettingStore_CustomFunc]; + optional bool run_at_startup = 5004 [(setting_store) = k_EClientSettingStore_CustomFunc]; + optional bool enable_dpi_scaling = 5005 [(setting_store) = k_EClientSettingStore_CustomFunc]; + optional bool enable_marketing_messages = 5006 [(setting_store) = k_EClientSettingStore_ConfigStore_UserLocal, (setting_name) = "news\\NotifyAvailableGames", (setting_default_bool) = true]; + optional bool start_in_big_picture_mode = 5007 [(setting_store) = k_EClientSettingStore_CustomFunc]; + optional uint32 jumplist_flags = 5008 [(setting_store) = k_EClientSettingStore_ConfigStore_UserLocal, (setting_name) = "system\\JumplistSettings", (setting_default_uint) = 77680]; + optional bool enable_ui_sounds = 5009 [(setting_store) = k_EClientSettingStore_ConfigStore_UserLocal, (setting_name) = "system\\EnableUISounds", (setting_default_bool) = true]; + optional bool disable_all_toasts = 6000 [(setting_store) = k_EClientSettingStore_ConfigStore_UserRoaming, (setting_name) = "DisableAllToasts"]; + optional bool disable_toasts_in_game = 6001 [(setting_store) = k_EClientSettingStore_ConfigStore_UserRoaming, (setting_name) = "DisableToastsInGame"]; + optional bool play_sound_on_toast = 6002 [(setting_store) = k_EClientSettingStore_ConfigStore_UserRoaming, (setting_name) = "PlaySoundOnToast", (setting_default_bool) = true]; + optional int32 library_display_size = 7000 [(setting_store) = k_EClientSettingStore_ConfigStore_UserLocal, (setting_name) = "LibraryDisplaySize"]; + optional bool library_whats_new_show_only_product_updates = 7001 [(setting_store) = k_EClientSettingStore_ConfigStore_UserRoaming, (setting_name) = "LibraryWhatsNewShowOnlyProductUpdates"]; + optional bool show_store_content_on_home = 7002 [(setting_store) = k_EClientSettingStore_ConfigStore_UserRoaming, (setting_name) = "ShowStoreContentOnHome", (setting_default_bool) = true]; + optional string start_page = 7003 [(setting_store) = k_EClientSettingStore_CustomFunc]; + optional bool library_low_bandwidth_mode = 7004 [(setting_store) = k_EClientSettingStore_ConfigStore_UserLocal, (setting_name) = "LibraryLowBandwidthMode"]; + optional bool library_low_perf_mode = 7005 [(setting_store) = k_EClientSettingStore_ConfigStore_UserLocal, (setting_name) = "LibraryLowPerfMode"]; + optional bool library_disable_community_content = 7006 [(setting_store) = k_EClientSettingStore_ConfigStore_UserLocal, (setting_name) = "LibraryDisableCommunityContent"]; + optional bool library_display_icon_in_game_list = 7007 [(setting_store) = k_EClientSettingStore_ConfigStore_UserLocal, (setting_name) = "LibraryDisplayIconInGameList", (setting_default_bool) = true]; + optional bool ready_to_play_includes_streaming = 7008 [(setting_store) = k_EClientSettingStore_CustomFunc, (setting_name) = "ReadyToPlayIncludesStreaming"]; + optional bool show_steam_deck_info = 7009 [(setting_store) = k_EClientSettingStore_ConfigStore_UserLocal, (setting_name) = "ShowSteamDeckInfoInLibrary"]; + optional bool enable_shader_precache = 8000 [(setting_store) = k_EClientSettingStore_CustomFunc]; + optional bool enable_shader_background_processing = 8001 [(setting_store) = k_EClientSettingStore_CustomFunc]; + optional uint64 shader_precached_size = 8002 [(setting_store) = k_EClientSettingStore_CustomFunc, (setting_readonly) = true]; + optional bool needs_steam_service_repair = 8003 [(setting_store) = k_EClientSettingStore_CustomFunc, (setting_readonly) = true]; + optional int32 download_peer_content = 8004 [(setting_store) = k_EClientSettingStore_CustomFunc]; + optional bool download_rate_bits_per_s = 8005 [(setting_store) = k_EClientSettingStore_CustomFunc]; + optional bool restrict_auto_updates = 8006 [(setting_store) = k_EClientSettingStore_CustomFunc]; + optional int32 restrict_auto_updates_start = 8007 [(setting_store) = k_EClientSettingStore_CustomFunc]; + optional int32 restrict_auto_updates_end = 8008 [(setting_store) = k_EClientSettingStore_CustomFunc]; + optional int32 download_region = 8009 [(setting_store) = k_EClientSettingStore_CustomFunc]; + optional bool download_while_app_running = 8010 [(setting_store) = k_EClientSettingStore_CustomFunc]; + optional bool download_throttle_while_streaming = 8011 [(setting_store) = k_EClientSettingStore_CustomFunc]; + optional int32 download_throttle_rate = 8012 [(setting_store) = k_EClientSettingStore_CustomFunc]; + optional bool cloud_enabled = 10000 [(setting_store) = k_EClientSettingStore_CustomFunc]; + optional bool show_screenshot_manager = 10001 [(setting_store) = k_EClientSettingStore_ConfigStore_UserRoaming, (setting_name) = "Software\\Valve\\Steam\\ShowScreenshotManager"]; + optional int32 music_volume = 11000 [(setting_store) = k_EClientSettingStore_CustomFunc]; + optional bool music_pause_on_app_start = 11001 [(setting_store) = k_EClientSettingStore_ConfigStore_Install, (setting_name) = "Music\\PauseOnAppStartedProcess"]; + optional bool music_pause_on_voice_chat = 11002 [(setting_store) = k_EClientSettingStore_ConfigStore_Install, (setting_name) = "Music\\PauseOnVoiceChat"]; + optional bool music_download_high_quality = 11003 [(setting_store) = k_EClientSettingStore_ConfigStore_Install, (setting_name) = "Music\\DownloadHighQualityAudioSoundtracks"]; + optional bool music_playlist_notification = 11004 [(setting_store) = k_EClientSettingStore_ConfigStore_Install, (setting_name) = "Music\\PlaylistNowPlayingNotification"]; + optional .EBroadcastPermission broadcast_permissions = 12000 [default = k_EBroadcastPermissionDisabled, (setting_store) = k_EClientSettingStore_ConfigStore_UserLocal, (setting_name) = "Broadcast\\Permissions", (setting_default_int) = 1]; + optional int32 broadcast_output_width = 12001 [(setting_store) = k_EClientSettingStore_ConfigStore_UserLocal, (setting_name) = "Broadcast\\OutputWidth"]; + optional int32 broadcast_output_height = 12002 [(setting_store) = k_EClientSettingStore_ConfigStore_UserLocal, (setting_name) = "Broadcast\\OutputHeight", (setting_default_int) = 720]; + optional int32 broadcast_bitrate = 12003 [(setting_store) = k_EClientSettingStore_ConfigStore_UserLocal, (setting_name) = "Broadcast\\MaxKbps", (setting_default_int) = 2500]; + optional .EBroadcastEncoderSetting broadcast_encoding_option = 12004 [default = k_EBroadcastEncoderBestQuality, (setting_store) = k_EClientSettingStore_ConfigStore_UserLocal, (setting_name) = "Broadcast\\EncoderSetting"]; + optional bool broadcast_record_all_video = 12005 [(setting_store) = k_EClientSettingStore_ConfigStore_UserLocal, (setting_name) = "Broadcast\\IncludeDesktop"]; + optional bool broadcast_record_all_audio = 12006 [(setting_store) = k_EClientSettingStore_ConfigStore_UserLocal, (setting_name) = "Broadcast\\RecordSystemAudio"]; + optional bool broadcast_record_microphone = 12007 [(setting_store) = k_EClientSettingStore_ConfigStore_UserLocal, (setting_name) = "Broadcast\\RecordMic"]; + optional bool broadcast_show_upload_stats = 12008 [(setting_store) = k_EClientSettingStore_ConfigStore_UserLocal, (setting_name) = "Broadcast\\ShowDebugInfo"]; + optional bool broadcast_show_live_reminder = 12009 [(setting_store) = k_EClientSettingStore_ConfigStore_UserLocal, (setting_name) = "Broadcast\\ShowReminder", (setting_default_bool) = true]; + optional int32 broadcast_chat_corner = 12010 [(setting_store) = k_EClientSettingStore_ConfigStore_UserLocal, (setting_name) = "Broadcast\\ShowChat", (setting_default_int) = 1]; + optional bool gamestream_hardware_video_encode = 13000 [(setting_store) = k_EClientSettingStore_ConfigStore_UserLocal, (setting_name) = "GameStream\\HardwareVideoEncode", (setting_default_bool) = true]; + optional bool steam_input_configurator_error_msg_enable = 14001 [(setting_store) = k_EClientSettingStore_ConfigStore_Install, (setting_name) = "SteamInput/Configurator/ErrorMsgEnabled"]; + optional bool controller_guide_button_focus_steam = 14002 [(setting_store) = k_EClientSettingStore_ConfigStore_UserLocal, (setting_name) = "Controller_CheckGuideButton", (setting_default_bool) = true]; + optional int32 controller_ps_support = 14003 [(setting_store) = k_EClientSettingStore_ConfigStore_UserLocal, (setting_name) = "SteamController_PSSupport", (setting_default_int) = 1]; + optional bool controller_xbox_support = 14004 [(setting_store) = k_EClientSettingStore_ConfigStore_UserLocal, (setting_name) = "SteamController_XBoxSupport"]; + optional bool controller_xbox_driver = 14005 [(setting_store) = k_EClientSettingStore_ConfigStore_UserLocal, (setting_name) = "SteamController_XBoxDriver"]; + optional bool controller_switch_support = 14006 [(setting_store) = k_EClientSettingStore_ConfigStore_UserLocal, (setting_name) = "SteamController_SwitchSupport"]; + optional bool controller_generic_support = 14007 [(setting_store) = k_EClientSettingStore_ConfigStore_UserLocal, (setting_name) = "SteamController_GenericGamepadSupport"]; + optional int32 controller_power_off_timeout = 14008 [(setting_store) = k_EClientSettingStore_ConfigStore_UserLocal, (setting_name) = "CSettingsPanelGameController.Timeout", (setting_default_int) = 15]; + optional bool turn_off_controller_on_exit = 14009 [(setting_store) = k_EClientSettingStore_ConfigStore_UserLocal, (setting_name) = "CSettingsPanelGameController.TurnOff"]; + optional bool controller_combine_nintendo_joycons = 14010 [(setting_store) = k_EClientSettingStore_CustomFunc]; + optional uint64 startup_movie_id = 16000 [(setting_store) = k_EClientSettingStore_ConfigStore_Install, (setting_name) = "Customization/StartupMovie/MovieID", (setting_pre_login) = true]; + optional string startup_movie_local_path = 16001 [(setting_store) = k_EClientSettingStore_ConfigStore_Install, (setting_name) = "Customization/StartupMovie/LocalPath", (setting_pre_login) = true]; + optional bool startup_movie_shuffle = 16002 [(setting_store) = k_EClientSettingStore_ConfigStore_Install, (setting_name) = "Customization/StartupMovie/Shuffle", (setting_pre_login) = true]; + optional bool startup_movie_used_for_resume = 16003 [(setting_store) = k_EClientSettingStore_ConfigStore_UserLocal, (setting_name) = "Customization/StartupMovie/UsedForResume"]; + optional bool game_notes_enable_spellcheck = 17001 [(setting_store) = k_EClientSettingStore_ConfigStore_UserRoaming, (setting_name) = "GameNotesEnableSpellcheck", (setting_default_bool) = true]; + optional int32 screenshot_items_per_row = 18000 [(setting_store) = k_EClientSettingStore_ConfigStore_UserRoaming, (setting_name) = "ScreenshotViewItemsPerRow", (setting_default_int) = 1]; + optional string g_background_path = 18201 [(setting_store) = k_EClientSettingStore_CustomFunc]; + optional string g_background_max_keep = 18202 [(setting_store) = k_EClientSettingStore_CustomFunc, (setting_default_string) = "120min"]; + optional int32 g_background_time_resolution = 18203 [(setting_store) = k_EClientSettingStore_CustomFunc]; + optional .CMsgHotkey g_background_mk = 18207 [(setting_store) = k_EClientSettingStore_CustomFunc]; + optional .CMsgHotkey g_background_tg = 18208 [(setting_store) = k_EClientSettingStore_CustomFunc]; + optional bool g_background_a_m = 18209 [(setting_store) = k_EClientSettingStore_CustomFunc]; + optional int32 g_background_br = 18210 [(setting_store) = k_EClientSettingStore_CustomFunc, (setting_default_int) = 12000]; + optional bool g_background_a_s = 18211 [(setting_store) = k_EClientSettingStore_CustomFunc]; + optional .EGRMode g_background_mode = 18212 [default = k_EGRMode_Never, (setting_store) = k_EClientSettingStore_CustomFunc]; + optional .EGRAudio g_background_audio = 18213 [default = k_EGRAudio_Game, (setting_store) = k_EClientSettingStore_CustomFunc]; + optional int32 g_max_fps = 18214 [(setting_store) = k_EClientSettingStore_ConfigStore_UserLocal, (setting_name) = "GameRecording\\MaxFPS", (setting_default_int) = 60, (setting_clamp_min) = 24, (setting_clamp_max) = 120]; + optional .CMsgHotkey gamerecording_hotkey_ic = 18215 [(setting_store) = k_EClientSettingStore_ConfigStore_UserLocal, (setting_name) = "GameRecording\\InstantClipKey", (setting_default_string) = "None"]; + optional float gamerecording_ic_seconds = 18216 [(setting_store) = k_EClientSettingStore_ConfigStore_UserLocal, (setting_name) = "GameRecording\\InstantClipDuration", (setting_default_float) = 10]; + optional bool show_timestamps_in_console = 20000 [(setting_store) = k_EClientSettingStore_ConfigStore_UserLocal, (setting_name) = "Developer\\ShowTimestampsInConsole"]; + optional bool force_oobe = 20001 [(setting_store) = k_EClientSettingStore_Registry, (setting_name) = "HKEY_CURRENT_USER\\Software\\Valve\\Steam\\ForceOOBE"]; + optional int32 override_browser_composer_mode = 20002 [(setting_store) = k_EClientSettingStore_CustomFunc]; + optional bool cef_remote_debugging_enabled = 20003 [(setting_store) = k_EClientSettingStore_CustomFunc]; + optional bool force_deck_perf_tab = 20004 [(setting_store) = k_EClientSettingStore_ConfigStore_Install, (setting_name) = "Developer/ForceDeckPerfTab"]; + optional bool force_fake_mandatory_update = 20005 [(setting_store) = k_EClientSettingStore_ConfigStore_Install, (setting_name) = "Developer/FakeMandatoryUpdate"]; + optional bool hdr_compat_testing = 20006 [(setting_store) = k_EClientSettingStore_ConfigStore_Install, (setting_name) = "Developer/HDRCompatTesting"]; + optional bool developer_mode_enabled = 20007 [(setting_store) = k_EClientSettingStore_ConfigStore_Install, (setting_name) = "Developer/DevModeEnabled"]; + optional bool show_advanced_update_channels = 20008 [(setting_store) = k_EClientSettingStore_ConfigStore_Install, (setting_name) = "Developer/ShowAdvancedUpdateChannels"]; + optional .EHDRVisualization gamescope_hdr_visualization = 21001 [default = k_EHDRVisualization_None, (setting_store) = k_EClientSettingStore_ConfigStore_UserLocal, (setting_name) = "Gamescope/HDRVisualization2"]; + optional int32 gamescope_app_target_framerate = 21002 [(setting_store) = k_EClientSettingStore_ConfigStore_UserLocal, (setting_name) = "Gamescope/AppTargetFrameRate", (setting_default_int) = 0, (setting_profile_mode) = k_ESettingProfileMode_PerGamePerDisplay]; + optional bool gamescope_enable_app_target_framerate = 21003 [(setting_store) = k_EClientSettingStore_Registry, (setting_name) = "HKEY_CURRENT_USER\\Software\\Valve\\Steam\\GamescopeEnableAppTargetRefreshRate2", (setting_default_bool) = true]; + optional bool gamescope_disable_framelimit = 21004 [(setting_store) = k_EClientSettingStore_ConfigStore_UserLocal, (setting_name) = "Gamescope/DisableFrameLimit", (setting_default_bool) = false, (setting_profile_mode) = k_ESettingProfileMode_PerGamePerDisplay]; + optional int32 gamescope_display_refresh_rate = 21005 [(setting_store) = k_EClientSettingStore_ConfigStore_UserLocal, (setting_name) = "Gamescope/RefreshRate", (setting_default_int) = 0, (setting_profile_mode) = k_ESettingProfileMode_PerGamePerDisplay]; + optional bool gamescope_use_game_refresh_rate_in_steam = 21006 [(setting_store) = k_EClientSettingStore_ConfigStore_UserLocal, (setting_name) = "Developer/DynamicRefreshRateInSteam", (setting_default_bool) = true]; + optional bool gamescope_disable_mura_correction = 21007 [(setting_store) = k_EClientSettingStore_ConfigStore_UserLocal, (setting_name) = "Gamescope/MuraCorrectionDisabled", (setting_default_bool) = false]; + optional bool gamescope_include_steamui_in_screenshots = 21008 [(setting_store) = k_EClientSettingStore_ConfigStore_UserLocal, (setting_name) = "Gamescope/IncludeSteamUIInScreenshots", (setting_default_bool) = true]; + optional bool gamescope_allow_tearing = 21009 [(setting_store) = k_EClientSettingStore_ConfigStore_UserLocal, (setting_name) = "Gamescope/AllowTearing", (setting_default_bool) = false, (setting_profile_mode) = k_ESettingProfileMode_PerGame]; + optional bool gamescope_composite_debug = 21010 [(setting_store) = k_EClientSettingStore_ConfigStore_UserLocal, (setting_name) = "Gamescope/CompositeDebug", (setting_default_bool) = false]; + optional bool gamescope_force_composite = 21011 [(setting_store) = k_EClientSettingStore_ConfigStore_UserLocal, (setting_name) = "Gamescope/ForceComposite", (setting_default_bool) = false]; + optional string gamescope_game_resolution_global = 21012 [(setting_store) = k_EClientSettingStore_ConfigStore_UserLocal, (setting_name) = "Gamescope/GameResolutionGlobal", (setting_default_string) = "Default"]; + optional int32 steamos_status_led_brightness = 22000 [(setting_store) = k_EClientSettingStore_ConfigStore_UserLocal, (setting_name) = "SteamOS/StatusLEDBrightness", (setting_default_int) = 100]; + optional bool steamos_tdp_limit_enabled = 22001 [(setting_store) = k_EClientSettingStore_ConfigStore_Install, (setting_name) = "SteamOS/TDPLimitEnabled", (setting_default_bool) = false, (setting_profile_mode) = k_ESettingProfileMode_PerGame]; + optional int32 steamos_tdp_limit = 22002 [(setting_store) = k_EClientSettingStore_ConfigStore_Install, (setting_name) = "SteamOS/TDPLimit", (setting_default_int) = 0, (setting_profile_mode) = k_ESettingProfileMode_PerGame]; + optional bool steamos_cec_enabled = 22003 [(setting_store) = k_EClientSettingStore_ConfigStore_Install, (setting_name) = "SteamOS/CECEnabled", (setting_default_bool) = true]; + optional bool steamos_cec_wake_on_resume = 22004 [(setting_store) = k_EClientSettingStore_ConfigStore_Install, (setting_name) = "SteamOS/WakeOnResume", (setting_default_bool) = true]; + optional bool steamos_wifi_debug = 22005 [(setting_store) = k_EClientSettingStore_ConfigStore_Install, (setting_name) = "SteamOS/WifiDebug", (setting_default_bool) = false]; + optional bool steamos_wifi_force_wpa_supplicant = 22006 [(setting_store) = k_EClientSettingStore_ConfigStore_Install, (setting_name) = "SteamOS/WifiForceWPASupplicant", (setting_default_bool) = false]; + optional int32 steamos_magnifier_scale = 22007 [(setting_store) = k_EClientSettingStore_ConfigStore_UserLocal, (setting_name) = "SteamOS/MagnifierScale", (setting_default_int) = 150]; + optional bool setting_validation_bool = 23001 [(setting_store) = k_EClientSettingStore_ConfigStore_Install, (setting_name) = "SettingValidation/DummyBool"]; + optional .EHDRVisualization setting_validation_enum = 23002 [default = k_EHDRVisualization_None, (setting_store) = k_EClientSettingStore_ConfigStore_Install, (setting_name) = "SettingValidation/DummyEnum"]; + optional int32 setting_validation_int32 = 23003 [(setting_store) = k_EClientSettingStore_ConfigStore_Install, (setting_name) = "SettingValidation/DummyInt32"]; + optional uint32 setting_validation_uint32 = 23004 [(setting_store) = k_EClientSettingStore_ConfigStore_Install, (setting_name) = "SettingValidation/DummyUInt32"]; + optional uint64 setting_validation_uint64 = 23005 [(setting_store) = k_EClientSettingStore_ConfigStore_Install, (setting_name) = "SettingValidation/DummyUInt64"]; + optional float setting_validation_float = 23006 [(setting_store) = k_EClientSettingStore_ConfigStore_Install, (setting_name) = "SettingValidation/DummyFloat"]; + optional string setting_validation_string = 23007 [(setting_store) = k_EClientSettingStore_ConfigStore_Install, (setting_name) = "SettingValidation/DummyString"]; + optional bool system_bluetooth_enabled = 24000 [(setting_store) = k_EClientSettingStore_ConfigStore_Install, (setting_name) = "System/Bluetooth/Enabled", (setting_default_bool) = false]; +} diff --git a/Protobufs/steam/steammessages_cloud.steamclient.proto b/Protobufs/steam/steammessages_cloud.steamclient.proto new file mode 100644 index 0000000..7797a5d --- /dev/null +++ b/Protobufs/steam/steammessages_cloud.steamclient.proto @@ -0,0 +1,425 @@ +import "steammessages_base.proto"; +import "steammessages_unified_base.steamclient.proto"; +import "enums.proto"; +import "steammessages_client_objects.proto"; + +option cc_generic_services = true; + +message CCloud_ClientLogUploadCheck_Notification { + optional uint64 client_id = 1; +} + +message CCloud_ClientLogUploadComplete_Notification { + optional uint64 client_id = 1; + optional uint64 request_id = 2; +} + +message CCloud_GetUploadServerInfo_Request { + optional uint32 appid = 1; +} + +message CCloud_GetUploadServerInfo_Response { + optional string server_url = 1; +} + +message CCloud_BeginHTTPUpload_Request { + optional uint32 appid = 1; + optional uint32 file_size = 2; + optional string filename = 3; + optional string file_sha = 4; + optional bool is_public = 5; + repeated string platforms_to_sync = 6; + repeated string request_headers_names = 7; + repeated string request_headers_values = 8; + optional uint64 upload_batch_id = 9; +} + +message CCloud_BeginHTTPUpload_Response { + message HTTPHeaders { + optional string name = 1; + optional string value = 2; + } + + optional fixed64 ugcid = 1; + optional fixed32 timestamp = 2; + optional string url_host = 3; + optional string url_path = 4; + optional bool use_https = 5; + repeated .CCloud_BeginHTTPUpload_Response.HTTPHeaders request_headers = 6; +} + +message CCloud_CommitHTTPUpload_Request { + optional bool transfer_succeeded = 1; + optional uint32 appid = 2; + optional string file_sha = 3; + optional string filename = 4; +} + +message CCloud_CommitHTTPUpload_Response { + optional bool file_committed = 1; +} + +message CCloud_BeginUGCUpload_Request { + optional uint32 appid = 1; + optional uint32 file_size = 2; + optional string filename = 3; + optional string file_sha = 4; + optional string content_type = 5; +} + +message CCloud_BeginUGCUpload_Response { + message HTTPHeaders { + optional string name = 1; + optional string value = 2; + } + + optional .EPublishedFileStorageSystem storage_system = 1 [default = k_EPublishedFileStorageSystemInvalid]; + optional fixed64 ugcid = 2; + optional fixed32 timestamp = 3; + optional string url_host = 4; + optional string url_path = 5; + optional bool use_https = 6; + repeated .CCloud_BeginUGCUpload_Response.HTTPHeaders request_headers = 7; +} + +message CCloud_CommitUGCUpload_Request { + optional bool transfer_succeeded = 1; + optional uint32 appid = 2; + optional fixed64 ugcid = 3; +} + +message CCloud_CommitUGCUpload_Response { + optional bool file_committed = 1; +} + +message CCloud_GetFileDetails_Request { + optional uint64 ugcid = 1; + optional uint32 appid = 2; +} + +message CCloud_UserFile { + optional uint32 appid = 1; + optional uint64 ugcid = 2; + optional string filename = 3; + optional uint64 timestamp = 4; + optional uint32 file_size = 5; + optional string url = 6; + optional fixed64 steamid_creator = 7; + optional uint32 flags = 8; + repeated string platforms_to_sync = 9; + optional string file_sha = 10; +} + +message CCloud_GetFileDetails_Response { + optional .CCloud_UserFile details = 1; +} + +message CCloud_EnumerateUserFiles_Request { + optional uint32 appid = 1; + optional bool extended_details = 2; + optional uint32 count = 3; + optional uint32 start_index = 4; +} + +message CCloud_EnumerateUserFiles_Response { + repeated .CCloud_UserFile files = 1; + optional uint32 total_files = 2; +} + +message CCloud_Delete_Request { + optional string filename = 1; + optional uint32 appid = 2; + optional uint64 upload_batch_id = 3; +} + +message CCloud_Delete_Response { +} + +message CCloud_GetClientEncryptionKey_Request { +} + +message CCloud_GetClientEncryptionKey_Response { + optional bytes key = 1; + optional int32 crc = 2; +} + +message CCloud_CDNReport_Notification { + optional fixed64 steamid = 1; + optional string url = 2; + optional bool success = 3; + optional uint32 http_status_code = 4; + optional uint64 expected_bytes = 5; + optional uint64 received_bytes = 6; + optional uint32 duration = 7; +} + +message CCloud_ExternalStorageTransferReport_Notification { + optional string host = 1; + optional string path = 2; + optional bool is_upload = 3; + optional bool success = 4; + optional uint32 http_status_code = 5; + optional uint64 bytes_expected = 6; + optional uint64 bytes_actual = 7; + optional uint32 duration_ms = 8; + optional uint32 cellid = 9; + optional bool proxied = 10; + optional bool ipv6_local = 11; + optional bool ipv6_remote = 12; + optional uint32 time_to_connect_ms = 13; + optional uint32 time_to_send_req_ms = 14; + optional uint32 time_to_first_byte_ms = 15; + optional uint32 time_to_last_byte_ms = 16; +} + +message CCloud_BeginAppUploadBatch_Request { + optional uint32 appid = 1; + optional string machine_name = 2; + repeated string files_to_upload = 3; + repeated string files_to_delete = 4; + optional uint64 client_id = 5; + optional uint64 app_build_id = 6; +} + +message CCloud_BeginAppUploadBatch_Response { + optional uint64 batch_id = 1; + optional uint64 app_change_number = 4; +} + +message CCloud_CompleteAppUploadBatch_Notification { + optional uint32 appid = 1; + optional uint64 batch_id = 2; + optional uint32 batch_eresult = 3; +} + +message CCloud_CompleteAppUploadBatch_Request { + optional uint32 appid = 1; + optional uint64 batch_id = 2; + optional uint32 batch_eresult = 3; +} + +message CCloud_CompleteAppUploadBatch_Response { +} + +message CCloud_ClientBeginFileUpload_Request { + optional uint32 appid = 1; + optional uint32 file_size = 2; + optional uint32 raw_file_size = 3; + optional bytes file_sha = 4; + optional uint64 time_stamp = 5; + optional string filename = 6; + optional uint32 platforms_to_sync = 7 [default = 4294967295]; + optional uint32 cell_id = 9; + optional bool can_encrypt = 10; + optional bool is_shared_file = 11; + optional uint32 deprecated_realm = 12; + optional uint64 upload_batch_id = 13; +} + +message ClientCloudFileUploadBlockDetails { + message HTTPHeaders { + optional string name = 1; + optional string value = 2; + } + + optional string url_host = 1; + optional string url_path = 2; + optional bool use_https = 3; + optional int32 http_method = 4; + repeated .ClientCloudFileUploadBlockDetails.HTTPHeaders request_headers = 5; + optional uint64 block_offset = 6; + optional uint32 block_length = 7; + optional bytes explicit_body_data = 8; + optional bool may_parallelize = 9; +} + +message CCloud_ClientBeginFileUpload_Response { + optional bool encrypt_file = 1; + repeated .ClientCloudFileUploadBlockDetails block_requests = 2; +} + +message CCloud_ClientCommitFileUpload_Request { + optional bool transfer_succeeded = 1; + optional uint32 appid = 2; + optional bytes file_sha = 3; + optional string filename = 4; +} + +message CCloud_ClientCommitFileUpload_Response { + optional bool file_committed = 1; +} + +message CCloud_ClientFileDownload_Request { + optional uint32 appid = 1; + optional string filename = 2; + optional uint32 realm = 3; + optional bool force_proxy = 4; +} + +message CCloud_ClientFileDownload_Response { + message HTTPHeaders { + optional string name = 1; + optional string value = 2; + } + + optional uint32 appid = 1; + optional uint32 file_size = 2; + optional uint32 raw_file_size = 3; + optional bytes sha_file = 4; + optional uint64 time_stamp = 5; + optional bool is_explicit_delete = 6; + optional string url_host = 7; + optional string url_path = 8; + optional bool use_https = 9; + repeated .CCloud_ClientFileDownload_Response.HTTPHeaders request_headers = 10; + optional bool encrypted = 11; +} + +message CCloud_ClientDeleteFile_Request { + optional uint32 appid = 1; + optional string filename = 2; + optional bool is_explicit_delete = 3; + optional uint64 upload_batch_id = 4; +} + +message CCloud_ClientDeleteFile_Response { +} + +message CCloud_ClientConflictResolution_Notification { + optional uint32 appid = 1; + optional bool chose_local_files = 2; +} + +message CCloud_EnumerateUserApps_Request { +} + +message CCloud_EnumerateUserApps_Response { + message Apps { + optional uint32 appid = 1; + optional int32 totalcount = 2; + optional int64 totalsize = 3; + } + + repeated .CCloud_EnumerateUserApps_Response.Apps apps = 1; +} + +message CCloud_GetAppFileChangelist_Request { + optional uint32 appid = 1; + optional uint64 synced_change_number = 2; +} + +message CCloud_AppFileInfo { + optional string file_name = 1; + optional bytes sha_file = 2; + optional uint64 time_stamp = 3; + optional uint32 raw_file_size = 4; + optional .ECloudStoragePersistState persist_state = 5 [default = k_ECloudStoragePersistStatePersisted]; + optional uint32 platforms_to_sync = 6; + optional uint32 path_prefix_index = 7; + optional uint32 machine_name_index = 8; +} + +message CCloud_GetAppFileChangelist_Response { + optional uint64 current_change_number = 1; + repeated .CCloud_AppFileInfo files = 2; + optional bool is_only_delta = 3; + repeated string path_prefixes = 4; + repeated string machine_names = 5; + optional uint64 app_buildid_hwm = 6; +} + +message CCloud_AppSessionSuspend_Request { + optional uint32 appid = 1; + optional uint64 client_id = 2; + optional string machine_name = 3; + optional bool cloud_sync_completed = 4; +} + +message CCloud_AppSessionSuspend_Response { +} + +message CCloud_AppSessionResume_Request { + optional uint32 appid = 1; + optional uint64 client_id = 2; +} + +message CCloud_AppSessionResume_Response { +} + +message CCloud_AppLaunchIntent_Request { + optional uint32 appid = 1; + optional uint64 client_id = 2; + optional string machine_name = 3; + optional bool ignore_pending_operations = 4; + optional int32 os_type = 5; + optional int32 device_type = 6; +} + +message CCloud_AppLaunchIntent_Response { + repeated .CCloud_PendingRemoteOperation pending_remote_operations = 1; +} + +message CCloud_AppExitSyncDone_Notification { + optional uint32 appid = 1; + optional uint64 client_id = 2; + optional bool uploads_completed = 3; + optional bool uploads_required = 4; +} + +message CCloud_ClientGetAppQuotaUsage_Request { + optional uint32 appid = 1; +} + +message CCloud_ClientGetAppQuotaUsage_Response { + optional uint32 existing_files = 1; + optional uint64 existing_bytes = 2; + optional uint32 max_num_files = 3; + optional uint64 max_num_bytes = 4; +} + +message CCloud_AppCloudStateChange_Notification { + optional uint32 appid = 1; + optional uint64 app_change_number = 2; +} + +message CCloud_ClientLogUploadRequest_Notification { + optional uint64 request_id = 1; +} + +service Cloud { + rpc ClientLogUploadCheck (.CCloud_ClientLogUploadCheck_Notification) returns (.NoResponse); + rpc ClientLogUploadComplete (.CCloud_ClientLogUploadComplete_Notification) returns (.NoResponse); + rpc GetUploadServerInfo (.CCloud_GetUploadServerInfo_Request) returns (.CCloud_GetUploadServerInfo_Response); + rpc BeginHTTPUpload (.CCloud_BeginHTTPUpload_Request) returns (.CCloud_BeginHTTPUpload_Response); + rpc CommitHTTPUpload (.CCloud_CommitHTTPUpload_Request) returns (.CCloud_CommitHTTPUpload_Response); + rpc BeginUGCUpload (.CCloud_BeginUGCUpload_Request) returns (.CCloud_BeginUGCUpload_Response); + rpc CommitUGCUpload (.CCloud_CommitUGCUpload_Request) returns (.CCloud_CommitUGCUpload_Response); + rpc GetFileDetails (.CCloud_GetFileDetails_Request) returns (.CCloud_GetFileDetails_Response); + rpc EnumerateUserFiles (.CCloud_EnumerateUserFiles_Request) returns (.CCloud_EnumerateUserFiles_Response); + rpc Delete (.CCloud_Delete_Request) returns (.CCloud_Delete_Response); + rpc GetClientEncryptionKey (.CCloud_GetClientEncryptionKey_Request) returns (.CCloud_GetClientEncryptionKey_Response); + rpc CDNReport (.CCloud_CDNReport_Notification) returns (.NoResponse); + rpc ExternalStorageTransferReport (.CCloud_ExternalStorageTransferReport_Notification) returns (.NoResponse); + rpc BeginAppUploadBatch (.CCloud_BeginAppUploadBatch_Request) returns (.CCloud_BeginAppUploadBatch_Response); + rpc CompleteAppUploadBatch (.CCloud_CompleteAppUploadBatch_Notification) returns (.NoResponse); + rpc CompleteAppUploadBatchBlocking (.CCloud_CompleteAppUploadBatch_Request) returns (.CCloud_CompleteAppUploadBatch_Response); + rpc ClientBeginFileUpload (.CCloud_ClientBeginFileUpload_Request) returns (.CCloud_ClientBeginFileUpload_Response); + rpc ClientCommitFileUpload (.CCloud_ClientCommitFileUpload_Request) returns (.CCloud_ClientCommitFileUpload_Response); + rpc ClientFileDownload (.CCloud_ClientFileDownload_Request) returns (.CCloud_ClientFileDownload_Response); + rpc ClientDeleteFile (.CCloud_ClientDeleteFile_Request) returns (.CCloud_ClientDeleteFile_Response); + rpc ClientConflictResolution (.CCloud_ClientConflictResolution_Notification) returns (.NoResponse); + rpc EnumerateUserApps (.CCloud_EnumerateUserApps_Request) returns (.CCloud_EnumerateUserApps_Response); + rpc GetAppFileChangelist (.CCloud_GetAppFileChangelist_Request) returns (.CCloud_GetAppFileChangelist_Response); + rpc SuspendAppSession (.CCloud_AppSessionSuspend_Request) returns (.CCloud_AppSessionSuspend_Response); + rpc ResumeAppSession (.CCloud_AppSessionResume_Request) returns (.CCloud_AppSessionResume_Response); + rpc SignalAppLaunchIntent (.CCloud_AppLaunchIntent_Request) returns (.CCloud_AppLaunchIntent_Response); + rpc SignalAppExitSyncDone (.CCloud_AppExitSyncDone_Notification) returns (.NoResponse); + rpc ClientGetAppQuotaUsage (.CCloud_ClientGetAppQuotaUsage_Request) returns (.CCloud_ClientGetAppQuotaUsage_Response); +} + +service CloudClient { + option (service_execution_site) = k_EProtoExecutionSiteSteamClient; + + rpc NotifyAppStateChange (.CCloud_AppCloudStateChange_Notification) returns (.NoResponse); + rpc ClientLogUploadRequest (.CCloud_ClientLogUploadRequest_Notification) returns (.NoResponse); +} diff --git a/Protobufs/steam/steammessages_community.steamclient.proto b/Protobufs/steam/steammessages_community.steamclient.proto new file mode 100644 index 0000000..6734f0f --- /dev/null +++ b/Protobufs/steam/steammessages_community.steamclient.proto @@ -0,0 +1,337 @@ +import "steammessages_base.proto"; +import "steammessages_unified_base.steamclient.proto"; +import "enums.proto"; + +option cc_generic_services = true; + +enum EPartnerEventDisplayLocation { + k_EPartnerEventDisplayLocation_Invalid = 0; + k_EPartnerEventDisplayLocation_AppDetailsSpotlight = 1; + k_EPartnerEventDisplayLocation_LibraryOverview = 2; + k_EPartnerEventDisplayLocation_StoreAppPage = 3; + k_EPartnerEventDisplayLocation_EventScroller = 4; + k_EPartnerEventDisplayLocation_AppDetailsActivity = 5; + k_EPartnerEventDisplayLocation_CommunityHub = 6; + k_EPartnerEventDisplayLocation_StoreFrontPage = 7; + k_EPartnerEventDisplayLocation_NewsHub = 8; + k_EPartnerEventDisplayLocation_GamepadHome = 9; +} + +message CCommunity_GetApps_Request { + repeated int32 appids = 1; + optional uint32 language = 2; +} + +message CCommunity_GetApps_Response { + repeated .CCDDBAppDetailCommon apps = 1; +} + +message CCommunity_GetAppRichPresenceLocalization_Request { + optional int32 appid = 1; + optional string language = 2; +} + +message CCommunity_GetAppRichPresenceLocalization_Response { + message Token { + optional string name = 1; + optional string value = 2; + } + + message TokenList { + optional string language = 1; + repeated .CCommunity_GetAppRichPresenceLocalization_Response.Token tokens = 2; + } + + optional int32 appid = 1; + repeated .CCommunity_GetAppRichPresenceLocalization_Response.TokenList token_lists = 2; +} + +message CCommunity_GetCommentThread_Request { + optional fixed64 steamid = 1; + optional .ECommentThreadType comment_thread_type = 2 [default = k_ECommentThreadTypeInvalid]; + optional fixed64 gidfeature = 3; + optional fixed64 gidfeature2 = 4; + optional fixed64 commentthreadid = 5; + optional int32 start = 6; + optional int32 count = 7; + optional int32 upvoters = 8; + optional bool include_deleted = 9; + optional fixed64 gidcomment = 10; + optional uint32 time_oldest = 11; + optional bool oldest_first = 12; +} + +message CCommunity_Comment { + message Reaction { + optional uint32 reactionid = 1; + optional uint32 count = 2; + } + + optional fixed64 gidcomment = 1; + optional fixed64 steamid = 2; + optional uint32 timestamp = 3; + optional string text = 4; + optional int32 upvotes = 5; + optional bool hidden = 6; + optional bool hidden_by_user = 7; + optional bool deleted = 8; + optional .CMsgIPAddress ipaddress = 9; + optional int32 total_hidden = 10; + optional bool upvoted_by_user = 11; + repeated .CCommunity_Comment.Reaction reactions = 12; + optional fixed64 gidparentcomment = 13; +} + +message CCommunity_GetCommentThread_Response { + repeated .CCommunity_Comment comments = 1; + repeated .CCommunity_Comment deleted_comments = 2; + optional fixed64 steamid = 3; + optional fixed64 commentthreadid = 4; + optional int32 start = 5; + optional int32 count = 6; + optional int32 total_count = 7; + optional int32 upvotes = 8; + repeated uint32 upvoters = 9; + optional bool user_subscribed = 10; + optional bool user_upvoted = 11; + optional fixed64 answer_commentid = 12; + optional uint32 answer_actor = 13; + optional int32 answer_actor_rank = 14; + optional bool can_post = 15; + optional uint32 comment_thread_type = 16; + optional fixed64 gidfeature = 17; + optional fixed64 gidfeature2 = 18; +} + +message CCommunity_PostCommentToThread_Request { + optional fixed64 steamid = 1; + optional .ECommentThreadType comment_thread_type = 2 [default = k_ECommentThreadTypeInvalid]; + optional fixed64 gidfeature = 3; + optional fixed64 gidfeature2 = 4; + optional string text = 6; + optional fixed64 gidparentcomment = 7; + optional bool suppress_notifications = 8; + optional bool is_report = 9; + optional bool start_hidden = 10; +} + +message CCommunity_PostCommentToThread_Response { + optional fixed64 gidcomment = 1; + optional fixed64 commentthreadid = 2; + optional int32 count = 3; + optional int32 upvotes = 4; +} + +message CCommunity_DeleteCommentFromThread_Request { + optional fixed64 steamid = 1; + optional .ECommentThreadType comment_thread_type = 2 [default = k_ECommentThreadTypeInvalid]; + optional fixed64 gidfeature = 3; + optional fixed64 gidfeature2 = 4; + optional fixed64 gidcomment = 5; + optional bool undelete = 6; +} + +message CCommunity_DeleteCommentFromThread_Response { +} + +message CCommunity_RateCommentThread_Request { + optional string commentthreadtype = 1; + optional uint64 steamid = 2; + optional uint64 gidfeature = 3; + optional uint64 gidfeature2 = 4; + optional uint64 gidcomment = 5; + optional bool rate_up = 6; + optional bool suppress_notifications = 7; +} + +message CCommunity_RateCommentThread_Response { + optional uint64 gidcomment = 1; + optional uint64 commentthreadid = 2; + optional uint32 count = 3; + optional uint32 upvotes = 4; + optional bool has_upvoted = 5; +} + +message CCommunity_GetCommentThreadRatings_Request { + optional string commentthreadtype = 1; + optional uint64 steamid = 2; + optional uint64 gidfeature = 3; + optional uint64 gidfeature2 = 4; + optional uint64 gidcomment = 5; + optional uint32 max_results = 6; +} + +message CCommunity_GetCommentThreadRatings_Response { + optional uint64 commentthreadid = 1; + optional uint64 gidcomment = 2; + optional uint32 upvotes = 3; + optional bool has_upvoted = 4; + repeated uint32 upvoter_accountids = 5; +} + +message CCommunity_RateClanAnnouncement_Request { + optional uint64 announcementid = 1; + optional bool vote_up = 2; + optional uint32 clan_accountid = 3; +} + +message CCommunity_RateClanAnnouncement_Response { +} + +message CCommunity_GetClanAnnouncementVoteForUser_Request { + optional uint64 announcementid = 1; +} + +message CCommunity_GetClanAnnouncementVoteForUser_Response { + optional bool voted_up = 1; + optional bool voted_down = 2; +} + +message CCommunity_GetAvatarHistory_Request { + optional fixed64 steamid = 1; + optional bool filter_user_uploaded_only = 2; +} + +message CCommunity_GetAvatarHistory_Response { + message AvatarData { + optional string avatar_sha1 = 1; + optional bool user_uploaded = 2; + optional uint32 timestamp = 3; + } + + repeated .CCommunity_GetAvatarHistory_Response.AvatarData avatars = 1; +} + +message CAppPriority { + optional uint32 priority = 1; + repeated uint32 appid = 2; +} + +message CCommunity_GetUserPartnerEventNews_Request { + optional uint32 count = 1; + optional uint32 offset = 2; + optional uint32 rtime32_start_time = 3; + optional uint32 rtime32_end_time = 4; + repeated uint32 language_preference = 5; + repeated .EProtoClanEventType filter_event_type = 6; + optional bool filter_to_appid = 7; + repeated .CAppPriority app_list = 8; + optional uint32 count_after = 9 [default = 0]; + optional uint32 count_before = 10 [default = 0]; +} + +message CCommunity_GetUserPartnerEventNews_Response { + repeated .CClanMatchEventByRange results = 1; +} + +message CCommunity_GetBestEventsForUser_Request { + optional bool include_steam_blog = 1; + optional uint32 filter_to_played_within_days = 2; + optional bool include_only_game_updates = 3; +} + +message CCommunity_PartnerEventResult { + optional uint32 clanid = 1; + optional fixed64 event_gid = 2; + optional fixed64 announcement_gid = 3; + optional uint32 appid = 4; + optional bool possible_takeover = 5; + optional uint32 rtime32_last_modified = 6 [default = 0]; + optional int32 user_app_priority = 7; +} + +message CCommunity_GetBestEventsForUser_Response { + repeated .CCommunity_PartnerEventResult results = 1; +} + +message CCommunity_MarkPartnerEventsForUser_Request { + message PartnerEventMarking { + optional uint32 clanid = 1; + optional fixed64 event_gid = 2; + optional .EPartnerEventDisplayLocation display_location = 3 [default = k_EPartnerEventDisplayLocation_Invalid]; + optional bool mark_shown = 4; + optional bool mark_read = 5; + } + + repeated .CCommunity_MarkPartnerEventsForUser_Request.PartnerEventMarking markings = 1; +} + +message CCommunity_MarkPartnerEventsForUser_Response { +} + +message CCommunity_GetUserPartnerEventViewStatus_Request { + repeated fixed64 event_gids = 1; + optional bool include_read_events_only = 2; +} + +message CCommunity_GetUserPartnerEventViewStatus_Response { + message PartnerEvent { + optional fixed64 event_gid = 1; + optional uint32 last_shown_time = 2; + optional uint32 last_read_time = 3; + optional uint32 clan_account_id = 4; + } + + repeated .CCommunity_GetUserPartnerEventViewStatus_Response.PartnerEvent events = 1; +} + +message CCommunity_PartnerEventsShowMoreForApp_Request { + optional uint32 appid = 1; +} + +message CCommunity_PartnerEventsShowMoreForApp_Response { +} + +message CCommunity_PartnerEventsShowLessForApp_Request { + optional uint32 appid = 1; +} + +message CCommunity_PartnerEventsShowLessForApp_Response { +} + +message CCommunity_ClearUserPartnerEventsAppPriorities_Request { +} + +message CCommunity_ClearUserPartnerEventsAppPriorities_Response { +} + +message CCommunity_GetUserPartnerEventsAppPriorities_Request { +} + +message CCommunity_PartnerEventsAppPriority { + optional uint32 appid = 1; + optional int32 user_app_priority = 2; +} + +message CCommunity_GetUserPartnerEventsAppPriorities_Response { + repeated .CCommunity_PartnerEventsAppPriority priorities = 1; +} + +message CCommunity_ClearSinglePartnerEventsAppPriority_Request { + optional uint32 appid = 1; +} + +message CCommunity_ClearSinglePartnerEventsAppPriority_Response { +} + +service Community { + rpc GetApps (.CCommunity_GetApps_Request) returns (.CCommunity_GetApps_Response); + rpc GetAppRichPresenceLocalization (.CCommunity_GetAppRichPresenceLocalization_Request) returns (.CCommunity_GetAppRichPresenceLocalization_Response); + rpc GetCommentThread (.CCommunity_GetCommentThread_Request) returns (.CCommunity_GetCommentThread_Response); + rpc PostCommentToThread (.CCommunity_PostCommentToThread_Request) returns (.CCommunity_PostCommentToThread_Response); + rpc DeleteCommentFromThread (.CCommunity_DeleteCommentFromThread_Request) returns (.CCommunity_DeleteCommentFromThread_Response); + rpc RateCommentThread (.CCommunity_RateCommentThread_Request) returns (.CCommunity_RateCommentThread_Response); + rpc GetCommentThreadRatings (.CCommunity_GetCommentThreadRatings_Request) returns (.CCommunity_GetCommentThreadRatings_Response); + rpc RateClanAnnouncement (.CCommunity_RateClanAnnouncement_Request) returns (.CCommunity_RateClanAnnouncement_Response); + rpc GetClanAnnouncementVoteForUser (.CCommunity_GetClanAnnouncementVoteForUser_Request) returns (.CCommunity_GetClanAnnouncementVoteForUser_Response); + rpc GetAvatarHistory (.CCommunity_GetAvatarHistory_Request) returns (.CCommunity_GetAvatarHistory_Response); + rpc GetUserPartnerEventNews (.CCommunity_GetUserPartnerEventNews_Request) returns (.CCommunity_GetUserPartnerEventNews_Response); + rpc GetBestEventsForUser (.CCommunity_GetBestEventsForUser_Request) returns (.CCommunity_GetBestEventsForUser_Response); + rpc MarkPartnerEventsForUser (.CCommunity_MarkPartnerEventsForUser_Request) returns (.CCommunity_MarkPartnerEventsForUser_Response); + rpc GetUserPartnerEventViewStatus (.CCommunity_GetUserPartnerEventViewStatus_Request) returns (.CCommunity_GetUserPartnerEventViewStatus_Response); + rpc PartnerEventsShowMoreForApp (.CCommunity_PartnerEventsShowMoreForApp_Request) returns (.CCommunity_PartnerEventsShowMoreForApp_Response); + rpc PartnerEventsShowLessForApp (.CCommunity_PartnerEventsShowLessForApp_Request) returns (.CCommunity_PartnerEventsShowLessForApp_Response); + rpc ClearUserPartnerEventsAppPriorities (.CCommunity_ClearUserPartnerEventsAppPriorities_Request) returns (.CCommunity_ClearUserPartnerEventsAppPriorities_Response); + rpc GetUserPartnerEventsAppPriorities (.CCommunity_GetUserPartnerEventsAppPriorities_Request) returns (.CCommunity_GetUserPartnerEventsAppPriorities_Response); + rpc ClearSinglePartnerEventsAppPriority (.CCommunity_ClearSinglePartnerEventsAppPriority_Request) returns (.CCommunity_ClearSinglePartnerEventsAppPriority_Response); +} diff --git a/Protobufs/steam/steammessages_contentsystem.steamclient.proto b/Protobufs/steam/steammessages_contentsystem.steamclient.proto new file mode 100644 index 0000000..cd5cae9 --- /dev/null +++ b/Protobufs/steam/steammessages_contentsystem.steamclient.proto @@ -0,0 +1,123 @@ +import "steammessages_base.proto"; +import "steammessages_unified_base.steamclient.proto"; + +option cc_generic_services = true; + +message CContentServerDirectory_ConnectedSteamPipeServerInfo { + optional string type = 1; + optional int32 source_id = 2; + optional string hostname = 3; +} + +message CContentServerDirectory_GetServersForSteamPipe_Request { + optional uint32 cell_id = 1; + optional uint32 max_servers = 2 [default = 20]; + optional string ip_override = 3; + optional int32 launcher_type = 4 [default = 0]; + optional string ipv6_public = 5; + repeated .CContentServerDirectory_ConnectedSteamPipeServerInfo current_connections = 6; +} + +message CContentServerDirectory_ServerInfo { + optional string type = 1; + optional int32 source_id = 2; + optional int32 cell_id = 3; + optional int32 load = 4; + optional float weighted_load = 5; + optional int32 num_entries_in_client_list = 6; + optional bool steam_china_only = 7; + optional string host = 8; + optional string vhost = 9; + optional bool use_as_proxy = 10; + optional string proxy_request_path_template = 11; + optional string https_support = 12; + repeated uint32 allowed_app_ids = 13; + optional uint32 priority_class = 15; + repeated string bypass_proxies_of_type = 16; +} + +message CContentServerDirectory_GetServersForSteamPipe_Response { + repeated .CContentServerDirectory_ServerInfo servers = 1; + optional bool no_change = 2; +} + +message CContentServerDirectory_GetDepotPatchInfo_Request { + optional uint32 appid = 1; + optional uint32 depotid = 2; + optional uint64 source_manifestid = 3; + optional uint64 target_manifestid = 4; +} + +message CContentServerDirectory_GetDepotPatchInfo_Response { + optional bool is_available = 1; + optional uint64 patch_size = 2; + optional uint64 patched_chunks_size = 3; +} + +message CContentServerDirectory_GetClientUpdateHosts_Request { + optional string cached_signature = 1; +} + +message CContentServerDirectory_GetClientUpdateHosts_Response { + optional string hosts_kv = 1; + optional uint64 valid_until_time = 2; + optional string ip_country = 3; +} + +message CContentServerDirectory_GetManifestRequestCode_Request { + optional uint32 app_id = 1; + optional uint32 depot_id = 2; + optional uint64 manifest_id = 3; + optional string app_branch = 4; + optional string branch_password_hash = 5; +} + +message CContentServerDirectory_GetManifestRequestCode_Response { + optional uint64 manifest_request_code = 1; +} + +message CContentServerDirectory_GetCDNAuthToken_Request { + optional uint32 depot_id = 1; + optional string host_name = 2; + optional uint32 app_id = 3; +} + +message CContentServerDirectory_GetCDNAuthToken_Response { + optional string token = 1; + optional uint32 expiration_time = 2; +} + +message CContentServerDirectory_RequestPeerContentServer_Request { + optional uint64 remote_client_id = 1; + optional uint64 steamid = 2; + optional uint64 server_remote_client_id = 3; + optional uint32 app_id = 4; + optional uint32 current_build_id = 5; +} + +message CContentServerDirectory_RequestPeerContentServer_Response { + optional uint32 server_port = 1; + repeated uint32 installed_depots = 2; + optional uint64 access_token = 3; +} + +message CContentServerDirectory_GetPeerContentInfo_Request { + optional uint64 remote_client_id = 1; + optional uint64 steamid = 2; + optional uint64 server_remote_client_id = 3; +} + +message CContentServerDirectory_GetPeerContentInfo_Response { + repeated uint32 appids = 1; + optional string ip_public = 2; +} + +service ContentServerDirectory { + rpc GetServersForSteamPipe (.CContentServerDirectory_GetServersForSteamPipe_Request) returns (.CContentServerDirectory_GetServersForSteamPipe_Response); + rpc GetDepotPatchInfo (.CContentServerDirectory_GetDepotPatchInfo_Request) returns (.CContentServerDirectory_GetDepotPatchInfo_Response); + rpc GetClientUpdateHosts (.CContentServerDirectory_GetClientUpdateHosts_Request) returns (.CContentServerDirectory_GetClientUpdateHosts_Response); + rpc GetManifestRequestCode (.CContentServerDirectory_GetManifestRequestCode_Request) returns (.CContentServerDirectory_GetManifestRequestCode_Response); + rpc GetCDNAuthToken (.CContentServerDirectory_GetCDNAuthToken_Request) returns (.CContentServerDirectory_GetCDNAuthToken_Response); + rpc RequestPeerContentServer (.CContentServerDirectory_RequestPeerContentServer_Request) returns (.CContentServerDirectory_RequestPeerContentServer_Response); + rpc GetPeerContentInfo (.CContentServerDirectory_GetPeerContentInfo_Request) returns (.CContentServerDirectory_GetPeerContentInfo_Response); +} diff --git a/Protobufs/steam/steammessages_credentials.steamclient.proto b/Protobufs/steam/steammessages_credentials.steamclient.proto new file mode 100644 index 0000000..bc9b6e7 --- /dev/null +++ b/Protobufs/steam/steammessages_credentials.steamclient.proto @@ -0,0 +1,96 @@ +import "steammessages_base.proto"; +import "steammessages_unified_base.steamclient.proto"; + +option cc_generic_services = true; + +message CCredentials_TestAvailablePassword_Request { + optional string password = 1; + optional bytes sha_digest_password = 2; + optional string account_name = 3; +} + +message CCredentials_TestAvailablePassword_Response { + optional bool is_valid = 3; +} + +message CCredentials_GetSteamGuardDetails_Request { + optional string webcookie = 2; + optional fixed32 timestamp_minimum_wanted = 3; + optional int32 deprecated_ipaddress = 4; + optional .CMsgIPAddress ip_address = 5; +} + +message CCredentials_GetSteamGuardDetails_Response { + message SessionData { + optional uint64 machine_id = 1; + optional string machine_name_userchosen = 2; + optional fixed32 timestamp_machine_steamguard_enabled = 3; + optional bool authentication_exists_from_geoloc_before_mintime = 4; + optional bool authentication_exists_from_same_ip_before_mintime = 6; + optional uint32 public_ipv4 = 7; + optional string public_ip_address = 8; + } + + optional bool is_steamguard_enabled = 1; + optional fixed32 timestamp_steamguard_enabled = 2; + optional string deprecated_machine_name_userchosen = 4; + optional fixed32 deprecated_timestamp_machine_steamguard_enabled = 5; + optional bool deprecated_authentication_exists_from_geoloc_before_mintime = 6; + optional uint64 deprecated_machine_id = 7; + repeated .CCredentials_GetSteamGuardDetails_Response.SessionData session_data = 8; + optional bool is_twofactor_enabled = 9; + optional fixed32 timestamp_twofactor_enabled = 10; + optional bool is_phone_verified = 11; +} + +message CCredentials_ValidateEmailAddress_Request { + optional string stoken = 1; +} + +message CCredentials_ValidateEmailAddress_Response { + optional bool was_validated = 1; +} + +message CCredentials_SteamGuardPhishingReport_Request { + optional string param_string = 1; + optional string ipaddress_actual = 2; +} + +message CCredentials_SteamGuardPhishingReport_Response { + optional string ipaddress_loginattempt = 1; + optional string countryname_loginattempt = 2; + optional string statename_loginattempt = 3; + optional string cityname_loginattempt = 4; + optional string ipaddress_actual = 5; + optional string countryname_actual = 6; + optional string statename_actual = 7; + optional string cityname_actual = 8; + optional string steamguard_code = 9; +} + +message CCredentials_LastCredentialChangeTime_Request { + optional bool user_changes_only = 1; +} + +message CCredentials_LastCredentialChangeTime_Response { + optional fixed32 timestamp_last_password_change = 1; + optional fixed32 timestamp_last_email_change = 2; + optional fixed32 timestamp_last_password_reset = 3; +} + +message CCredentials_GetAccountAuthSecret_Request { +} + +message CCredentials_GetAccountAuthSecret_Response { + optional int32 secret_id = 1; + optional bytes secret = 2; +} + +service Credentials { + rpc TestAvailablePassword (.CCredentials_TestAvailablePassword_Request) returns (.CCredentials_TestAvailablePassword_Response); + rpc GetSteamGuardDetails (.CCredentials_GetSteamGuardDetails_Request) returns (.CCredentials_GetSteamGuardDetails_Response); + rpc ValidateEmailAddress (.CCredentials_ValidateEmailAddress_Request) returns (.CCredentials_ValidateEmailAddress_Response); + rpc SteamGuardPhishingReport (.CCredentials_SteamGuardPhishingReport_Request) returns (.CCredentials_SteamGuardPhishingReport_Response); + rpc GetCredentialChangeTimeDetails (.CCredentials_LastCredentialChangeTime_Request) returns (.CCredentials_LastCredentialChangeTime_Response); + rpc GetAccountAuthSecret (.CCredentials_GetAccountAuthSecret_Request) returns (.CCredentials_GetAccountAuthSecret_Response); +} diff --git a/Protobufs/steam/steammessages_datapublisher.steamclient.proto b/Protobufs/steam/steammessages_datapublisher.steamclient.proto new file mode 100644 index 0000000..5ebfa6e --- /dev/null +++ b/Protobufs/steam/steammessages_datapublisher.steamclient.proto @@ -0,0 +1,104 @@ +import "steammessages_base.proto"; +import "steammessages_unified_base.steamclient.proto"; + +option cc_generic_services = true; + +message CDataPublisher_ClientContentCorruptionReport_Notification { + optional uint32 appid = 1; + optional uint32 depotid = 2; + optional string download_source = 3; + optional string objectid = 4; + optional uint32 cellid = 5; + optional bool is_manifest = 6; + optional uint64 object_size = 7; + optional uint32 corruption_type = 8; + optional bool used_https = 9; + optional bool oc_proxy_detected = 10; +} + +message CDataPublisher_ClientUpdateAppJob_Notification { + optional uint32 app_id = 1; + repeated uint32 depot_ids = 2; + optional uint32 app_state = 3; + optional uint32 job_app_error = 4; + optional string error_details = 5; + optional uint32 job_duration = 6; + optional uint32 files_validation_failed = 7; + optional uint64 job_bytes_downloaded = 8; + optional uint64 job_bytes_staged = 9; + optional uint64 bytes_comitted = 10; + optional uint32 start_app_state = 11; + optional fixed64 stats_machine_id = 12; + optional string branch_name = 13; + optional uint64 total_bytes_downloaded = 14; + optional uint64 total_bytes_staged = 15; + optional uint64 total_bytes_restored = 16; + optional bool is_borrowed = 17; + optional bool is_free_weekend = 18; + optional uint64 total_bytes_patched = 20; + optional uint64 total_bytes_saved = 21; + optional uint32 cell_id = 22; + optional bool is_workshop = 23; + optional bool is_shader = 24; +} + +message CDataPublisher_GetVRDeviceInfo_Request { + optional uint32 month_count = 1; +} + +message CDataPublisher_GetVRDeviceInfo_Response { + message Device { + optional string name = 1; + optional uint32 ref = 2; + optional uint32 aggregation_ref = 3; + optional uint32 total = 4; + optional string driver = 5; + optional int32 device_class = 6; + } + + repeated .CDataPublisher_GetVRDeviceInfo_Response.Device device = 1; +} + +message CDataPublisher_SetVRDeviceInfoAggregationReference_Request { + optional uint32 ref = 1; + optional uint32 aggregation_ref = 2; +} + +message CDataPublisher_SetVRDeviceInfoAggregationReference_Response { + optional uint32 result = 1; +} + +message CDataPublisher_AddVRDeviceInfo_Request { + optional string manufacturer = 1; + optional string model = 2; + optional string driver = 3; + optional string controller_type = 4; + optional int32 device_class = 5; +} + +message CDataPublisher_AddVRDeviceInfo_Response { + optional uint32 result = 1; + optional uint32 ref = 2; +} + +message CValveHWSurvey_GetSurveySchedule_Request { + optional string surveydatetoken = 1; + optional fixed64 surveydatetokenversion = 2; +} + +message CValveHWSurvey_GetSurveySchedule_Response { + optional uint32 surveydatetoken = 1; + optional fixed64 surveydatetokenversion = 2; +} + +service DataPublisher { + rpc ClientContentCorruptionReport (.CDataPublisher_ClientContentCorruptionReport_Notification) returns (.NoResponse); + rpc ClientUpdateAppJobReport (.CDataPublisher_ClientUpdateAppJob_Notification) returns (.NoResponse); + rpc GetVRDeviceInfo (.CDataPublisher_GetVRDeviceInfo_Request) returns (.CDataPublisher_GetVRDeviceInfo_Response); + rpc SetVRDeviceInfoAggregationReference (.CDataPublisher_SetVRDeviceInfoAggregationReference_Request) returns (.CDataPublisher_SetVRDeviceInfoAggregationReference_Response); + rpc AddVRDeviceInfo (.CDataPublisher_AddVRDeviceInfo_Request) returns (.CDataPublisher_AddVRDeviceInfo_Response); +} + +service ValveHWSurvey { + rpc GetSurveySchedule (.CValveHWSurvey_GetSurveySchedule_Request) returns (.CValveHWSurvey_GetSurveySchedule_Response); +} diff --git a/Protobufs/steam/steammessages_depotbuilder.steamclient.proto b/Protobufs/steam/steammessages_depotbuilder.steamclient.proto new file mode 100644 index 0000000..a05d336 --- /dev/null +++ b/Protobufs/steam/steammessages_depotbuilder.steamclient.proto @@ -0,0 +1,99 @@ +import "steammessages_base.proto"; +import "steammessages_unified_base.steamclient.proto"; + +option cc_generic_services = true; + +message CContentBuilder_InitDepotBuild_Request { + optional uint32 appid = 1; + optional uint32 depotid = 2; + optional uint64 workshop_itemid = 3; + optional bool for_local_cs = 4; + optional string target_branch = 5; +} + +message CContentBuilder_InitDepotBuild_Response { + optional uint64 baseline_manifestid = 1; + optional uint32 chunk_size = 2; + optional bytes aes_key = 3; + optional bytes rsa_key = 4; + optional string url_host = 5; + optional bool offset_detection_enabled = 6; + optional uint32 offset_detection_min_clean_chunk = 7; + optional uint32 offset_detection_blast_radius_pre = 8; + optional uint32 offset_detection_blast_radius_post = 9; + optional uint32 offset_detection_max_distance_pre = 10; + optional uint32 offset_detection_max_distance_post = 11; +} + +message CContentBuilder_StartDepotUpload_Request { + optional uint32 appid = 1; + optional uint32 depotid = 2; + optional uint64 workshop_itemid = 3; + optional bool for_local_cs = 4; + optional uint64 baseline_manifestid = 5; + optional uint32 manifest_size = 6; +} + +message CContentBuilder_StartDepotUpload_Response { + optional uint64 depot_build_handle = 1; +} + +message CContentBuilder_GetMissingDepotChunks_Request { + optional uint32 appid = 1; + optional uint64 depot_build_handle = 2; +} + +message CContentBuilder_GetMissingDepotChunks_Response { + message Chunks { + optional bytes sha = 1; + } + + repeated .CContentBuilder_GetMissingDepotChunks_Response.Chunks missing_chunks = 1; + optional uint32 total_missing_chunks = 2; + optional uint64 total_missing_bytes = 3; +} + +message CContentBuilder_FinishDepotUpload_Request { + optional uint32 appid = 1; + optional uint64 depot_build_handle = 2; +} + +message CContentBuilder_FinishDepotUpload_Response { + optional uint64 manifestid = 1; + optional bool prev_reused = 2; +} + +message CContentBuilder_CommitAppBuild_Request { + message Depots { + optional uint32 depotid = 1; + optional uint64 manifestid = 2; + } + + optional uint32 appid = 1; + repeated .CContentBuilder_CommitAppBuild_Request.Depots depot_manifests = 2; + optional string build_notes = 4; + optional string live_branch = 5; +} + +message CContentBuilder_CommitAppBuild_Response { + optional uint32 buildid = 1; +} + +message CContentBuilder_SignInstallScript_Request { + optional uint32 appid = 1; + optional uint32 depotid = 2; + optional string install_script = 3; +} + +message CContentBuilder_SignInstallScript_Response { + optional string signed_install_script = 1; +} + +service ContentBuilder { + rpc InitDepotBuild (.CContentBuilder_InitDepotBuild_Request) returns (.CContentBuilder_InitDepotBuild_Response); + rpc StartDepotUpload (.CContentBuilder_StartDepotUpload_Request) returns (.CContentBuilder_StartDepotUpload_Response); + rpc GetMissingDepotChunks (.CContentBuilder_GetMissingDepotChunks_Request) returns (.CContentBuilder_GetMissingDepotChunks_Response); + rpc FinishDepotUpload (.CContentBuilder_FinishDepotUpload_Request) returns (.CContentBuilder_FinishDepotUpload_Response); + rpc CommitAppBuild (.CContentBuilder_CommitAppBuild_Request) returns (.CContentBuilder_CommitAppBuild_Response); + rpc SignInstallScript (.CContentBuilder_SignInstallScript_Request) returns (.CContentBuilder_SignInstallScript_Response); +} diff --git a/Protobufs/steam/steammessages_deviceauth.steamclient.proto b/Protobufs/steam/steammessages_deviceauth.steamclient.proto new file mode 100644 index 0000000..5111114 --- /dev/null +++ b/Protobufs/steam/steammessages_deviceauth.steamclient.proto @@ -0,0 +1,169 @@ +import "steammessages_base.proto"; +import "steammessages_unified_base.steamclient.proto"; + +option cc_generic_services = true; + +message CDeviceAuth_GetOwnAuthorizedDevices_Request { + optional fixed64 steamid = 1; + optional bool include_canceled = 2; +} + +message CDeviceAuth_GetOwnAuthorizedDevices_Response { + message Device { + optional fixed64 auth_device_token = 1; + optional string device_name = 2; + optional bool is_pending = 3; + optional bool is_canceled = 4; + optional uint32 last_time_used = 5; + optional fixed64 last_borrower_id = 6; + optional uint32 last_app_played = 7; + optional bool is_limited = 8; + } + + repeated .CDeviceAuth_GetOwnAuthorizedDevices_Response.Device devices = 1; +} + +message CDeviceAuth_AcceptAuthorizationRequest_Request { + optional fixed64 steamid = 1; + optional fixed64 auth_device_token = 2; + optional fixed64 auth_code = 3; + optional fixed64 from_steamid = 4; +} + +message CDeviceAuth_AcceptAuthorizationRequest_Response { +} + +message CDeviceAuth_AuthorizeRemoteDevice_Request { + optional fixed64 steamid = 1; + optional fixed64 auth_device_token = 2; +} + +message CDeviceAuth_AuthorizeRemoteDevice_Response { +} + +message CDeviceAuth_DeauthorizeRemoteDevice_Request { + optional fixed64 steamid = 1; + optional fixed64 auth_device_token = 2; +} + +message CDeviceAuth_DeauthorizeRemoteDevice_Response { +} + +message CDeviceAuth_GetUsedAuthorizedDevices_Request { + optional fixed64 steamid = 1; +} + +message CDeviceAuth_GetUsedAuthorizedDevices_Response { + message Device { + optional fixed64 auth_device_token = 1; + optional string device_name = 2; + optional fixed64 owner_steamid = 3; + optional uint32 last_time_used = 4; + optional uint32 last_app_played = 5; + } + + repeated .CDeviceAuth_GetUsedAuthorizedDevices_Response.Device devices = 1; +} + +message CDeviceAuth_GetAuthorizedBorrowers_Request { + optional fixed64 steamid = 1; + optional bool include_canceled = 2; + optional bool include_pending = 3; +} + +message CDeviceAuth_GetAuthorizedBorrowers_Response { + message Borrower { + optional fixed64 steamid = 1; + optional bool is_pending = 2; + optional bool is_canceled = 3; + optional uint32 time_created = 4; + } + + repeated .CDeviceAuth_GetAuthorizedBorrowers_Response.Borrower borrowers = 1; +} + +message CDeviceAuth_AddAuthorizedBorrowers_Request { + optional fixed64 steamid = 1; + repeated fixed64 steamid_borrower = 2; +} + +message CDeviceAuth_AddAuthorizedBorrowers_Response { + optional int32 seconds_to_wait = 1; +} + +message CDeviceAuth_RemoveAuthorizedBorrowers_Request { + optional fixed64 steamid = 1; + repeated fixed64 steamid_borrower = 2; +} + +message CDeviceAuth_RemoveAuthorizedBorrowers_Response { +} + +message CDeviceAuth_GetAuthorizedAsBorrower_Request { + optional fixed64 steamid = 1; + optional bool include_canceled = 2; + optional bool include_pending = 3; +} + +message CDeviceAuth_GetAuthorizedAsBorrower_Response { + message Lender { + optional fixed64 steamid = 1; + optional uint32 time_created = 2; + optional bool is_pending = 3; + optional bool is_canceled = 4; + optional bool is_used = 5; + optional uint32 time_removed = 6; + optional uint32 time_first = 7; + } + + repeated .CDeviceAuth_GetAuthorizedAsBorrower_Response.Lender lenders = 1; +} + +message CDeviceAuth_GetExcludedGamesInLibrary_Request { + optional fixed64 steamid = 1; +} + +message CDeviceAuth_GetExcludedGamesInLibrary_Response { + message ExcludedGame { + optional uint32 appid = 1; + optional string game_name = 2; + optional bool vac_banned = 3; + optional bool package_excluded = 4; + } + + repeated .CDeviceAuth_GetExcludedGamesInLibrary_Response.ExcludedGame excluded_games = 1; +} + +message CDeviceAuth_GetBorrowerPlayHistory_Request { + optional fixed64 steamid = 1; + optional uint32 appid = 2; +} + +message CDeviceAuth_GetBorrowerPlayHistory_Response { + message GameHistory { + optional uint32 appid = 1; + optional uint32 time_last = 2; + optional uint32 time_total = 3; + } + + message LenderHistory { + optional fixed64 steamid = 1; + repeated .CDeviceAuth_GetBorrowerPlayHistory_Response.GameHistory game_history = 2; + } + + repeated .CDeviceAuth_GetBorrowerPlayHistory_Response.LenderHistory lender_history = 1; +} + +service DeviceAuth { + rpc GetOwnAuthorizedDevices (.CDeviceAuth_GetOwnAuthorizedDevices_Request) returns (.CDeviceAuth_GetOwnAuthorizedDevices_Response); + rpc AcceptAuthorizationRequest (.CDeviceAuth_AcceptAuthorizationRequest_Request) returns (.CDeviceAuth_AcceptAuthorizationRequest_Response); + rpc AuthorizeRemoteDevice (.CDeviceAuth_AuthorizeRemoteDevice_Request) returns (.CDeviceAuth_AuthorizeRemoteDevice_Response); + rpc DeauthorizeRemoteDevice (.CDeviceAuth_DeauthorizeRemoteDevice_Request) returns (.CDeviceAuth_DeauthorizeRemoteDevice_Response); + rpc GetUsedAuthorizedDevices (.CDeviceAuth_GetUsedAuthorizedDevices_Request) returns (.CDeviceAuth_GetUsedAuthorizedDevices_Response); + rpc GetAuthorizedBorrowers (.CDeviceAuth_GetAuthorizedBorrowers_Request) returns (.CDeviceAuth_GetAuthorizedBorrowers_Response); + rpc AddAuthorizedBorrowers (.CDeviceAuth_AddAuthorizedBorrowers_Request) returns (.CDeviceAuth_AddAuthorizedBorrowers_Response); + rpc RemoveAuthorizedBorrowers (.CDeviceAuth_RemoveAuthorizedBorrowers_Request) returns (.CDeviceAuth_RemoveAuthorizedBorrowers_Response); + rpc GetAuthorizedAsBorrower (.CDeviceAuth_GetAuthorizedAsBorrower_Request) returns (.CDeviceAuth_GetAuthorizedAsBorrower_Response); + rpc GetExcludedGamesInLibrary (.CDeviceAuth_GetExcludedGamesInLibrary_Request) returns (.CDeviceAuth_GetExcludedGamesInLibrary_Response); + rpc GetBorrowerPlayHistory (.CDeviceAuth_GetBorrowerPlayHistory_Request) returns (.CDeviceAuth_GetBorrowerPlayHistory_Response); +} diff --git a/Protobufs/steam/steammessages_econ.steamclient.proto b/Protobufs/steam/steammessages_econ.steamclient.proto new file mode 100644 index 0000000..64c39ec --- /dev/null +++ b/Protobufs/steam/steammessages_econ.steamclient.proto @@ -0,0 +1,137 @@ +import "steammessages_base.proto"; +import "steammessages_unified_base.steamclient.proto"; + +option cc_generic_services = true; + +message CEcon_GetInventoryItemsWithDescriptions_Request { + message FilterOptions { + repeated uint64 assetids = 1; + repeated uint32 currencyids = 2; + optional bool tradable_only = 3; + optional bool marketable_only = 4; + } + + optional fixed64 steamid = 1; + optional uint32 appid = 2; + optional uint64 contextid = 3; + optional bool get_descriptions = 4; + optional bool for_trade_offer_verification = 10; + optional string language = 5; + optional .CEcon_GetInventoryItemsWithDescriptions_Request.FilterOptions filters = 6; + optional uint64 start_assetid = 8; + optional int32 count = 9; +} + +message CEcon_Asset { + optional uint32 appid = 1; + optional uint64 contextid = 2; + optional uint64 assetid = 3; + optional uint64 classid = 4; + optional uint64 instanceid = 5; + optional uint32 currencyid = 6; + optional int64 amount = 7; + optional bool missing = 8; + optional int64 est_usd = 9; +} + +message CEconItem_DescriptionLine { + optional string type = 1; + optional string value = 2; + optional string color = 3; + optional string label = 4; +} + +message CEconItem_Action { + optional string link = 1; + optional string name = 2; +} + +message CEconItem_Description { + optional int32 appid = 1; + optional uint64 classid = 2; + optional uint64 instanceid = 3; + optional bool currency = 4; + optional string background_color = 5; + optional string icon_url = 6; + optional string icon_url_large = 7; + repeated .CEconItem_DescriptionLine descriptions = 8; + optional bool tradable = 9; + repeated .CEconItem_Action actions = 10; + repeated .CEconItem_DescriptionLine owner_descriptions = 11; + repeated .CEconItem_Action owner_actions = 12; + repeated string fraudwarnings = 13; + optional string name = 14; + optional string name_color = 15; + optional string type = 16; + optional string market_name = 17; + optional string market_hash_name = 18; + optional string market_fee = 19; + optional int32 market_fee_app = 28; + optional .CEconItem_Description contained_item = 20; + repeated .CEconItem_Action market_actions = 21; + optional bool commodity = 22; + optional int32 market_tradable_restriction = 23; + optional int32 market_marketable_restriction = 24; + optional bool marketable = 25; + repeated .CEconItem_Tag tags = 26; + optional string item_expiration = 27; + optional string market_buy_country_restriction = 30; + optional string market_sell_country_restriction = 31; +} + +message CEconItem_Tag { + optional uint32 appid = 1; + optional string category = 2; + optional string internal_name = 3; + optional string localized_category_name = 4; + optional string localized_tag_name = 5; + optional string color = 6; +} + +message CEcon_GetInventoryItemsWithDescriptions_Response { + repeated .CEcon_Asset assets = 1; + repeated .CEconItem_Description descriptions = 2; + repeated .CEcon_Asset missing_assets = 3; + optional bool more_items = 4; + optional uint64 last_assetid = 5; + optional uint32 total_inventory_count = 6; +} + +message CEcon_GetTradeOfferAccessToken_Request { + optional bool generate_new_token = 1; +} + +message CEcon_GetTradeOfferAccessToken_Response { + optional string trade_offer_access_token = 1; +} + +message CEcon_ClientGetItemShopOverlayAuthURL_Request { + optional string return_url = 1; +} + +message CEcon_ClientGetItemShopOverlayAuthURL_Response { + optional string url = 1; +} + +message CEcon_GetAssetClassInfo_Request { + message Class { + optional uint64 classid = 1; + optional uint64 instanceid = 2; + } + + optional string language = 1; + optional uint32 appid = 2; + repeated .CEcon_GetAssetClassInfo_Request.Class classes = 3; + optional bool high_pri = 4; +} + +message CEcon_GetAssetClassInfo_Response { + repeated .CEconItem_Description descriptions = 1; +} + +service Econ { + rpc GetInventoryItemsWithDescriptions (.CEcon_GetInventoryItemsWithDescriptions_Request) returns (.CEcon_GetInventoryItemsWithDescriptions_Response); + rpc GetTradeOfferAccessToken (.CEcon_GetTradeOfferAccessToken_Request) returns (.CEcon_GetTradeOfferAccessToken_Response); + rpc ClientGetItemShopOverlayAuthURL (.CEcon_ClientGetItemShopOverlayAuthURL_Request) returns (.CEcon_ClientGetItemShopOverlayAuthURL_Response); + rpc GetAssetClassInfo (.CEcon_GetAssetClassInfo_Request) returns (.CEcon_GetAssetClassInfo_Response); +} diff --git a/Protobufs/steam/steammessages_familygroups.steamclient.proto b/Protobufs/steam/steammessages_familygroups.steamclient.proto new file mode 100644 index 0000000..aff77ed --- /dev/null +++ b/Protobufs/steam/steammessages_familygroups.steamclient.proto @@ -0,0 +1,474 @@ +import "steammessages_base.proto"; +import "steammessages_unified_base.steamclient.proto"; +import "enums.proto"; + +option cc_generic_services = true; + +enum EFamilyGroupRole { + k_EFamilyGroupRole_None = 0; + k_EFamilyGroupRole_Adult = 1; + k_EFamilyGroupRole_Child = 2; + k_EFamilyGroupRole_MAX = 3; +} + +enum EFamilyGroupsTwoFactorMethod { + k_EFamilyGroupsTwoFactorMethodNone = 0; + k_EFamilyGroupsTwoFactorMethodMobile = 1; + k_EFamilyGroupsTwoFactorMethodEmail = 2; +} + +enum EPurchaseRequestAction { + k_EPurchaseRequestAction_None = 0; + k_EPurchaseRequestAction_Decline = 1; + k_EPurchaseRequestAction_Purchased = 2; + k_EPurchaseRequestAction_Abandoned = 3; + k_EPurchaseRequestAction_Cancel = 4; + k_EPurchaseRequestAction_MAX = 5; +} + +enum EFamilyGroupChangeLogType { + k_InvalidChangeType = 0; + k_FamilyGroupCreated = 1; + k_FamilyGroupModified = 2; + k_FamilyGroupDeleted = 3; + k_AccountInvited = 4; + k_InviteDeniedByGroupSize = 5; + k_JoinedFamilyGroup = 6; + k_JoinDeniedByRegionMismatch = 7; + k_JoinDeniedByMissingIpAddress = 8; + k_JoinDeniedByFamilyCooldown = 9; + k_JoinDeniedByUserCooldown = 10; + k_JoinDeniedByOtherGroup = 11; + k_AccountRemoved = 12; + k_InviteCanceled = 13; + k_PurchaseRequested = 14; + k_ParentalSettingsEnabled = 15; + k_ParentalSettingsDisabled = 16; + k_ParentalSettingsChanged = 17; + k_FamilyCooldownOverridesChanged = 18; + k_PurchaseRequestCanceled = 19; + k_PurchaseRequestApproved = 20; + k_PurchaseRequestDeclined = 21; + k_CooldownSkipConsumed = 22; + k_FamilyGroupRestored = 23; + k_JoinDenied = 24; + k_SupportForceAcceptedInvite = 25; +} + +enum ESharedLibraryExcludeReason { + k_ESharedLibrary_Included = 0; + k_ESharedLibrary_AppExcluded_ByPartner = 1; + k_ESharedLibrary_LicenseExcluded = 2; + k_ESharedLibrary_FreeGame = 3; + k_ESharedLibrary_LicensePrivate = 4; + k_ESharedLibrary_AppExcluded_WrongAppType = 6; + k_ESharedLibrary_AppExcluded_NonrefundableDLC = 7; + k_ESharedLibrary_AppExcluded_UnreleasedApp = 8; + k_ESharedLibrary_AppExcluded_ParentAppExcluded = 9; + k_ESharedLibrary_PackageExcluded_ByPartner = 10; + k_ESharedLibrary_PackageExcluded_Special = 11; + k_ESharedLibrary_PackageExcluded_Dev = 12; + k_ESharedLibrary_PackageExcluded_FreeWeekend = 13; + k_ESharedLibrary_PackageExcluded_Invalid = 15; + k_ESharedLibrary_PackageExcluded_RecurringLicense = 16; + k_ESharedLibrary_PackageExcluded_WrongLicenseType = 17; + k_ESharedLibrary_PackageExcluded_MasterSub = 18; + k_ESharedLibrary_PackageExcluded_NoShareableApps = 19; + k_ESharedLibrary_LicenseExcluded_PaymentMasterSub = 20; + k_ESharedLibrary_LicenseExcluded_PaymentFamilyGroup = 21; + k_ESharedLibrary_LicenseExcluded_PaymentAuthorizedDevice = 22; + k_ESharedLibrary_LicenseExcluded_PaymentAutoGrant = 23; + k_ESharedLibrary_LicenseExcluded_FlagPending = 24; + k_ESharedLibrary_LicenseExcluded_FlagPendingRefund = 25; + k_ESharedLibrary_LicenseExcluded_FlagBorrowed = 26; + k_ESharedLibrary_LicenseExcluded_FlagAutoGrant = 27; + k_ESharedLibrary_LicenseExcluded_FlagTimedTrial = 28; + k_ESharedLibrary_LicenseExcluded_FreeSub = 29; + k_ESharedLibrary_LicenseExcluded_Inactive = 30; +} + +message CFamilyGroups_CreateFamilyGroup_Request { + optional string name = 1; + optional fixed64 steamid = 2; +} + +message CFamilyGroups_CreateFamilyGroup_Response { + optional uint64 family_groupid = 1; + optional bool cooldown_skip_granted = 2; +} + +message CFamilyGroups_GetFamilyGroup_Request { + optional uint64 family_groupid = 1; + optional bool send_running_apps = 2; +} + +message FamilyGroupMember { + optional fixed64 steamid = 1; + optional .EFamilyGroupRole role = 2 [default = k_EFamilyGroupRole_None]; + optional uint32 time_joined = 3; + optional uint32 cooldown_seconds_remaining = 4; +} + +message FamilyGroupPendingInvite { + optional fixed64 steamid = 1; + optional .EFamilyGroupRole role = 2 [default = k_EFamilyGroupRole_None]; +} + +message FamilyGroupFormerMember { + optional fixed64 steamid = 1; +} + +message CFamilyGroups_GetFamilyGroup_Response { + optional string name = 1; + repeated .FamilyGroupMember members = 2; + repeated .FamilyGroupPendingInvite pending_invites = 3; + optional uint32 free_spots = 4; + optional string country = 5; + optional uint32 slot_cooldown_remaining_seconds = 6; + repeated .FamilyGroupFormerMember former_members = 7; + optional uint32 slot_cooldown_overrides = 8; +} + +message CFamilyGroups_GetFamilyGroupForUser_Request { + optional uint64 steamid = 1; + optional bool include_family_group_response = 2; +} + +message FamilyGroupPendingInviteForUser { + optional uint64 family_groupid = 1; + optional .EFamilyGroupRole role = 2 [default = k_EFamilyGroupRole_None]; + optional fixed64 inviter_steamid = 3; + optional bool awaiting_2fa = 4; +} + +message CFamilyGroups_GetFamilyGroupForUser_Response { + optional uint64 family_groupid = 1; + optional bool is_not_member_of_any_group = 2; + optional uint32 latest_time_joined = 3; + optional uint64 latest_joined_family_groupid = 4; + repeated .FamilyGroupPendingInviteForUser pending_group_invites = 5; + optional uint32 role = 6; + optional uint32 cooldown_seconds_remaining = 7; + optional .CFamilyGroups_GetFamilyGroup_Response family_group = 8; + optional bool can_undelete_last_joined_family = 9; +} + +message CFamilyGroups_ModifyFamilyGroupDetails_Request { + optional uint64 family_groupid = 1; + optional string name = 2; +} + +message CFamilyGroups_ModifyFamilyGroupDetails_Response { +} + +message CFamilyGroups_InviteToFamilyGroup_Request { + optional uint64 family_groupid = 1; + optional fixed64 receiver_steamid = 2; + optional .EFamilyGroupRole receiver_role = 3 [default = k_EFamilyGroupRole_None]; +} + +message CFamilyGroups_InviteToFamilyGroup_Response { + optional uint64 invite_id = 1; + optional .EFamilyGroupsTwoFactorMethod two_factor_method = 2 [default = k_EFamilyGroupsTwoFactorMethodNone]; +} + +message CFamilyGroups_ConfirmInviteToFamilyGroup_Request { + optional uint64 family_groupid = 1; + optional uint64 invite_id = 2; + optional uint64 nonce = 3; +} + +message CFamilyGroups_ConfirmInviteToFamilyGroup_Response { +} + +message CFamilyGroups_ResendInvitationToFamilyGroup_Request { + optional uint64 family_groupid = 1; + optional uint64 steamid = 2; +} + +message CFamilyGroups_ResendInvitationToFamilyGroup_Response { +} + +message CFamilyGroups_JoinFamilyGroup_Request { + optional uint64 family_groupid = 1; + optional uint64 nonce = 2; +} + +message CFamilyGroups_JoinFamilyGroup_Response { + optional .EFamilyGroupsTwoFactorMethod two_factor_method = 2 [default = k_EFamilyGroupsTwoFactorMethodNone]; + optional bool cooldown_skip_granted = 3; + optional bool invite_already_accepted = 4; +} + +message CFamilyGroups_ConfirmJoinFamilyGroup_Request { + optional uint64 family_groupid = 1; + optional uint64 invite_id = 2; + optional uint64 nonce = 3; +} + +message CFamilyGroups_ConfirmJoinFamilyGroup_Response { +} + +message CFamilyGroups_RemoveFromFamilyGroup_Request { + optional uint64 family_groupid = 1; + optional fixed64 steamid_to_remove = 2; +} + +message CFamilyGroups_RemoveFromFamilyGroup_Response { +} + +message CFamilyGroups_CancelFamilyGroupInvite_Request { + optional uint64 family_groupid = 1; + optional fixed64 steamid_to_cancel = 2; +} + +message CFamilyGroups_CancelFamilyGroupInvite_Response { +} + +message CFamilyGroups_GetUsersSharingDevice_Request { + optional uint64 family_groupid = 1; + optional uint64 client_instance_id = 2; +} + +message CFamilyGroups_GetUsersSharingDevice_Response { + repeated fixed64 users = 1; +} + +message CFamilyGroups_DeleteFamilyGroup_Request { + optional uint64 family_groupid = 1; +} + +message CFamilyGroups_DeleteFamilyGroup_Response { +} + +message CFamilyGroups_UndeleteFamilyGroup_Request { + optional uint64 family_groupid = 1; +} + +message CFamilyGroups_UndeleteFamilyGroup_Response { +} + +message CFamilyGroups_GetPlaytimeSummary_Request { + optional fixed64 family_groupid = 1; +} + +message CFamilyGroups_PlaytimeEntry { + optional fixed64 steamid = 1; + optional uint32 appid = 2; + optional uint32 first_played = 3; + optional uint32 latest_played = 4; + optional uint32 seconds_played = 5; +} + +message CFamilyGroups_GetPlaytimeSummary_Response { + repeated .CFamilyGroups_PlaytimeEntry entries = 1; + repeated .CFamilyGroups_PlaytimeEntry entries_by_owner = 2; +} + +message CFamilyGroups_RequestPurchase_Request { + optional uint64 family_groupid = 1; + optional uint64 gidshoppingcart = 2; + optional string store_country_code = 3; + optional bool use_account_cart = 4; +} + +message CFamilyGroups_RequestPurchase_Response { + optional uint64 gidshoppingcart = 1; + optional uint64 request_id = 2; +} + +message CFamilyGroups_GetPurchaseRequests_Request { + optional uint64 family_groupid = 1; + repeated uint64 request_ids = 3; + optional uint32 rt_include_completed_since = 4; +} + +message PurchaseRequest { + optional fixed64 requester_steamid = 1; + optional uint64 gidshoppingcart = 2; + optional uint32 time_requested = 3; + optional uint32 time_responded = 4; + optional fixed64 responder_steamid = 5; + optional .EPurchaseRequestAction response_action = 6 [default = k_EPurchaseRequestAction_None]; + optional bool is_completed = 7; + optional uint64 request_id = 8; + repeated uint32 requested_packageids = 9; + repeated uint32 purchased_packageids = 10; + repeated uint32 requested_bundleids = 11; + repeated uint32 purchased_bundleids = 12; +} + +message CFamilyGroups_GetPurchaseRequests_Response { + repeated .PurchaseRequest requests = 1; +} + +message CFamilyGroups_RespondToRequestedPurchase_Request { + optional uint64 family_groupid = 1; + optional .EPurchaseRequestAction action = 3 [default = k_EPurchaseRequestAction_None]; + optional uint64 request_id = 4; +} + +message CFamilyGroups_RespondToRequestedPurchase_Response { +} + +message CFamilyGroups_GetChangeLog_Request { + optional uint64 family_groupid = 1; +} + +message CFamilyGroups_GetChangeLog_Response { + message Change { + optional fixed64 timestamp = 1; + optional fixed64 actor_steamid = 2; + optional .EFamilyGroupChangeLogType type = 3 [default = k_InvalidChangeType]; + optional string body = 4; + optional bool by_support = 5; + } + + repeated .CFamilyGroups_GetChangeLog_Response.Change changes = 1; +} + +message CFamilyGroups_SetFamilyCooldownOverrides_Request { + optional uint64 family_groupid = 1; + optional uint32 cooldown_count = 2; +} + +message CFamilyGroups_SetFamilyCooldownOverrides_Response { +} + +message CFamilyGroups_GetSharedLibraryApps_Request { + optional fixed64 family_groupid = 1; + optional bool include_own = 2; + optional bool include_excluded = 3; + optional string language = 5; + optional uint32 max_apps = 6; + optional bool include_non_games = 7; + optional fixed64 steamid = 8; +} + +message CFamilyGroups_GetSharedLibraryApps_Response { + message SharedApp { + optional uint32 appid = 1; + repeated fixed64 owner_steamids = 2; + optional string name = 6; + optional string sort_as = 7; + optional string capsule_filename = 8; + optional string img_icon_hash = 9; + optional .ESharedLibraryExcludeReason exclude_reason = 10 [default = k_ESharedLibrary_Included]; + optional uint32 rt_time_acquired = 11; + optional uint32 rt_last_played = 12; + optional uint32 rt_playtime = 13; + optional .EProtoAppType app_type = 14 [default = k_EAppTypeGame]; + repeated uint32 content_descriptors = 15; + } + + repeated .CFamilyGroups_GetSharedLibraryApps_Response.SharedApp apps = 1; + optional fixed64 owner_steamid = 2; +} + +message CFamilyGroups_SetPreferredLender_Request { + optional uint64 family_groupid = 1; + optional uint32 appid = 2; + optional fixed64 lender_steamid = 3; +} + +message CFamilyGroups_SetPreferredLender_Response { +} + +message CFamilyGroups_GetPreferredLenders_Request { + optional uint64 family_groupid = 1; +} + +message CFamilyGroups_GetPreferredLenders_Response { + message FamilyMember { + optional fixed64 steamid = 1; + repeated uint32 preferred_appids = 2; + } + + repeated .CFamilyGroups_GetPreferredLenders_Response.FamilyMember members = 1; +} + +message CFamilyGroups_ForceAcceptInvite_Request { + optional uint64 family_groupid = 1; + optional fixed64 steamid = 2; +} + +message CFamilyGroups_ForceAcceptInvite_Response { +} + +message CFamilyGroups_GetInviteCheckResults_Request { + optional uint64 family_groupid = 1; + optional fixed64 steamid = 2; +} + +message CFamilyGroups_GetInviteCheckResults_Response { + optional bool wallet_country_matches = 1; + optional bool ip_match = 2; + optional uint32 join_restriction = 3; +} + +message CFamilyGroups_ClearCooldownSkip_Request { + optional fixed64 steamid = 1; + optional uint64 invite_id = 2; +} + +message CFamilyGroups_ClearCooldownSkip_Response { +} + +message CFamilyGroupsClient_NotifyRunningApps_Notification { + message PlayingMember { + optional fixed64 member_steamid = 1; + optional fixed64 owner_steamid = 2; + } + + message RunningApp { + optional uint32 appid = 1; + repeated .CFamilyGroupsClient_NotifyRunningApps_Notification.PlayingMember playing_members = 3; + } + + optional uint64 family_groupid = 1; + repeated .CFamilyGroupsClient_NotifyRunningApps_Notification.RunningApp running_apps = 2; +} + +message CFamilyGroupsClient_InviteStatus_Notification { +} + +message CFamilyGroupsClient_GroupChanged_Notification { + optional uint64 family_groupid = 1; +} + +service FamilyGroups { + rpc CreateFamilyGroup (.CFamilyGroups_CreateFamilyGroup_Request) returns (.CFamilyGroups_CreateFamilyGroup_Response); + rpc GetFamilyGroup (.CFamilyGroups_GetFamilyGroup_Request) returns (.CFamilyGroups_GetFamilyGroup_Response); + rpc GetFamilyGroupForUser (.CFamilyGroups_GetFamilyGroupForUser_Request) returns (.CFamilyGroups_GetFamilyGroupForUser_Response); + rpc ModifyFamilyGroupDetails (.CFamilyGroups_ModifyFamilyGroupDetails_Request) returns (.CFamilyGroups_ModifyFamilyGroupDetails_Response); + rpc InviteToFamilyGroup (.CFamilyGroups_InviteToFamilyGroup_Request) returns (.CFamilyGroups_InviteToFamilyGroup_Response); + rpc ConfirmInviteToFamilyGroup (.CFamilyGroups_ConfirmInviteToFamilyGroup_Request) returns (.CFamilyGroups_ConfirmInviteToFamilyGroup_Response); + rpc ResendInvitationToFamilyGroup (.CFamilyGroups_ResendInvitationToFamilyGroup_Request) returns (.CFamilyGroups_ResendInvitationToFamilyGroup_Response); + rpc JoinFamilyGroup (.CFamilyGroups_JoinFamilyGroup_Request) returns (.CFamilyGroups_JoinFamilyGroup_Response); + rpc ConfirmJoinFamilyGroup (.CFamilyGroups_ConfirmJoinFamilyGroup_Request) returns (.CFamilyGroups_ConfirmJoinFamilyGroup_Response); + rpc RemoveFromFamilyGroup (.CFamilyGroups_RemoveFromFamilyGroup_Request) returns (.CFamilyGroups_RemoveFromFamilyGroup_Response); + rpc CancelFamilyGroupInvite (.CFamilyGroups_CancelFamilyGroupInvite_Request) returns (.CFamilyGroups_CancelFamilyGroupInvite_Response); + rpc GetUsersSharingDevice (.CFamilyGroups_GetUsersSharingDevice_Request) returns (.CFamilyGroups_GetUsersSharingDevice_Response); + rpc DeleteFamilyGroup (.CFamilyGroups_DeleteFamilyGroup_Request) returns (.CFamilyGroups_DeleteFamilyGroup_Response); + rpc UndeleteFamilyGroup (.CFamilyGroups_UndeleteFamilyGroup_Request) returns (.CFamilyGroups_UndeleteFamilyGroup_Response); + rpc GetPlaytimeSummary (.CFamilyGroups_GetPlaytimeSummary_Request) returns (.CFamilyGroups_GetPlaytimeSummary_Response); + rpc RequestPurchase (.CFamilyGroups_RequestPurchase_Request) returns (.CFamilyGroups_RequestPurchase_Response); + rpc GetPurchaseRequests (.CFamilyGroups_GetPurchaseRequests_Request) returns (.CFamilyGroups_GetPurchaseRequests_Response); + rpc RespondToRequestedPurchase (.CFamilyGroups_RespondToRequestedPurchase_Request) returns (.CFamilyGroups_RespondToRequestedPurchase_Response); + rpc GetChangeLog (.CFamilyGroups_GetChangeLog_Request) returns (.CFamilyGroups_GetChangeLog_Response); + rpc SetFamilyCooldownOverrides (.CFamilyGroups_SetFamilyCooldownOverrides_Request) returns (.CFamilyGroups_SetFamilyCooldownOverrides_Response); + rpc GetSharedLibraryApps (.CFamilyGroups_GetSharedLibraryApps_Request) returns (.CFamilyGroups_GetSharedLibraryApps_Response); + rpc SetPreferredLender (.CFamilyGroups_SetPreferredLender_Request) returns (.CFamilyGroups_SetPreferredLender_Response); + rpc GetPreferredLenders (.CFamilyGroups_GetPreferredLenders_Request) returns (.CFamilyGroups_GetPreferredLenders_Response); + rpc ForceAcceptInvite (.CFamilyGroups_ForceAcceptInvite_Request) returns (.CFamilyGroups_ForceAcceptInvite_Response); + rpc GetInviteCheckResults (.CFamilyGroups_GetInviteCheckResults_Request) returns (.CFamilyGroups_GetInviteCheckResults_Response); + rpc ClearCooldownSkip (.CFamilyGroups_ClearCooldownSkip_Request) returns (.CFamilyGroups_ClearCooldownSkip_Response); +} + +service FamilyGroupsClient { + option (service_execution_site) = k_EProtoExecutionSiteSteamClient; + + rpc NotifyRunningApps (.CFamilyGroupsClient_NotifyRunningApps_Notification) returns (.NoResponse); + rpc NotifyInviteStatus (.CFamilyGroupsClient_InviteStatus_Notification) returns (.NoResponse); + rpc NotifyGroupChanged (.CFamilyGroupsClient_GroupChanged_Notification) returns (.NoResponse); +} diff --git a/Protobufs/steam/steammessages_friendmessages.steamclient.proto b/Protobufs/steam/steammessages_friendmessages.steamclient.proto new file mode 100644 index 0000000..aeafbe0 --- /dev/null +++ b/Protobufs/steam/steammessages_friendmessages.steamclient.proto @@ -0,0 +1,141 @@ +import "steammessages_base.proto"; +import "steammessages_unified_base.steamclient.proto"; + +option cc_generic_services = true; + +enum EMessageReactionType { + k_EMessageReactionType_Invalid = 0; + k_EMessageReactionType_Emoticon = 1; + k_EMessageReactionType_Sticker = 2; +} + +message CFriendMessages_GetRecentMessages_Request { + optional fixed64 steamid1 = 1; + optional fixed64 steamid2 = 2; + optional uint32 count = 3; + optional bool most_recent_conversation = 4; + optional fixed32 rtime32_start_time = 5; + optional bool bbcode_format = 6; + optional uint32 start_ordinal = 7; + optional uint32 time_last = 8; + optional uint32 ordinal_last = 9; +} + +message CFriendMessages_GetRecentMessages_Response { + message FriendMessage { + message MessageReaction { + optional .EMessageReactionType reaction_type = 1 [default = k_EMessageReactionType_Invalid]; + optional string reaction = 2; + repeated uint32 reactors = 3; + } + + optional uint32 accountid = 1; + optional uint32 timestamp = 2; + optional string message = 3; + optional uint32 ordinal = 4; + repeated .CFriendMessages_GetRecentMessages_Response.FriendMessage.MessageReaction reactions = 5; + } + + repeated .CFriendMessages_GetRecentMessages_Response.FriendMessage messages = 1; + optional bool more_available = 4; +} + +message CFriendsMessages_GetActiveMessageSessions_Request { + optional uint32 lastmessage_since = 1; + optional bool only_sessions_with_messages = 2; +} + +message CFriendsMessages_GetActiveMessageSessions_Response { + message FriendMessageSession { + optional uint32 accountid_friend = 1; + optional uint32 last_message = 2; + optional uint32 last_view = 3; + optional uint32 unread_message_count = 4; + } + + repeated .CFriendsMessages_GetActiveMessageSessions_Response.FriendMessageSession message_sessions = 1; + optional uint32 timestamp = 2; +} + +message CFriendMessages_SendMessage_Request { + optional fixed64 steamid = 1; + optional int32 chat_entry_type = 2; + optional string message = 3; + optional bool contains_bbcode = 4; + optional bool echo_to_sender = 5; + optional bool low_priority = 6; + optional string client_message_id = 8; +} + +message CFriendMessages_SendMessage_Response { + optional string modified_message = 1; + optional uint32 server_timestamp = 2; + optional uint32 ordinal = 3; + optional string message_without_bb_code = 4; +} + +message CFriendMessages_AckMessage_Notification { + optional fixed64 steamid_partner = 1; + optional uint32 timestamp = 2; +} + +message CFriendMessages_IsInFriendsUIBeta_Request { + optional fixed64 steamid = 1; +} + +message CFriendMessages_IsInFriendsUIBeta_Response { + optional bool online_in_friendsui = 1; + optional bool has_used_friendsui = 2; +} + +message CFriendMessages_UpdateMessageReaction_Request { + optional fixed64 steamid = 1; + optional uint32 server_timestamp = 2; + optional uint32 ordinal = 3; + optional .EMessageReactionType reaction_type = 4 [default = k_EMessageReactionType_Invalid]; + optional string reaction = 5; + optional bool is_add = 6; +} + +message CFriendMessages_UpdateMessageReaction_Response { + repeated uint32 reactors = 1; +} + +message CFriendMessages_IncomingMessage_Notification { + optional fixed64 steamid_friend = 1; + optional int32 chat_entry_type = 2; + optional bool from_limited_account = 3; + optional string message = 4; + optional fixed32 rtime32_server_timestamp = 5; + optional uint32 ordinal = 6; + optional bool local_echo = 7; + optional string message_no_bbcode = 8; + optional bool low_priority = 9; +} + +message CFriendMessages_MessageReaction_Notification { + optional fixed64 steamid_friend = 1; + optional uint32 server_timestamp = 2; + optional uint32 ordinal = 3; + optional fixed64 reactor = 4; + optional .EMessageReactionType reaction_type = 5 [default = k_EMessageReactionType_Invalid]; + optional string reaction = 6; + optional bool is_add = 7; +} + +service FriendMessages { + rpc GetRecentMessages (.CFriendMessages_GetRecentMessages_Request) returns (.CFriendMessages_GetRecentMessages_Response); + rpc GetActiveMessageSessions (.CFriendsMessages_GetActiveMessageSessions_Request) returns (.CFriendsMessages_GetActiveMessageSessions_Response); + rpc SendMessage (.CFriendMessages_SendMessage_Request) returns (.CFriendMessages_SendMessage_Response); + rpc AckMessage (.CFriendMessages_AckMessage_Notification) returns (.NoResponse); + rpc IsInFriendsUIBeta (.CFriendMessages_IsInFriendsUIBeta_Request) returns (.CFriendMessages_IsInFriendsUIBeta_Response); + rpc UpdateMessageReaction (.CFriendMessages_UpdateMessageReaction_Request) returns (.CFriendMessages_UpdateMessageReaction_Response); +} + +service FriendMessagesClient { + option (service_execution_site) = k_EProtoExecutionSiteSteamClient; + + rpc IncomingMessage (.CFriendMessages_IncomingMessage_Notification) returns (.NoResponse); + rpc NotifyAckMessageEcho (.CFriendMessages_AckMessage_Notification) returns (.NoResponse); + rpc MessageReaction (.CFriendMessages_MessageReaction_Notification) returns (.NoResponse); +} diff --git a/Protobufs/steam/steammessages_gamenetworking.steamclient.proto b/Protobufs/steam/steammessages_gamenetworking.steamclient.proto new file mode 100644 index 0000000..665d4fc --- /dev/null +++ b/Protobufs/steam/steammessages_gamenetworking.steamclient.proto @@ -0,0 +1,25 @@ +import "steammessages_base.proto"; +import "steammessages_unified_base.steamclient.proto"; + +option cc_generic_services = true; + +message CGameNetworking_AllocateFakeIP_Request { + optional uint32 app_id = 1; + optional uint32 num_fake_ports = 2; +} + +message CGameNetworking_AllocateFakeIP_Response { + optional fixed32 fake_ip = 1; + repeated uint32 fake_ports = 2; +} + +message CGameNetworking_ReleaseFakeIP_Notification { + optional uint32 app_id = 1; + optional fixed32 fake_ip = 2; + repeated uint32 fake_ports = 3; +} + +service GameNetworking { + rpc AllocateFakeIP (.CGameNetworking_AllocateFakeIP_Request) returns (.CGameNetworking_AllocateFakeIP_Response); + rpc NotifyReleaseFakeIP (.CGameNetworking_ReleaseFakeIP_Notification) returns (.NoResponse); +} diff --git a/Protobufs/steam/steammessages_gamenetworkingui.proto b/Protobufs/steam/steammessages_gamenetworkingui.proto new file mode 100644 index 0000000..e6b7029 --- /dev/null +++ b/Protobufs/steam/steammessages_gamenetworkingui.proto @@ -0,0 +1,61 @@ +import "steamnetworkingsockets_messages.proto"; +import "steamdatagram_messages_sdr.proto"; + +option optimize_for = SPEED; +option cc_generic_services = true; + +message CGameNetworkingUI_GlobalState { +} + +message CGameNetworkingUI_ConnectionState { + optional string connection_key = 1; + optional uint32 appid = 2; + optional fixed32 connection_id_local = 3; + optional string identity_local = 4; + optional string identity_remote = 5; + optional uint32 connection_state = 10; + optional uint32 start_time = 12; + optional uint32 close_time = 13; + optional uint32 close_reason = 14; + optional string close_message = 15; + optional string status_loc_token = 16; + optional uint32 transport_kind = 20; + optional string sdrpopid_local = 21; + optional string sdrpopid_remote = 22; + optional string address_remote = 23; + optional .CMsgSteamDatagramP2PRoutingSummary p2p_routing = 24; + optional uint32 ping_interior = 25; + optional uint32 ping_remote_front = 26; + optional uint32 ping_default_internet_route = 27; + optional .CMsgSteamDatagramConnectionQuality e2e_quality_local = 30; + optional .CMsgSteamDatagramConnectionQuality e2e_quality_remote = 31; + optional uint64 e2e_quality_remote_instantaneous_time = 32; + optional uint64 e2e_quality_remote_lifetime_time = 33; + optional .CMsgSteamDatagramConnectionQuality front_quality_local = 40; + optional .CMsgSteamDatagramConnectionQuality front_quality_remote = 41; + optional uint64 front_quality_remote_instantaneous_time = 42; + optional uint64 front_quality_remote_lifetime_time = 43; +} + +message CGameNetworkingUI_Message { + repeated .CGameNetworkingUI_ConnectionState connection_state = 1; +} + +message CGameNetworkingUI_ConnectionSummary { + optional uint32 transport_kind = 1; + optional uint32 connection_state = 8; + optional string sdrpop_local = 2; + optional string sdrpop_remote = 3; + optional uint32 ping_ms = 4; + optional float packet_loss = 5; + optional uint32 ping_default_internet_route = 6; + optional bool ip_was_shared = 7; +} + +message CGameNetworkingUI_AppSummary { + optional uint32 appid = 1; + optional bool ip_was_shared_with_friend = 10; + optional bool ip_was_shared_with_nonfriend = 11; + optional uint32 active_connections = 20; + optional .CGameNetworkingUI_ConnectionSummary main_cxn = 30; +} diff --git a/Protobufs/steam/steammessages_gamenotifications.steamclient.proto b/Protobufs/steam/steammessages_gamenotifications.steamclient.proto new file mode 100644 index 0000000..164f48d --- /dev/null +++ b/Protobufs/steam/steammessages_gamenotifications.steamclient.proto @@ -0,0 +1,131 @@ +import "steammessages_base.proto"; +import "steammessages_unified_base.steamclient.proto"; + +option cc_generic_services = true; + +message CGameNotifications_Variable { + optional string key = 1; + optional string value = 2; +} + +message CGameNotifications_LocalizedText { + optional string token = 1; + repeated .CGameNotifications_Variable variables = 2; + optional string rendered_text = 3; +} + +message CGameNotifications_UserStatus { + optional fixed64 steamid = 1; + optional string state = 2; + optional .CGameNotifications_LocalizedText title = 3; + optional .CGameNotifications_LocalizedText message = 4; +} + +message CGameNotifications_CreateSession_Request { + optional uint32 appid = 1; + optional uint64 context = 2; + optional .CGameNotifications_LocalizedText title = 3; + repeated .CGameNotifications_UserStatus users = 4; + optional fixed64 steamid = 5; +} + +message CGameNotifications_CreateSession_Response { + optional uint64 sessionid = 1; +} + +message CGameNotifications_DeleteSession_Request { + optional uint64 sessionid = 1; + optional uint32 appid = 2; + optional fixed64 steamid = 3; +} + +message CGameNotifications_DeleteSession_Response { +} + +message CGameNotifications_UpdateSession_Request { + optional uint64 sessionid = 1; + optional uint32 appid = 2; + optional .CGameNotifications_LocalizedText title = 3; + repeated .CGameNotifications_UserStatus users = 4; + optional fixed64 steamid = 6; +} + +message CGameNotifications_UpdateSession_Response { +} + +message CGameNotifications_EnumerateSessions_Request { + optional uint32 appid = 1; + optional bool include_all_user_messages = 3; + optional bool include_auth_user_message = 4; + optional string language = 5; +} + +message CGameNotifications_Session { + optional uint64 sessionid = 1; + optional uint64 appid = 2; + optional uint64 context = 3; + optional .CGameNotifications_LocalizedText title = 4; + optional uint32 time_created = 5; + optional uint32 time_updated = 6; + repeated .CGameNotifications_UserStatus user_status = 7; +} + +message CGameNotifications_EnumerateSessions_Response { + repeated .CGameNotifications_Session sessions = 1; +} + +message CGameNotifications_GetSessionDetails_Request { + message RequestedSession { + optional uint64 sessionid = 1; + optional bool include_auth_user_message = 3; + } + + repeated .CGameNotifications_GetSessionDetails_Request.RequestedSession sessions = 1; + optional uint32 appid = 2; + optional string language = 3; +} + +message CGameNotifications_GetSessionDetails_Response { + repeated .CGameNotifications_Session sessions = 1; +} + +message GameNotificationSettings { + optional uint32 appid = 1; + optional bool allow_notifications = 2; +} + +message CGameNotifications_UpdateNotificationSettings_Request { + repeated .GameNotificationSettings game_notification_settings = 1; +} + +message CGameNotifications_UpdateNotificationSettings_Response { +} + +message CGameNotifications_OnNotificationsRequested_Notification { + optional fixed64 steamid = 1; + optional uint32 appid = 2; +} + +message CGameNotifications_OnUserStatusChanged_Notification { + optional fixed64 steamid = 1; + optional uint64 sessionid = 2; + optional uint32 appid = 3; + optional .CGameNotifications_UserStatus status = 4; + optional bool removed = 5; +} + +service GameNotifications { + rpc UserCreateSession (.CGameNotifications_CreateSession_Request) returns (.CGameNotifications_CreateSession_Response); + rpc UserDeleteSession (.CGameNotifications_DeleteSession_Request) returns (.CGameNotifications_DeleteSession_Response); + rpc UserUpdateSession (.CGameNotifications_UpdateSession_Request) returns (.CGameNotifications_UpdateSession_Response); + rpc EnumerateSessions (.CGameNotifications_EnumerateSessions_Request) returns (.CGameNotifications_EnumerateSessions_Response); + rpc GetSessionDetails (.CGameNotifications_GetSessionDetails_Request) returns (.CGameNotifications_GetSessionDetails_Response); + rpc UpdateNotificationSettings (.CGameNotifications_UpdateNotificationSettings_Request) returns (.CGameNotifications_UpdateNotificationSettings_Response); +} + +service GameNotificationsClient { + option (service_execution_site) = k_EProtoExecutionSiteSteamClient; + + rpc OnNotificationsRequested (.CGameNotifications_OnNotificationsRequested_Notification) returns (.NoResponse); + rpc OnUserStatusChanged (.CGameNotifications_OnUserStatusChanged_Notification) returns (.NoResponse); +} diff --git a/Protobufs/steam/steammessages_gamerecording.steamclient.proto b/Protobufs/steam/steammessages_gamerecording.steamclient.proto new file mode 100644 index 0000000..cde0b5c --- /dev/null +++ b/Protobufs/steam/steammessages_gamerecording.steamclient.proto @@ -0,0 +1,102 @@ +import "steammessages_base.proto"; +import "steammessages_unified_base.steamclient.proto"; +import "steammessages_clientserver_video.proto"; + +option cc_generic_services = true; + +message CVideoManagerClipID { + optional fixed64 video_manager_clip_id = 1; + optional fixed64 video_manager_video_id = 2; + optional fixed64 server_timeline_id = 3; + optional string manifest_url = 4; + optional uint32 duration_ms = 5; + optional uint32 start_offset_ms = 6; +} + +message CGameRecordingClip { + optional fixed64 clip_id = 1; + optional uint64 gameid = 2; + optional uint32 date_recorded = 4; + optional uint64 total_file_size_bytes = 7; + repeated .CVideoManagerClipID video_ids = 9; + optional fixed64 owner_steamid = 10; + optional bool upload_complete = 11; + optional uint32 duration_ms = 12; +} + +message CGameRecording_CreateShareClip_Request { + optional .CGameRecordingClip clip = 2; + repeated .CMsgVideoGameRecordingDef video_def = 3; +} + +message CGameRecording_CreateShareClip_Response { + optional .CGameRecordingClip clip = 1; +} + +message CGameRecording_DeleteSharedClip_Request { + optional fixed64 clip_id = 2; +} + +message CGameRecording_DeleteSharedClip_Response { +} + +message CGameRecording_GetSingleSharedClip_Request { + optional fixed64 clip_id = 2; +} + +message CGameRecording_GetSingleSharedClip_Response { + optional .CGameRecordingClip clip = 1; +} + +message CVideo_BeginGameRecordingSegmentsUpload_Request { + optional uint64 recording_id = 1; + optional string component_name = 2; + optional string representation_name = 3; + repeated .CVideo_GameRecordingSegmentInfo segments_to_store = 4; +} + +message CVideo_BeginGameRecordingSegmentsUpload_Response { + repeated .CVideo_GameRecordingSegmentUploadInfo segments_needed = 1; + optional bool call_again = 2; +} + +message CVideo_CommitGameRecordingSegmentsUpload_Request { + optional uint64 recording_id = 1; + optional string component_name = 2; + optional string representation_name = 3; + optional uint32 first_segment_number = 4; + optional uint32 num_segments = 5; + optional uint32 upload_result = 6; +} + +message CVideo_CommitGameRecordingSegmentsUpload_Response { +} + +message CVideo_GameRecordingGetNextBatchOfSegmentsToUpload_Request { + optional uint64 recording_id = 1; +} + +message CVideo_GameRecordingGetNextBatchOfSegmentsToUpload_Response { + repeated .CVideo_GameRecordingSegmentUploadInfo segments_needed = 1; +} + +message CVideo_GameRecordingCommitSegmentUploads_Request { + optional uint64 recording_id = 1; + repeated .CVideo_GameRecordingSegmentInfo segments_uploaded = 2; +} + +message CVideo_GameRecordingCommitSegmentUploads_Response { +} + +service GameRecordingClip { + rpc CreateShareClip (.CGameRecording_CreateShareClip_Request) returns (.CGameRecording_CreateShareClip_Response); + rpc DeleteSharedClip (.CGameRecording_DeleteSharedClip_Request) returns (.CGameRecording_DeleteSharedClip_Response); + rpc GetSingleSharedClip (.CGameRecording_GetSingleSharedClip_Request) returns (.CGameRecording_GetSingleSharedClip_Response); +} + +service VideoClip { + rpc BeginGameRecordingSegmentsUpload (.CVideo_BeginGameRecordingSegmentsUpload_Request) returns (.CVideo_BeginGameRecordingSegmentsUpload_Response); + rpc CommitGameRecordingSegmentsUpload (.CVideo_CommitGameRecordingSegmentsUpload_Request) returns (.CVideo_CommitGameRecordingSegmentsUpload_Response); + rpc GetNextBatchOfSegmentsToUpload (.CVideo_GameRecordingGetNextBatchOfSegmentsToUpload_Request) returns (.CVideo_GameRecordingGetNextBatchOfSegmentsToUpload_Response); + rpc CommitSegmentUploads (.CVideo_GameRecordingCommitSegmentUploads_Request) returns (.CVideo_GameRecordingCommitSegmentUploads_Response); +} diff --git a/Protobufs/steam/steammessages_gamerecording_objects.proto b/Protobufs/steam/steammessages_gamerecording_objects.proto new file mode 100644 index 0000000..f0b89ea --- /dev/null +++ b/Protobufs/steam/steammessages_gamerecording_objects.proto @@ -0,0 +1,21 @@ +import "enums.proto"; + +option optimize_for = SPEED; +option cc_generic_services = false; + +message CGameRecording_AudioSessionsChanged_Notification { + message Session { + optional string id = 1; + optional string name = 2; + optional bool is_system = 3; + optional bool is_muted = 4; + optional bool is_active = 5; + optional bool is_captured = 6; + optional float recent_peak = 7; + optional bool is_game = 8; + optional bool is_steam = 9; + optional bool is_saved = 10; + } + + repeated .CGameRecording_AudioSessionsChanged_Notification.Session sessions = 1; +} diff --git a/Protobufs/steam/steammessages_gameservers.steamclient.proto b/Protobufs/steam/steammessages_gameservers.steamclient.proto new file mode 100644 index 0000000..6893c38 --- /dev/null +++ b/Protobufs/steam/steammessages_gameservers.steamclient.proto @@ -0,0 +1,136 @@ +import "steammessages_base.proto"; +import "steammessages_unified_base.steamclient.proto"; + +option cc_generic_services = true; + +message CGameServers_GetServerList_Request { + optional string filter = 1; + optional uint32 limit = 2 [default = 100]; +} + +message CGameServers_GetServerList_Response { + message Server { + optional string addr = 1; + optional uint32 gameport = 2; + optional uint32 specport = 3; + optional fixed64 steamid = 4; + optional string name = 5; + optional uint32 appid = 6; + optional string gamedir = 7; + optional string version = 8; + optional string product = 9; + optional int32 region = 10; + optional int32 players = 11; + optional int32 max_players = 12; + optional int32 bots = 13; + optional string map = 14; + optional bool secure = 15; + optional bool dedicated = 16; + optional string os = 17; + optional string gametype = 18; + } + + repeated .CGameServers_GetServerList_Response.Server servers = 1; +} + +message CGameServers_GetServerSteamIDsByIP_Request { + repeated string server_ips = 1; +} + +message CGameServers_IPsWithSteamIDs_Response { + message Server { + optional string addr = 1; + optional fixed64 steamid = 2; + } + + repeated .CGameServers_IPsWithSteamIDs_Response.Server servers = 1; +} + +message CGameServers_GetServerIPsBySteamID_Request { + repeated fixed64 server_steamids = 1; +} + +message CGameServers_QueryByFakeIP_Request { + enum EQueryType { + Query_Invalid = 0; + Query_Ping = 1; + Query_Players = 2; + Query_Rules = 3; + } + + optional uint32 fake_ip = 1; + optional uint32 fake_port = 2; + optional uint32 app_id = 3; + optional .CGameServers_QueryByFakeIP_Request.EQueryType query_type = 4 [default = Query_Invalid]; +} + +message CMsgGameServerPingQueryData { + optional .CMsgIPAddress server_ip = 1; + optional uint32 query_port = 2; + optional uint32 game_port = 3; + optional uint32 spectator_port = 4; + optional string spectator_server_name = 5; + optional string server_name = 6; + optional fixed64 steamid = 7; + optional uint32 app_id = 8; + optional string gamedir = 9; + optional string map = 10; + optional string game_description = 11; + optional string gametype = 12; + optional uint32 num_players = 13; + optional uint32 max_players = 14; + optional uint32 num_bots = 15; + optional bool password = 16; + optional bool secure = 17; + optional bool dedicated = 18; + optional string version = 19; + optional fixed32 sdr_popid = 20; + optional string sdr_location_string = 21; +} + +message CMsgGameServerPlayersQueryData { + message Player { + optional string name = 1; + optional uint32 score = 2; + optional uint32 time_played = 3; + } + + repeated .CMsgGameServerPlayersQueryData.Player players = 1; +} + +message CMsgGameServerRulesQueryData { + message Rule { + optional string rule = 1; + optional string value = 2; + } + + repeated .CMsgGameServerRulesQueryData.Rule rules = 1; +} + +message CGameServers_GameServerQuery_Response { + optional .CMsgGameServerPingQueryData ping_data = 1; + optional .CMsgGameServerPlayersQueryData players_data = 2; + optional .CMsgGameServerRulesQueryData rules_data = 3; +} + +message GameServerClient_QueryServerData_Request { +} + +message GameServerClient_QueryServerData_Response { + optional .CMsgGameServerPingQueryData ping_data = 1; + optional .CMsgGameServerPlayersQueryData players_data = 2; + optional .CMsgGameServerRulesQueryData rules_data = 3; +} + +service GameServers { + rpc GetServerList (.CGameServers_GetServerList_Request) returns (.CGameServers_GetServerList_Response); + rpc GetServerSteamIDsByIP (.CGameServers_GetServerSteamIDsByIP_Request) returns (.CGameServers_IPsWithSteamIDs_Response); + rpc GetServerIPsBySteamID (.CGameServers_GetServerIPsBySteamID_Request) returns (.CGameServers_IPsWithSteamIDs_Response); + rpc QueryByFakeIP (.CGameServers_QueryByFakeIP_Request) returns (.CGameServers_GameServerQuery_Response); +} + +service GameServerClient { + option (service_execution_site) = k_EProtoExecutionSiteSteamClient; + + rpc QueryServerData (.GameServerClient_QueryServerData_Request) returns (.GameServerClient_QueryServerData_Response); +} diff --git a/Protobufs/steam/steammessages_hiddevices.proto b/Protobufs/steam/steammessages_hiddevices.proto new file mode 100644 index 0000000..33bbce8 --- /dev/null +++ b/Protobufs/steam/steammessages_hiddevices.proto @@ -0,0 +1,157 @@ +option optimize_for = SPEED; +option cc_generic_services = false; + +enum EHIDDeviceLocation { + k_EDeviceLocationLocal = 0; + k_EDeviceLocationRemote = 2; + k_EDeviceLocationAny = 3; +} + +enum EHIDDeviceDisconnectMethod { + k_EDeviceDisconnectMethodUnknown = 0; + k_EDeviceDisconnectMethodBluetooth = 1; + k_EDeviceDisconnectMethodFeatureReport = 2; + k_EDeviceDisconnectMethodOutputReport = 3; +} + +message CHIDDeviceInfo { + optional .EHIDDeviceLocation location = 1 [default = k_EDeviceLocationLocal]; + optional string path = 2; + optional uint32 vendor_id = 3; + optional uint32 product_id = 4; + optional string serial_number = 5; + optional uint32 release_number = 6; + optional string manufacturer_string = 7; + optional string product_string = 8; + optional uint32 usage_page = 9; + optional uint32 usage = 10; + optional int32 interface_number = 11 [default = -1]; + optional int32 ostype = 12 [default = -1]; + optional bool is_generic_gamepad = 13; + optional bool is_generic_joystick = 14; + optional uint32 caps_bits = 15; + optional uint32 session_id = 16; + optional uint32 eControllerType_OBSOLETE = 17 [default = 0]; + optional bool is_xinput_device_OBSOLETE = 18 [default = false]; + optional uint32 session_remote_play_together_appid = 19; + optional bool is_steamvr_device = 20 [default = false]; +} + +message CHIDDeviceInputReport { + optional bytes full_report = 1; + optional bytes delta_report = 2; + optional uint32 delta_report_size = 3; + optional uint32 delta_report_crc = 4; +} + +message CHIDMessageToRemote { + message DeviceOpen { + optional .CHIDDeviceInfo info = 1; + } + + message DeviceClose { + optional uint32 device = 1; + } + + message DeviceWrite { + optional uint32 device = 1; + optional bytes data = 2; + } + + message DeviceRead { + optional uint32 device = 1; + optional uint32 length = 2; + optional int32 timeout_ms = 3; + } + + message DeviceSendFeatureReport { + optional uint32 device = 1; + optional bytes data = 2; + } + + message DeviceGetFeatureReport { + optional uint32 device = 1; + optional bytes report_number = 2; + optional uint32 length = 3; + } + + message DeviceGetVendorString { + optional uint32 device = 1; + } + + message DeviceGetProductString { + optional uint32 device = 1; + } + + message DeviceGetSerialNumberString { + optional uint32 device = 1; + } + + message DeviceStartInputReports { + optional uint32 device = 1; + optional uint32 length = 2; + } + + message DeviceRequestFullReport { + optional uint32 device = 1; + } + + message DeviceDisconnect { + optional uint32 device = 1; + optional .EHIDDeviceDisconnectMethod disconnectMethod = 2 [default = k_EDeviceDisconnectMethodUnknown]; + optional bytes data = 3; + } + + optional uint32 request_id = 1; + + oneof command { + .CHIDMessageToRemote.DeviceOpen device_open = 2; + .CHIDMessageToRemote.DeviceClose device_close = 3; + .CHIDMessageToRemote.DeviceWrite device_write = 4; + .CHIDMessageToRemote.DeviceRead device_read = 5; + .CHIDMessageToRemote.DeviceSendFeatureReport device_send_feature_report = 6; + .CHIDMessageToRemote.DeviceGetFeatureReport device_get_feature_report = 7; + .CHIDMessageToRemote.DeviceGetVendorString device_get_vendor_string = 8; + .CHIDMessageToRemote.DeviceGetProductString device_get_product_string = 9; + .CHIDMessageToRemote.DeviceGetSerialNumberString device_get_serial_number_string = 10; + .CHIDMessageToRemote.DeviceStartInputReports device_start_input_reports = 11; + .CHIDMessageToRemote.DeviceRequestFullReport device_request_full_report = 12; + .CHIDMessageToRemote.DeviceDisconnect device_disconnect = 13; + } +} + +message CHIDMessageFromRemote { + message UpdateDeviceList { + repeated .CHIDDeviceInfo devices = 1; + } + + message RequestResponse { + optional uint32 request_id = 1; + optional int32 result = 2; + optional bytes data = 3; + } + + message DeviceInputReports { + message DeviceInputReport { + optional uint32 device = 1; + repeated .CHIDDeviceInputReport reports = 2; + } + + repeated .CHIDMessageFromRemote.DeviceInputReports.DeviceInputReport device_reports = 1; + } + + message CloseDevice { + optional uint32 device = 1; + } + + message CloseAllDevices { + } + + oneof command { + .CHIDMessageFromRemote.UpdateDeviceList update_device_list = 1; + .CHIDMessageFromRemote.RequestResponse response = 2; + .CHIDMessageFromRemote.DeviceInputReports reports = 3; + .CHIDMessageFromRemote.CloseDevice close_device = 4; + .CHIDMessageFromRemote.CloseAllDevices close_all_devices = 5; + } +} diff --git a/Protobufs/steam/steammessages_inventory.steamclient.proto b/Protobufs/steam/steammessages_inventory.steamclient.proto new file mode 100644 index 0000000..cf23eb7 --- /dev/null +++ b/Protobufs/steam/steammessages_inventory.steamclient.proto @@ -0,0 +1,173 @@ +import "steammessages_base.proto"; +import "steammessages_unified_base.steamclient.proto"; + +option cc_generic_services = true; + +message CInventory_GetInventory_Request { + optional uint32 appid = 1; + optional uint64 steamid = 2; +} + +message CInventory_Response { + optional string etag = 1; + repeated uint64 removeditemids = 2; + optional string item_json = 3; + optional string itemdef_json = 4; + optional bytes ticket = 5; + optional bool replayed = 6; +} + +message CInventory_ExchangeItem_Request { + optional uint32 appid = 1; + optional uint64 steamid = 2; + repeated uint64 materialsitemid = 3; + repeated uint32 materialsquantity = 4; + optional uint64 outputitemdefid = 5; +} + +message CInventory_GetEligiblePromoItemDefIDs_Request { + optional uint32 appid = 1; + optional uint64 steamid = 2; +} + +message CInventory_GetEligiblePromoItemDefIDs_Response { + repeated uint64 itemdefids = 1; +} + +message CInventory_AddItem_Request { + optional uint32 appid = 1; + repeated uint64 itemdefid = 2; + repeated string itempropsjson = 3; + repeated uint32 itemquantity = 9; + optional uint64 steamid = 4; + optional bool notify = 5; + optional uint64 requestid = 6; + optional bool trade_restriction = 7; + optional bool is_purchase = 8 [default = false]; +} + +message CInventory_ModifyItems_Request { + message ItemPropertyUpdate { + optional uint64 itemid = 1; + optional bool remove_property = 2; + optional string property_name = 3; + optional bool property_value_bool = 4; + optional int64 property_value_int = 5; + optional string property_value_string = 6; + optional float property_value_float = 7; + } + + optional uint32 appid = 1; + optional uint64 steamid = 2; + repeated .CInventory_ModifyItems_Request.ItemPropertyUpdate updates = 3; + optional uint32 timestamp = 4; +} + +message CInventory_ConsumePlaytime_Request { + optional uint32 appid = 1; + optional uint64 itemdefid = 2; +} + +message CInventory_ConsumeItem_Request { + optional uint32 appid = 1; + optional uint64 itemid = 2; + optional uint32 quantity = 3; + optional string timestamp = 4; + optional uint64 steamid = 5; + optional uint64 requestid = 6; +} + +message CInventory_DevSetNextDrop_Request { + optional uint32 appid = 1; + optional uint64 itemdefid = 2; + optional string droptime = 3; +} + +message CInventory_SplitItemStack_Request { + optional uint32 appid = 1; + optional uint64 itemid = 2; + optional uint32 quantity = 3; + optional uint64 steamid = 5; +} + +message CInventory_CombineItemStacks_Request { + optional uint32 appid = 1; + optional uint64 fromitemid = 2; + optional uint64 destitemid = 3; + optional uint32 quantity = 4; + optional fixed64 steamid = 7; +} + +message CInventory_GetItemDefMeta_Request { + optional uint32 appid = 1; +} + +message CInventory_GetItemDefMeta_Response { + optional uint32 modified = 1; + optional string digest = 2; +} + +message CInventory_GetUserPurchaseInfo_Request { +} + +message CInventory_GetUserPurchaseInfo_Response { + optional int32 ecurrency = 1; +} + +message CInventory_PurchaseInit_Request { + message LineItem { + optional uint64 itemdefid = 1; + optional uint32 quantity = 2; + } + + optional uint32 appid = 1; + optional int32 language = 2; + repeated .CInventory_PurchaseInit_Request.LineItem line_items = 3; +} + +message CInventory_PurchaseInit_Response { + optional uint64 orderid = 1; + optional uint64 transid = 2; +} + +message CInventory_PurchaseFinalize_Request { + optional uint32 appid = 1; + optional int32 language = 2; + optional uint64 orderid = 3; +} + +message CInventory_InspectItem_Request { + optional uint64 itemdefid = 1; + optional fixed64 itemid = 2; + optional string tags = 3; +} + +message CInventoryClient_NewItems_Notification { + optional uint32 appid = 1; + optional .CInventory_Response inventory_response = 2; +} + +service Inventory { + rpc GetInventory (.CInventory_GetInventory_Request) returns (.CInventory_Response); + rpc ExchangeItem (.CInventory_ExchangeItem_Request) returns (.CInventory_Response); + rpc GetEligiblePromoItemDefIDs (.CInventory_GetEligiblePromoItemDefIDs_Request) returns (.CInventory_GetEligiblePromoItemDefIDs_Response); + rpc AddPromoItem (.CInventory_AddItem_Request) returns (.CInventory_Response); + rpc SafeModifyItems (.CInventory_ModifyItems_Request) returns (.CInventory_Response); + rpc ConsumePlaytime (.CInventory_ConsumePlaytime_Request) returns (.CInventory_Response); + rpc ConsumeItem (.CInventory_ConsumeItem_Request) returns (.CInventory_Response); + rpc DevGenerateItem (.CInventory_AddItem_Request) returns (.CInventory_Response); + rpc DevSetNextDrop (.CInventory_DevSetNextDrop_Request) returns (.CInventory_Response); + rpc SplitItemStack (.CInventory_SplitItemStack_Request) returns (.CInventory_Response); + rpc CombineItemStacks (.CInventory_CombineItemStacks_Request) returns (.CInventory_Response); + rpc GetItemDefMeta (.CInventory_GetItemDefMeta_Request) returns (.CInventory_GetItemDefMeta_Response); + rpc GetUserPurchaseInfo (.CInventory_GetUserPurchaseInfo_Request) returns (.CInventory_GetUserPurchaseInfo_Response); + rpc PurchaseInit (.CInventory_PurchaseInit_Request) returns (.CInventory_PurchaseInit_Response); + rpc PurchaseFinalize (.CInventory_PurchaseFinalize_Request) returns (.CInventory_Response); + rpc InspectItem (.CInventory_InspectItem_Request) returns (.CInventory_Response); +} + +service InventoryClient { + option (service_execution_site) = k_EProtoExecutionSiteSteamClient; + + rpc NotifyNewItems (.CInventoryClient_NewItems_Notification) returns (.NoResponse); +} diff --git a/Protobufs/steam/steammessages_linkfilter.steamclient.proto b/Protobufs/steam/steammessages_linkfilter.steamclient.proto new file mode 100644 index 0000000..1c1f017 --- /dev/null +++ b/Protobufs/steam/steammessages_linkfilter.steamclient.proto @@ -0,0 +1,39 @@ +import "steammessages_base.proto"; +import "steammessages_unified_base.steamclient.proto"; + +option cc_generic_services = true; + +message CCommunity_GetLinkFilterHashPrefixes_Request { + optional uint32 hit_type = 1; + optional uint32 count = 2; + optional uint64 start = 3; +} + +message CCommunity_GetLinkFilterHashPrefixes_Response { + repeated uint32 hash_prefixes = 1; +} + +message CCommunity_GetLinkFilterHashes_Request { + optional uint32 hit_type = 1; + optional uint32 count = 2; + optional uint64 start = 3; +} + +message CCommunity_GetLinkFilterHashes_Response { + repeated bytes hashes = 1; +} + +message CCommunity_GetLinkFilterListVersion_Request { + optional uint32 hit_type = 1; +} + +message CCommunity_GetLinkFilterListVersion_Response { + optional string version = 1; + optional uint64 count = 2; +} + +service CommunityLinkFilter { + rpc GetLinkFilterHashPrefixes (.CCommunity_GetLinkFilterHashPrefixes_Request) returns (.CCommunity_GetLinkFilterHashPrefixes_Response); + rpc GetLinkFilterHashes (.CCommunity_GetLinkFilterHashes_Request) returns (.CCommunity_GetLinkFilterHashes_Response); + rpc GetLinkFilterListVersion (.CCommunity_GetLinkFilterListVersion_Request) returns (.CCommunity_GetLinkFilterListVersion_Response); +} diff --git a/Protobufs/steam/steammessages_lobbymatchmaking.steamclient.proto b/Protobufs/steam/steammessages_lobbymatchmaking.steamclient.proto new file mode 100644 index 0000000..03da509 --- /dev/null +++ b/Protobufs/steam/steammessages_lobbymatchmaking.steamclient.proto @@ -0,0 +1,29 @@ +import "steammessages_base.proto"; +import "steammessages_unified_base.steamclient.proto"; + +option cc_generic_services = true; + +enum ELobbyStatus { + k_ELobbyStatusInvalid = 0; + k_ELobbyStatusExists = 1; + k_ELobbyStatusDoesNotExist = 2; + k_ELobbyStatusNotAMember = 3; +} + +message LobbyMatchmakingLegacy_GetLobbyStatus_Request { + optional uint32 app_id = 1; + optional fixed64 steamid_lobby = 2; + optional bool claim_ownership = 3; + optional bool claim_membership = 4; + optional uint32 version_num = 5; +} + +message LobbyMatchmakingLegacy_GetLobbyStatus_Response { + optional uint32 app_id = 1; + optional fixed64 steamid_lobby = 2; + optional .ELobbyStatus lobby_status = 3 [default = k_ELobbyStatusInvalid]; +} + +service LobbyMatchmakingLegacy { + rpc GetLobbyStatus (.LobbyMatchmakingLegacy_GetLobbyStatus_Request) returns (.LobbyMatchmakingLegacy_GetLobbyStatus_Response); +} diff --git a/Protobufs/steam/steammessages_market.steamclient.proto b/Protobufs/steam/steammessages_market.steamclient.proto new file mode 100644 index 0000000..faf1e00 --- /dev/null +++ b/Protobufs/steam/steammessages_market.steamclient.proto @@ -0,0 +1,22 @@ +import "steammessages_base.proto"; +import "steammessages_unified_base.steamclient.proto"; + +option cc_generic_services = true; + +message CEconMarket_IsMarketplaceAllowed_Request { + optional string webcookie = 1; +} + +message CEconMarket_IsMarketplaceAllowed_Response { + optional bool allowed = 1; + optional uint32 reason = 2; + optional uint32 allowed_at_time = 3; + optional uint32 steamguard_required_days = 4; + optional bool forms_requested = 7; + optional bool forms_require_verification = 8; + optional uint32 new_device_cooldown_days = 9; +} + +service EconMarket { + rpc IsMarketplaceAllowed (.CEconMarket_IsMarketplaceAllowed_Request) returns (.CEconMarket_IsMarketplaceAllowed_Response); +} diff --git a/Protobufs/steam/steammessages_marketingmessages.steamclient.proto b/Protobufs/steam/steammessages_marketingmessages.steamclient.proto new file mode 100644 index 0000000..e4d7e6e --- /dev/null +++ b/Protobufs/steam/steammessages_marketingmessages.steamclient.proto @@ -0,0 +1,283 @@ +import "steammessages_base.proto"; +import "steammessages_unified_base.steamclient.proto"; +import "steammessages_storebrowse.steamclient.proto"; + +option cc_generic_services = true; + +enum EMarketingMessageType { + k_EMarketingMessageInvalid = 0; + k_EMarketingMessageNowAvailable = 1; + k_EMarketingMessageWeekendDeal = 2; + k_EMarketingMessagePrePurchase = 3; + k_EMarketingMessagePlayNow = 4; + k_EMarketingMessagePreloadNow = 5; + k_EMarketingMessageGeneral = 6; + k_EMarketingMessageDemoQuit = 7; + k_EMarketingMessageGifting = 8; + k_EMarketingMessageEJsKorner = 9; + k_EMarketingMessageUpdate = 10; + k_EMarketingMessageMidweekDeal = 11; + k_EMarketingMessageDailyDeal = 12; + k_EMarketingMessageNewDLC = 13; +} + +enum EMarketingMessageVisibility { + k_EMarketingMessageVisibleBeta = 1; + k_EMarketingMessageVisiblePublic = 2; + k_EMarketingMessageVisibleApprovedForPublish = 3; +} + +enum EMarketingMessageAssociationType { + k_EMarketingMessageNoAssociation = 0; + k_EMarketingMessageAppAssociation = 1; + k_EMarketingMessageSubscriptionAssociation = 2; + k_EMarketingMessagePublisherAssociation = 3; + k_EMarketingMessageGenreAssociation = 4; + k_EMarketingMessageBundleAssociation = 5; +} + +enum EMarketingMessageTemplateType { + k_EMarketingMessageTemplate_Unknown = 0; + k_EMarketingMessageTemplate_Image = 1; + k_EMarketingMessageTemplate_Animated = 2; + k_EMarketingMessageTemplate_Featured_Video = 3; + k_EMarketingMessageTemplate_DLC_Override = 4; + k_EMarketingMessageTemplate_Replay = 5; + k_EMarketingMessageTemplate_MAX = 6; +} + +enum EMarketingMessageLookupType { + k_EMarketingMessageLookupInvalid = 0; + k_EMarketingMessageLookupByGID = 1; + k_EMarketingMessageLookupActive = 2; + k_EMarketingMessageLookupByTitleWithType = 3; + k_EMarketingMessageLookupByGIDList = 4; +} + +message CMarketingMessages_GetActiveMarketingMessages_Request { + optional string country = 1; + optional bool anonymous_user = 2; +} + +message CMarketingMessageProto { + optional fixed64 gid = 1; + optional string title = 2; + optional .EMarketingMessageType type = 3 [default = k_EMarketingMessageInvalid]; + optional .EMarketingMessageVisibility visibility = 4 [default = k_EMarketingMessageVisibleBeta]; + optional uint32 priority = 5; + optional .EMarketingMessageAssociationType association_type = 6 [default = k_EMarketingMessageNoAssociation]; + optional uint32 associated_id = 7; + optional string associated_name = 8; + optional uint32 start_date = 9; + optional uint32 end_date = 10; + optional string country_allow = 11; + optional string country_deny = 12; + optional bool ownership_restrictions_overridden = 13; + optional uint32 must_own_appid = 14; + optional uint32 must_not_own_appid = 15; + optional uint32 must_own_packageid = 16; + optional uint32 must_not_own_packageid = 17; + optional uint32 must_have_launched_appid = 18; + optional string additional_restrictions = 19; + optional string template_type = 20; + optional string template_vars = 21; + optional uint32 flags = 22; + optional string creator_name = 23; + optional string template_vars_json = 24; + optional string additional_restrictions_json = 25; +} + +message CMarketingMessages_GetActiveMarketingMessages_Response { + repeated .CMarketingMessageProto messages = 1; + optional uint32 time_next_message_age = 2; +} + +message CMarketingMessages_GetMarketingMessagesForUser_Request { + optional bool include_seen_messages = 1; + optional string country_code = 2; + optional int32 elanguage = 3; + optional int32 operating_system = 4; + optional int32 client_package_version = 5; + optional .StoreBrowseContext context = 6; + optional .StoreBrowseItemDataRequest data_request = 7; +} + +message CDisplayMarketingMessage { + optional fixed64 gid = 1; + optional string title = 2; + optional .EMarketingMessageType type = 3 [default = k_EMarketingMessageInvalid]; + optional .StoreItemID associated_item_id = 4; + optional .StoreItem associated_item = 5; + optional string associated_name = 6; + optional string template_type = 10; + optional string template_vars_json = 11; +} + +message CMarketingMessages_GetMarketingMessagesForUser_Response { + message MarketingMessageForUser { + optional bool already_seen = 1; + optional .CDisplayMarketingMessage message = 2; + } + + repeated .CMarketingMessages_GetMarketingMessagesForUser_Response.MarketingMessageForUser messages = 1; +} + +message CMarketingMessages_DoesUserHavePendingMarketingMessages_Request { + optional string country_code = 2; + optional int32 elanguage = 3; + optional int32 operating_system = 4; + optional int32 client_package_version = 5; +} + +message CMarketingMessages_DoesUserHavePendingMarketingMessages_Response { + optional bool has_pending_messages = 1; + optional int32 pending_message_count = 2; +} + +message CMarketingMessages_GetDisplayMarketingMessage_Request { + optional fixed64 gid = 1; + optional .StoreBrowseContext context = 2; + optional .StoreBrowseItemDataRequest data_request = 3; +} + +message CMarketingMessages_GetDisplayMarketingMessage_Response { + optional .CDisplayMarketingMessage message = 1; +} + +message CMarketingMessages_MarkMessageSeen_Notification { + optional fixed64 gid = 1; + optional uint32 display_index = 2 [default = 0]; + optional .EMarketingMessageTemplateType template_type = 3 [default = k_EMarketingMessageTemplate_Unknown]; +} + +message CMarketingMessages_GetMarketingMessage_Request { + optional fixed64 gid = 1; +} + +message CMarketingMessages_GetMarketingMessage_Response { + optional .CMarketingMessageProto message = 1; +} + +message CMarketingMessages_CreateMarketingMessage_Request { + optional .CMarketingMessageProto message = 1; + optional bool from_json = 2; +} + +message CMarketingMessages_CreateMarketingMessage_Response { + optional fixed64 gid = 1; +} + +message CMarketingMessages_UpdateMarketingMessage_Request { + optional fixed64 gid = 1; + optional .CMarketingMessageProto message = 2; + optional bool from_json = 3; +} + +message CMarketingMessages_UpdateMarketingMessage_Response { +} + +message CMarketingMessages_DeleteMarketingMessage_Request { + optional fixed64 gid = 1; +} + +message CMarketingMessages_DeleteMarketingMessage_Response { +} + +message CMarketingMessages_FindMarketingMessages_Request { + optional .EMarketingMessageLookupType lookup_type = 1 [default = k_EMarketingMessageLookupInvalid]; + optional fixed64 gid = 2; + optional .EMarketingMessageType message_type = 3 [default = k_EMarketingMessageInvalid]; + repeated fixed64 gidlist = 4; + optional string title = 5; +} + +message CMarketingMessages_FindMarketingMessages_Response { + repeated .CMarketingMessageProto messages = 1; +} + +message CMarketingMessages_GetMarketingMessageViewerStats_Request { + optional fixed64 gid = 1; +} + +message CMarketingMessageHourlyStats { + optional uint32 rt_time_hour = 1; + optional uint32 seen_count = 2; + optional .EMarketingMessageTemplateType template_type = 3 [default = k_EMarketingMessageTemplate_Unknown]; + optional uint32 display_index = 4; +} + +message CMarketingMessages_GetMarketingMessageViewerStats_Response { + repeated .CMarketingMessageHourlyStats stats = 1; +} + +message CMarketingMessages_GetMarketingMessagesViewerRangeStats_Request { + optional uint32 rt_start_time = 1; + optional uint32 rt_end_time = 2; +} + +message CMarketingMessages_GetMarketingMessagesViewerRangeStats_Response { + repeated .CMarketingMessageHourlyStats stats = 1; +} + +message CMarketingMessages_GetPartnerReadyToPublishMessages_Request { + optional uint32 partnerid = 1; +} + +message CMarketingMessages_GetPartnerReadyToPublishMessages_Response { + repeated .CDisplayMarketingMessage messages = 1; +} + +message CMarketingMessages_PartnerPublishMessage_Request { + optional fixed64 gid = 1; + optional uint32 partnerid = 2; +} + +message CMarketingMessages_PartnerPublishMessage_Response { +} + +message CMarketingMessages_GetPartnerMessagePreview_Request { + optional fixed64 gid = 1; + optional uint32 partnerid = 2; +} + +message CMarketingMessages_GetPartnerMessagePreview_Response { + optional .CMarketingMessageProto message = 1; +} + +message CMarketingMessage_GetMarketingMessagesForPartner_Request { + optional uint32 partnerid = 1; +} + +message CMarketingMessage_GetMarketingMessagesForPartner_Response { + repeated .CMarketingMessageProto messages = 1; +} + +message CMarketingMessage_GetMarketingMessagesForApps_Request { + repeated uint32 appids = 1; +} + +message CMarketingMessage_GetMarketingMessagesForApps_Response { + repeated .CMarketingMessageProto messages = 1; +} + +service MarketingMessages { + rpc GetActiveMarketingMessages (.CMarketingMessages_GetActiveMarketingMessages_Request) returns (.CMarketingMessages_GetActiveMarketingMessages_Response); + rpc GetMarketingMessagesForUser (.CMarketingMessages_GetMarketingMessagesForUser_Request) returns (.CMarketingMessages_GetMarketingMessagesForUser_Response); + rpc DoesUserHavePendingMarketingMessages (.CMarketingMessages_DoesUserHavePendingMarketingMessages_Request) returns (.CMarketingMessages_DoesUserHavePendingMarketingMessages_Response); + rpc GetDisplayMarketingMessage (.CMarketingMessages_GetDisplayMarketingMessage_Request) returns (.CMarketingMessages_GetDisplayMarketingMessage_Response); + rpc GetDisplayMarketingMessageForUser (.CMarketingMessages_GetDisplayMarketingMessage_Request) returns (.CMarketingMessages_GetDisplayMarketingMessage_Response); + rpc GetDisplayMarketingMessageAdmin (.CMarketingMessages_GetDisplayMarketingMessage_Request) returns (.CMarketingMessages_GetDisplayMarketingMessage_Response); + rpc MarkMessageSeen (.CMarketingMessages_MarkMessageSeen_Notification) returns (.NoResponse); + rpc GetMarketingMessage (.CMarketingMessages_GetMarketingMessage_Request) returns (.CMarketingMessages_GetMarketingMessage_Response); + rpc CreateMarketingMessage (.CMarketingMessages_CreateMarketingMessage_Request) returns (.CMarketingMessages_CreateMarketingMessage_Response); + rpc UpdateMarketingMessage (.CMarketingMessages_UpdateMarketingMessage_Request) returns (.CMarketingMessages_UpdateMarketingMessage_Response); + rpc DeleteMarketingMessage (.CMarketingMessages_DeleteMarketingMessage_Request) returns (.CMarketingMessages_DeleteMarketingMessage_Response); + rpc FindMarketingMessages (.CMarketingMessages_FindMarketingMessages_Request) returns (.CMarketingMessages_FindMarketingMessages_Response); + rpc GetMarketingMessageViewerStats (.CMarketingMessages_GetMarketingMessageViewerStats_Request) returns (.CMarketingMessages_GetMarketingMessageViewerStats_Response); + rpc GetMarketingMessagesViewerRangeStats (.CMarketingMessages_GetMarketingMessagesViewerRangeStats_Request) returns (.CMarketingMessages_GetMarketingMessagesViewerRangeStats_Response); + rpc GetPartnerReadyToPublishMessages (.CMarketingMessages_GetPartnerReadyToPublishMessages_Request) returns (.CMarketingMessages_GetPartnerReadyToPublishMessages_Response); + rpc PublishPartnerMessage (.CMarketingMessages_PartnerPublishMessage_Request) returns (.CMarketingMessages_PartnerPublishMessage_Response); + rpc GetPartnerMessagePreview (.CMarketingMessages_GetPartnerMessagePreview_Request) returns (.CMarketingMessages_GetPartnerMessagePreview_Response); + rpc GetMarketingMessagesForPartner (.CMarketingMessage_GetMarketingMessagesForPartner_Request) returns (.CMarketingMessage_GetMarketingMessagesForPartner_Response); + rpc GetMarketingMessagesForApps (.CMarketingMessage_GetMarketingMessagesForApps_Request) returns (.CMarketingMessage_GetMarketingMessagesForApps_Response); +} diff --git a/Protobufs/steam/steammessages_notifications.steamclient.proto b/Protobufs/steam/steammessages_notifications.steamclient.proto new file mode 100644 index 0000000..16f8353 --- /dev/null +++ b/Protobufs/steam/steammessages_notifications.steamclient.proto @@ -0,0 +1,70 @@ +import "steammessages_base.proto"; +import "steammessages_unified_base.steamclient.proto"; + +option cc_generic_services = true; + +enum ESteamNotificationType { + k_ESteamNotificationType_Invalid = 0; + k_ESteamNotificationType_Test = 1; + k_ESteamNotificationType_Gift = 2; + k_ESteamNotificationType_Comment = 3; + k_ESteamNotificationType_Item = 4; + k_ESteamNotificationType_FriendInvite = 5; + k_ESteamNotificationType_MajorSale = 6; + k_ESteamNotificationType_PreloadAvailable = 7; + k_ESteamNotificationType_Wishlist = 8; + k_ESteamNotificationType_TradeOffer = 9; + k_ESteamNotificationType_General = 10; + k_ESteamNotificationType_HelpRequest = 11; + k_ESteamNotificationType_AsyncGame = 12; + k_ESteamNotificationType_ChatMsg = 13; + k_ESteamNotificationType_ModeratorMsg = 14; + k_ESteamNotificationType_ParentalFeatureAccessRequest = 15; + k_ESteamNotificationType_FamilyInvite = 16; + k_ESteamNotificationType_FamilyPurchaseRequest = 17; + k_ESteamNotificationType_ParentalPlaytimeRequest = 18; + k_ESteamNotificationType_FamilyPurchaseRequestResponse = 19; + k_ESteamNotificationType_ParentalFeatureAccessResponse = 20; + k_ESteamNotificationType_ParentalPlaytimeResponse = 21; + k_ESteamNotificationType_RequestedGameAdded = 22; + k_ESteamNotificationType_SendToPhone = 23; + k_ESteamNotificationType_ClipDownloaded = 24; + k_ESteamNotificationType_2FAPrompt = 25; + k_ESteamNotificationType_MobileConfirmation = 26; + k_ESteamNotificationType_PartnerEvent = 27; +} + +message SteamNotificationData { + optional uint64 notification_id = 1; + optional uint32 notification_targets = 2; + optional .ESteamNotificationType notification_type = 3 [default = k_ESteamNotificationType_Invalid]; + optional string body_data = 4; + optional bool read = 7; + optional uint32 timestamp = 8; + optional bool hidden = 9; + optional uint32 expiry = 10; + optional uint32 viewed = 11; +} + +message CSteamNotification_NotificationsReceived_Notification { + repeated .SteamNotificationData notifications = 1; + optional uint32 pending_gift_count = 2; + optional uint32 pending_friend_count = 3; + optional uint32 pending_family_invite_count = 4; +} + +message SteamNotificationPreference { + optional .ESteamNotificationType notification_type = 1 [default = k_ESteamNotificationType_Invalid]; + optional uint32 notification_targets = 2; +} + +message CSteamNotification_PreferencesUpdated_Notification { + repeated .SteamNotificationPreference preferences = 1; +} + +service SteamNotificationClient { + option (service_execution_site) = k_EProtoExecutionSiteSteamClient; + + rpc NotificationsReceived (.CSteamNotification_NotificationsReceived_Notification) returns (.NoResponse); + rpc PreferencesUpdated (.CSteamNotification_PreferencesUpdated_Notification) returns (.NoResponse); +} diff --git a/Protobufs/steam/steammessages_offline.steamclient.proto b/Protobufs/steam/steammessages_offline.steamclient.proto new file mode 100644 index 0000000..7303d7f --- /dev/null +++ b/Protobufs/steam/steammessages_offline.steamclient.proto @@ -0,0 +1,33 @@ +import "steammessages_base.proto"; +import "steammessages_unified_base.steamclient.proto"; +import "offline_ticket.proto"; + +option cc_generic_services = true; + +message COffline_GetOfflineLogonTicket_Request { + optional uint32 priority = 1; + optional bool perform_encryption = 2; +} + +message COffline_GetOfflineLogonTicket_Response { + optional bytes serialized_ticket = 1; + optional bytes signature = 2; + optional .Offline_Ticket encrypted_ticket = 3; +} + +message COffline_GetUnsignedOfflineLogonTicket_Request { +} + +message COffline_OfflineLogonTicket { + optional uint32 accountid = 1; + optional fixed32 rtime32_creation_time = 2; +} + +message COffline_GetUnsignedOfflineLogonTicket_Response { + optional .COffline_OfflineLogonTicket ticket = 1; +} + +service Offline { + rpc GetOfflineLogonTicket (.COffline_GetOfflineLogonTicket_Request) returns (.COffline_GetOfflineLogonTicket_Response); + rpc GetUnsignedOfflineLogonTicket (.COffline_GetUnsignedOfflineLogonTicket_Request) returns (.COffline_GetUnsignedOfflineLogonTicket_Response); +} diff --git a/Protobufs/steam/steammessages_parental.steamclient.proto b/Protobufs/steam/steammessages_parental.steamclient.proto new file mode 100644 index 0000000..e5c0825 --- /dev/null +++ b/Protobufs/steam/steammessages_parental.steamclient.proto @@ -0,0 +1,198 @@ +import "steammessages_base.proto"; +import "steammessages_unified_base.steamclient.proto"; +import "steammessages_parental_objects.proto"; + +option cc_generic_services = true; + +message CParental_EnableParentalSettings_Request { + optional string password = 1; + optional .ParentalSettings settings = 2; + optional string sessionid = 3; + optional uint32 enablecode = 4; + optional fixed64 steamid = 10; +} + +message CParental_EnableParentalSettings_Response { +} + +message CParental_DisableParentalSettings_Request { + optional string password = 1; + optional fixed64 steamid = 10; +} + +message CParental_DisableParentalSettings_Response { +} + +message CParental_GetParentalSettings_Request { + optional fixed64 steamid = 10; +} + +message CParental_GetParentalSettings_Response { + optional .ParentalSettings settings = 1; +} + +message CParental_GetSignedParentalSettings_Request { + optional uint32 priority = 1; +} + +message CParental_GetSignedParentalSettings_Response { + optional bytes serialized_settings = 1; + optional bytes signature = 2; +} + +message CParental_SetParentalSettings_Request { + optional string password = 1; + optional .ParentalSettings settings = 2; + optional string new_password = 3; + optional string sessionid = 4; + optional fixed64 steamid = 10; +} + +message CParental_SetParentalSettings_Response { +} + +message CParental_ValidateToken_Request { + optional string unlock_token = 1; +} + +message CParental_ValidateToken_Response { +} + +message CParental_ValidatePassword_Request { + optional string password = 1; + optional string session = 2; + optional bool send_unlock_on_success = 3; +} + +message CParental_ValidatePassword_Response { + optional string token = 1; +} + +message CParental_LockClient_Request { + optional string session = 1; +} + +message CParental_LockClient_Response { +} + +message CParental_RequestRecoveryCode_Request { +} + +message CParental_RequestRecoveryCode_Response { +} + +message CParental_DisableWithRecoveryCode_Request { + optional uint32 recovery_code = 1; + optional fixed64 steamid = 10; +} + +message CParental_DisableWithRecoveryCode_Response { +} + +message CParental_RequestFeatureAccess_Request { + optional uint32 features = 1; + optional fixed64 steamid = 10; +} + +message CParental_RequestFeatureAccess_Response { + optional fixed64 requestid = 1; +} + +message CParental_ApproveFeatureAccess_Request { + optional bool approve = 1; + optional fixed64 requestid = 2; + optional uint32 features = 3; + optional uint32 duration = 4; + optional fixed64 steamid = 10; +} + +message CParental_ApproveFeatureAccess_Response { +} + +message CParental_RequestPlaytime_Request { + optional uint32 time_expires = 1; + optional .ParentalPlaytimeDay current_playtime_restrictions = 2; + optional fixed64 steamid = 10; +} + +message CParental_RequestPlaytime_Response { + optional fixed64 requestid = 1; +} + +message CParental_ApprovePlaytime_Request { + optional bool approve = 1; + optional fixed64 requestid = 2; + optional .ParentalTemporaryPlaytimeRestrictions restrictions_approved = 3; + optional fixed64 steamid = 10; +} + +message CParental_ApprovePlaytime_Response { +} + +message CParental_GetRequests_Request { + optional uint32 rt_include_completed_since = 1; + optional fixed64 family_groupid = 2; +} + +message CParental_GetRequests_Response { + repeated .ParentalFeatureRequest feature_requests = 1; + repeated .ParentalPlaytimeRequest playtime_requests = 2; +} + +message CParental_ReportPlaytimeAndNotify_Request { + optional uint32 day_of_week = 1; + optional uint32 minutes_used = 2; + optional fixed64 steamid = 10; +} + +message CParental_ReportPlaytimeAndNotify_Response { +} + +message CParental_ParentalSettingsChange_Notification { + optional bytes serialized_settings = 1; + optional bytes signature = 2; + optional string password = 3; + optional string sessionid = 4; +} + +message CParental_ParentalUnlock_Notification { + optional string password = 1; + optional string sessionid = 2; +} + +message CParental_ParentalLock_Notification { + optional string sessionid = 1; +} + +message CParental_PlaytimeUsed_Notification { + optional uint32 day_of_week = 1; + optional uint32 minutes_used = 2; +} + +service Parental { + rpc EnableParentalSettings (.CParental_EnableParentalSettings_Request) returns (.CParental_EnableParentalSettings_Response); + rpc DisableParentalSettings (.CParental_DisableParentalSettings_Request) returns (.CParental_DisableParentalSettings_Response); + rpc GetParentalSettings (.CParental_GetParentalSettings_Request) returns (.CParental_GetParentalSettings_Response); + rpc GetSignedParentalSettings (.CParental_GetSignedParentalSettings_Request) returns (.CParental_GetSignedParentalSettings_Response); + rpc SetParentalSettings (.CParental_SetParentalSettings_Request) returns (.CParental_SetParentalSettings_Response); + rpc ValidateToken (.CParental_ValidateToken_Request) returns (.CParental_ValidateToken_Response); + rpc ValidatePassword (.CParental_ValidatePassword_Request) returns (.CParental_ValidatePassword_Response); + rpc LockClient (.CParental_LockClient_Request) returns (.CParental_LockClient_Response); + rpc RequestRecoveryCode (.CParental_RequestRecoveryCode_Request) returns (.CParental_RequestRecoveryCode_Response); + rpc DisableWithRecoveryCode (.CParental_DisableWithRecoveryCode_Request) returns (.CParental_DisableWithRecoveryCode_Response); + rpc RequestFeatureAccess (.CParental_RequestFeatureAccess_Request) returns (.CParental_RequestFeatureAccess_Response); + rpc ApproveFeatureAccess (.CParental_ApproveFeatureAccess_Request) returns (.CParental_ApproveFeatureAccess_Response); + rpc RequestPlaytime (.CParental_RequestPlaytime_Request) returns (.CParental_RequestPlaytime_Response); + rpc ApprovePlaytime (.CParental_ApprovePlaytime_Request) returns (.CParental_ApprovePlaytime_Response); + rpc GetRequests (.CParental_GetRequests_Request) returns (.CParental_GetRequests_Response); + rpc ReportPlaytimeAndNotify (.CParental_ReportPlaytimeAndNotify_Request) returns (.CParental_ReportPlaytimeAndNotify_Response); +} + +service ParentalClient { + option (service_execution_site) = k_EProtoExecutionSiteSteamClient; + + rpc NotifySettingsChange (.CParental_ParentalSettingsChange_Notification) returns (.NoResponse); + rpc NotifyUnlock (.CParental_ParentalUnlock_Notification) returns (.NoResponse); + rpc NotifyLock (.CParental_ParentalLock_Notification) returns (.NoResponse); + rpc NotifyPlaytimeUsed (.CParental_PlaytimeUsed_Notification) returns (.NoResponse); +} diff --git a/Protobufs/steam/steammessages_parental_objects.proto b/Protobufs/steam/steammessages_parental_objects.proto new file mode 100644 index 0000000..b17b038 --- /dev/null +++ b/Protobufs/steam/steammessages_parental_objects.proto @@ -0,0 +1,72 @@ +import "steammessages_base.proto"; +import "enums.proto"; + +option optimize_for = SPEED; +option cc_generic_services = true; +option (force_php_generation) = true; + +message ParentalApp { + optional uint32 appid = 1; + optional bool is_allowed = 2; +} + +message ParentalPlaytimeDay { + optional uint64 allowed_time_windows = 1; + optional uint32 allowed_daily_minutes = 2; +} + +message ParentalPlaytimeRestrictions { + optional bool apply_playtime_restrictions = 2; + repeated .ParentalPlaytimeDay playtime_days = 15; +} + +message ParentalTemporaryPlaytimeRestrictions { + optional .ParentalPlaytimeDay restrictions = 1; + optional uint32 rtime_expires = 2; +} + +message ParentalSettings { + optional fixed64 steamid = 1; + optional uint32 applist_base_id = 2; + optional string applist_base_description = 3; + repeated .ParentalApp applist_base = 4; + repeated .ParentalApp applist_custom = 5; + optional uint32 passwordhashtype = 6; + optional bytes salt = 7; + optional bytes passwordhash = 8; + optional bool is_enabled = 9; + optional uint32 enabled_features = 10; + optional string recovery_email = 11; + optional bool is_site_license_lock = 12; + optional uint32 temporary_enabled_features = 13; + optional uint32 rtime_temporary_feature_expiration = 14; + optional .ParentalPlaytimeRestrictions playtime_restrictions = 15; + optional .ParentalTemporaryPlaytimeRestrictions temporary_playtime_restrictions = 16; + repeated uint32 excluded_store_content_descriptors = 17; + repeated uint32 excluded_community_content_descriptors = 18; + repeated uint32 utility_appids = 19; +} + +message ParentalFeatureRequest { + optional fixed64 requestid = 1; + optional fixed64 family_groupid = 2; + optional fixed64 steamid = 3; + optional uint32 features = 4; + optional uint32 time_requested = 5; + optional bool approved = 6; + optional fixed64 steamid_responder = 7; + optional uint32 time_responded = 8; +} + +message ParentalPlaytimeRequest { + optional fixed64 requestid = 1; + optional fixed64 family_groupid = 2; + optional fixed64 steamid = 3; + optional .ParentalPlaytimeDay current_playtime_restrictions = 4; + optional uint32 time_expires = 5; + optional uint32 time_requested = 6; + optional bool approved = 7; + optional fixed64 steamid_responder = 8; + optional uint32 time_responded = 9; + optional .ParentalTemporaryPlaytimeRestrictions restrictions_approved = 10; +} diff --git a/Protobufs/steam/steammessages_parties.steamclient.proto b/Protobufs/steam/steammessages_parties.steamclient.proto new file mode 100644 index 0000000..e644f76 --- /dev/null +++ b/Protobufs/steam/steammessages_parties.steamclient.proto @@ -0,0 +1,75 @@ +import "steammessages_base.proto"; +import "steammessages_unified_base.steamclient.proto"; + +option cc_generic_services = true; + +message CParties_JoinParty_Request { + optional fixed64 steamid = 1; + optional uint64 beacon_id = 2; +} + +message CParties_JoinParty_Response { + optional uint64 beacon_id = 1; + optional string connect_string = 2; +} + +message CParties_BeaconLocation { + optional uint32 location_type = 1; + optional uint64 location_id = 2; +} + +message CParties_CreateBeacon_Request { + optional uint32 appid = 1; + optional uint32 num_open_slots = 2; + repeated .CParties_BeaconLocation locations = 3; + optional string connect_string = 4; + optional string metadata = 5; +} + +message CParties_CreateBeacon_Response { + optional uint64 beacon_id = 1; +} + +message CParties_OnReservationCompleted_Request { + optional uint64 beacon_id = 1; + optional fixed64 user_steamid = 2; +} + +message CParties_OnReservationCompleted_Response { + optional uint64 beacon_id = 1; +} + +message CParties_CancelReservation_Request { + optional uint64 beacon_id = 1; + optional fixed64 user_steamid = 2; +} + +message CParties_CancelReservation_Response { + optional uint64 beacon_id = 1; +} + +message CParties_ChangeNumOpenSlots_Request { + optional uint64 beacon_id = 1; + optional uint32 num_open_slots = 2; +} + +message CParties_ChangeNumOpenSlots_Response { + optional uint64 beacon_id = 1; +} + +message CParties_DestroyBeacon_Request { + optional uint64 beacon_id = 1; +} + +message CParties_DestroyBeacon_Response { + optional uint64 beacon_id = 1; +} + +service Parties { + rpc JoinParty (.CParties_JoinParty_Request) returns (.CParties_JoinParty_Response); + rpc CreateBeacon (.CParties_CreateBeacon_Request) returns (.CParties_CreateBeacon_Response); + rpc OnReservationCompleted (.CParties_OnReservationCompleted_Request) returns (.CParties_OnReservationCompleted_Response); + rpc CancelReservation (.CParties_CancelReservation_Request) returns (.CParties_CancelReservation_Response); + rpc ChangeNumOpenSlots (.CParties_ChangeNumOpenSlots_Request) returns (.CParties_ChangeNumOpenSlots_Response); + rpc DestroyBeacon (.CParties_DestroyBeacon_Request) returns (.CParties_DestroyBeacon_Response); +} diff --git a/Protobufs/steam/steammessages_partnerapps.steamclient.proto b/Protobufs/steam/steammessages_partnerapps.steamclient.proto new file mode 100644 index 0000000..c441328 --- /dev/null +++ b/Protobufs/steam/steammessages_partnerapps.steamclient.proto @@ -0,0 +1,106 @@ +import "steammessages_base.proto"; +import "steammessages_unified_base.steamclient.proto"; + +option cc_generic_services = true; + +message CPartnerApps_RequestUploadToken_Request { + optional string filename = 1; + optional uint32 appid = 2; +} + +message CPartnerApps_RequestUploadToken_Response { + optional uint64 upload_token = 1; + optional string location = 2; + optional uint64 routing_id = 3; +} + +message CPartnerApps_FinishUpload_Request { + optional uint64 upload_token = 1; + optional uint64 routing_id = 2; + optional uint32 app_id = 3; +} + +message CPartnerApps_FinishUploadKVSign_Response { + optional string signed_installscript = 1; +} + +message CPartnerApps_FinishUploadLegacyDRM_Request { + optional uint64 upload_token = 1; + optional uint64 routing_id = 2; + optional uint32 app_id = 3; + optional uint32 flags = 4; + optional string tool_name = 5; + optional bool use_cloud = 6 [default = false]; +} + +message CPartnerApps_FinishUploadLegacyDRM_Response { + optional string file_id = 1; +} + +message CPartnerApps_FinishUpload_Response { +} + +message CPartnerApps_FinishUploadDepot_Request { + optional uint64 upload_token = 1; + optional uint64 routing_id = 2; + optional uint32 app_id = 3; + optional uint32 depot_id = 4; + optional uint32 build_flags = 5; +} + +message CPartnerApps_FinishUploadDepot_Response { + optional uint64 build_routing_id = 1; +} + +message CPartnerApps_GetDepotBuildResult_Request { + optional uint64 upload_token = 1; + optional uint64 routing_id = 2; +} + +message CPartnerApps_GetDepotBuildResult_Response { + optional uint64 manifest_id = 1; + optional string error_msg = 2; +} + +message CPartnerApps_FindDRMUploads_Request { + optional int32 app_id = 1; +} + +message CPartnerApps_ExistingDRMUpload { + optional string file_id = 1; + optional uint32 app_id = 2; + optional int32 actor_id = 3; + optional string supplied_name = 5; + optional uint32 flags = 6; + optional string mod_type = 7; + optional fixed32 timestamp = 8; + optional string orig_file_id = 9; +} + +message CPartnerApps_FindDRMUploads_Response { + repeated .CPartnerApps_ExistingDRMUpload uploads = 1; +} + +message CPartnerApps_Download_Request { + optional string file_id = 1; + optional int32 app_id = 2; +} + +message CPartnerApps_Download_Response { + optional string download_url = 1; + optional int32 app_id = 2; +} + +service PartnerApps { + rpc RequestKVSignUploadToken (.CPartnerApps_RequestUploadToken_Request) returns (.CPartnerApps_RequestUploadToken_Response); + rpc RequestDRMUploadToken (.CPartnerApps_RequestUploadToken_Request) returns (.CPartnerApps_RequestUploadToken_Response); + rpc RequestCEGUploadToken (.CPartnerApps_RequestUploadToken_Request) returns (.CPartnerApps_RequestUploadToken_Response); + rpc RequestDepotUploadToken (.CPartnerApps_RequestUploadToken_Request) returns (.CPartnerApps_RequestUploadToken_Response); + rpc FinishUploadKVSign (.CPartnerApps_FinishUpload_Request) returns (.CPartnerApps_FinishUploadKVSign_Response); + rpc FinishUploadDRMUpload (.CPartnerApps_FinishUploadLegacyDRM_Request) returns (.CPartnerApps_FinishUploadLegacyDRM_Response); + rpc FinishUploadCEGUpload (.CPartnerApps_FinishUpload_Request) returns (.CPartnerApps_FinishUpload_Response); + rpc FinishUploadDepotUpload (.CPartnerApps_FinishUploadDepot_Request) returns (.CPartnerApps_FinishUploadDepot_Response); + rpc GetDepotBuildResult (.CPartnerApps_GetDepotBuildResult_Request) returns (.CPartnerApps_GetDepotBuildResult_Response); + rpc FindDRMUploads (.CPartnerApps_FindDRMUploads_Request) returns (.CPartnerApps_FindDRMUploads_Response); + rpc Download (.CPartnerApps_Download_Request) returns (.CPartnerApps_Download_Response); +} diff --git a/Protobufs/steam/steammessages_player.steamclient.proto b/Protobufs/steam/steammessages_player.steamclient.proto new file mode 100644 index 0000000..746f6ad --- /dev/null +++ b/Protobufs/steam/steammessages_player.steamclient.proto @@ -0,0 +1,921 @@ +import "steammessages_base.proto"; +import "steammessages_unified_base.steamclient.proto"; +import "enums.proto"; + +option cc_generic_services = true; + +enum EProfileCustomizationStyle { + k_EProfileCustomizationStyleDefault = 0; + k_EProfileCustomizationStyleSelected = 1; + k_EProfileCustomizationStyleRarest = 2; + k_EProfileCustomizationStyleMostRecent = 3; + k_EProfileCustomizationStyleRandom = 4; + k_EProfileCustomizationStyleHighestRated = 5; +} + +enum EAgreementType { + k_EAgreementType_Invalid = -1; + k_EAgreementType_GlobalSSA = 0; + k_EAgreementType_ChinaSSA = 1; +} + +enum ENotificationSetting { + k_ENotificationSettingNotifyUseDefault = 0; + k_ENotificationSettingAlways = 1; + k_ENotificationSettingNever = 2; +} + +enum ETextFilterSetting { + k_ETextFilterSettingSteamLabOptedOut = 0; + k_ETextFilterSettingEnabled = 1; + k_ETextFilterSettingEnabledAllowProfanity = 2; + k_ETextFilterSettingDisabled = 3; +} + +message CPlayer_GetRecentPlaytimeSessionsForChild_Request { + optional uint64 steamid = 1; +} + +message CPlayer_GetRecentPlaytimeSessionsForChild_Response { + message PlaytimeSession { + optional uint32 time_start = 1; + optional uint32 time_end = 2; + optional uint32 appid = 3; + optional uint32 device_type = 4; + optional bool disconnected = 5; + } + + repeated .CPlayer_GetRecentPlaytimeSessionsForChild_Response.PlaytimeSession sessions = 1; +} + +message CPlayer_GetPlayerLinkDetails_Request { + repeated uint64 steamids = 1; +} + +message CPlayer_GetPlayerLinkDetails_Response { + message PlayerLinkDetails { + message AccountPublicData { + required fixed64 steamid = 1; + optional int32 visibility_state = 2; + optional int32 privacy_state = 3; + optional int32 profile_state = 4; + optional uint32 ban_expires_time = 7; + optional uint32 account_flags = 8; + optional bytes sha_digest_avatar = 9; + optional string persona_name = 10; + optional string profile_url = 11; + optional bool content_country_restricted = 12; + } + + message AccountPrivateData { + optional int32 persona_state = 1; + optional uint32 persona_state_flags = 2; + optional uint32 time_created = 3; + optional fixed64 game_id = 4; + optional fixed64 game_server_steam_id = 5; + optional uint32 game_server_ip_address = 6; + optional uint32 game_server_port = 7; + optional string game_extra_info = 8; + optional string account_name = 9; + optional fixed64 lobby_steam_id = 10; + optional string rich_presence_kv = 11; + optional fixed64 broadcast_session_id = 12; + optional uint32 watching_broadcast_accountid = 13; + optional uint32 watching_broadcast_appid = 14; + optional uint32 watching_broadcast_viewers = 15; + optional string watching_broadcast_title = 16; + optional uint32 last_logoff_time = 17; + optional uint32 last_seen_online = 18; + optional int32 game_os_type = 19; + optional int32 game_device_type = 20; + optional string game_device_name = 21; + optional bool game_is_private = 22; + } + + optional .CPlayer_GetPlayerLinkDetails_Response.PlayerLinkDetails.AccountPublicData public_data = 1; + optional .CPlayer_GetPlayerLinkDetails_Response.PlayerLinkDetails.AccountPrivateData private_data = 2; + } + + repeated .CPlayer_GetPlayerLinkDetails_Response.PlayerLinkDetails accounts = 1; +} + +message CPlayer_GetMutualFriendsForIncomingInvites_Request { +} + +message CPlayer_IncomingInviteMutualFriendList { + optional fixed64 steamid = 1; + repeated uint32 mutual_friend_account_ids = 2; +} + +message CPlayer_GetMutualFriendsForIncomingInvites_Response { + repeated .CPlayer_IncomingInviteMutualFriendList incoming_invite_mutual_friends_lists = 1; +} + +message CPlayer_GetOwnedGames_Request { + optional uint64 steamid = 1; + optional bool include_appinfo = 2; + optional bool include_played_free_games = 3; + repeated uint32 appids_filter = 4; + optional bool include_free_sub = 5; + optional bool skip_unvetted_apps = 6 [default = true]; + optional string language = 7; + optional bool include_extended_appinfo = 8; +} + +message CPlayer_GetOwnedGames_Response { + message Game { + optional int32 appid = 1; + optional string name = 2; + optional int32 playtime_2weeks = 3; + optional int32 playtime_forever = 4; + optional string img_icon_url = 5; + optional bool has_community_visible_stats = 7; + optional int32 playtime_windows_forever = 8; + optional int32 playtime_mac_forever = 9; + optional int32 playtime_linux_forever = 10; + optional int32 playtime_deck_forever = 20; + optional uint32 rtime_last_played = 11; + optional string capsule_filename = 12; + optional string sort_as = 13; + optional bool has_workshop = 14; + optional bool has_market = 15; + optional bool has_dlc = 16; + optional bool has_leaderboards = 17; + repeated uint32 content_descriptorids = 18; + optional int32 playtime_disconnected = 19; + } + + optional uint32 game_count = 1; + repeated .CPlayer_GetOwnedGames_Response.Game games = 2; +} + +message CPlayer_GetPlayNext_Request { + optional uint32 max_age_seconds = 1; + repeated uint32 ignore_appids = 2; +} + +message CPlayer_GetPlayNext_Response { + optional uint32 last_update_time = 1; + repeated uint32 appids = 2; +} + +message CPlayer_GetFriendsGameplayInfo_Request { + optional uint32 appid = 1; +} + +message CPlayer_GetFriendsGameplayInfo_Response { + message FriendsGameplayInfo { + optional fixed64 steamid = 1; + optional uint32 minutes_played = 2; + optional uint32 minutes_played_forever = 3; + } + + message OwnGameplayInfo { + optional fixed64 steamid = 1; + optional uint32 minutes_played = 2; + optional uint32 minutes_played_forever = 3; + optional bool in_wishlist = 4; + optional bool owned = 5; + } + + optional .CPlayer_GetFriendsGameplayInfo_Response.OwnGameplayInfo your_info = 1; + repeated .CPlayer_GetFriendsGameplayInfo_Response.FriendsGameplayInfo in_game = 2; + repeated .CPlayer_GetFriendsGameplayInfo_Response.FriendsGameplayInfo played_recently = 3; + repeated .CPlayer_GetFriendsGameplayInfo_Response.FriendsGameplayInfo played_ever = 4; + repeated .CPlayer_GetFriendsGameplayInfo_Response.FriendsGameplayInfo owns = 5; + repeated .CPlayer_GetFriendsGameplayInfo_Response.FriendsGameplayInfo in_wishlist = 6; +} + +message CPlayer_GetGameBadgeLevels_Request { + optional uint32 appid = 1; +} + +message CPlayer_GetGameBadgeLevels_Response { + message Badge { + optional int32 level = 1; + optional int32 series = 2; + optional uint32 border_color = 3; + } + + optional uint32 player_level = 1; + repeated .CPlayer_GetGameBadgeLevels_Response.Badge badges = 2; +} + +message CPlayer_GetProfileBackground_Request { + optional fixed64 steamid = 1; + optional string language = 2; +} + +message ProfileItem { + message ProfileColor { + optional string style_name = 1; + optional string color = 2; + } + + optional uint64 communityitemid = 1; + optional string image_small = 2; + optional string image_large = 3; + optional string name = 4; + optional string item_title = 5; + optional string item_description = 6; + optional uint32 appid = 7; + optional uint32 item_type = 8; + optional uint32 item_class = 9; + optional string movie_webm = 10; + optional string movie_mp4 = 11; + optional string movie_webm_small = 13; + optional string movie_mp4_small = 14; + optional uint32 equipped_flags = 12; + repeated .ProfileItem.ProfileColor profile_colors = 15; +} + +message CPlayer_GetProfileBackground_Response { + optional .ProfileItem profile_background = 1; +} + +message CPlayer_SetProfileBackground_Request { + optional uint64 communityitemid = 1; +} + +message CPlayer_SetProfileBackground_Response { +} + +message CPlayer_GetMiniProfileBackground_Request { + optional fixed64 steamid = 1; + optional string language = 2; +} + +message CPlayer_GetMiniProfileBackground_Response { + optional .ProfileItem profile_background = 1; +} + +message CPlayer_SetMiniProfileBackground_Request { + optional uint64 communityitemid = 1; +} + +message CPlayer_SetMiniProfileBackground_Response { +} + +message CPlayer_GetAvatarFrame_Request { + optional fixed64 steamid = 1; + optional string language = 2; +} + +message CPlayer_GetAvatarFrame_Response { + optional .ProfileItem avatar_frame = 1; +} + +message CPlayer_SetAvatarFrame_Request { + optional uint64 communityitemid = 1; +} + +message CPlayer_SetAvatarFrame_Response { +} + +message CPlayer_GetAnimatedAvatar_Request { + optional fixed64 steamid = 1; + optional string language = 2; +} + +message CPlayer_GetAnimatedAvatar_Response { + optional .ProfileItem avatar = 1; +} + +message CPlayer_SetAnimatedAvatar_Request { + optional uint64 communityitemid = 1; +} + +message CPlayer_SetAnimatedAvatar_Response { +} + +message CPlayer_GetSteamDeckKeyboardSkin_Request { + optional fixed64 steamid = 1; + optional string language = 2; +} + +message CPlayer_GetSteamDeckKeyboardSkin_Response { + optional .ProfileItem steam_deck_keyboard_skin = 1; +} + +message CPlayer_SetSteamDeckKeyboardSkin_Request { + optional uint64 communityitemid = 1; +} + +message CPlayer_SetSteamDeckKeyboardSkin_Response { +} + +message CPlayer_GetProfileItemsOwned_Request { + optional string language = 1; + repeated .ECommunityItemClass filters = 2; +} + +message CPlayer_GetProfileItemsOwned_Response { + repeated .ProfileItem profile_backgrounds = 1; + repeated .ProfileItem mini_profile_backgrounds = 2; + repeated .ProfileItem avatar_frames = 3; + repeated .ProfileItem animated_avatars = 4; + repeated .ProfileItem profile_modifiers = 5; + repeated .ProfileItem steam_deck_keyboard_skins = 6; + repeated .ProfileItem steam_deck_startup_movies = 7; +} + +message CPlayer_GetProfileItemsEquipped_Request { + optional fixed64 steamid = 1; + optional string language = 2; +} + +message CPlayer_GetProfileItemsEquipped_Response { + optional .ProfileItem profile_background = 1; + optional .ProfileItem mini_profile_background = 2; + optional .ProfileItem avatar_frame = 3; + optional .ProfileItem animated_avatar = 4; + optional .ProfileItem profile_modifier = 5; + optional .ProfileItem steam_deck_keyboard_skin = 6; +} + +message CPlayer_SetEquippedProfileItemFlags_Request { + optional uint64 communityitemid = 1; + optional uint32 flags = 2; +} + +message CPlayer_SetEquippedProfileItemFlags_Response { +} + +message CPlayer_GetEmoticonList_Request { +} + +message CPlayer_GetEmoticonList_Response { + message Emoticon { + optional string name = 1; + optional int32 count = 2; + optional uint32 time_last_used = 3; + optional uint32 use_count = 4; + optional uint32 time_received = 5; + optional uint32 appid = 6; + } + + repeated .CPlayer_GetEmoticonList_Response.Emoticon emoticons = 1; +} + +message CPlayer_GetCommunityBadgeProgress_Request { + optional uint64 steamid = 1; + optional int32 badgeid = 2; +} + +message CPlayer_GetCommunityBadgeProgress_Response { + message Quest { + optional uint32 questid = 1; + optional bool completed = 2; + } + + repeated .CPlayer_GetCommunityBadgeProgress_Response.Quest quests = 1; +} + +message CPlayer_GetTopAchievementsForGames_Request { + optional uint64 steamid = 1; + optional string language = 2; + optional uint32 max_achievements = 3; + repeated uint32 appids = 4; +} + +message CPlayer_GetTopAchievementsForGames_Response { + message Achievement { + optional uint32 statid = 1; + optional uint32 bit = 2; + optional string name = 3; + optional string desc = 4; + optional string icon = 5; + optional string icon_gray = 6; + optional bool hidden = 7; + optional string player_percent_unlocked = 8; + } + + message Game { + optional uint32 appid = 1; + optional uint32 total_achievements = 2; + repeated .CPlayer_GetTopAchievementsForGames_Response.Achievement achievements = 3; + } + + repeated .CPlayer_GetTopAchievementsForGames_Response.Game games = 1; +} + +message CPlayer_GetAchievementsProgress_Request { + optional uint64 steamid = 1; + optional string language = 2; + repeated uint32 appids = 3; + optional bool include_unvetted_apps = 4; +} + +message CPlayer_GetAchievementsProgress_Response { + message AchievementProgress { + optional uint32 appid = 1; + optional uint32 unlocked = 2; + optional uint32 total = 3; + optional float percentage = 4; + optional bool all_unlocked = 5; + optional uint32 cache_time = 6; + optional bool vetted = 7; + } + + repeated .CPlayer_GetAchievementsProgress_Response.AchievementProgress achievement_progress = 1; +} + +message CPlayer_GetGameAchievements_Request { + optional uint32 appid = 1; + optional string language = 2; +} + +message CPlayer_GetGameAchievements_Response { + message Achievement { + optional string internal_name = 1; + optional string localized_name = 2; + optional string localized_desc = 3; + optional string icon = 4; + optional string icon_gray = 5; + optional bool hidden = 6; + optional string player_percent_unlocked = 7; + } + + repeated .CPlayer_GetGameAchievements_Response.Achievement achievements = 1; +} + +message CPlayer_GetFavoriteBadge_Request { + optional uint64 steamid = 1; +} + +message CPlayer_GetFavoriteBadge_Response { + optional bool has_favorite_badge = 1; + optional uint32 badgeid = 2; + optional uint64 communityitemid = 3; + optional uint32 item_type = 4; + optional uint32 border_color = 5; + optional uint32 appid = 6; + optional uint32 level = 7; +} + +message CPlayer_SetFavoriteBadge_Request { + optional uint64 communityitemid = 1; + optional uint32 badgeid = 2; +} + +message CPlayer_SetFavoriteBadge_Response { +} + +message CPlayer_GetProfileCustomization_Request { + optional fixed64 steamid = 1; + optional bool include_inactive_customizations = 2; + optional bool include_purchased_customizations = 3; +} + +message ProfileCustomizationSlot { + optional uint32 slot = 1; + optional uint32 appid = 2; + optional uint64 publishedfileid = 3; + optional uint64 item_assetid = 4; + optional uint64 item_contextid = 5; + optional string notes = 6; + optional string title = 7; + optional uint32 accountid = 8; + optional uint32 badgeid = 9; + optional uint32 border_color = 10; + optional uint64 item_classid = 11; + optional uint64 item_instanceid = 12; + optional .EBanContentCheckResult ban_check_result = 13 [default = k_EBanContentCheckResult_NotScanned]; + optional uint32 replay_year = 14; +} + +message ProfileCustomization { + optional .EProfileCustomizationType customization_type = 1 [default = k_EProfileCustomizationTypeInvalid]; + optional bool large = 2; + repeated .ProfileCustomizationSlot slots = 3; + optional bool active = 4; + optional .EProfileCustomizationStyle customization_style = 5 [default = k_EProfileCustomizationStyleDefault]; + optional uint64 purchaseid = 6; + optional uint32 level = 7; +} + +message ProfileTheme { + optional string theme_id = 1; + optional string title = 2; +} + +message ProfilePreferences { + optional bool hide_profile_awards = 1; +} + +message CPlayer_GetProfileCustomization_Response { + message PurchasedCustomization { + optional uint64 purchaseid = 1; + optional .EProfileCustomizationType customization_type = 2 [default = k_EProfileCustomizationTypeInvalid]; + optional uint32 level = 3; + } + + repeated .ProfileCustomization customizations = 1; + optional uint32 slots_available = 2; + optional .ProfileTheme profile_theme = 3; + repeated .CPlayer_GetProfileCustomization_Response.PurchasedCustomization purchased_customizations = 4; + optional .ProfilePreferences profile_preferences = 5; +} + +message CPlayer_GetPurchasedProfileCustomizations_Request { + optional fixed64 steamid = 1; +} + +message CPlayer_GetPurchasedProfileCustomizations_Response { + message PurchasedCustomization { + optional uint64 purchaseid = 1; + optional .EProfileCustomizationType customization_type = 2 [default = k_EProfileCustomizationTypeInvalid]; + } + + repeated .CPlayer_GetPurchasedProfileCustomizations_Response.PurchasedCustomization purchased_customizations = 1; +} + +message CPlayer_GetPurchasedAndUpgradedProfileCustomizations_Request { + optional fixed64 steamid = 1; +} + +message CPlayer_GetPurchasedAndUpgradedProfileCustomizations_Response { + message PurchasedCustomization { + optional .EProfileCustomizationType customization_type = 1 [default = k_EProfileCustomizationTypeInvalid]; + optional uint32 count = 2; + } + + message UpgradedCustomization { + optional .EProfileCustomizationType customization_type = 1 [default = k_EProfileCustomizationTypeInvalid]; + optional uint32 level = 2; + } + + repeated .CPlayer_GetPurchasedAndUpgradedProfileCustomizations_Response.PurchasedCustomization purchased_customizations = 1; + repeated .CPlayer_GetPurchasedAndUpgradedProfileCustomizations_Response.UpgradedCustomization upgraded_customizations = 2; +} + +message CPlayer_GetProfileThemesAvailable_Request { +} + +message CPlayer_GetProfileThemesAvailable_Response { + repeated .ProfileTheme profile_themes = 1; +} + +message CPlayer_SetProfileTheme_Request { + optional string theme_id = 1; +} + +message CPlayer_SetProfileTheme_Response { +} + +message CPlayer_SetProfilePreferences_Request { + optional .ProfilePreferences profile_preferences = 1; +} + +message CPlayer_SetProfilePreferences_Response { +} + +message CPlayer_PostStatusToFriends_Request { + optional uint32 appid = 1; + optional string status_text = 2; +} + +message CPlayer_PostStatusToFriends_Response { +} + +message CPlayer_GetPostedStatus_Request { + optional uint64 steamid = 1; + optional uint64 postid = 2; +} + +message CPlayer_GetPostedStatus_Response { + optional uint32 accountid = 1; + optional uint64 postid = 2; + optional string status_text = 3; + optional bool deleted = 4; + optional uint32 appid = 5; +} + +message CPlayer_DeletePostedStatus_Request { + optional uint64 postid = 1; +} + +message CPlayer_DeletePostedStatus_Response { +} + +message CPlayer_GetLastPlayedTimes_Request { + optional uint32 min_last_played = 1; +} + +message CPlayer_GetLastPlayedTimes_Response { + message Game { + optional int32 appid = 1; + optional uint32 last_playtime = 2; + optional int32 playtime_2weeks = 3; + optional int32 playtime_forever = 4; + optional uint32 first_playtime = 5; + optional int32 playtime_windows_forever = 6; + optional int32 playtime_mac_forever = 7; + optional int32 playtime_linux_forever = 8; + optional int32 playtime_deck_forever = 16; + optional uint32 first_windows_playtime = 9; + optional uint32 first_mac_playtime = 10; + optional uint32 first_linux_playtime = 11; + optional uint32 first_deck_playtime = 17; + optional uint32 last_windows_playtime = 12; + optional uint32 last_mac_playtime = 13; + optional uint32 last_linux_playtime = 14; + optional uint32 last_deck_playtime = 18; + optional uint32 playtime_disconnected = 15; + } + + repeated .CPlayer_GetLastPlayedTimes_Response.Game games = 1; +} + +message CPlayer_GetTimeSSAAccepted_Request { +} + +message CPlayer_GetTimeSSAAccepted_Response { + optional uint32 time_ssa_accepted = 1; + optional uint32 time_ssa_updated = 2; + optional uint32 time_chinassa_accepted = 3; +} + +message CPlayer_AcceptSSA_Request { + optional .EAgreementType agreement_type = 1 [default = k_EAgreementType_Invalid]; + optional uint32 time_signed_utc = 2; +} + +message CPlayer_AcceptSSA_Response { +} + +message CPlayer_GetNicknameList_Request { +} + +message CPlayer_GetNicknameList_Response { + message PlayerNickname { + optional fixed32 accountid = 1; + optional string nickname = 2; + } + + repeated .CPlayer_GetNicknameList_Response.PlayerNickname nicknames = 1; +} + +message CPlayer_GetPerFriendPreferences_Request { +} + +message PerFriendPreferences { + optional fixed32 accountid = 1; + optional string nickname = 2; + optional .ENotificationSetting notifications_showingame = 3 [default = k_ENotificationSettingNotifyUseDefault]; + optional .ENotificationSetting notifications_showonline = 4 [default = k_ENotificationSettingNotifyUseDefault]; + optional .ENotificationSetting notifications_showmessages = 5 [default = k_ENotificationSettingNotifyUseDefault]; + optional .ENotificationSetting sounds_showingame = 6 [default = k_ENotificationSettingNotifyUseDefault]; + optional .ENotificationSetting sounds_showonline = 7 [default = k_ENotificationSettingNotifyUseDefault]; + optional .ENotificationSetting sounds_showmessages = 8 [default = k_ENotificationSettingNotifyUseDefault]; + optional .ENotificationSetting notifications_sendmobile = 9 [default = k_ENotificationSettingNotifyUseDefault]; +} + +message CPlayer_GetPerFriendPreferences_Response { + repeated .PerFriendPreferences preferences = 1; +} + +message CPlayer_SetPerFriendPreferences_Request { + optional .PerFriendPreferences preferences = 1; +} + +message CPlayer_SetPerFriendPreferences_Response { +} + +message CPlayer_AddFriend_Request { + optional fixed64 steamid = 1; +} + +message CPlayer_AddFriend_Response { + optional bool invite_sent = 1; + optional uint32 friend_relationship = 2; + optional int32 result = 3; +} + +message CPlayer_RemoveFriend_Request { + optional fixed64 steamid = 1; +} + +message CPlayer_RemoveFriend_Response { + optional uint32 friend_relationship = 1; +} + +message CPlayer_IgnoreFriend_Request { + optional fixed64 steamid = 1; + optional bool unignore = 2; +} + +message CPlayer_IgnoreFriend_Response { + optional uint32 friend_relationship = 1; +} + +message CPlayer_GetCommunityPreferences_Request { +} + +message CPlayer_CommunityPreferences { + optional bool parenthesize_nicknames = 4 [default = false]; + optional .ETextFilterSetting text_filter_setting = 5 [default = k_ETextFilterSettingSteamLabOptedOut]; + optional bool text_filter_ignore_friends = 6 [default = true]; + optional uint32 text_filter_words_revision = 7; + optional uint32 timestamp_updated = 3; +} + +message CPlayer_GetCommunityPreferences_Response { + optional .CPlayer_CommunityPreferences preferences = 1; + optional .UserContentDescriptorPreferences content_descriptor_preferences = 2; +} + +message CPlayer_SetCommunityPreferences_Request { + optional .CPlayer_CommunityPreferences preferences = 1; +} + +message CPlayer_SetCommunityPreferences_Response { +} + +message CPlayer_GetTextFilterWords_Request { +} + +message CPlayer_TextFilterWords { + repeated string text_filter_custom_banned_words = 1; + repeated string text_filter_custom_clean_words = 2; + optional uint32 text_filter_words_revision = 3; +} + +message CPlayer_GetTextFilterWords_Response { + optional .CPlayer_TextFilterWords words = 1; +} + +message CPlayer_GetNewSteamAnnouncementState_Request { + optional int32 language = 1; +} + +message CPlayer_GetNewSteamAnnouncementState_Response { + optional .ENewSteamAnnouncementState state = 1 [default = k_ENewSteamAnnouncementState_Invalid]; + optional string announcement_headline = 2; + optional string announcement_url = 3; + optional uint32 time_posted = 4; + optional uint64 announcement_gid = 5; +} + +message CPlayer_UpdateSteamAnnouncementLastRead_Request { + optional uint64 announcement_gid = 1; + optional uint32 time_posted = 2; +} + +message CPlayer_UpdateSteamAnnouncementLastRead_Response { +} + +message CPlayer_GetPrivacySettings_Request { +} + +message CPrivacySettings { + optional int32 privacy_state = 1; + optional int32 privacy_state_inventory = 2; + optional int32 privacy_state_gifts = 3; + optional int32 privacy_state_ownedgames = 4; + optional int32 privacy_state_playtime = 5; + optional int32 privacy_state_friendslist = 6; +} + +message CPlayer_GetPrivacySettings_Response { + optional .CPrivacySettings privacy_settings = 1; +} + +message CPlayer_GetDurationControl_Request { + optional uint32 appid = 1; +} + +message CPlayer_GetDurationControl_Response { + optional bool is_enabled = 1; + optional int32 seconds = 2; + optional int32 seconds_today = 3; + optional bool is_steamchina_account = 4; + optional bool is_age_verified = 5; + optional uint32 seconds_allowed_today = 6; + optional bool age_verification_pending = 7; + optional bool block_minors = 8; +} + +message CPlayer_RecordDisconnectedPlaytime_Request { + message PlayHistory { + optional uint32 appid = 1; + optional uint32 session_time_start = 2; + optional uint32 seconds = 3; + optional bool offline = 4; + optional uint32 owner = 5; + } + + repeated .CPlayer_RecordDisconnectedPlaytime_Request.PlayHistory play_sessions = 3; +} + +message CPlayer_RecordDisconnectedPlaytime_Response { +} + +message CPlayer_LastPlayedTimes_Notification { + repeated .CPlayer_GetLastPlayedTimes_Response.Game games = 1; +} + +message CPlayer_FriendNicknameChanged_Notification { + optional fixed32 accountid = 1; + optional string nickname = 2; + optional bool is_echo_to_self = 3; +} + +message CPlayer_FriendEquippedProfileItemsChanged_Notification { + optional fixed32 accountid = 1; +} + +message CPlayer_NewSteamAnnouncementState_Notification { + optional .ENewSteamAnnouncementState state = 1 [default = k_ENewSteamAnnouncementState_Invalid]; + optional string announcement_headline = 2; + optional string announcement_url = 3; + optional uint32 time_posted = 4; + optional uint64 announcement_gid = 5; +} + +message CPlayer_CommunityPreferencesChanged_Notification { + optional .CPlayer_CommunityPreferences preferences = 1; + optional .UserContentDescriptorPreferences content_descriptor_preferences = 2; +} + +message CPlayer_TextFilterWordsChanged_Notification { + optional .CPlayer_TextFilterWords words = 1; +} + +message CPlayer_PerFriendPreferencesChanged_Notification { + optional fixed32 accountid = 1; + optional .PerFriendPreferences preferences = 2; +} + +message CPlayer_PrivacySettingsChanged_Notification { + optional .CPrivacySettings privacy_settings = 1; +} + +service Player { + rpc GetRecentPlaytimeSessionsForChild (.CPlayer_GetRecentPlaytimeSessionsForChild_Request) returns (.CPlayer_GetRecentPlaytimeSessionsForChild_Response); + rpc GetPlayerLinkDetails (.CPlayer_GetPlayerLinkDetails_Request) returns (.CPlayer_GetPlayerLinkDetails_Response); + rpc GetMutualFriendsForIncomingInvites (.CPlayer_GetMutualFriendsForIncomingInvites_Request) returns (.CPlayer_GetMutualFriendsForIncomingInvites_Response); + rpc GetOwnedGames (.CPlayer_GetOwnedGames_Request) returns (.CPlayer_GetOwnedGames_Response); + rpc GetPlayNext (.CPlayer_GetPlayNext_Request) returns (.CPlayer_GetPlayNext_Response); + rpc GetFriendsGameplayInfo (.CPlayer_GetFriendsGameplayInfo_Request) returns (.CPlayer_GetFriendsGameplayInfo_Response); + rpc GetGameBadgeLevels (.CPlayer_GetGameBadgeLevels_Request) returns (.CPlayer_GetGameBadgeLevels_Response); + rpc GetProfileBackground (.CPlayer_GetProfileBackground_Request) returns (.CPlayer_GetProfileBackground_Response); + rpc SetProfileBackground (.CPlayer_SetProfileBackground_Request) returns (.CPlayer_SetProfileBackground_Response); + rpc GetMiniProfileBackground (.CPlayer_GetMiniProfileBackground_Request) returns (.CPlayer_GetMiniProfileBackground_Response); + rpc SetMiniProfileBackground (.CPlayer_SetMiniProfileBackground_Request) returns (.CPlayer_SetMiniProfileBackground_Response); + rpc GetAvatarFrame (.CPlayer_GetAvatarFrame_Request) returns (.CPlayer_GetAvatarFrame_Response); + rpc SetAvatarFrame (.CPlayer_SetAvatarFrame_Request) returns (.CPlayer_SetAvatarFrame_Response); + rpc GetAnimatedAvatar (.CPlayer_GetAnimatedAvatar_Request) returns (.CPlayer_GetAnimatedAvatar_Response); + rpc SetAnimatedAvatar (.CPlayer_SetAnimatedAvatar_Request) returns (.CPlayer_SetAnimatedAvatar_Response); + rpc GetSteamDeckKeyboardSkin (.CPlayer_GetSteamDeckKeyboardSkin_Request) returns (.CPlayer_GetSteamDeckKeyboardSkin_Response); + rpc SetSteamDeckKeyboardSkin (.CPlayer_SetSteamDeckKeyboardSkin_Request) returns (.CPlayer_SetSteamDeckKeyboardSkin_Response); + rpc GetProfileItemsOwned (.CPlayer_GetProfileItemsOwned_Request) returns (.CPlayer_GetProfileItemsOwned_Response); + rpc GetProfileItemsEquipped (.CPlayer_GetProfileItemsEquipped_Request) returns (.CPlayer_GetProfileItemsEquipped_Response); + rpc SetEquippedProfileItemFlags (.CPlayer_SetEquippedProfileItemFlags_Request) returns (.CPlayer_SetEquippedProfileItemFlags_Response); + rpc GetEmoticonList (.CPlayer_GetEmoticonList_Request) returns (.CPlayer_GetEmoticonList_Response); + rpc GetCommunityBadgeProgress (.CPlayer_GetCommunityBadgeProgress_Request) returns (.CPlayer_GetCommunityBadgeProgress_Response); + rpc GetTopAchievementsForGames (.CPlayer_GetTopAchievementsForGames_Request) returns (.CPlayer_GetTopAchievementsForGames_Response); + rpc GetAchievementsProgress (.CPlayer_GetAchievementsProgress_Request) returns (.CPlayer_GetAchievementsProgress_Response); + rpc GetGameAchievements (.CPlayer_GetGameAchievements_Request) returns (.CPlayer_GetGameAchievements_Response); + rpc GetFavoriteBadge (.CPlayer_GetFavoriteBadge_Request) returns (.CPlayer_GetFavoriteBadge_Response); + rpc SetFavoriteBadge (.CPlayer_SetFavoriteBadge_Request) returns (.CPlayer_SetFavoriteBadge_Response); + rpc GetProfileCustomization (.CPlayer_GetProfileCustomization_Request) returns (.CPlayer_GetProfileCustomization_Response); + rpc GetPurchasedProfileCustomizations (.CPlayer_GetPurchasedProfileCustomizations_Request) returns (.CPlayer_GetPurchasedProfileCustomizations_Response); + rpc GetPurchasedAndUpgradedProfileCustomizations (.CPlayer_GetPurchasedAndUpgradedProfileCustomizations_Request) returns (.CPlayer_GetPurchasedAndUpgradedProfileCustomizations_Response); + rpc GetProfileThemesAvailable (.CPlayer_GetProfileThemesAvailable_Request) returns (.CPlayer_GetProfileThemesAvailable_Response); + rpc SetProfileTheme (.CPlayer_SetProfileTheme_Request) returns (.CPlayer_SetProfileTheme_Response); + rpc SetProfilePreferences (.CPlayer_SetProfilePreferences_Request) returns (.CPlayer_SetProfilePreferences_Response); + rpc PostStatusToFriends (.CPlayer_PostStatusToFriends_Request) returns (.CPlayer_PostStatusToFriends_Response); + rpc GetPostedStatus (.CPlayer_GetPostedStatus_Request) returns (.CPlayer_GetPostedStatus_Response); + rpc DeletePostedStatus (.CPlayer_DeletePostedStatus_Request) returns (.CPlayer_DeletePostedStatus_Response); + rpc ClientGetLastPlayedTimes (.CPlayer_GetLastPlayedTimes_Request) returns (.CPlayer_GetLastPlayedTimes_Response); + rpc GetTimeSSAAccepted (.CPlayer_GetTimeSSAAccepted_Request) returns (.CPlayer_GetTimeSSAAccepted_Response); + rpc AcceptSSA (.CPlayer_AcceptSSA_Request) returns (.CPlayer_AcceptSSA_Response); + rpc GetNicknameList (.CPlayer_GetNicknameList_Request) returns (.CPlayer_GetNicknameList_Response); + rpc GetPerFriendPreferences (.CPlayer_GetPerFriendPreferences_Request) returns (.CPlayer_GetPerFriendPreferences_Response); + rpc SetPerFriendPreferences (.CPlayer_SetPerFriendPreferences_Request) returns (.CPlayer_SetPerFriendPreferences_Response); + rpc AddFriend (.CPlayer_AddFriend_Request) returns (.CPlayer_AddFriend_Response); + rpc RemoveFriend (.CPlayer_RemoveFriend_Request) returns (.CPlayer_RemoveFriend_Response); + rpc IgnoreFriend (.CPlayer_IgnoreFriend_Request) returns (.CPlayer_IgnoreFriend_Response); + rpc GetCommunityPreferences (.CPlayer_GetCommunityPreferences_Request) returns (.CPlayer_GetCommunityPreferences_Response); + rpc SetCommunityPreferences (.CPlayer_SetCommunityPreferences_Request) returns (.CPlayer_SetCommunityPreferences_Response); + rpc GetTextFilterWords (.CPlayer_GetTextFilterWords_Request) returns (.CPlayer_GetTextFilterWords_Response); + rpc GetNewSteamAnnouncementState (.CPlayer_GetNewSteamAnnouncementState_Request) returns (.CPlayer_GetNewSteamAnnouncementState_Response); + rpc UpdateSteamAnnouncementLastRead (.CPlayer_UpdateSteamAnnouncementLastRead_Request) returns (.CPlayer_UpdateSteamAnnouncementLastRead_Response); + rpc GetPrivacySettings (.CPlayer_GetPrivacySettings_Request) returns (.CPlayer_GetPrivacySettings_Response); + rpc GetDurationControl (.CPlayer_GetDurationControl_Request) returns (.CPlayer_GetDurationControl_Response); + rpc RecordDisconnectedPlaytime (.CPlayer_RecordDisconnectedPlaytime_Request) returns (.CPlayer_RecordDisconnectedPlaytime_Response); +} + +service PlayerClient { + option (service_execution_site) = k_EProtoExecutionSiteSteamClient; + + rpc NotifyLastPlayedTimes (.CPlayer_LastPlayedTimes_Notification) returns (.NoResponse); + rpc NotifyFriendNicknameChanged (.CPlayer_FriendNicknameChanged_Notification) returns (.NoResponse); + rpc NotifyFriendEquippedProfileItemsChanged (.CPlayer_FriendEquippedProfileItemsChanged_Notification) returns (.NoResponse); + rpc NotifyNewSteamAnnouncementState (.CPlayer_NewSteamAnnouncementState_Notification) returns (.NoResponse); + rpc NotifyCommunityPreferencesChanged (.CPlayer_CommunityPreferencesChanged_Notification) returns (.NoResponse); + rpc NotifyTextFilterWordsChanged (.CPlayer_TextFilterWordsChanged_Notification) returns (.NoResponse); + rpc NotifyPerFriendPreferencesChanged (.CPlayer_PerFriendPreferencesChanged_Notification) returns (.NoResponse); + rpc NotifyPrivacyPrivacySettingsChanged (.CPlayer_PrivacySettingsChanged_Notification) returns (.NoResponse); +} diff --git a/Protobufs/steam/steammessages_publishedfile.steamclient.proto b/Protobufs/steam/steammessages_publishedfile.steamclient.proto new file mode 100644 index 0000000..6576329 --- /dev/null +++ b/Protobufs/steam/steammessages_publishedfile.steamclient.proto @@ -0,0 +1,761 @@ +import "steammessages_base.proto"; +import "steammessages_unified_base.steamclient.proto"; +import "enums_productinfo.proto"; + +option cc_generic_services = true; + +enum EPublishedFileRevision { + k_EPublishedFileRevision_Default = 0; + k_EPublishedFileRevision_Latest = 1; + k_EPublishedFileRevision_ApprovedSnapshot = 2; + k_EPublishedFileRevision_ApprovedSnapshot_China = 3; + k_EPublishedFileRevision_RejectedSnapshot = 4; + k_EPublishedFileRevision_RejectedSnapshot_China = 5; + k_EPublishedFileRevision_AuthorSnapshot = 6; +} + +enum EPublishedFileForSaleStatus { + k_PFFSS_NotForSale = 0; + k_PFFSS_PendingApproval = 1; + k_PFFSS_ApprovedForSale = 2; + k_PFFSS_RejectedForSale = 3; + k_PFFSS_NoLongerForSale = 4; + k_PFFSS_TentativeApproval = 5; +} + +message CPublishedFile_Vote_Request { + optional uint64 publishedfileid = 1; + optional bool vote_up = 2; +} + +message CPublishedFile_Vote_Response { +} + +message CPublishedFile_Subscribe_Request { + optional uint64 publishedfileid = 1; + optional uint32 list_type = 2; + optional int32 appid = 3; + optional bool notify_client = 4; + optional bool include_dependencies = 5; +} + +message CPublishedFile_Subscribe_Response { +} + +message CPublishedFile_Unsubscribe_Request { + optional uint64 publishedfileid = 1; + optional uint32 list_type = 2; + optional int32 appid = 3; + optional bool notify_client = 4; +} + +message CPublishedFile_Unsubscribe_Response { +} + +message CPublishedFile_CanSubscribe_Request { + optional uint64 publishedfileid = 1; +} + +message CPublishedFile_CanSubscribe_Response { + optional bool can_subscribe = 1; +} + +message CPublishedFile_GetSubSectionData_Request { + optional uint64 publishedfileid = 1; + optional bool for_table_of_contents = 2; + optional uint64 specific_sectionid = 3; + optional .EPublishedFileRevision desired_revision = 4 [default = k_EPublishedFileRevision_Default]; +} + +message PublishedFileSubSection { + optional uint64 sectionid = 1; + optional string title = 2; + optional string description_text = 3; + optional uint32 sort_order = 4; +} + +message CPublishedFile_GetSubSectionData_Response { + repeated .PublishedFileSubSection sub_sections = 1; +} + +message CPublishedFile_Publish_Request { + optional uint32 appid = 1; + optional uint32 consumer_appid = 2; + optional string cloudfilename = 3; + optional string preview_cloudfilename = 4; + optional string title = 5; + optional string file_description = 6; + optional uint32 file_type = 7; + optional string consumer_shortcut_name = 8; + optional string youtube_username = 9; + optional string youtube_videoid = 10; + optional uint32 visibility = 11; + optional string redirect_uri = 12; + repeated string tags = 13; + optional string collection_type = 14; + optional string game_type = 15; + optional string url = 16; +} + +message CPublishedFile_Publish_Response { + optional uint64 publishedfileid = 1; + optional string redirect_uri = 2; +} + +message CPublishedFile_GetDetails_Request { + repeated fixed64 publishedfileids = 1; + optional bool includetags = 2; + optional bool includeadditionalpreviews = 3; + optional bool includechildren = 4; + optional bool includekvtags = 5; + optional bool includevotes = 6; + optional bool short_description = 8; + optional bool includeforsaledata = 10; + optional bool includemetadata = 11; + optional int32 language = 12 [default = 0]; + optional uint32 return_playtime_stats = 13; + optional uint32 appid = 14; + optional bool strip_description_bbcode = 15; + optional .EPublishedFileRevision desired_revision = 16 [default = k_EPublishedFileRevision_Default]; + optional bool includereactions = 17 [default = false]; + optional bool admin_query = 18; +} + +message PublishedFileAuthorSnapshot { + optional uint32 timestamp = 1; + optional string game_branch_min = 2; + optional string game_branch_max = 3; + optional fixed64 manifestid = 4; +} + +message PublishedFileDetails { + message Tag { + optional string tag = 1; + optional bool adminonly = 2; + optional string display_name = 3; + } + + message Preview { + optional uint64 previewid = 1; + optional uint32 sortorder = 2; + optional string url = 3; + optional uint32 size = 4; + optional string filename = 5; + optional string youtubevideoid = 6; + optional uint32 preview_type = 7; + optional string external_reference = 8; + } + + message Child { + optional uint64 publishedfileid = 1; + optional uint32 sortorder = 2; + optional uint32 file_type = 3; + } + + message KVTag { + optional string key = 1; + optional string value = 2; + } + + message VoteData { + optional float score = 1; + optional uint32 votes_up = 2; + optional uint32 votes_down = 3; + } + + message ForSaleData { + optional bool is_for_sale = 1; + optional uint32 price_category = 2; + optional .EPublishedFileForSaleStatus estatus = 3 [default = k_PFFSS_NotForSale]; + optional uint32 price_category_floor = 4; + optional bool price_is_pay_what_you_want = 5; + optional uint32 discount_percentage = 6; + } + + message PlaytimeStats { + optional uint64 playtime_seconds = 1; + optional uint64 num_sessions = 2; + } + + message Reaction { + optional uint32 reactionid = 1; + optional uint32 count = 2; + } + + optional uint32 result = 1; + optional uint64 publishedfileid = 2; + optional fixed64 creator = 3; + optional uint32 creator_appid = 4; + optional uint32 consumer_appid = 5; + optional uint32 consumer_shortcutid = 6; + optional string filename = 7; + optional uint64 file_size = 8; + optional uint64 preview_file_size = 9; + optional string file_url = 10; + optional string preview_url = 11; + optional string youtubevideoid = 12; + optional string url = 13; + optional fixed64 hcontent_file = 14; + optional fixed64 hcontent_preview = 15; + optional string title = 16; + optional string file_description = 17; + optional string short_description = 18; + optional uint32 time_created = 19; + optional uint32 time_updated = 20; + optional uint32 visibility = 21; + optional uint32 flags = 22; + optional bool workshop_file = 23; + optional bool workshop_accepted = 24; + optional bool show_subscribe_all = 25; + optional int32 num_comments_developer = 26; + optional int32 num_comments_public = 27; + optional bool banned = 28; + optional string ban_reason = 29; + optional fixed64 banner = 30; + optional bool can_be_deleted = 31; + optional bool incompatible = 32; + optional string app_name = 33; + optional uint32 file_type = 34; + optional bool can_subscribe = 35; + optional uint32 subscriptions = 36; + optional uint32 favorited = 37; + optional uint32 followers = 38; + optional uint32 lifetime_subscriptions = 39; + optional uint32 lifetime_favorited = 40; + optional uint32 lifetime_followers = 41; + optional uint64 lifetime_playtime = 62; + optional uint64 lifetime_playtime_sessions = 63; + optional uint32 views = 42; + optional uint32 image_width = 43; + optional uint32 image_height = 44; + optional string image_url = 45; + optional bool spoiler_tag = 46; + optional uint32 shortcutid = 47; + optional string shortcutname = 48; + optional uint32 num_children = 49; + optional uint32 num_reports = 50; + repeated .PublishedFileDetails.Preview previews = 51; + repeated .PublishedFileDetails.Tag tags = 52; + repeated .PublishedFileDetails.Child children = 53; + repeated .PublishedFileDetails.KVTag kvtags = 54; + optional .PublishedFileDetails.VoteData vote_data = 55; + optional .PublishedFileDetails.PlaytimeStats playtime_stats = 64; + optional uint32 time_subscribed = 56; + optional .PublishedFileDetails.ForSaleData for_sale_data = 57; + optional string metadata = 58; + optional int32 language = 61 [default = 0]; + optional bool maybe_inappropriate_sex = 65; + optional bool maybe_inappropriate_violence = 66; + repeated .EContentDescriptorID content_descriptorids = 72; + optional uint64 revision_change_number = 67; + optional .EPublishedFileRevision revision = 68 [default = k_EPublishedFileRevision_Default]; + repeated .EPublishedFileRevision available_revisions = 69; + repeated .PublishedFileDetails.Reaction reactions = 70; + optional .EBanContentCheckResult ban_text_check_result = 71 [default = k_EBanContentCheckResult_NotScanned]; + optional float search_score = 73; + optional uint64 external_asset_id = 74; + repeated .PublishedFileAuthorSnapshot author_snapshots = 75; +} + +message CPublishedFile_GetDetails_Response { + repeated .PublishedFileDetails publishedfiledetails = 1; +} + +message CPublishedFile_GetItemInfo_Request { + message WorkshopItem { + optional fixed64 published_file_id = 1; + optional uint32 time_updated = 2; + optional .EPublishedFileRevision desired_revision = 3 [default = k_EPublishedFileRevision_Default]; + } + + optional uint32 appid = 1; + optional uint32 last_time_updated = 2; + repeated .CPublishedFile_GetItemInfo_Request.WorkshopItem workshop_items = 3; +} + +message CPublishedFile_GetItemInfo_Response { + message WorkshopItemInfo { + optional fixed64 published_file_id = 1; + optional uint32 time_updated = 2; + optional fixed64 manifest_id = 3; + optional uint32 flags = 4; + optional .EPublishedFileRevision revision = 5 [default = k_EPublishedFileRevision_Default]; + repeated .PublishedFileAuthorSnapshot author_snapshots = 6; + } + + optional uint32 update_time = 1; + repeated .CPublishedFile_GetItemInfo_Response.WorkshopItemInfo workshop_items = 2; + repeated fixed64 private_items = 3; +} + +message CPublishedFile_GetUserFiles_Request { + message KVTag { + optional string key = 1; + optional string value = 2; + } + + message TagGroup { + repeated string tags = 1; + } + + optional fixed64 steamid = 1; + optional uint32 appid = 2; + optional uint32 shortcutid = 3; + optional uint32 page = 4 [default = 1]; + optional uint32 numperpage = 5 [default = 1]; + optional string type = 6 [default = "myfiles"]; + optional string sortmethod = 7 [default = "lastupdated"]; + optional uint32 privacy = 9; + repeated string requiredtags = 10; + repeated string excludedtags = 11; + repeated .CPublishedFile_GetUserFiles_Request.KVTag required_kv_tags = 30; + optional uint32 filetype = 14; + optional uint32 creator_appid = 15; + optional string match_cloud_filename = 16; + optional uint32 cache_max_age_seconds = 27 [default = 0]; + optional int32 language = 29 [default = 0]; + repeated .CPublishedFile_GetUserFiles_Request.TagGroup taggroups = 34; + repeated .EContentDescriptorID excluded_content_descriptors = 37; + optional bool admin_query = 38; + optional bool totalonly = 17; + optional bool ids_only = 18; + optional bool return_vote_data = 19 [default = true]; + optional bool return_tags = 20; + optional bool return_kv_tags = 21 [default = true]; + optional bool return_previews = 22; + optional bool return_children = 23; + optional bool return_short_description = 24 [default = true]; + optional bool return_for_sale_data = 26; + optional bool return_metadata = 28 [default = false]; + optional uint32 return_playtime_stats = 31; + optional bool strip_description_bbcode = 32; + optional bool return_reactions = 35 [default = false]; + optional uint32 startindex_override = 25; + optional .EPublishedFileRevision desired_revision = 33 [default = k_EPublishedFileRevision_Default]; + optional bool return_apps = 36; +} + +message CPublishedFile_GetUserFiles_Response { + message App { + optional uint32 appid = 1; + optional string name = 2; + optional uint32 shortcutid = 3; + optional bool private = 4; + } + + optional uint32 total = 1; + optional uint32 startindex = 2; + repeated .PublishedFileDetails publishedfiledetails = 3; + repeated .CPublishedFile_GetUserFiles_Response.App apps = 4; +} + +message CPublishedFile_AreFilesInSubscriptionList_Request { + optional uint32 appid = 1; + repeated fixed64 publishedfileids = 2; + optional uint32 listtype = 3; + optional uint32 filetype = 4; + optional uint32 workshopfiletype = 5; +} + +message CPublishedFile_AreFilesInSubscriptionList_Response { + message InList { + optional fixed64 publishedfileid = 1; + optional bool inlist = 2; + } + + repeated .CPublishedFile_AreFilesInSubscriptionList_Response.InList files = 1; +} + +message CPublishedFile_Update_Request { + optional uint32 appid = 1; + optional fixed64 publishedfileid = 2; + optional string title = 3; + optional string file_description = 4; + optional uint32 visibility = 5; + repeated string tags = 6; + optional string filename = 7; + optional string preview_filename = 8; + optional bool spoiler_tag = 10; + optional uint32 image_width = 15; + optional uint32 image_height = 16; + optional int32 language = 17; +} + +message CPublishedFile_Update_Response { +} + +message CPublishedFile_Delete_Request { + optional fixed64 publishedfileid = 1; + optional uint32 appid = 5; +} + +message CPublishedFile_Delete_Response { +} + +message CPublishedFile_GetChangeHistoryEntry_Request { + optional fixed64 publishedfileid = 1; + optional uint32 timestamp = 2; + optional int32 language = 3; +} + +message CPublishedFile_GetChangeHistoryEntry_Response { + optional string change_description = 1; + optional int32 language = 2; + optional bool saved_snapshot = 3; + optional string snapshot_game_branch_min = 4; + optional string snapshot_game_branch_max = 5; + optional fixed64 manifest_id = 6; +} + +message CPublishedFile_GetChangeHistory_Request { + optional fixed64 publishedfileid = 1; + optional bool total_only = 2; + optional uint32 startindex = 3; + optional uint32 count = 4; + optional int32 language = 5 [default = 0]; +} + +message CPublishedFile_GetChangeHistory_Response { + message ChangeLog { + optional uint32 timestamp = 1; + optional string change_description = 2; + optional int32 language = 3; + optional bool saved_snapshot = 4; + optional string snapshot_game_branch_min = 5; + optional string snapshot_game_branch_max = 6; + optional fixed64 manifest_id = 7; + } + + repeated .CPublishedFile_GetChangeHistory_Response.ChangeLog changes = 1; + optional uint32 total = 2; +} + +message CPublishedFile_RefreshVotingQueue_Request { + optional uint32 appid = 1; + optional uint32 matching_file_type = 2; + repeated string tags = 3; + optional bool match_all_tags = 4 [default = true]; + repeated string excluded_tags = 5; + optional uint32 desired_queue_size = 6; + optional .EPublishedFileRevision desired_revision = 8 [default = k_EPublishedFileRevision_Default]; +} + +message CPublishedFile_RefreshVotingQueue_Response { +} + +message CPublishedFile_QueryFiles_Request { + message KVTag { + optional string key = 1; + optional string value = 2; + } + + message TagGroup { + repeated string tags = 1; + } + + message DateRange { + optional uint32 timestamp_start = 1; + optional uint32 timestamp_end = 2; + } + + optional uint32 query_type = 1; + optional uint32 page = 2; + optional string cursor = 39; + optional uint32 numperpage = 3 [default = 1]; + optional uint32 creator_appid = 4; + optional uint32 appid = 5; + repeated string requiredtags = 6; + repeated string excludedtags = 7; + optional bool match_all_tags = 8 [default = true]; + repeated string required_flags = 9; + repeated string omitted_flags = 10; + optional string search_text = 11; + optional uint32 filetype = 12; + optional fixed64 child_publishedfileid = 13; + optional uint32 days = 14; + optional bool include_recent_votes_only = 15; + optional uint32 cache_max_age_seconds = 31 [default = 0]; + optional int32 language = 33 [default = 0]; + repeated .CPublishedFile_QueryFiles_Request.KVTag required_kv_tags = 34; + repeated .CPublishedFile_QueryFiles_Request.TagGroup taggroups = 42; + optional .CPublishedFile_QueryFiles_Request.DateRange date_range_created = 44; + optional .CPublishedFile_QueryFiles_Request.DateRange date_range_updated = 45; + repeated .EContentDescriptorID excluded_content_descriptors = 46; + optional bool admin_query = 47; + optional bool totalonly = 16; + optional bool ids_only = 35; + optional bool return_vote_data = 17; + optional bool return_tags = 18; + optional bool return_kv_tags = 19; + optional bool return_previews = 20; + optional bool return_children = 21; + optional bool return_short_description = 22; + optional bool return_for_sale_data = 30; + optional bool return_metadata = 32 [default = false]; + optional uint32 return_playtime_stats = 36; + optional bool return_details = 37; + optional bool strip_description_bbcode = 38; + optional .EPublishedFileRevision desired_revision = 40 [default = k_EPublishedFileRevision_Default]; + optional bool return_reactions = 43 [default = false]; +} + +message CPublishedFile_QueryFiles_Response { + optional uint32 total = 1; + repeated .PublishedFileDetails publishedfiledetails = 2; + optional string next_cursor = 3; +} + +message CPublishedFile_AddAppRelationship_Request { + optional uint64 publishedfileid = 1; + optional uint32 appid = 2; + optional uint32 relationship = 3; +} + +message CPublishedFile_AddAppRelationship_Response { +} + +message CPublishedFile_RemoveAppRelationship_Request { + optional uint64 publishedfileid = 1; + optional uint32 appid = 2; + optional uint32 relationship = 3; +} + +message CPublishedFile_RemoveAppRelationship_Response { +} + +message CPublishedFile_GetAppRelationships_Request { + optional uint64 publishedfileid = 1; +} + +message CPublishedFile_GetAppRelationships_Response { + message AppRelationship { + optional uint32 appid = 1; + optional uint32 relationship = 2; + } + + repeated .CPublishedFile_GetAppRelationships_Response.AppRelationship app_relationships = 3; +} + +message CPublishedFile_GetAppRelationshipsBatched_Request { + repeated uint64 publishedfileids = 1; + optional uint32 filter_relationship = 2; +} + +message CPublishedFile_GetAppRelationshipsBatched_Response { + message AppRelationship { + optional uint32 appid = 1; + optional uint32 relationship = 2; + } + + message PublishedFileAppRelationship { + optional uint64 publishedfileid = 1; + optional uint32 result = 2; + repeated .CPublishedFile_GetAppRelationshipsBatched_Response.AppRelationship app_relationships = 3; + } + + repeated .CPublishedFile_GetAppRelationshipsBatched_Response.PublishedFileAppRelationship relationships = 1; +} + +message CPublishedFile_StartPlaytimeTracking_Request { + optional uint32 appid = 1; + repeated uint64 publishedfileids = 2; +} + +message CPublishedFile_StartPlaytimeTracking_Response { +} + +message CPublishedFile_StopPlaytimeTracking_Request { + optional uint32 appid = 1; + repeated uint64 publishedfileids = 2; +} + +message CPublishedFile_StopPlaytimeTracking_Response { +} + +message CPublishedFile_StopPlaytimeTrackingForAllAppItems_Request { + optional uint32 appid = 1; +} + +message CPublishedFile_StopPlaytimeTrackingForAllAppItems_Response { +} + +message CPublishedFile_SetPlaytimeForControllerConfigs_Request { + message ControllerConfigUsage { + optional uint64 publishedfileid = 1; + optional float seconds_active = 2; + } + + optional uint32 appid = 1; + repeated .CPublishedFile_SetPlaytimeForControllerConfigs_Request.ControllerConfigUsage controller_config_usage = 2; +} + +message CPublishedFile_SetPlaytimeForControllerConfigs_Response { +} + +message CPublishedFile_AddChild_Request { + optional uint64 publishedfileid = 1; + optional uint64 child_publishedfileid = 2; +} + +message CPublishedFile_AddChild_Response { +} + +message CPublishedFile_RemoveChild_Request { + optional uint64 publishedfileid = 1; + optional uint64 child_publishedfileid = 2; +} + +message CPublishedFile_RemoveChild_Response { +} + +message CPublishedFile_SetCollectionChildren_Request { + optional uint32 appid = 1; + optional uint64 publishedfileid = 2; + repeated uint64 children = 3; +} + +message CPublishedFile_SetCollectionChildren_Response { +} + +message CPublishedFile_SetSubscriptionListFromCollection_Request { + optional uint32 appid = 1; + optional uint32 list_type = 2; + optional uint64 publishedfileid = 3; + optional bool add_only = 4; +} + +message CPublishedFile_SetSubscriptionListFromCollection_Response { +} + +message CPublishedFile_GetUserVoteSummary_Request { + repeated fixed64 publishedfileids = 1; +} + +message CPublishedFile_GetUserVoteSummary_Response { + message VoteSummary { + optional fixed64 publishedfileid = 1; + optional bool vote_for = 2; + optional bool vote_against = 3; + optional bool reported = 4; + } + + repeated .CPublishedFile_GetUserVoteSummary_Response.VoteSummary summaries = 1; +} + +message CPublishedFile_GetItemChanges_Request { + optional uint32 appid = 1; + optional uint32 last_time_updated = 2; + optional uint32 num_items_max = 3; + optional .EPublishedFileRevision desired_revision = 4 [default = k_EPublishedFileRevision_Default]; +} + +message CPublishedFile_GetItemChanges_Response { + message WorkshopItemInfo { + optional fixed64 published_file_id = 1; + optional uint32 time_updated = 2; + optional fixed64 manifest_id = 3; + repeated .PublishedFileAuthorSnapshot author_snapshots = 4; + } + + optional uint32 update_time = 1; + repeated .CPublishedFile_GetItemChanges_Response.WorkshopItemInfo workshop_items = 2; +} + +message CPublishedFile_GetContentDescriptors_Request { + optional fixed64 publishedfileid = 1; +} + +message CPublishedFile_GetContentDescriptors_Response { + message ContentDescriptor { + optional .EContentDescriptorID descriptorid = 1 [default = k_EContentDescriptor_NudityOrSexualContent]; + optional uint32 accountid = 2; + optional uint32 timestamp = 3; + optional bool moderator_set = 4; + } + + repeated .CPublishedFile_GetContentDescriptors_Response.ContentDescriptor content_descriptors = 1; +} + +message CPublishedFile_UpdateContentDescriptors_Request { + optional fixed64 publishedfileid = 1; + repeated .EContentDescriptorID descriptors_to_add = 2; + repeated .EContentDescriptorID descriptors_to_remove = 3; +} + +message CPublishedFile_UpdateContentDescriptors_Response { + optional uint32 timestamp_updated = 1; +} + +message CPublishedFile_FileSubscribed_Notification { + message RevisionData { + optional .EPublishedFileRevision revision = 1 [default = k_EPublishedFileRevision_Default]; + optional fixed64 file_hcontent = 2; + optional uint32 rtime_updated = 3; + optional string game_branch_min = 4; + optional string game_branch_max = 5; + } + + optional fixed64 published_file_id = 1; + optional uint32 app_id = 2; + optional fixed64 file_hcontent = 3; + optional uint32 file_size = 4; + optional uint32 rtime_subscribed = 5; + optional bool is_depot_content = 6; + optional uint32 rtime_updated = 7; + optional .EPublishedFileRevision revision = 9 [default = k_EPublishedFileRevision_Default]; + repeated .CPublishedFile_FileSubscribed_Notification.RevisionData revisions = 8; +} + +message CPublishedFile_FileUnsubscribed_Notification { + optional fixed64 published_file_id = 1; + optional uint32 app_id = 2; +} + +message CPublishedFile_FileDeleted_Client_Notification { + optional fixed64 published_file_id = 1; + optional uint32 app_id = 2; +} + +service PublishedFile { + rpc Vote (.CPublishedFile_Vote_Request) returns (.CPublishedFile_Vote_Response); + rpc Subscribe (.CPublishedFile_Subscribe_Request) returns (.CPublishedFile_Subscribe_Response); + rpc Unsubscribe (.CPublishedFile_Unsubscribe_Request) returns (.CPublishedFile_Unsubscribe_Response); + rpc CanSubscribe (.CPublishedFile_CanSubscribe_Request) returns (.CPublishedFile_CanSubscribe_Response); + rpc GetSubSectionData (.CPublishedFile_GetSubSectionData_Request) returns (.CPublishedFile_GetSubSectionData_Response); + rpc Publish (.CPublishedFile_Publish_Request) returns (.CPublishedFile_Publish_Response); + rpc GetDetails (.CPublishedFile_GetDetails_Request) returns (.CPublishedFile_GetDetails_Response); + rpc GetItemInfo (.CPublishedFile_GetItemInfo_Request) returns (.CPublishedFile_GetItemInfo_Response); + rpc GetUserFiles (.CPublishedFile_GetUserFiles_Request) returns (.CPublishedFile_GetUserFiles_Response); + rpc GetUserFileCount (.CPublishedFile_GetUserFiles_Request) returns (.CPublishedFile_GetUserFiles_Response); + rpc AreFilesInSubscriptionList (.CPublishedFile_AreFilesInSubscriptionList_Request) returns (.CPublishedFile_AreFilesInSubscriptionList_Response); + rpc Update (.CPublishedFile_Update_Request) returns (.CPublishedFile_Update_Response); + rpc Delete (.CPublishedFile_Delete_Request) returns (.CPublishedFile_Delete_Response); + rpc GetChangeHistoryEntry (.CPublishedFile_GetChangeHistoryEntry_Request) returns (.CPublishedFile_GetChangeHistoryEntry_Response); + rpc GetChangeHistory (.CPublishedFile_GetChangeHistory_Request) returns (.CPublishedFile_GetChangeHistory_Response); + rpc RefreshVotingQueue (.CPublishedFile_RefreshVotingQueue_Request) returns (.CPublishedFile_RefreshVotingQueue_Response); + rpc QueryFiles (.CPublishedFile_QueryFiles_Request) returns (.CPublishedFile_QueryFiles_Response); + rpc AddAppRelationship (.CPublishedFile_AddAppRelationship_Request) returns (.CPublishedFile_AddAppRelationship_Response); + rpc RemoveAppRelationship (.CPublishedFile_RemoveAppRelationship_Request) returns (.CPublishedFile_RemoveAppRelationship_Response); + rpc GetAppRelationships (.CPublishedFile_GetAppRelationships_Request) returns (.CPublishedFile_GetAppRelationships_Response); + rpc GetAppRelationshipsBatched (.CPublishedFile_GetAppRelationshipsBatched_Request) returns (.CPublishedFile_GetAppRelationshipsBatched_Response); + rpc StartPlaytimeTracking (.CPublishedFile_StartPlaytimeTracking_Request) returns (.CPublishedFile_StartPlaytimeTracking_Response); + rpc StopPlaytimeTracking (.CPublishedFile_StopPlaytimeTracking_Request) returns (.CPublishedFile_StopPlaytimeTracking_Response); + rpc StopPlaytimeTrackingForAllAppItems (.CPublishedFile_StopPlaytimeTrackingForAllAppItems_Request) returns (.CPublishedFile_StopPlaytimeTrackingForAllAppItems_Response); + rpc SetPlaytimeForControllerConfigs (.CPublishedFile_SetPlaytimeForControllerConfigs_Request) returns (.CPublishedFile_SetPlaytimeForControllerConfigs_Response); + rpc AddChild (.CPublishedFile_AddChild_Request) returns (.CPublishedFile_AddChild_Response); + rpc RemoveChild (.CPublishedFile_RemoveChild_Request) returns (.CPublishedFile_RemoveChild_Response); + rpc SetCollectionChildren (.CPublishedFile_SetCollectionChildren_Request) returns (.CPublishedFile_SetCollectionChildren_Response); + rpc SetSubscriptionListFromCollection (.CPublishedFile_SetSubscriptionListFromCollection_Request) returns (.CPublishedFile_SetSubscriptionListFromCollection_Response); + rpc GetUserVoteSummary (.CPublishedFile_GetUserVoteSummary_Request) returns (.CPublishedFile_GetUserVoteSummary_Response); + rpc GetItemChanges (.CPublishedFile_GetItemChanges_Request) returns (.CPublishedFile_GetItemChanges_Response); + rpc GetContentDescriptors (.CPublishedFile_GetContentDescriptors_Request) returns (.CPublishedFile_GetContentDescriptors_Response); + rpc UpdateContentDescriptors (.CPublishedFile_UpdateContentDescriptors_Request) returns (.CPublishedFile_UpdateContentDescriptors_Response); +} + +service PublishedFileClient { + option (service_execution_site) = k_EProtoExecutionSiteSteamClient; + + rpc NotifyFileSubscribed (.CPublishedFile_FileSubscribed_Notification) returns (.NoResponse); + rpc NotifyFileUnsubscribed (.CPublishedFile_FileUnsubscribed_Notification) returns (.NoResponse); + rpc NotifyFileDeleted (.CPublishedFile_FileDeleted_Client_Notification) returns (.NoResponse); +} diff --git a/Protobufs/steam/steammessages_qms.steamclient.proto b/Protobufs/steam/steammessages_qms.steamclient.proto new file mode 100644 index 0000000..e8687e3 --- /dev/null +++ b/Protobufs/steam/steammessages_qms.steamclient.proto @@ -0,0 +1,111 @@ +import "steammessages_base.proto"; +import "steammessages_unified_base.steamclient.proto"; + +option cc_generic_services = true; + +enum EGameSearchAction { + k_EGameSearchAction_None = 0; + k_EGameSearchAction_Accept = 1; + k_EGameSearchAction_Decline = 2; + k_EGameSearchAction_Cancel = 3; +} + +enum EGameSearchResult { + k_EGameSearchResult_Invalid = 0; + k_EGameSearchResult_SearchInProgress = 1; + k_EGameSearchResult_SearchFailedNoHosts = 2; + k_EGameSearchResult_SearchGameFound = 3; + k_EGameSearchResult_SearchCompleteAccepted = 4; + k_EGameSearchResult_SearchCompleteDeclined = 5; + k_EGameSearchResult_SearchCanceled = 6; +} + +message GameSearchParam { + optional string key_name = 1; + repeated string value = 2; +} + +message CQueuedMatchmaking_SearchForGame_Request { + optional uint32 appid = 1; + optional .EGameSearchAction action = 2 [default = k_EGameSearchAction_None]; + repeated .GameSearchParam params = 3; + optional uint32 player_min = 4; + optional uint32 player_max = 5; + optional fixed64 steamidlobby = 6; + optional uint64 searchid = 7; +} + +message CQueuedMatchmaking_SearchForGame_Response { + optional .EGameSearchResult gamesearchresult = 1 [default = k_EGameSearchResult_Invalid]; + optional uint64 searchid = 2; + optional uint32 seconds_time_estimate = 3; + optional uint32 poll_frequency = 4; + optional uint32 count_searching = 5; + optional uint32 players_in_match = 6; + optional uint32 players_accepted = 7; + optional string connect_string = 9; + optional fixed64 steamidhost = 10; + optional uint32 rtime_match_made = 11; + optional uint32 rtime_now = 12; + optional fixed64 steamid_canceled_search = 13; +} + +message CQueuedMatchmakingGameHost_SearchForPlayers_Request { + optional uint32 appid = 1; + optional .EGameSearchAction action = 2 [default = k_EGameSearchAction_None]; + repeated .GameSearchParam params = 3; + optional uint32 player_min = 4; + optional uint32 player_max = 5; + optional uint32 player_max_team_size = 6; + optional string connection_string = 7; + optional uint64 searchid = 8; +} + +message PlayerFound { + optional fixed64 steamid = 1; + optional .EGameSearchAction action = 2 [default = k_EGameSearchAction_None]; + repeated .GameSearchParam params = 3; + optional uint32 team_number = 4; +} + +message CQueuedMatchmakingGameHost_SearchForPlayers_Response { + optional .EGameSearchResult gamesearchresult = 1 [default = k_EGameSearchResult_Invalid]; + optional uint64 searchid = 2; + optional uint32 poll_frequency = 3; + optional uint64 matchid = 4; + repeated .PlayerFound players = 5; + optional uint32 rtime_match_made = 6; + optional uint32 rtime_now = 7; +} + +message PlayerResult { + optional fixed64 steamid = 1; + optional uint32 value = 2; +} + +message CQueuedMatchmakingGameHost_SubmitPlayerResult_Request { + optional uint32 appid = 1; + optional uint64 matchid = 2; + repeated .PlayerResult player_results = 3; +} + +message CQueuedMatchmakingGameHost_SubmitPlayerResult_Response { +} + +message CQueuedMatchmakingGameHost_EndGame_Request { + optional uint32 appid = 1; + optional uint64 matchid = 2; +} + +message CQueuedMatchmakingGameHost_EndGame_Response { +} + +service QueuedMatchmaking { + rpc SearchForGame (.CQueuedMatchmaking_SearchForGame_Request) returns (.CQueuedMatchmaking_SearchForGame_Response); +} + +service QueuedMatchmakingGameHost { + rpc SearchForPlayers (.CQueuedMatchmakingGameHost_SearchForPlayers_Request) returns (.CQueuedMatchmakingGameHost_SearchForPlayers_Response); + rpc SubmitPlayerResult (.CQueuedMatchmakingGameHost_SubmitPlayerResult_Request) returns (.CQueuedMatchmakingGameHost_SubmitPlayerResult_Response); + rpc EndGame (.CQueuedMatchmakingGameHost_EndGame_Request) returns (.CQueuedMatchmakingGameHost_EndGame_Response); +} diff --git a/Protobufs/steam/steammessages_remoteclient.proto b/Protobufs/steam/steammessages_remoteclient.proto new file mode 100644 index 0000000..88ef2ab --- /dev/null +++ b/Protobufs/steam/steammessages_remoteclient.proto @@ -0,0 +1,100 @@ +import "steammessages_base.proto"; +import "steammessages_remoteclient_discovery.proto"; + +option optimize_for = SPEED; +option cc_generic_services = false; + +message CMsgRemoteClientStatus { + optional uint64 client_id = 1; + optional uint64 instance_id = 2; + optional .CMsgRemoteClientBroadcastStatus status = 3; +} + +message CMsgRemoteClientAppStatus { + message AppUpdateInfo { + optional fixed32 time_update_start = 1; + optional uint64 bytes_to_download = 2; + optional uint64 bytes_downloaded = 3; + optional uint64 bytes_to_process = 4; + optional uint64 bytes_processed = 5; + optional int32 estimated_seconds_remaining = 6 [default = -1]; + optional int32 update_result = 7; + optional uint32 update_state = 8; + } + + message ShortcutInfo { + optional string name = 1; + optional string icon = 2; + repeated string categories = 3; + optional string exepath = 4; + } + + message AppStatus { + optional uint32 app_id = 1; + optional uint32 app_state = 2; + optional .CMsgRemoteClientAppStatus.AppUpdateInfo update_info = 3; + optional .CMsgRemoteClientAppStatus.ShortcutInfo shortcut_info = 4; + optional bool vr_not_required = 5 [default = true]; + } + + repeated .CMsgRemoteClientAppStatus.AppStatus status_updates = 1; +} + +message CMsgRemoteClientStartStream { + message ReservedGamepad { + optional uint32 controller_type = 1; + optional uint32 controller_subtype = 2; + } + + optional uint32 app_id = 1; + optional int32 environment = 2; + optional int32 gamepad_count = 3; + optional int32 launch_option = 4 [default = -1]; + optional bool lock_parental_lock = 5 [default = false]; + optional string unlock_parental_lock = 6; + optional int32 maximum_resolution_x = 7; + optional int32 maximum_resolution_y = 8; + repeated .CMsgRemoteClientStartStream.ReservedGamepad gamepads = 9; + optional int32 audio_channel_count = 10 [default = 2]; + repeated .EStreamTransport supported_transport = 11; +} + +message CMsgRemoteClientStartStreamResponse { + optional int32 e_launch_result = 1 [default = 2]; + optional uint32 stream_port = 2; + repeated int32 launch_options = 3; + optional bytes auth_token = 4; + optional .EStreamTransport transport = 5 [default = k_EStreamTransportUDP]; + optional string relay_server = 6; + optional string launch_task = 7; + optional string launch_task_detail = 8; + optional int32 launch_tasks_done = 9; + optional int32 launch_tasks_total = 10; + optional string vr_connection_params = 11; +} + +message CMsgRemoteClientPing { +} + +message CMsgRemoteClientPingResponse { +} + +message CMsgRemoteClientAcceptEULA { + repeated uint32 app_id = 1; + repeated string eula_id = 2; + repeated uint32 eula_version = 3; +} + +message CMsgRemoteClientGetControllerConfig { + optional uint32 app_id = 1; + optional uint32 controller_index = 3; +} + +message CMsgRemoteClientGetControllerConfigResponse { + optional int32 eresult = 1 [default = 2]; + optional bytes config_vdf = 2; +} + +message CMsgRemoteClientStreamingEnabled { + required bool enabled = 1; +} diff --git a/Protobufs/steam/steammessages_remoteclient_discovery.proto b/Protobufs/steam/steammessages_remoteclient_discovery.proto new file mode 100644 index 0000000..bda1c3d --- /dev/null +++ b/Protobufs/steam/steammessages_remoteclient_discovery.proto @@ -0,0 +1,244 @@ +option optimize_for = SPEED; + +enum ERemoteClientBroadcastMsg { + k_ERemoteClientBroadcastMsgDiscovery = 0; + k_ERemoteClientBroadcastMsgStatus = 1; + k_ERemoteClientBroadcastMsgOffline = 2; + k_ERemoteDeviceAuthorizationRequest = 3; + k_ERemoteDeviceAuthorizationResponse = 4; + k_ERemoteDeviceStreamingRequest = 5; + k_ERemoteDeviceStreamingResponse = 6; + k_ERemoteDeviceProofRequest = 7; + k_ERemoteDeviceProofResponse = 8; + k_ERemoteDeviceAuthorizationCancelRequest = 9; + k_ERemoteDeviceStreamingCancelRequest = 10; + k_ERemoteClientBroadcastMsgClientIDDeconflict = 11; + k_ERemoteDeviceStreamTransportSignal = 12; + k_ERemoteDeviceStreamingProgress = 13; + k_ERemoteDeviceAuthorizationConfirmed = 14; +} + +enum ERemoteClientService { + k_ERemoteClientServiceNone = 0; + k_ERemoteClientServiceRemoteControl = 1; + k_ERemoteClientServiceGameStreaming = 2; + k_ERemoteClientServiceSiteLicense = 4; + k_ERemoteClientServiceContentCache = 8; + k_ERemoteClientServiceContentServer = 16; +} + +enum EVRLinkCaps { + k_EVRLinkCapsUnknown = 0; + k_EVRLinkCapsAvailable = 1; + k_EVRLinkCapsUnimplemented = 2; + k_EVRLinkCapsMissingHardwareEncoding = 3; +} + +enum ERemoteDeviceAuthorizationResult { + k_ERemoteDeviceAuthorizationSuccess = 0; + k_ERemoteDeviceAuthorizationDenied = 1; + k_ERemoteDeviceAuthorizationNotLoggedIn = 2; + k_ERemoteDeviceAuthorizationOffline = 3; + k_ERemoteDeviceAuthorizationBusy = 4; + k_ERemoteDeviceAuthorizationInProgress = 5; + k_ERemoteDeviceAuthorizationTimedOut = 6; + k_ERemoteDeviceAuthorizationFailed = 7; + k_ERemoteDeviceAuthorizationCanceled = 8; +} + +enum EStreamDeviceFormFactor { + k_EStreamDeviceFormFactorUnknown = 0; + k_EStreamDeviceFormFactorPhone = 1; + k_EStreamDeviceFormFactorTablet = 2; + k_EStreamDeviceFormFactorComputer = 3; + k_EStreamDeviceFormFactorTV = 4; + k_EStreamDeviceFormFactorVRHeadset = 5; +} + +enum EStreamTransport { + k_EStreamTransportNone = 0; + k_EStreamTransportUDP = 1; + k_EStreamTransportUDPRelay = 2; + k_EStreamTransportWebRTC_OBSOLETE = 3; + k_EStreamTransportSDR = 4; + k_EStreamTransportUDP_SNS = 5; + k_EStreamTransportUDPRelay_SNS = 6; +} + +enum EStreamInterface { + k_EStreamInterfaceDefault = 0; + k_EStreamInterfaceRecentGames = 1; + k_EStreamInterfaceBigPicture = 2; + k_EStreamInterfaceDesktop = 3; + k_EStreamInterfaceSteamVR = 4; +} + +enum ERemoteDeviceStreamingResult { + k_ERemoteDeviceStreamingSuccess = 0; + k_ERemoteDeviceStreamingUnauthorized = 1; + k_ERemoteDeviceStreamingScreenLocked = 2; + k_ERemoteDeviceStreamingFailed = 3; + k_ERemoteDeviceStreamingBusy = 4; + k_ERemoteDeviceStreamingInProgress = 5; + k_ERemoteDeviceStreamingCanceled = 6; + k_ERemoteDeviceStreamingDriversNotInstalled = 7; + k_ERemoteDeviceStreamingDisabled = 8; + k_ERemoteDeviceStreamingBroadcastingActive = 9; + k_ERemoteDeviceStreamingVRActive = 10; + k_ERemoteDeviceStreamingPINRequired = 11; + k_ERemoteDeviceStreamingTransportUnavailable = 12; + k_ERemoteDeviceStreamingInvisible = 13; + k_ERemoteDeviceStreamingGameLaunchFailed = 14; + k_ERemoteDeviceStreamingSteamVRNotInstalled = 15; +} + +message CMsgRemoteClientBroadcastHeader { + optional uint64 client_id = 1; + optional .ERemoteClientBroadcastMsg msg_type = 2 [default = k_ERemoteClientBroadcastMsgDiscovery]; + optional uint64 instance_id = 3; + optional uint64 device_id_OBSOLETE = 4; + optional bytes device_token = 5; +} + +message CMsgRemoteClientBroadcastStatus { + message User { + optional fixed64 steamid = 1; + optional uint32 auth_key_id = 2; + } + + optional int32 version = 1; + optional int32 min_version = 2; + optional uint32 connect_port = 3; + optional string hostname = 4; + optional uint32 enabled_services = 6; + optional int32 ostype = 7 [default = 0]; + optional bool is64bit = 8; + repeated .CMsgRemoteClientBroadcastStatus.User users = 9; + optional int32 euniverse = 11; + optional uint32 timestamp = 12; + optional bool screen_locked = 13; + optional bool games_running = 14; + repeated string mac_addresses = 15; + optional uint32 download_lan_peer_group = 16; + optional bool broadcasting_active = 17; + optional bool vr_active = 18; + optional uint32 content_cache_port = 19; + repeated string ip_addresses = 20; + optional string public_ip_address = 21; + optional bool remoteplay_active = 22; + optional uint32 supported_services = 23; + optional bool steam_deck = 24; + optional uint64 steam_version = 25; + optional .EVRLinkCaps vr_link_caps = 26 [default = k_EVRLinkCapsUnknown]; +} + +message CMsgRemoteClientBroadcastDiscovery { + optional uint32 seq_num = 1; + repeated uint64 client_ids = 2; +} + +message CMsgRemoteClientBroadcastClientIDDeconflict { + repeated uint64 client_ids = 2; +} + +message CMsgRemoteDeviceAuthorizationRequest { + message CKeyEscrow_Ticket { + optional bytes password = 1; + optional uint64 identifier = 2; + optional bytes payload = 3; + optional uint32 timestamp = 4; + optional .CMsgRemoteDeviceAuthorizationRequest.EKeyEscrowUsage usage = 5 [default = k_EKeyEscrowUsageStreamingDevice]; + optional string device_name = 6; + optional string device_model = 7; + optional string device_serial = 8; + optional uint32 device_provisioning_id = 9; + } + + enum EKeyEscrowUsage { + k_EKeyEscrowUsageStreamingDevice = 0; + } + + required bytes device_token = 1; + optional string device_name = 2; + required bytes encrypted_request = 3; + optional bytes auth_key = 4; + optional uint32 request_id = 5; +} + +message CMsgRemoteDeviceAuthorizationCancelRequest { +} + +message CMsgRemoteDeviceAuthorizationResponse { + required .ERemoteDeviceAuthorizationResult result = 1 [default = k_ERemoteDeviceAuthorizationSuccess]; + optional fixed64 steamid = 2; + optional bytes auth_key = 3; + optional bytes device_token = 4; +} + +message CMsgRemoteDeviceAuthorizationConfirmed { + required .ERemoteDeviceAuthorizationResult result = 1 [default = k_ERemoteDeviceAuthorizationSuccess]; +} + +message CMsgRemoteDeviceStreamingRequest { + message ReservedGamepad { + optional uint32 controller_type = 1; + optional uint32 controller_subtype = 2; + } + + required uint32 request_id = 1; + optional int32 maximum_resolution_x = 2; + optional int32 maximum_resolution_y = 3; + optional int32 audio_channel_count = 4 [default = 2]; + optional string device_version = 5; + optional bool stream_desktop = 6; + optional bytes device_token = 7; + optional bytes pin = 8; + optional bool enable_video_streaming = 9 [default = true]; + optional bool enable_audio_streaming = 10 [default = true]; + optional bool enable_input_streaming = 11 [default = true]; + optional bool network_test = 12; + optional uint64 client_id = 13; + repeated .EStreamTransport supported_transport = 14; + optional bool restricted = 15; + optional .EStreamDeviceFormFactor form_factor = 16 [default = k_EStreamDeviceFormFactorUnknown]; + optional int32 gamepad_count = 17; + repeated .CMsgRemoteDeviceStreamingRequest.ReservedGamepad gamepads = 18; + optional uint64 gameid = 19; + optional .EStreamInterface stream_interface = 20 [default = k_EStreamInterfaceDefault]; +} + +message CMsgRemoteDeviceStreamingCancelRequest { + required uint32 request_id = 1; +} + +message CMsgRemoteDeviceStreamingProgress { + required uint32 request_id = 1; + optional float progress = 2; +} + +message CMsgRemoteDeviceStreamingResponse { + required uint32 request_id = 1; + required .ERemoteDeviceStreamingResult result = 2 [default = k_ERemoteDeviceStreamingSuccess]; + optional uint32 port = 3; + optional bytes encrypted_session_key = 4; + optional .EStreamTransport transport = 6 [default = k_EStreamTransportUDP]; + optional string relay_server = 7; + optional string cert = 8; +} + +message CMsgRemoteDeviceProofRequest { + required bytes challenge = 1; + optional uint32 request_id = 2; + optional bool update_secret = 3; +} + +message CMsgRemoteDeviceProofResponse { + required bytes response = 1; + optional uint32 request_id = 2; + optional bool updated_secret = 3; +} + +message CMsgRemoteDeviceStreamTransportSignal { + optional bytes token = 1; + optional bytes payload = 2; +} diff --git a/Protobufs/steam/steammessages_remoteclient_service.steamclient.proto b/Protobufs/steam/steammessages_remoteclient_service.steamclient.proto new file mode 100644 index 0000000..6868b6a --- /dev/null +++ b/Protobufs/steam/steammessages_remoteclient_service.steamclient.proto @@ -0,0 +1,34 @@ +import "steammessages_base.proto"; +import "steammessages_unified_base.steamclient.proto"; +import "steammessages_remoteclient_service_messages.proto"; + +option cc_generic_services = true; + +service RemoteClient { + rpc GetPairingInfo (.CRemoteClient_GetPairingInfo_Request) returns (.CRemoteClient_GetPairingInfo_Response); + rpc NotifyOnline (.CRemoteClient_Online_Notification) returns (.NoResponse); + rpc GetRecentClients (.CRemoteClient_GetRecentClients_Request) returns (.CRemoteClient_GetRecentClients_Response); + rpc MarkTaskComplete (.CRemoteClient_MarkTaskComplete_Request) returns (.CRemoteClient_MarkTaskComplete_Response); + rpc NotifyReplyPacket (.CRemoteClient_ReplyPacket_Notification) returns (.NoResponse); + rpc AllocateRelayServer (.CRemoteClient_AllocateRelayServer_Request) returns (.CRemoteClient_AllocateRelayServer_Response); + rpc AllocateSDR (.CRemoteClient_AllocateSDR_Request) returns (.CRemoteClient_AllocateSDR_Response); + rpc SendSteamBroadcastPacket (.CRemoteClient_SteamBroadcast_Notification) returns (.NoResponse); + rpc SendSteamToSteamPacket (.CRemoteClient_SteamToSteam_Notification) returns (.NoResponse); + rpc SendRemotePlaySessionStarted (.CRemotePlay_SessionStarted_Request) returns (.CRemotePlay_SessionStarted_Response); + rpc SendRemotePlaySessionStopped (.CRemotePlay_SessionStopped_Notification) returns (.NoResponse); + rpc SendRemotePlayTogetherPacket (.CRemotePlayTogether_Notification) returns (.NoResponse); + rpc CreateRemotePlayTogetherInvitation (.CRemoteClient_CreateRemotePlayTogetherInvitation_Request) returns (.CRemoteClient_CreateRemotePlayTogetherInvitation_Response); + rpc DeleteRemotePlayTogetherInvitation (.CRemoteClient_DeleteRemotePlayTogetherInvitation_Request) returns (.CRemoteClient_DeleteRemotePlayTogetherInvitation_Response); +} + +service RemoteClientSteamClient { + option (service_execution_site) = k_EProtoExecutionSiteSteamClient; + + rpc NotifyRegisterStatusUpdate (.CRemoteClient_RegisterStatusUpdate_Notification) returns (.NoResponse); + rpc NotifyUnregisterStatusUpdate (.CRemoteClient_UnregisterStatusUpdate_Notification) returns (.NoResponse); + rpc NotifyRemotePacket (.CRemoteClient_RemotePacket_Notification) returns (.NoResponse); + rpc NotifySteamBroadcastPacket (.CRemoteClient_SteamBroadcast_Notification) returns (.NoResponse); + rpc NotifySteamToSteamPacket (.CRemoteClient_SteamToSteam_Notification) returns (.NoResponse); + rpc NotifyRemotePlayTogetherPacket (.CRemotePlayTogether_Notification) returns (.NoResponse); + rpc NotifyTaskList (.CRemoteClient_TaskList_Notification) returns (.NoResponse); +} diff --git a/Protobufs/steam/steammessages_remoteclient_service_messages.proto b/Protobufs/steam/steammessages_remoteclient_service_messages.proto new file mode 100644 index 0000000..03dd6ed --- /dev/null +++ b/Protobufs/steam/steammessages_remoteclient_service_messages.proto @@ -0,0 +1,280 @@ +enum ECLientTaskListType { + k_EClientTask_DownloadClip = 1; +} + +message CRemoteClient_CreateSession_Request { +} + +message CRemoteClient_CreateSession_Response { + optional fixed64 session_id = 1; + optional int32 euniverse = 2; +} + +message CRemoteClient_DeleteSession_Notification { + optional fixed64 session_id = 1; +} + +message CRemoteClient_StartPairing_Request { + optional fixed64 session_id = 1; +} + +message CRemoteClient_StartPairing_Response { + optional uint32 pin = 1; +} + +message CRemoteClient_SetPairingInfo_Request { + optional fixed64 session_id = 1; + optional fixed64 device_id = 2; + optional bytes request = 3; +} + +message CRemoteClient_SetPairingInfo_Response { +} + +message CRemoteClient_GetPairingInfo_Request { + optional uint32 pin = 1; +} + +message CRemoteClient_GetPairingInfo_Response { + optional fixed64 session_id = 1; + optional fixed64 device_id = 2; + optional bytes request = 3; +} + +message CRemoteClient_CancelPairing_Request { + optional fixed64 session_id = 1; +} + +message CRemoteClient_CancelPairing_Response { +} + +message CRemoteClient_RegisterStatusUpdate_Notification { + optional fixed64 session_id = 1; + optional fixed64 steamid = 2; + optional fixed64 device_id = 3; +} + +message CRemoteClient_UnregisterStatusUpdate_Notification { + optional fixed64 session_id = 1; + optional fixed64 steamid = 2; +} + +message CRemoteClient_DeviceDetails { + optional string device_friendly_name = 1; + optional int32 os_type = 2; + optional uint32 gaming_device_type = 3; +} + +message CRemoteClient_Online_Notification { + optional fixed64 steamid = 1; + optional fixed64 remote_client_id = 2; + optional .CRemoteClient_DeviceDetails device_details = 3; +} + +message CRemoteClient_GetRecentClients_Request { +} + +message CRemoteClient_ClientLogin { + optional fixed64 remote_client_id = 1; + optional fixed64 token_id = 2; + optional .CRemoteClient_DeviceDetails device_details = 3; +} + +message CRemoteClient_ClientDetails { + optional fixed64 remote_client_id = 1; + optional .CRemoteClient_DeviceDetails device_details = 2; + optional uint64 last_seen = 4; + optional string city = 5; + optional string state = 6; + optional string country = 7; + optional bool is_online = 8; +} + +message CRemoteClient_GetRecentClients_Response { + repeated .CRemoteClient_ClientDetails clients = 1; +} + +message CRemoteClient_Task { + optional .ECLientTaskListType type = 1 [default = k_EClientTask_DownloadClip]; + optional fixed64 task_id = 2; + optional string url = 3; + optional int64 file_id = 4; +} + +message CRemoteClient_AddClientTask_Request { + optional fixed64 remote_client_id = 1; + optional .CRemoteClient_Task task = 2; +} + +message CRemoteClient_AddClientTask_Response { +} + +message CRemoteClient_TaskList_Notification { + optional fixed64 remote_client_id = 1; + repeated .CRemoteClient_Task tasklist = 2; +} + +message CRemoteClient_MarkTaskComplete_Request { + optional fixed64 remote_client_id = 1; + optional fixed64 task_id = 2; + optional string content_id = 3; +} + +message CRemoteClient_MarkTaskComplete_Response { +} + +message CRemoteClient_RemotePacket_Notification { + optional fixed64 session_id = 1; + optional fixed64 steamid = 2; + optional bytes payload = 4; +} + +message CRemoteClient_ReplyPacket_Notification { + optional fixed64 session_id = 1; + optional bytes payload = 2; +} + +message CRemoteClient_GetReplies_Request { + optional fixed64 session_id = 1; +} + +message CRemoteClient_GetReplies_Response { + repeated bytes payload = 1; +} + +message CRemoteClient_AllocateRelayServer_Request { + optional uint32 cellid = 1; + optional string credentials = 2; +} + +message CRemoteClient_AllocateRelayServer_Response { + optional string relay_server = 1; +} + +message CRemoteClient_AllocateSDR_Request { + optional uint32 appid = 1; +} + +message CRemoteClient_AllocateSDR_Response { +} + +message CRemoteClient_SteamBroadcast_Notification { + optional fixed64 steamid = 1; + optional fixed64 clientid = 2; + optional bytes payload = 3; +} + +message CRemoteClient_SteamToSteam_Notification { + optional fixed64 steamid = 1; + optional fixed64 src_clientid = 2; + optional fixed64 dst_clientid = 3; + optional uint32 secretid = 4; + optional bytes encrypted_payload = 5; +} + +message CRemotePlay_SessionStarted_Request { + optional uint32 host_account_id = 1; + optional uint32 client_account_id = 2; + optional uint32 appid = 3; + optional int32 device_form_factor = 4; + optional bool remote_play_together = 5; + optional bool guest_session = 6; +} + +message CRemotePlay_SessionStarted_Response { + optional fixed64 record_id = 1; +} + +message CRemotePlay_SessionStopped_Notification { + optional fixed64 record_id = 1; + optional bool used_x264 = 2; + optional bool used_h264 = 3; + optional bool used_hevc = 4; +} + +message CRemotePlayTogether_Notification { + message Player { + optional fixed64 steamid = 1; + optional uint32 guestid = 2; + optional bytes avatar_hash = 3; + optional bool keyboard_enabled = 4; + optional bool mouse_enabled = 5; + optional bool controller_enabled = 6; + } + + message ControllerSlot_obsolete { + optional uint32 slotid = 1; + optional fixed64 steamid = 2; + } + + message ControllerSlot { + optional uint32 slotid = 1; + optional .CRemotePlayTogether_Notification.Player player = 2; + optional int32 controller_type = 3; + } + + message GroupUpdated { + optional fixed64 host_steamid = 1; + optional fixed64 host_clientid = 2; + repeated fixed64 players_obsolete = 3; + optional fixed64 host_gameid = 4; + repeated .CRemotePlayTogether_Notification.ControllerSlot_obsolete controller_slots_obsolete = 5; + optional bool has_new_players = 6; + repeated .CRemotePlayTogether_Notification.Player player_slots = 7; + repeated .CRemotePlayTogether_Notification.ControllerSlot controller_slots = 8; + } + + optional fixed64 steamid = 1; + + oneof Message { + .CRemotePlayTogether_Notification.GroupUpdated group_updated = 2; + } +} + +message CRemoteClient_CreateRemotePlayTogetherInvitation_Request { + optional uint32 appid = 1; + optional string launch_parameters = 2; +} + +message CRemoteClient_CreateRemotePlayTogetherInvitation_Response { + optional string invitation_code = 1; +} + +message CRemoteClient_DeleteRemotePlayTogetherInvitation_Request { + optional string invitation_code = 1; +} + +message CRemoteClient_DeleteRemotePlayTogetherInvitation_Response { +} + +message CRemoteClient_LookupRemotePlayTogetherInvitation_Request { + optional string invitation_code = 1; +} + +message CRemoteClient_LookupRemotePlayTogetherInvitation_Response { + optional string invitation_url = 1; +} + +message CCMRemoteClient_ClientMessage { + oneof Message { + .CRemoteClient_CreateSession_Request create_session_request = 1; + .CRemoteClient_StartPairing_Request start_pairing_request = 2; + .CRemoteClient_SetPairingInfo_Request set_pairing_info_request = 3; + .CRemoteClient_CancelPairing_Request cancel_pairing_request = 4; + .CRemoteClient_RegisterStatusUpdate_Notification register_status_update = 5; + .CRemoteClient_UnregisterStatusUpdate_Notification unregister_status_update = 6; + .CRemoteClient_RemotePacket_Notification remote_packet = 7; + } +} + +message CCMRemoteClient_ServerMessage { + optional int32 result = 1; + + oneof Message { + .CRemoteClient_CreateSession_Response create_session_response = 2; + .CRemoteClient_StartPairing_Response start_pairing_response = 3; + .CRemoteClient_SetPairingInfo_Response set_pairing_info_response = 4; + .CRemoteClient_CancelPairing_Response cancel_pairing_response = 5; + .CRemoteClient_GetReplies_Response reply_packet = 6; + } +} diff --git a/Protobufs/steam/steammessages_remoteplay.proto b/Protobufs/steam/steammessages_remoteplay.proto new file mode 100644 index 0000000..7b73f94 --- /dev/null +++ b/Protobufs/steam/steammessages_remoteplay.proto @@ -0,0 +1,977 @@ +option optimize_for = SPEED; +option cc_generic_services = false; + +enum EStreamChannel { + k_EStreamChannelInvalid = -1; + k_EStreamChannelDiscovery = 0; + k_EStreamChannelControl = 1; + k_EStreamChannelStats = 2; + k_EStreamChannelDataChannelStart = 3; +} + +enum EStreamDiscoveryMessage { + k_EStreamDiscoveryPingRequest = 1; + k_EStreamDiscoveryPingResponse = 2; +} + +enum EStreamControlMessage { + k_EStreamControlAuthenticationRequest = 1; + k_EStreamControlAuthenticationResponse = 2; + k_EStreamControlNegotiationInit = 3; + k_EStreamControlNegotiationSetConfig = 4; + k_EStreamControlNegotiationComplete = 5; + k_EStreamControlClientHandshake = 6; + k_EStreamControlServerHandshake = 7; + k_EStreamControlStartNetworkTest = 8; + k_EStreamControlKeepAlive = 9; + k_EStreamControl_LAST_SETUP_MESSAGE = 15; + k_EStreamControlStartAudioData = 50; + k_EStreamControlStopAudioData = 51; + k_EStreamControlStartVideoData = 52; + k_EStreamControlStopVideoData = 53; + k_EStreamControlInputMouseMotion = 54; + k_EStreamControlInputMouseWheel = 55; + k_EStreamControlInputMouseDown = 56; + k_EStreamControlInputMouseUp = 57; + k_EStreamControlInputKeyDown = 58; + k_EStreamControlInputKeyUp = 59; + k_EStreamControlInputGamepadAttached_OBSOLETE = 60; + k_EStreamControlInputGamepadEvent_OBSOLETE = 61; + k_EStreamControlInputGamepadDetached_OBSOLETE = 62; + k_EStreamControlShowCursor = 63; + k_EStreamControlHideCursor = 64; + k_EStreamControlSetCursor = 65; + k_EStreamControlGetCursorImage = 66; + k_EStreamControlSetCursorImage = 67; + k_EStreamControlDeleteCursor = 68; + k_EStreamControlSetTargetFramerate = 69; + k_EStreamControlInputLatencyTest = 70; + k_EStreamControlGamepadRumble_OBSOLETE = 71; + k_EStreamControlOverlayEnabled = 74; + k_EStreamControlInputControllerAttached_OBSOLETE = 75; + k_EStreamControlInputControllerState_OBSOLETE = 76; + k_EStreamControlTriggerHapticPulse_OBSOLETE = 77; + k_EStreamControlInputControllerDetached_OBSOLETE = 78; + k_EStreamControlVideoDecoderInfo = 80; + k_EStreamControlSetTitle = 81; + k_EStreamControlSetIcon = 82; + k_EStreamControlQuitRequest = 83; + k_EStreamControlSetQoS = 87; + k_EStreamControlInputControllerWirelessPresence_OBSOLETE = 88; + k_EStreamControlSetGammaRamp = 89; + k_EStreamControlVideoEncoderInfo = 90; + k_EStreamControlInputControllerStateHID_OBSOLETE = 93; + k_EStreamControlSetTargetBitrate = 94; + k_EStreamControlSetControllerPairingEnabled_OBSOLETE = 95; + k_EStreamControlSetControllerPairingResult_OBSOLETE = 96; + k_EStreamControlTriggerControllerDisconnect_OBSOLETE = 97; + k_EStreamControlSetActivity = 98; + k_EStreamControlSetStreamingClientConfig = 99; + k_EStreamControlSystemSuspend = 100; + k_EStreamControlSetControllerSettings_OBSOLETE = 101; + k_EStreamControlVirtualHereRequest = 102; + k_EStreamControlVirtualHereReady = 103; + k_EStreamControlVirtualHereShareDevice = 104; + k_EStreamControlSetSpectatorMode = 105; + k_EStreamControlRemoteHID = 106; + k_EStreamControlStartMicrophoneData = 107; + k_EStreamControlStopMicrophoneData = 108; + k_EStreamControlInputText = 109; + k_EStreamControlTouchConfigActive = 110; + k_EStreamControlGetTouchConfigData = 111; + k_EStreamControlSetTouchConfigData = 112; + k_EStreamControlSaveTouchConfigLayout = 113; + k_EStreamControlTouchActionSetActive = 114; + k_EStreamControlGetTouchIconData = 115; + k_EStreamControlSetTouchIconData = 116; + k_EStreamControlInputTouchFingerDown = 117; + k_EStreamControlInputTouchFingerMotion = 118; + k_EStreamControlInputTouchFingerUp = 119; + k_EStreamControlSetCaptureSize = 120; + k_EStreamControlSetFlashState = 121; + k_EStreamControlPause = 122; + k_EStreamControlResume = 123; + k_EStreamControlEnableHighResCapture = 124; + k_EStreamControlDisableHighResCapture = 125; + k_EStreamControlToggleMagnification = 126; + k_EStreamControlSetCapslock = 127; + k_EStreamControlSetKeymap = 128; + k_EStreamControlStopRequest = 129; + k_EStreamControlTouchActionSetLayerAdded = 130; + k_EStreamControlTouchActionSetLayerRemoved = 131; + k_EStreamControlRemotePlayTogetherGroupUpdate = 132; + k_EStreamControlSetInputTemporarilyDisabled = 133; + k_EStreamControlSetQualityOverride = 134; + k_EStreamControlSetBitrateOverride = 135; + k_EStreamControlShowOnScreenKeyboard = 136; + k_EStreamControlControllerConfigMsg = 137; + k_EStreamControlControllerPersonalizationUpdate = 138; + k_EStreamControlEnableNeptuneData = 139; + k_EStreamControlDisableNeptuneData = 140; + k_EStreamControlStartNeptuneData = 141; + k_EStreamControlStopNeptuneData = 142; + k_EStreamControlPauseControllerInput = 143; + k_EStreamControlResumeControllerInput = 144; + k_EStreamControlVRConnectionReady = 145; + k_EStreamControlSetCursorScale = 146; +} + +enum EStreamVersion { + k_EStreamVersionNone = 0; + k_EStreamVersionCurrent = 1; +} + +enum EStreamAudioCodec { + k_EStreamAudioCodecNone = 0; + k_EStreamAudioCodecRaw = 1; + k_EStreamAudioCodecVorbis = 2; + k_EStreamAudioCodecOpus = 3; + k_EStreamAudioCodecMP3 = 4; + k_EStreamAudioCodecAAC = 5; +} + +enum EStreamVideoCodec { + k_EStreamVideoCodecNone = 0; + k_EStreamVideoCodecRaw = 1; + k_EStreamVideoCodecVP8 = 2; + k_EStreamVideoCodecVP9 = 3; + k_EStreamVideoCodecH264 = 4; + k_EStreamVideoCodecHEVC = 5; + k_EStreamVideoCodecORBX1 = 6; + k_EStreamVideoCodecORBX2 = 7; +} + +enum EStreamQualityPreference { + k_EStreamQualityAutomatic = -1; + k_EStreamQualityFast = 1; + k_EStreamQualityBalanced = 2; + k_EStreamQualityBeautiful = 3; +} + +enum EStreamBitrate { + k_EStreamBitrateAutodetect = -1; + k_EStreamBitrateUnlimited = 0; +} + +enum EStreamColorspace { + k_EStreamColorspace_Unknown = 0; + k_EStreamColorspace_BT601 = 1; + k_EStreamColorspace_BT601_Full = 2; + k_EStreamColorspace_BT709 = 3; + k_EStreamColorspace_BT709_Full = 4; + k_EStreamColorspace_HDR10 = 5; +} + +enum EStreamP2PScope { + k_EStreamP2PScopeAutomatic = 0; + k_EStreamP2PScopeDisabled = 1; + k_EStreamP2PScopeOnlyMe = 2; + k_EStreamP2PScopeFriends = 3; + k_EStreamP2PScopeEveryone = 4; +} + +enum EStreamHostPlayAudioPreference { + k_EStreamHostPlayAudioDefault = 0; + k_EStreamHostPlayAudioAlways = 1; +} + +enum EStreamingDataType { + k_EStreamingAudioData = 0; + k_EStreamingVideoData = 1; + k_EStreamingMicrophoneData = 2; + k_EStreamingNeptuneData = 3; +} + +enum EStreamMouseButton { + k_EStreamMouseButtonLeft = 1; + k_EStreamMouseButtonRight = 2; + k_EStreamMouseButtonMiddle = 16; + k_EStreamMouseButtonX1 = 32; + k_EStreamMouseButtonX2 = 64; + k_EStreamMouseButtonUnknown = 4096; +} + +enum EStreamMouseWheelDirection { + k_EStreamMouseWheelUp = 120; + k_EStreamMouseWheelDown = -120; + k_EStreamMouseWheelLeft = 3; + k_EStreamMouseWheelRight = 4; +} + +enum EStreamFramerateLimiter { + k_EStreamFramerateSlowCapture = 1; + k_EStreamFramerateSlowConvert = 2; + k_EStreamFramerateSlowEncode = 4; + k_EStreamFramerateSlowNetwork = 8; + k_EStreamFramerateSlowDecode = 16; + k_EStreamFramerateSlowGame = 32; + k_EStreamFramerateSlowDisplay = 64; +} + +enum EStreamActivity { + k_EStreamActivityIdle = 1; + k_EStreamActivityGame = 2; + k_EStreamActivityDesktop = 3; + k_EStreamActivitySecureDesktop = 4; + k_EStreamActivityMusic = 5; +} + +enum EStreamDataMessage { + k_EStreamDataPacket = 1; + k_EStreamDataLost = 2; +} + +enum EAudioFormat { + k_EAudioFormatNone = 0; + k_EAudioFormat16BitLittleEndian = 1; + k_EAudioFormatFloat = 2; +} + +enum EVideoFormat { + k_EVideoFormatNone = 0; + k_EVideoFormatYV12 = 1; + k_EVideoFormatAccel = 2; +} + +enum EStreamStatsMessage { + k_EStreamStatsFrameEvents = 1; + k_EStreamStatsDebugDump = 2; + k_EStreamStatsLogMessage = 3; + k_EStreamStatsLogUploadBegin = 4; + k_EStreamStatsLogUploadData = 5; + k_EStreamStatsLogUploadComplete = 6; +} + +enum EStreamFrameEvent { + k_EStreamInputEventStart = 0; + k_EStreamInputEventSend = 1; + k_EStreamInputEventRecv = 2; + k_EStreamInputEventQueued = 3; + k_EStreamInputEventHandled = 4; + k_EStreamFrameEventStart = 5; + k_EStreamFrameEventCaptureBegin = 6; + k_EStreamFrameEventCaptureEnd = 7; + k_EStreamFrameEventConvertBegin = 8; + k_EStreamFrameEventConvertEnd = 9; + k_EStreamFrameEventEncodeBegin = 10; + k_EStreamFrameEventEncodeEnd = 11; + k_EStreamFrameEventSend = 12; + k_EStreamFrameEventRecv = 13; + k_EStreamFrameEventDecodeBegin = 14; + k_EStreamFrameEventDecodeEnd = 15; + k_EStreamFrameEventUploadBegin = 16; + k_EStreamFrameEventUploadEnd = 17; + k_EStreamFrameEventComplete = 18; +} + +enum EStreamFrameResult { + k_EStreamFrameResultPending = 0; + k_EStreamFrameResultDisplayed = 1; + k_EStreamFrameResultDroppedNetworkSlow = 2; + k_EStreamFrameResultDroppedNetworkLost = 3; + k_EStreamFrameResultDroppedDecodeSlow = 4; + k_EStreamFrameResultDroppedDecodeCorrupt = 5; + k_EStreamFrameResultDroppedLate = 6; + k_EStreamFrameResultDroppedReset = 7; +} + +enum EFrameAccumulatedStat { + k_EFrameStatFPS = 0; + k_EFrameStatCaptureDurationMS = 1; + k_EFrameStatConvertDurationMS = 2; + k_EFrameStatEncodeDurationMS = 3; + k_EFrameStatSteamDurationMS = 4; + k_EFrameStatServerDurationMS = 5; + k_EFrameStatNetworkDurationMS = 6; + k_EFrameStatDecodeDurationMS = 7; + k_EFrameStatDisplayDurationMS = 8; + k_EFrameStatClientDurationMS = 9; + k_EFrameStatFrameDurationMS = 10; + k_EFrameStatInputLatencyMS = 11; + k_EFrameStatGameLatencyMS = 12; + k_EFrameStatRoundTripLatencyMS = 13; + k_EFrameStatPingTimeMS = 14; + k_EFrameStatServerBitrateKbitPerSec = 15; + k_EFrameStatClientBitrateKbitPerSec = 16; + k_EFrameStatLinkBandwidthKbitPerSec = 17; + k_EFrameStatPacketLossPercentage = 18; +} + +enum ELogFileType { + k_ELogFileSystemBoot = 0; + k_ELogFileSystemReset = 1; + k_ELogFileSystemDebug = 2; +} + +enum EStreamControllerConfigMsg { + k_EStreamControllerConfigMsg_RequestConfigsForApp = 0; + k_EStreamControllerConfigMsg_ConfigResponse = 1; + k_EStreamControllerConfigMsg_PersonalizationResponse = 2; + k_EStreamControllerConfigMsg_ActiveConfigChange = 3; + k_EStreamControllerConfigMsg_RequestActiveConfig = 4; +} + +message CDiscoveryPingRequest { + optional uint32 sequence = 1; + optional uint32 packet_size_requested = 2; +} + +message CDiscoveryPingResponse { + optional uint32 sequence = 1; + optional uint32 packet_size_received = 2; +} + +message CStreamingClientHandshakeInfo { + optional int32 network_test = 2; +} + +message CClientHandshakeMsg { + required .CStreamingClientHandshakeInfo info = 1; +} + +message CStreamingServerHandshakeInfo { + optional int32 mtu = 1; +} + +message CServerHandshakeMsg { + required .CStreamingServerHandshakeInfo info = 1; +} + +message CAuthenticationRequestMsg { + optional bytes token = 1; + optional .EStreamVersion version = 2 [default = k_EStreamVersionNone]; + optional uint64 steamid = 3; +} + +message CAuthenticationResponseMsg { + enum AuthenticationResult { + SUCCEEDED = 0; + FAILED = 1; + } + + optional .CAuthenticationResponseMsg.AuthenticationResult result = 1 [default = SUCCEEDED]; + optional .EStreamVersion version = 2 [default = k_EStreamVersionNone]; +} + +message CKeepAliveMsg { +} + +message CStartNetworkTestMsg { + optional uint32 frames = 1; + optional uint32 framerate = 2; + optional uint32 bitrate_kbps = 3; + optional uint32 burst_bitrate_kbps = 4; + optional bool bandwidth_test = 5; +} + +message CStreamVideoMode { + required uint32 width = 1; + required uint32 height = 2; + optional uint32 refresh_rate = 3; + optional uint32 refresh_rate_numerator = 4; + optional uint32 refresh_rate_denominator = 5; +} + +message CStreamVideoLimit { + optional .EStreamVideoCodec codec = 1 [default = k_EStreamVideoCodecNone]; + optional .CStreamVideoMode mode = 2; + optional int32 bitrate_kbps = 3; + optional int32 burst_bitrate_kbps = 4; +} + +message CStreamingClientCaps { + optional string system_info = 1; + optional bool system_can_suspend = 2; + optional int32 maximum_decode_bitrate_kbps = 3; + optional int32 maximum_burst_bitrate_kbps = 4; + optional bool supports_video_hevc = 5; + optional bool disable_steam_store = 6; + optional bool disable_client_cursor = 7; + optional bool disable_intel_hardware_encoding = 8; + optional bool disable_amd_hardware_encoding = 9; + optional bool disable_nvidia_hardware_encoding = 10; + optional int32 form_factor = 11; + optional bool has_on_screen_keyboard = 12; + repeated .EStreamColorspace supported_colorspaces = 13; +} + +message CStreamingClientConfig { + optional .EStreamQualityPreference quality = 1 [default = k_EStreamQualityBalanced]; + optional uint32 desired_resolution_x = 2; + optional uint32 desired_resolution_y = 3; + optional uint32 desired_framerate_numerator = 4; + optional uint32 desired_framerate_denominator = 5; + optional int32 desired_bitrate_kbps = 6 [default = -1]; + optional bool enable_hardware_decoding = 7 [default = true]; + optional bool enable_performance_overlay = 8 [default = false]; + optional bool enable_video_streaming = 9 [default = true]; + optional bool enable_audio_streaming = 10 [default = true]; + optional bool enable_input_streaming = 11 [default = true]; + optional int32 audio_channels = 12 [default = 2]; + optional bool enable_video_hevc = 13 [default = false]; + optional bool enable_performance_icons = 14 [default = true]; + optional bool enable_microphone_streaming = 15 [default = false]; + optional string controller_overlay_hotkey = 16; + optional bool enable_touch_controller_OBSOLETE = 17 [default = false]; + optional .EStreamP2PScope p2p_scope = 19 [default = k_EStreamP2PScopeAutomatic]; + optional bool enable_audio_uncompressed = 20 [default = false]; + optional .CStreamVideoLimit display_limit = 21; + optional .CStreamVideoLimit quality_limit = 22; + optional .CStreamVideoLimit runtime_limit = 23; + repeated .CStreamVideoLimit decoder_limit = 24; + optional bool enable_unreliable_fec = 25 [default = false]; +} + +message CStreamingServerConfig { + optional bool change_desktop_resolution = 1; + optional bool dynamically_adjust_resolution_OBSOLETE = 2; + optional bool enable_capture_nvfbc = 3; + optional bool enable_hardware_encoding_nvidia_OBSOLETE = 4; + optional bool enable_hardware_encoding_amd_OBSOLETE = 5; + optional bool enable_hardware_encoding_intel_OBSOLETE = 6; + optional int32 software_encoding_threads = 7; + optional bool enable_traffic_priority = 8; + optional .EStreamHostPlayAudioPreference host_play_audio = 9 [default = k_EStreamHostPlayAudioDefault]; + optional bool enable_hardware_encoding = 10; +} + +message CNegotiatedConfig { + optional bool reliable_data = 1; + optional .EStreamAudioCodec selected_audio_codec = 2 [default = k_EStreamAudioCodecNone]; + optional .EStreamVideoCodec selected_video_codec = 3 [default = k_EStreamVideoCodecNone]; + repeated .CStreamVideoMode available_video_modes_OBSOLETE = 4; + optional bool enable_remote_hid = 5; + optional bool enable_touch_input = 6; + optional bool disable_client_cursor = 7; +} + +message CNegotiationInitMsg { + optional bool reliable_data = 1; + repeated .EStreamAudioCodec supported_audio_codecs = 2; + repeated .EStreamVideoCodec supported_video_codecs = 3; + optional bool supports_remote_hid = 4; + optional bool supports_touch_input = 5; +} + +message CNegotiationSetConfigMsg { + required .CNegotiatedConfig config = 1; + optional .CStreamingClientConfig streaming_client_config = 2; + optional .CStreamingClientCaps streaming_client_caps = 3; +} + +message CNegotiationCompleteMsg { +} + +message CStartAudioDataMsg { + required uint32 channel = 2; + optional .EStreamAudioCodec codec = 3 [default = k_EStreamAudioCodecNone]; + optional bytes codec_data = 4; + optional uint32 frequency = 5; + optional uint32 channels = 6; +} + +message CStopAudioDataMsg { +} + +message CStartVideoDataMsg { + required uint32 channel = 1; + optional .EStreamVideoCodec codec = 2 [default = k_EStreamVideoCodecNone]; + optional bytes codec_data = 3; + optional uint32 width = 4; + optional uint32 height = 5; +} + +message CStopVideoDataMsg { +} + +message CStartNeptuneDataMsg { + required uint32 channel = 1; +} + +message CStopNeptuneDataMsg { +} + +message CRecordedInput { + optional .EStreamControlMessage type = 1 [default = k_EStreamControlAuthenticationRequest]; + optional uint32 timestamp = 2; + + oneof data { + .CInputTouchFingerDownMsg finger_down = 3; + .CInputTouchFingerMotionMsg finger_motion = 4; + .CInputTouchFingerUpMsg finger_up = 5; + .CInputMouseMotionMsg mouse_motion = 6; + .CInputMouseWheelMsg mouse_wheel = 7; + .CInputMouseDownMsg mouse_down = 8; + .CInputMouseUpMsg mouse_up = 9; + .CInputKeyDownMsg key_down = 10; + .CInputKeyUpMsg key_up = 11; + .CInputTextMsg text = 12; + .CRemoteHIDMsg hid = 13; + } +} + +message CRecordedInputStream { + repeated .CRecordedInput entries = 1; +} + +message CInputLatencyTestMsg { + required uint32 input_mark = 1; + optional uint32 color = 2; +} + +message CInputTouchFingerDownMsg { + optional uint32 input_mark = 1; + optional uint64 fingerid = 2; + optional float x_normalized = 3; + optional float y_normalized = 4; +} + +message CInputTouchFingerMotionMsg { + optional uint32 input_mark = 1; + optional uint64 fingerid = 2; + optional float x_normalized = 3; + optional float y_normalized = 4; +} + +message CInputTouchFingerUpMsg { + optional uint32 input_mark = 1; + optional uint64 fingerid = 2; + optional float x_normalized = 3; + optional float y_normalized = 4; +} + +message CInputMouseMotionMsg { + optional uint32 input_mark = 1; + optional float x_normalized = 2; + optional float y_normalized = 3; + optional int32 dx = 4; + optional int32 dy = 5; +} + +message CInputMouseWheelMsg { + optional uint32 input_mark = 1; + required .EStreamMouseWheelDirection direction = 2 [default = k_EStreamMouseWheelUp]; + optional float amount = 3 [default = 1]; +} + +message CInputMouseDownMsg { + optional uint32 input_mark = 1; + required .EStreamMouseButton button = 2 [default = k_EStreamMouseButtonLeft]; +} + +message CInputMouseUpMsg { + optional uint32 input_mark = 1; + required .EStreamMouseButton button = 2 [default = k_EStreamMouseButtonLeft]; +} + +message CInputKeyDownMsg { + optional uint32 input_mark = 1; + required uint32 scancode = 2; +} + +message CInputKeyUpMsg { + optional uint32 input_mark = 1; + required uint32 scancode = 2; +} + +message CInputTextMsg { + optional uint32 input_mark = 1; + required string text_utf8 = 2; +} + +message CSetTitleMsg { + optional string text = 1; +} + +message CSetCaptureSizeMsg { + optional int32 width = 1; + optional int32 height = 2; +} + +message CSetIconMsg { + optional int32 width = 1; + optional int32 height = 2; + optional bytes image = 3; +} + +message CSetFlashStateMsg { + optional uint32 flags = 1; + optional uint32 count = 2; + optional uint32 timeout_ms = 3; +} + +message CShowCursorMsg { + optional float x_normalized = 1; + optional float y_normalized = 2; +} + +message CHideCursorMsg { +} + +message CSetCursorMsg { + required uint64 cursor_id = 1; +} + +message CGetCursorImageMsg { + required uint64 cursor_id = 1; +} + +message CSetCursorImageMsg { + required uint64 cursor_id = 1; + optional int32 width = 2; + optional int32 height = 3; + optional int32 hot_x = 4; + optional int32 hot_y = 5; + optional bytes image = 6; +} + +message CSetCursorScaleMsg { + optional float scale = 1; +} + +message CVideoDecoderInfoMsg { + optional string info = 1; + optional int32 threads = 2; +} + +message CVideoEncoderInfoMsg { + optional string info = 1; +} + +message CPauseMsg { +} + +message CResumeMsg { +} + +message CEnableHighResCaptureMsg { +} + +message CDisableHighResCaptureMsg { +} + +message CEnableNeptuneDataMsg { +} + +message CDisableNeptuneDataMsg { +} + +message CPauseControllerInputMsg { +} + +message CResumeControllerInputMsg { +} + +message CToggleMagnificationMsg { +} + +message CSetCapslockMsg { + optional bool pressed = 1; +} + +message CStreamingKeymapEntry { + optional int32 scancode = 1; + optional int32 normal_keycode = 2; + optional int32 shift_keycode = 3; + optional int32 capslock_keycode = 4; + optional int32 shift_capslock_keycode = 5; + optional int32 altgr_keycode = 6; + optional int32 altgr_shift_keycode = 7; + optional int32 altgr_capslock_keycode = 8; + optional int32 altgr_shift_capslock_keycode = 9; +} + +message CStreamingKeymap { + repeated .CStreamingKeymapEntry entries = 1; +} + +message CSetKeymapMsg { + optional .CStreamingKeymap keymap = 1; +} + +message CStopRequest { +} + +message CQuitRequest { +} + +message CDeleteCursorMsg { + required uint64 cursor_id = 1; +} + +message CSetStreamingClientConfig { + required .CStreamingClientConfig config = 1; +} + +message CSetQoSMsg { + required bool use_qos = 1; +} + +message CSetTargetFramerateMsg { + required uint32 framerate = 1; + optional uint32 reasons = 2; + optional uint32 framerate_numerator = 3; + optional uint32 framerate_denominator = 4; +} + +message CSetTargetBitrateMsg { + required int32 bitrate = 1; +} + +message COverlayEnabledMsg { + required bool enabled = 1; +} + +message CSetGammaRampMsg { + optional bytes gamma_ramp = 1; +} + +message CSetActivityMsg { + optional .EStreamActivity activity = 1 [default = k_EStreamActivityIdle]; + optional uint32 appid = 2; + optional uint64 gameid = 3; + optional string game_name = 4; +} + +message CSystemSuspendMsg { +} + +message CVirtualHereRequestMsg { + optional string hostname = 1; +} + +message CVirtualHereReadyMsg { + optional uint32 licensed_device_count = 1; +} + +message CVirtualHereShareDeviceMsg { + optional string device_address = 1; +} + +message CSetSpectatorModeMsg { + optional bool enabled = 1; +} + +message CRemoteHIDMsg { + optional bytes data = 1; + optional bool active_input = 2; +} + +message CTouchConfigActiveMsg { + optional uint32 appid = 1; + optional uint32 revision = 2; + optional uint64 creator = 3; +} + +message CGetTouchConfigDataMsg { + optional uint32 appid = 1; +} + +message CSetTouchConfigDataMsg { + optional uint32 appid = 1; + optional uint32 revision = 2; + optional bytes data = 3; + optional bytes layout = 4; + optional uint64 creator = 5; +} + +message CSaveTouchConfigLayoutMsg { + optional uint32 appid = 1; + optional bytes layout = 4; +} + +message CTouchActionSetActiveMsg { + optional uint32 appid = 1; + optional int32 actionset_id = 2; +} + +message CTouchActionSetLayerAddedMsg { + optional uint32 appid = 1; + optional int32 actionset_id = 2; +} + +message CTouchActionSetLayerRemovedMsg { + optional uint32 appid = 1; + optional int32 actionset_id = 2; +} + +message CGetTouchIconDataMsg { + optional uint32 appid = 1; + optional string icon = 2; +} + +message CSetTouchIconDataMsg { + optional uint32 appid = 1; + optional string icon = 2; + optional bytes data = 3; +} + +message CRemotePlayTogetherGroupUpdateMsg { + message Player { + optional uint32 accountid = 1; + optional uint32 guestid = 2; + optional bool keyboard_enabled = 3; + optional bool mouse_enabled = 4; + optional bool controller_enabled = 5; + repeated uint32 controller_slots = 6; + optional bytes avatar_hash = 7; + } + + repeated .CRemotePlayTogetherGroupUpdateMsg.Player players = 1; + optional int32 player_index = 2; + optional string miniprofile_location = 3; + optional string game_name = 4; + optional string avatar_location = 5; +} + +message CSetInputTemporarilyDisabledMsg { + optional bool disabled = 1; +} + +message CSetQualityOverrideMsg { + optional int32 value = 1; +} + +message CSetBitrateOverrideMsg { + optional int32 value = 1; +} + +message CShowOnScreenKeyboardMsg { +} + +message CControllerPersonalizationUpdateMsg { + optional string controller_path = 1; + optional string controller_name = 2; + optional bool reverse_diamond_button_layout = 3; +} + +message CVRConnectionReady { + optional string connect_params = 1; +} + +message CStreamDataLostMsg { + repeated uint32 packets = 1; +} + +message CAudioFormat { + required .EAudioFormat format = 1 [default = k_EAudioFormatNone]; + optional uint32 frequency = 2; + optional uint32 channels = 3; +} + +message CVideoFormat { + required .EVideoFormat format = 1 [default = k_EVideoFormatNone]; + optional uint32 width = 2; + optional uint32 height = 3; +} + +message CFrameEvent { + required .EStreamFrameEvent event_id = 1 [default = k_EStreamInputEventStart]; + required uint32 timestamp = 2; +} + +message CFrameStats { + required uint32 frame_id = 1; + optional uint32 input_mark = 2; + repeated .CFrameEvent events = 3; + required .EStreamFrameResult result = 4 [default = k_EStreamFrameResultPending]; + optional float frame_start_delta = 5; + optional float frame_display_delta = 6; + optional float ping_time = 7; + optional float server_bitrate = 8; + optional float client_bitrate = 9; + optional float link_bandwidth = 10; + optional float packet_loss = 11; + optional uint32 frame_size = 12; +} + +message CFrameStatAccumulatedValue { + required .EFrameAccumulatedStat stat_type = 1 [default = k_EFrameStatFPS]; + required int32 count = 2; + required float average = 3; + optional float stddev = 4; +} + +message CFrameStatsListMsg { + required .EStreamingDataType data_type = 1 [default = k_EStreamingAudioData]; + repeated .CFrameStats stats = 2; + repeated .CFrameStatAccumulatedValue accumulated_stats = 3; + required int32 latest_frame_id = 4; +} + +message CStreamingSessionStats { + optional float frame_loss_percentage = 1; + optional float average_network_time_ms = 2; + optional float stddev_network_time_ms = 3; + optional string test_data = 4; +} + +message CDebugDumpMsg { + optional bytes screenshot = 1; +} + +message CLogMsg { + optional int32 type = 1; + optional string message = 2; +} + +message CLogUploadMsg { + optional .ELogFileType type = 1 [default = k_ELogFileSystemBoot]; + optional bytes data = 3; +} + +message CTransportSignalMsg { + message WebRTCMessage { + message Candidate { + optional string sdp_mid = 1; + optional int32 sdp_mline_index = 2; + optional string candidate = 3; + } + + oneof msg { + bool greeting = 1; + string offer = 2; + string answer = 3; + .CTransportSignalMsg.WebRTCMessage.Candidate candidate = 4; + } + } + + optional .CTransportSignalMsg.WebRTCMessage webrtc = 1; + repeated bytes sdr = 2; +} + +message CControllerConfigMsg { + message ControllerConfigResponse { + optional uint32 appid = 1; + optional string configURL = 2; + optional uint32 controllerType = 3; + optional string controllerData = 4; + optional uint32 selectionOrder = 5; + optional bool actionBlock = 6; + } + + message ControllerPersonalizationResponse { + optional string personalizationData = 1; + } + + message ControllerActiveConfigChangeResponse { + optional string configURL = 2; + optional uint32 controllerType = 3; + optional string controllerData = 4; + optional uint32 selectionOrder = 5; + } + + message ControllerActiveConfigMsg { + optional uint32 appid = 1; + optional string configURL = 2; + optional uint32 controllerType = 3; + optional string controllerData = 4; + } + + required .EStreamControllerConfigMsg type = 1 [default = k_EStreamControllerConfigMsg_RequestConfigsForApp]; + optional string controllerPath = 2; + optional uint32 appid = 3; + optional .CControllerConfigMsg.ControllerPersonalizationResponse personalizationResponse = 4; + repeated .CControllerConfigMsg.ControllerConfigResponse configResponse = 6; + optional .CControllerConfigMsg.ControllerActiveConfigMsg activeConfigChangeMsg = 7; +} diff --git a/Protobufs/steam/steammessages_secrets.steamclient.proto b/Protobufs/steam/steammessages_secrets.steamclient.proto new file mode 100644 index 0000000..0a1b546 --- /dev/null +++ b/Protobufs/steam/steammessages_secrets.steamclient.proto @@ -0,0 +1,35 @@ +import "steammessages_base.proto"; +import "steammessages_unified_base.steamclient.proto"; + +option cc_generic_services = true; + +enum EKeyEscrowUsage { + k_EKeyEscrowUsageStreamingDevice = 0; +} + +message CKeyEscrow_Request { + optional bytes rsa_oaep_sha_ticket = 1; + optional bytes password = 2; + optional .EKeyEscrowUsage usage = 3 [default = k_EKeyEscrowUsageStreamingDevice]; + optional string device_name = 4; +} + +message CKeyEscrow_Ticket { + optional bytes password = 1; + optional uint64 identifier = 2; + optional bytes payload = 3; + optional uint32 timestamp = 4; + optional .EKeyEscrowUsage usage = 5 [default = k_EKeyEscrowUsageStreamingDevice]; + optional string device_name = 6; + optional string device_model = 7; + optional string device_serial = 8; + optional uint32 device_provisioning_id = 9; +} + +message CKeyEscrow_Response { + optional .CKeyEscrow_Ticket ticket = 1; +} + +service Secrets { + rpc KeyEscrow (.CKeyEscrow_Request) returns (.CKeyEscrow_Response); +} diff --git a/Protobufs/steam/steammessages_shader.steamclient.proto b/Protobufs/steam/steammessages_shader.steamclient.proto new file mode 100644 index 0000000..e171896 --- /dev/null +++ b/Protobufs/steam/steammessages_shader.steamclient.proto @@ -0,0 +1,89 @@ +import "steammessages_base.proto"; +import "steammessages_unified_base.steamclient.proto"; + +option cc_generic_services = true; + +message CShader_GetShaderReportingCadence_Request { +} + +message CShader_GetShaderReportingCadence_Response { + optional uint64 rereport_time_threshold = 1; + optional uint32 percent_to_rereport = 2; +} + +message CShader_RegisterShader_Request { + message Shader { + optional bytes cache_key_sha = 1; + optional bytes shader_code_sha = 2; + } + + optional uint32 appid = 1; + optional string gpu_desc = 2; + optional string driver_desc = 3; + repeated .CShader_RegisterShader_Request.Shader shaders = 4; +} + +message CShader_RegisterShader_Response { + repeated uint32 requested_codeids = 1; +} + +message CShader_SendShader_Request { + message ShaderCode { + optional bytes shader_code_sha = 1; + optional bytes shader_code = 2; + } + + optional uint32 appid = 1; + repeated .CShader_SendShader_Request.ShaderCode shaders = 2; +} + +message CShader_SendShader_Response { +} + +message CShader_GetBucketManifest_Request { + optional uint32 appid = 1; + optional string gpu_desc = 2; + optional string driver_desc = 3; +} + +message CShader_GetBucketManifest_Response { + optional uint64 manifestid = 1; + optional uint64 depotsize = 2; + optional uint64 bucketid = 3; +} + +message CShader_GetStaleBucket_Request { + optional string gpu_desc = 1; + optional string driver_desc = 2; +} + +message CShader_GetStaleBucket_Response { + optional uint64 bucketid = 1; + optional uint32 appid = 2; + optional uint64 manifestid = 3; + optional string gpu_desc = 4; + optional string driver_desc = 5; + optional bytes depot_encryption_key = 6; +} + +message CShader_ReportExternalBuild_Request { + optional uint32 appid = 1; + optional string gpu_desc = 2; + optional string driver_desc = 3; + optional uint64 manifestid = 4; + optional string source_gpu_desc = 5; + optional string source_driver_desc = 6; + optional uint64 depotsize = 7; +} + +message CShader_ReportExternalBuild_Response { +} + +service Shader { + rpc GetShaderReportingCadence (.CShader_GetShaderReportingCadence_Request) returns (.CShader_GetShaderReportingCadence_Response); + rpc RegisterShader (.CShader_RegisterShader_Request) returns (.CShader_RegisterShader_Response); + rpc SendShader (.CShader_SendShader_Request) returns (.CShader_SendShader_Response); + rpc GetBucketManifest (.CShader_GetBucketManifest_Request) returns (.CShader_GetBucketManifest_Response); + rpc GetStaleBucket (.CShader_GetStaleBucket_Request) returns (.CShader_GetStaleBucket_Response); + rpc ReportExternalBuild (.CShader_ReportExternalBuild_Request) returns (.CShader_ReportExternalBuild_Response); +} diff --git a/Protobufs/steam/steammessages_site_license.steamclient.proto b/Protobufs/steam/steammessages_site_license.steamclient.proto new file mode 100644 index 0000000..c14f76b --- /dev/null +++ b/Protobufs/steam/steammessages_site_license.steamclient.proto @@ -0,0 +1,103 @@ +import "steammessages_base.proto"; +import "steammessages_unified_base.steamclient.proto"; + +option cc_generic_services = true; + +message CSiteManagerClient_IncomingClient_Request { + optional fixed64 site_instanceid = 1; + optional fixed64 client_steamid = 2; + optional fixed32 client_local_ip = 3; + optional bytes connection_key = 4; +} + +message CSiteManagerClient_IncomingClient_Response { +} + +message CSiteLicense_ClientSeatCheckout_Notification { + optional uint32 appid = 1; + optional uint32 eresult = 2; +} + +message CSiteManagerClient_TrackedPayments_Notification { + message Payment { + optional uint64 transid = 1; + optional uint64 steamid = 2; + optional int64 amount = 3; + optional uint32 ecurrency = 4; + optional int32 time_created = 5; + optional int32 purchase_status = 6; + optional string machine_name = 7; + optional string persona_name = 8; + optional string profile_url = 9; + optional string avatar_url = 10; + } + + optional fixed64 site_id = 1; + repeated .CSiteManagerClient_TrackedPayments_Notification.Payment payments = 2; +} + +message CSiteLicense_InitiateAssociation_Request { + optional fixed64 site_steamid = 1; + optional fixed64 site_instanceid = 2; + optional fixed32 client_local_ip = 3; +} + +message CSiteLicense_InitiateAssociation_Response { + optional bytes connection_key = 1; +} + +message CSiteLicense_LCSAuthenticate_Request { + optional fixed64 instanceid = 1; +} + +message CSiteLicense_LCSAuthenticate_Response { + optional uint64 site_id = 1; + optional string site_name = 2; + optional bool new_session = 3; + optional bool no_site_licenses = 4; +} + +message CSiteLicense_LCSAssociateUser_Request { + optional fixed64 steamid = 1; + optional fixed32 local_ip = 2; + optional fixed64 instanceid = 3; + optional string machine_name = 4; +} + +message CSiteLicense_LCSAssociateUser_Response { +} + +message CSiteLicense_ClientSeatCheckout_Request { + optional fixed64 steamid = 1; + optional fixed64 instanceid = 2; + optional uint32 appid = 3; +} + +message CSiteLicense_ClientSeatCheckout_Response { +} + +message CSiteLicense_ClientGetAvailableSeats_Request { + optional fixed64 steamid = 1; + optional fixed64 instanceid = 2; + optional uint32 appid = 3; +} + +message CSiteLicense_ClientGetAvailableSeats_Response { + optional uint32 available_seats = 1; +} + +service SiteManagerClient { + option (service_execution_site) = k_EProtoExecutionSiteSteamClient; + + rpc IncomingClient (.CSiteManagerClient_IncomingClient_Request) returns (.CSiteManagerClient_IncomingClient_Response); + rpc ClientSeatCheckoutNotification (.CSiteLicense_ClientSeatCheckout_Notification) returns (.NoResponse); + rpc TrackedPaymentsNotification (.CSiteManagerClient_TrackedPayments_Notification) returns (.NoResponse); +} + +service SiteLicense { + rpc InitiateAssociation (.CSiteLicense_InitiateAssociation_Request) returns (.CSiteLicense_InitiateAssociation_Response); + rpc LCSAuthenticate (.CSiteLicense_LCSAuthenticate_Request) returns (.CSiteLicense_LCSAuthenticate_Response); + rpc LCSAssociateUser (.CSiteLicense_LCSAssociateUser_Request) returns (.CSiteLicense_LCSAssociateUser_Response); + rpc ClientSeatCheckout (.CSiteLicense_ClientSeatCheckout_Request) returns (.CSiteLicense_ClientSeatCheckout_Response); + rpc ClientGetAvailableSeats (.CSiteLicense_ClientGetAvailableSeats_Request) returns (.CSiteLicense_ClientGetAvailableSeats_Response); +} diff --git a/Protobufs/steam/steammessages_sitelicenseclient.proto b/Protobufs/steam/steammessages_sitelicenseclient.proto new file mode 100644 index 0000000..b3c2697 --- /dev/null +++ b/Protobufs/steam/steammessages_sitelicenseclient.proto @@ -0,0 +1,38 @@ +import "steammessages_base.proto"; + +option optimize_for = SPEED; +option cc_generic_services = false; + +message CMsgClientSiteInfo { + optional uint64 site_id = 1; + optional string site_name = 2; + optional bool allow_cached_credentials = 3; +} + +message CMsgClientSiteLicenseCheckout { + optional uint32 appid = 1; +} + +message CMsgClientSiteLicenseCheckoutResponse { + optional int32 eresult = 1 [default = 2]; +} + +message CMsgClientSiteLicenseGetAvailableSeats { + optional uint32 appid = 1; +} + +message CMsgClientSiteLicenseGetAvailableSeatsResponse { + optional int32 eresult = 1 [default = 2]; + optional uint32 seats = 2; +} + +message CMsgClientSiteLicenseGetContentCacheInfo { +} + +message CMsgClientSiteLicenseGetContentCacheInfoResponse { + optional bool use_cache = 1; + optional uint32 ipv4_address = 2; + optional uint32 port_number = 3; + optional uint32 p2p_group = 4; + optional string ip_address = 5; +} diff --git a/Protobufs/steam/steammessages_siteserverui.proto b/Protobufs/steam/steammessages_siteserverui.proto new file mode 100644 index 0000000..bee74b1 --- /dev/null +++ b/Protobufs/steam/steammessages_siteserverui.proto @@ -0,0 +1,130 @@ +import "steammessages_base.proto"; + +option optimize_for = SPEED; +option cc_generic_services = false; + +message SiteServerUI_Login_Request { + optional string username = 1; + optional string password = 2; + optional string steamguardcode = 3; + optional bool remember_password = 4; +} + +message SiteServerUI_Login_Response { + optional int32 logon_state = 1; + optional int32 logon_eresult = 2; +} + +message SiteServerUI_LoginStatus_Request { +} + +message SiteServerUI_LoginStatus_Response { + optional string username = 1; + optional bool cached_credentials = 2; + optional int32 logon_state = 3; + optional int32 logon_eresult = 4; +} + +message SiteServerUI_CancelLogin_Request { +} + +message SiteServerUI_CancelLogin_Response { + optional int32 logon_state = 1; + optional int32 logon_eresult = 2; +} + +message SiteServerUI_Logout_Request { +} + +message SiteServerUI_Logout_Response { + optional int32 logon_state = 1; + optional int32 logout_eresult = 2; +} + +message SiteServerUI_Quit_Request { + optional bool restart = 1; +} + +message SiteServerUI_Quit_Response { +} + +message SiteServerUI_Status_Request { +} + +message SiteServerUI_Status_Response { + optional int32 logon_state = 1; + optional int32 logon_eresult = 2; + optional bool connected = 3; + optional bool cache_enabled = 4; + optional int32 acct_status = 5; +} + +message SiteServerUI_GetLanguage_Request { +} + +message SiteServerUI_GetLanguage_Response { + optional string language = 1; +} + +message SiteServerUI_SetLanguage_Request { + optional string language = 1; +} + +message SiteServerUI_SetLanguage_Response { +} + +message SiteServerUI_ClientStatus_Request { +} + +message SiteServerUI_ClientStatus_Response { + message ClientInfo { + optional uint32 ip = 1; + optional string hostname = 2; + optional bool connected = 3; + optional uint64 instance_id = 4; + } + + message Payment { + optional uint64 transid = 1; + optional uint64 steamid = 2; + optional string amount = 3; + optional int32 time_created = 4; + optional int32 purchase_status = 5; + optional string hostname = 6; + optional string persona_name = 7; + optional string profile_url = 8; + optional string avatar_url = 9; + } + + repeated .SiteServerUI_ClientStatus_Response.ClientInfo clients = 4; + repeated .SiteServerUI_ClientStatus_Response.Payment payments = 5; +} + +message SiteServerUI_ContentCacheStatus_Request { +} + +message SiteServerUI_ContentCacheStatus_Response { + optional bool enabled = 1; + optional uint32 port = 2; + optional string cache_location = 3; + optional uint32 max_size_gb = 4; + optional bool p2p_enabled = 5; + optional string explicit_ip_address = 9; + optional bool external_process = 10; + optional uint32 current_size_gb = 6; + optional uint64 current_bw = 7; + optional uint64 total_bytes_served = 8; +} + +message SiteServerUI_ContentCacheConfig_Request { + optional bool enabled = 1; + optional uint32 port = 2; + optional string cache_location = 3; + optional uint32 max_size_gb = 4; + optional bool p2p_enabled = 5; + optional bool external_process = 6; + optional string explicit_ip_address = 7; +} + +message SiteServerUI_ContentCacheConfig_Response { +} diff --git a/Protobufs/steam/steammessages_steamtv.steamclient.proto b/Protobufs/steam/steammessages_steamtv.steamclient.proto new file mode 100644 index 0000000..06a1141 --- /dev/null +++ b/Protobufs/steam/steammessages_steamtv.steamclient.proto @@ -0,0 +1,533 @@ +import "steammessages_base.proto"; +import "steammessages_unified_base.steamclient.proto"; + +option cc_generic_services = true; + +enum EBroadcastImageType { + k_EBroadcastImageType_None = 0; + k_EBroadcastImageType_Offline = 1; + k_EBroadcastImageType_Standby = 2; + k_EBroadcastImageType_Avatar = 3; + k_EBroadcastImageType_Summary = 4; + k_EBroadcastImageType_Background = 5; + k_EBroadcastImageType_Emoticon = 6; +} + +enum EGetGamesAlgorithm { + k_EGetGamesAlgorithm_Default = 1; + k_EGetGamesAlgorithm_MostPlayed = 2; + k_EGetGamesAlgorithm_PopularNew = 3; +} + +enum EGetChannelsAlgorithm { + k_EGetChannelsAlgorithm_Default = 1; + k_EGetChannelsAlgorithm_Friends = 2; + k_EGetChannelsAlgorithm_Featured = 3; + k_EGetChannelsAlgorithm_Developer = 4; + k_EGetChannelsAlgorithm_Following = 5; +} + +enum ESteamTVContentTemplate { + k_ESteamTVContentTemplate_Invalid = 0; + k_ESteamTVContentTemplate_Takeover = 1; + k_ESteamTVContentTemplate_SingleGame = 2; + k_ESteamTVContentTemplate_GameList = 3; + k_ESteamTVContentTemplate_QuickExplore = 4; + k_ESteamTVContentTemplate_ConveyorBelt = 5; + k_ESteamTVContentTemplate_WatchParty = 6; + k_ESteamTVContentTemplate_Developer = 7; + k_ESteamTVContentTemplate_Event = 8; +} + +message CSteamTV_CreateBroadcastChannel_Request { + optional string unique_name = 1; +} + +message CSteamTV_CreateBroadcastChannel_Response { + optional fixed64 broadcast_channel_id = 1; +} + +message CSteamTV_GetBroadcastChannelID_Request { + optional string unique_name = 1; +} + +message CSteamTV_GetBroadcastChannelID_Response { + optional fixed64 broadcast_channel_id = 1; + optional string unique_name = 2; + optional fixed64 steamid = 3; +} + +message CSteamTV_SetBroadcastChannelProfile_Request { + optional fixed64 broadcast_channel_id = 1; + optional string name = 2; + optional string language = 3; + optional string headline = 4; + optional string summary = 5; + optional string avatar_hash = 6; + optional string schedule = 7; + optional string rules = 8; + optional string panels = 9; +} + +message CSteamTV_SetBroadcastChannelProfile_Response { +} + +message CSteamTV_GetBroadcastChannelProfile_Request { + optional fixed64 broadcast_channel_id = 1; +} + +message CSteamTV_GetBroadcastChannelProfile_Response { + optional string unique_name = 1; + optional fixed64 owner_steamid = 2; + optional string name = 3; + optional string language = 4; + optional string headline = 5; + optional string summary = 6; + optional string schedule = 7; + optional string rules = 8; + optional string panels = 9; + optional bool is_partnered = 10; +} + +message CSteamTV_SetBroadcastChannelImage_Request { + optional fixed64 broadcast_channel_id = 1; + optional .EBroadcastImageType image_type = 2 [default = k_EBroadcastImageType_None]; + optional uint32 image_index = 3; + optional uint32 image_width = 4; + optional uint32 image_height = 5; + optional uint32 file_size = 6; + optional string file_extension = 7; + optional string file_hash = 8; + optional bool undo = 9; +} + +message CSteamTV_SetBroadcastChannelImage_Response { + optional string replace_image_hash = 1; +} + +message CSteamTV_GetBroadcastChannelImages_Request { + optional fixed64 broadcast_channel_id = 1; + repeated .EBroadcastImageType image_types = 2; +} + +message CSteamTV_GetBroadcastChannelImages_Response { + message Images { + optional .EBroadcastImageType image_type = 1 [default = k_EBroadcastImageType_None]; + optional string image_path = 2; + optional uint32 image_index = 3; + } + + repeated .CSteamTV_GetBroadcastChannelImages_Response.Images images = 1; +} + +message CSteamTV_SetBroadcastChannelLinkRegions_Request { + message Links { + optional uint32 link_index = 1; + optional string url = 2; + optional string link_description = 3; + optional uint32 left = 4; + optional uint32 top = 5; + optional uint32 width = 6; + optional uint32 height = 7; + } + + optional fixed64 broadcast_channel_id = 1; + repeated .CSteamTV_SetBroadcastChannelLinkRegions_Request.Links links = 2; +} + +message CSteamTV_SetBroadcastChannelLinkRegions_Response { +} + +message CSteamTV_GetBroadcastChannelLinks_Request { + optional fixed64 broadcast_channel_id = 1; +} + +message CSteamTV_GetBroadcastChannelLinks_Response { + message Links { + optional uint32 link_index = 1; + optional string url = 2; + optional string link_description = 3; + optional uint32 left = 4; + optional uint32 top = 5; + optional uint32 width = 6; + optional uint32 height = 7; + } + + repeated .CSteamTV_GetBroadcastChannelLinks_Response.Links links = 1; +} + +message CSteamTV_GetBroadcastChannelBroadcasters_Request { + optional fixed64 broadcast_channel_id = 1; +} + +message CSteamTV_GetBroadcastChannelBroadcasters_Response { + message Broadcaster { + optional fixed64 steamid = 1; + optional string name = 2; + optional string rtmp_token = 3; + } + + repeated .CSteamTV_GetBroadcastChannelBroadcasters_Response.Broadcaster broadcasters = 1; +} + +message CSteamTV_GetFollowedChannels_Request { +} + +message GetBroadcastChannelEntry { + optional fixed64 broadcast_channel_id = 1; + optional string unique_name = 2; + optional string name = 3; + optional uint32 appid = 4; + optional uint64 viewers = 5; + optional uint64 views = 6; + optional string thumbnail_url = 7; + optional uint64 followers = 8; + optional string headline = 9; + optional string avatar_url = 10; + optional fixed64 broadcaster_steamid = 11; + optional uint64 subscribers = 12; + optional string background_url = 13; + optional bool is_featured = 14; + optional bool is_disabled = 15; + optional bool is_live = 16; + optional string language = 17; + optional uint32 reports = 18; + optional bool is_partnered = 19; +} + +message CSteamTV_GetFollowedChannels_Response { + repeated .GetBroadcastChannelEntry results = 1; +} + +message CSteamTV_GetSubscribedChannels_Request { +} + +message CSteamTV_GetSubscribedChannels_Response { + repeated .GetBroadcastChannelEntry results = 1; +} + +message CSteamTV_GetBroadcastChannelStatus_Request { + optional fixed64 broadcast_channel_id = 1; +} + +message CSteamTV_GetBroadcastChannelStatus_Response { + optional bool is_live = 1; + optional bool is_disabled = 2; + optional uint32 appid = 3; + optional uint64 viewers = 4; + optional uint64 views = 5; + optional fixed64 broadcaster_steamid = 6; + optional string thumbnail_url = 7; + optional uint64 followers = 8; + optional uint64 subscribers = 9; + optional string unique_name = 10; + optional uint64 broadcast_session_id = 11; +} + +message CSteamTV_FollowBroadcastChannel_Request { + optional fixed64 broadcast_channel_id = 1; + optional bool undo = 2; +} + +message CSteamTV_FollowBroadcastChannel_Response { + optional bool is_followed = 1; +} + +message CSteamTV_SubscribeBroadcastChannel_Request { + optional fixed64 broadcast_channel_id = 1; +} + +message CSteamTV_SubscribeBroadcastChannel_Response { + optional bool is_subscribed = 1; +} + +message CSteamTV_GetBroadcastChannelClips_Request { + optional fixed64 broadcast_channel_id = 1; +} + +message CSteamTV_BroadcastClipInfo { + optional uint64 broadcast_clip_id = 1; + optional uint64 channel_id = 2; + optional uint32 app_id = 3; + optional fixed64 broadcaster_steamid = 4; + optional fixed64 creator_steamid = 5; + optional string video_description = 6; + optional uint32 live_time = 7; + optional uint32 length_ms = 8; + optional string thumbnail_path = 9; +} + +message CSteamTV_GetBroadcastChannelClips_Response { + repeated .CSteamTV_BroadcastClipInfo clips = 1; + optional string thumbnail_host = 2; +} + +message CSteamTV_ReportBroadcastChannel_Request { + optional fixed64 broadcast_channel_id = 1; + optional string reason = 2; +} + +message CSteamTV_ReportBroadcastChannel_Response { +} + +message CSteamTV_GetBroadcastChannelInteraction_Request { + optional fixed64 broadcast_channel_id = 1; +} + +message CSteamTV_GetBroadcastChannelInteraction_Response { + optional bool is_followed = 1; + optional bool is_subscribed = 2; +} + +message CSteamTV_GetGames_Request { + optional uint32 appid = 1; + optional .EGetGamesAlgorithm algorithm = 2 [default = k_EGetGamesAlgorithm_Default]; + optional uint32 count = 3; +} + +message CSteamTV_Game { + optional uint32 appid = 1; + optional string name = 2; + optional string image = 3; + optional uint64 viewers = 4; + repeated .GetBroadcastChannelEntry channels = 5; + optional string release_date = 6; + optional string developer = 7; + optional string publisher = 8; +} + +message CSteamTV_GetGames_Response { + repeated .CSteamTV_Game results = 1; +} + +message CSteamTV_GetChannels_Request { + optional .EGetChannelsAlgorithm algorithm = 1 [default = k_EGetChannelsAlgorithm_Default]; + optional uint32 count = 2; + optional uint32 appid = 3; +} + +message CSteamTV_GetChannels_Response { + repeated .GetBroadcastChannelEntry results = 1; +} + +message CSteamTV_AddChatBan_Request { + optional fixed64 broadcast_channel_id = 1; + optional fixed64 chatter_steamid = 2; + optional uint32 duration = 3; + optional bool permanent = 4; + optional bool undo = 5; +} + +message CSteamTV_AddChatBan_Response { +} + +message CSteamTV_GetChatBans_Request { + optional fixed64 broadcast_channel_id = 1; +} + +message CSteamTV_ChatBan { + optional fixed64 issuer_steamid = 1; + optional fixed64 chatter_steamid = 2; + optional string time_expires = 3; + optional bool permanent = 4; + optional string name = 5; +} + +message CSteamTV_GetChatBans_Response { + repeated .CSteamTV_ChatBan results = 1; +} + +message CSteamTV_AddChatModerator_Request { + optional fixed64 broadcast_channel_id = 1; + optional fixed64 moderator_steamid = 2; + optional bool undo = 3; +} + +message CSteamTV_AddChatModerator_Response { +} + +message CSteamTV_GetChatModerators_Request { + optional fixed64 broadcast_channel_id = 1; +} + +message CSteamTV_ChatModerator { + optional fixed64 steamid = 1; + optional string name = 2; +} + +message CSteamTV_GetChatModerators_Response { + repeated .CSteamTV_ChatModerator results = 1; +} + +message CSteamTV_AddWordBan_Request { + optional fixed64 broadcast_channel_id = 1; + optional string word = 2; + optional bool undo = 3; +} + +message CSteamTV_AddWordBan_Response { +} + +message CSteamTV_GetWordBans_Request { + optional fixed64 broadcast_channel_id = 1; +} + +message CSteamTV_GetWordBans_Response { + repeated string results = 1; +} + +message CSteamTV_JoinChat_Request { + optional fixed64 broadcast_channel_id = 1; +} + +message CSteamTV_JoinChat_Response { + optional fixed64 chat_id = 1; + optional string view_url_template = 2; + repeated uint64 flair_group_ids = 3; +} + +message CSteamTV_Search_Request { + optional string term = 1; +} + +message CSteamTV_Search_Response { + repeated .GetBroadcastChannelEntry results = 1; +} + +message CSteamTV_GetSteamTVUserSettings_Request { +} + +message CSteamTV_GetSteamTVUserSettings_Response { + optional bool stream_live_email = 1; + optional bool stream_live_notification = 2; +} + +message CSteamTV_SetSteamTVUserSettings_Request { + optional bool stream_live_email = 1; + optional bool stream_live_notification = 2; +} + +message CSteamTV_SetSteamTVUserSettings_Response { +} + +message CSteamTV_GetMyBroadcastChannels_Request { +} + +message CSteamTV_GetMyBroadcastChannels_Response { + repeated .GetBroadcastChannelEntry results = 1; +} + +message CSteamTV_GetHomePageContents_Request { +} + +message CSteamTV_HomePageTemplate_Takeover { + repeated .GetBroadcastChannelEntry broadcasts = 1; +} + +message CSteamTV_HomePageTemplate_SingleGame { + repeated .GetBroadcastChannelEntry broadcasts = 1; + optional uint32 appid = 2; + optional string title = 3; +} + +message GameListEntry { + optional uint32 appid = 1; + optional string game_name = 2; + optional .GetBroadcastChannelEntry broadcast = 3; +} + +message CSteamTV_HomePageTemplate_GameList { + repeated .GameListEntry entries = 1; + optional string title = 2; +} + +message CSteamTV_HomePageTemplate_QuickExplore { + repeated .GetBroadcastChannelEntry broadcasts = 1; + optional string title = 2; +} + +message CSteamTV_HomePageTemplate_ConveyorBelt { + repeated .GetBroadcastChannelEntry broadcasts = 1; + optional string title = 2; +} + +message CSteamTV_HomePageTemplate_WatchParty { + optional .GetBroadcastChannelEntry broadcast = 1; + optional string title = 2; + optional uint64 chat_group_id = 3; +} + +message CSteamTV_HomePageTemplate_Developer { + optional .GetBroadcastChannelEntry broadcast = 1; + optional string title = 2; +} + +message CSteamTV_HomePageTemplate_Event { + optional string title = 1; +} + +message CSteamTV_HomePageContentRow { + optional .ESteamTVContentTemplate template_type = 1 [default = k_ESteamTVContentTemplate_Invalid]; + optional .CSteamTV_HomePageTemplate_Takeover takeover = 2; + optional .CSteamTV_HomePageTemplate_SingleGame single_game = 3; + optional .CSteamTV_HomePageTemplate_GameList game_list = 4; + optional .CSteamTV_HomePageTemplate_QuickExplore quick_explore = 5; + optional .CSteamTV_HomePageTemplate_ConveyorBelt conveyor_belt = 6; + optional .CSteamTV_HomePageTemplate_WatchParty watch_party = 7; + optional .CSteamTV_HomePageTemplate_Developer developer = 8; + optional .CSteamTV_HomePageTemplate_Event event = 9; +} + +message CSteamTV_GetHomePageContents_Response { + repeated .CSteamTV_HomePageContentRow rows = 1; +} + +message CSteamTV_AppCheer_SingleCheerType { + optional uint32 cheer_type = 1; + optional uint32 cheer_amount = 2; +} + +message CSteamTV_AppCheer_Request { + optional uint32 app_id = 1; + optional fixed64 cheer_target_id = 2; + repeated .CSteamTV_AppCheer_SingleCheerType cheers = 3; +} + +message CSteamTV_AppCheer_Response { + optional uint32 aggregation_delay_ms = 1; +} + +service SteamTV { + rpc CreateBroadcastChannel (.CSteamTV_CreateBroadcastChannel_Request) returns (.CSteamTV_CreateBroadcastChannel_Response); + rpc GetBroadcastChannelID (.CSteamTV_GetBroadcastChannelID_Request) returns (.CSteamTV_GetBroadcastChannelID_Response); + rpc SetBroadcastChannelProfile (.CSteamTV_SetBroadcastChannelProfile_Request) returns (.CSteamTV_SetBroadcastChannelProfile_Response); + rpc GetBroadcastChannelProfile (.CSteamTV_GetBroadcastChannelProfile_Request) returns (.CSteamTV_GetBroadcastChannelProfile_Response); + rpc SetBroadcastChannelImage (.CSteamTV_SetBroadcastChannelImage_Request) returns (.CSteamTV_SetBroadcastChannelImage_Response); + rpc GetBroadcastChannelImages (.CSteamTV_GetBroadcastChannelImages_Request) returns (.CSteamTV_GetBroadcastChannelImages_Response); + rpc SetBroadcastChannelLinkRegions (.CSteamTV_SetBroadcastChannelLinkRegions_Request) returns (.CSteamTV_SetBroadcastChannelLinkRegions_Response); + rpc GetBroadcastChannelLinks (.CSteamTV_GetBroadcastChannelLinks_Request) returns (.CSteamTV_GetBroadcastChannelLinks_Response); + rpc GetBroadcastChannelBroadcasters (.CSteamTV_GetBroadcastChannelBroadcasters_Request) returns (.CSteamTV_GetBroadcastChannelBroadcasters_Response); + rpc GetFollowedChannels (.CSteamTV_GetFollowedChannels_Request) returns (.CSteamTV_GetFollowedChannels_Response); + rpc GetSubscribedChannels (.CSteamTV_GetSubscribedChannels_Request) returns (.CSteamTV_GetSubscribedChannels_Response); + rpc GetBroadcastChannelStatus (.CSteamTV_GetBroadcastChannelStatus_Request) returns (.CSteamTV_GetBroadcastChannelStatus_Response); + rpc FollowBroadcastChannel (.CSteamTV_FollowBroadcastChannel_Request) returns (.CSteamTV_FollowBroadcastChannel_Response); + rpc SubscribeBroadcastChannel (.CSteamTV_SubscribeBroadcastChannel_Request) returns (.CSteamTV_SubscribeBroadcastChannel_Response); + rpc GetBroadcastChannelClips (.CSteamTV_GetBroadcastChannelClips_Request) returns (.CSteamTV_GetBroadcastChannelClips_Response); + rpc ReportBroadcastChannel (.CSteamTV_ReportBroadcastChannel_Request) returns (.CSteamTV_ReportBroadcastChannel_Response); + rpc GetBroadcastChannelInteraction (.CSteamTV_GetBroadcastChannelInteraction_Request) returns (.CSteamTV_GetBroadcastChannelInteraction_Response); + rpc GetGames (.CSteamTV_GetGames_Request) returns (.CSteamTV_GetGames_Response); + rpc GetChannels (.CSteamTV_GetChannels_Request) returns (.CSteamTV_GetChannels_Response); + rpc AddChatBan (.CSteamTV_AddChatBan_Request) returns (.CSteamTV_AddChatBan_Response); + rpc GetChatBans (.CSteamTV_GetChatBans_Request) returns (.CSteamTV_GetChatBans_Response); + rpc AddChatModerator (.CSteamTV_AddChatModerator_Request) returns (.CSteamTV_AddChatModerator_Response); + rpc GetChatModerators (.CSteamTV_GetChatModerators_Request) returns (.CSteamTV_GetChatModerators_Response); + rpc AddWordBan (.CSteamTV_AddWordBan_Request) returns (.CSteamTV_AddWordBan_Response); + rpc GetWordBans (.CSteamTV_GetWordBans_Request) returns (.CSteamTV_GetWordBans_Response); + rpc JoinChat (.CSteamTV_JoinChat_Request) returns (.CSteamTV_JoinChat_Response); + rpc Search (.CSteamTV_Search_Request) returns (.CSteamTV_Search_Response); + rpc GetSteamTVUserSettings (.CSteamTV_GetSteamTVUserSettings_Request) returns (.CSteamTV_GetSteamTVUserSettings_Response); + rpc SetSteamTVUserSettings (.CSteamTV_SetSteamTVUserSettings_Request) returns (.CSteamTV_SetSteamTVUserSettings_Response); + rpc GetMyBroadcastChannels (.CSteamTV_GetMyBroadcastChannels_Request) returns (.CSteamTV_GetMyBroadcastChannels_Response); + rpc GetHomePageContents (.CSteamTV_GetHomePageContents_Request) returns (.CSteamTV_GetHomePageContents_Response); + rpc AppCheer (.CSteamTV_AppCheer_Request) returns (.CSteamTV_AppCheer_Response); +} diff --git a/Protobufs/steam/steammessages_store.steamclient.proto b/Protobufs/steam/steammessages_store.steamclient.proto new file mode 100644 index 0000000..26116a2 --- /dev/null +++ b/Protobufs/steam/steammessages_store.steamclient.proto @@ -0,0 +1,425 @@ +import "steammessages_base.proto"; +import "steammessages_unified_base.steamclient.proto"; +import "contenthubs.proto"; +import "enums.proto"; + +option cc_generic_services = true; + +enum EStoreDiscoveryQueueType { + k_EStoreDiscoveryQueueTypeNew = 0; + k_EStoreDiscoveryQueueTypeComingSoon = 1; + k_EStoreDiscoveryQueueTypeRecommended = 2; + k_EStoreDiscoveryQueueTypeEveryNewRelease = 3; + k_EStoreDiscoveryQueueTypeMLRecommender = 5; + k_EStoreDiscoveryQueueTypeWishlistOnSale = 6; + k_EStoreDiscoveryQueueTypeDLC = 7; + k_EStoreDiscoveryQueueTypeDLCOnSale = 8; + k_EStoreDiscoveryQueueTypeRecommendedComingSoon = 9; + k_EStoreDiscoveryQueueTypeRecommendedFree = 10; + k_EStoreDiscoveryQueueTypeRecommendedOnSale = 11; + k_EStoreDiscoveryQueueTypeRecommendedDemos = 12; + k_EStoreDiscoveryQueueTypeDLCNewReleases = 13; + k_EStoreDiscoveryQueueTypeDLCTopSellers = 14; + k_EStoreDiscoveryQueueTypeMAX = 15; +} + +enum EPlaytestStatus { + k_ETesterStatusNone = 0; + k_ETesterStatusPending = 1; + k_ETesterStatusInvited = 2; + k_ETesterStatusGranted = 3; +} + +enum EAppReportType { + k_EAppReportType_Invalid = 0; + k_EAppReportType_Scam = 1; + k_EAppReportType_Malware = 2; + k_EAppReportType_HateSpeech = 3; + k_EAppReportType_Pornography = 4; + k_EAppReportType_NonLabeledAdultContent = 5; + k_EAppReportType_Libelous = 6; + k_EAppReportType_Offensive = 7; + k_EAppReportType_ExploitsChildren = 8; + k_EAppReportType_MtxWithNonSteamWalletPaymentMethods = 9; + k_EAppReportType_CopyrightViolation = 10; + k_EAppReportType_ViolatesLaws = 11; + k_EAppReportType_Other = 12; + k_EAppReportType_Broken = 13; + k_EAppReportType_AIContentReport = 14; +} + +enum EUserReviewScorePreference { + k_EUserReviewScorePreference_Unset = 0; + k_EUserReviewScorePreference_IncludeAll = 1; + k_EUserReviewScorePreference_ExcludeBombs = 2; +} + +enum EPartnerLinkTrackingBackfillSource { + k_EPartnerLinkTrackingBackfillSource_None = 0; + k_EPartnerLinkTrackingBackfillSource_Web = 1; + k_EPartnerLinkTrackingBackfillSource_Mobile = 2; + k_EPartnerLinkTrackingBackfillSource_Desktop = 3; +} + +message CStore_RegisterCDKey_Request { + optional string activation_code = 1; + optional int32 purchase_platform = 2; + optional bool is_request_from_client = 3; +} + +message CStore_PurchaseReceiptInfo { + message LineItem { + optional uint32 packageid = 1; + optional uint32 appid = 2; + optional string line_item_description = 3; + } + + optional uint64 transactionid = 1; + optional uint32 packageid = 2; + optional uint32 purchase_status = 3; + optional uint32 result_detail = 4; + optional uint32 transaction_time = 5; + optional uint32 payment_method = 6; + optional uint64 base_price = 7; + optional uint64 total_discount = 8; + optional uint64 tax = 9; + optional uint64 shipping = 10; + optional uint32 currency_code = 11; + optional string country_code = 12; + optional string error_headline = 13; + optional string error_string = 14; + optional string error_link_text = 15; + optional string error_link_url = 16; + optional uint32 error_appid = 17; + repeated .CStore_PurchaseReceiptInfo.LineItem line_items = 18; +} + +message CStore_RegisterCDKey_Response { + optional int32 purchase_result_details = 1; + optional .CStore_PurchaseReceiptInfo purchase_receipt_info = 2; +} + +message CStore_GetMostPopularTags_Request { + optional string language = 1; +} + +message CStore_GetMostPopularTags_Response { + message Tag { + optional uint32 tagid = 1; + optional string name = 2; + } + + repeated .CStore_GetMostPopularTags_Response.Tag tags = 1; +} + +message CStore_GetLocalizedNameForTags_Request { + optional string language = 1; + repeated uint32 tagids = 2; +} + +message CStore_GetLocalizedNameForTags_Response { + message Tag { + optional uint32 tagid = 1; + optional string english_name = 2; + optional string name = 3; + optional string normalized_name = 4; + } + + repeated .CStore_GetLocalizedNameForTags_Response.Tag tags = 1; +} + +message CStore_GetTagList_Request { + optional string language = 1; + optional string have_version_hash = 2; +} + +message CStore_GetTagList_Response { + message Tag { + optional uint32 tagid = 1; + optional string name = 2; + } + + optional string version_hash = 1; + repeated .CStore_GetTagList_Response.Tag tags = 2; +} + +message CStoreDiscoveryQueueSettings { + optional bool os_win = 4; + optional bool os_mac = 5; + optional bool os_linux = 6; + optional bool full_controller_support = 7; + optional bool native_steam_controller = 8; + optional bool include_coming_soon = 9; + repeated uint32 excluded_tagids = 10; + optional bool exclude_early_access = 11; + optional bool exclude_videos = 12; + optional bool exclude_software = 13; + optional bool exclude_dlc = 14; + optional bool exclude_soundtracks = 15; + repeated uint32 featured_tagids = 16; +} + +message CStore_GetDiscoveryQueue_Request { + optional .EStoreDiscoveryQueueType queue_type = 1 [default = k_EStoreDiscoveryQueueTypeNew]; + optional string country_code = 2; + optional bool rebuild_queue = 3; + optional bool settings_changed = 4; + optional .CStoreDiscoveryQueueSettings settings = 5; + optional bool rebuild_queue_if_stale = 6; + optional bool ignore_user_preferences = 8; + optional bool no_experimental_results = 9; + optional uint32 experimental_cohort = 10; + optional bool debug_get_solr_query = 11; + optional .CStorePageFilter store_page_filter = 12; +} + +message CStore_GetDiscoveryQueue_Response { + repeated uint32 appids = 1; + optional string country_code = 2; + optional .CStoreDiscoveryQueueSettings settings = 3; + optional int32 skipped = 4; + optional bool exhausted = 5; + optional uint32 experimental_cohort = 6; + optional string debug_solr_query = 7; +} + +message CStore_GetDiscoveryQueueSettings_Request { + optional .EStoreDiscoveryQueueType queue_type = 1 [default = k_EStoreDiscoveryQueueTypeNew]; + optional .CStorePageFilter store_page_filter = 2; +} + +message CStore_GetDiscoveryQueueSettings_Response { + optional string country_code = 1; + optional .CStoreDiscoveryQueueSettings settings = 2; +} + +message CStore_SkipDiscoveryQueueItem_Request { + optional .EStoreDiscoveryQueueType queue_type = 1 [default = k_EStoreDiscoveryQueueTypeNew]; + optional uint32 appid = 2; + optional .CStorePageFilter store_page_filter = 3; +} + +message CStore_SkipDiscoveryQueueItem_Response { +} + +message CStore_GetUserGameInterestState_Request { + optional uint32 appid = 1; + optional uint32 store_appid = 2; + optional uint32 beta_appid = 3; +} + +message CStore_GetUserGameInterestState_Response { + message InQueue { + optional .EStoreDiscoveryQueueType type = 1 [default = k_EStoreDiscoveryQueueTypeNew]; + optional bool skipped = 2; + optional int32 items_remaining = 3; + optional uint32 next_appid = 4; + optional uint32 experimental_cohort = 5; + } + + optional bool owned = 1; + optional bool wishlist = 2; + optional bool ignored = 3; + optional bool following = 4; + repeated .EStoreDiscoveryQueueType in_queues = 5; + repeated .EStoreDiscoveryQueueType queues_with_skip = 6; + repeated int32 queue_items_remaining = 7; + repeated uint32 queue_items_next_appid = 8; + optional bool temporarily_owned = 9; + repeated .CStore_GetUserGameInterestState_Response.InQueue queues = 10; + optional int32 ignored_reason = 11; + optional .EPlaytestStatus beta_status = 12 [default = k_ETesterStatusNone]; +} + +message CStore_GetDiscoveryQueueSkippedApps_Request { + optional fixed64 steamid = 1; + optional .EStoreDiscoveryQueueType queue_type = 2 [default = k_EStoreDiscoveryQueueTypeNew]; + optional .CStorePageFilter store_page_filter = 3; +} + +message CStore_GetDiscoveryQueueSkippedApps_Response { + repeated uint32 appids = 1; +} + +message CStore_ReportApp_Request { + optional uint32 appid = 1; + optional .EAppReportType report_type = 2 [default = k_EAppReportType_Invalid]; + optional string report = 3; +} + +message CStore_ReportApp_Response { +} + +message CStore_GetStorePreferences_Request { +} + +message CStore_UserPreferences { + optional int32 primary_language = 1; + optional uint32 secondary_languages = 2; + optional bool platform_windows = 3; + optional bool platform_mac = 4; + optional bool platform_linux = 5; + optional uint32 timestamp_updated = 8; + optional bool hide_store_broadcast = 9; + optional .EUserReviewScorePreference review_score_preference = 10 [default = k_EUserReviewScorePreference_Unset]; + optional int32 timestamp_content_descriptor_preferences_updated = 11; + optional .EProvideDeckFeedbackPreference provide_deck_feedback = 12 [default = k_EProvideDeckFeedbackPreference_Unset]; + optional string additional_languages = 13; +} + +message CStore_UserTagPreferences { + message Tag { + optional uint32 tagid = 1; + optional string name = 2; + optional uint32 timestamp_added = 3; + } + + repeated .CStore_UserTagPreferences.Tag tags_to_exclude = 1; +} + +message CStore_GetStorePreferences_Response { + optional .CStore_UserPreferences preferences = 1; + optional .CStore_UserTagPreferences tag_preferences = 2; + optional .UserContentDescriptorPreferences content_descriptor_preferences = 3; +} + +message CStore_GetTrendingAppsAmongFriends_Request { + optional uint32 num_apps = 1; + optional uint32 num_top_friends = 2; +} + +message CStore_GetTrendingAppsAmongFriends_Response { + message TrendingAppData { + optional uint32 appid = 1; + repeated uint64 steamids_top_friends = 2; + optional uint32 total_friends = 3; + } + + repeated .CStore_GetTrendingAppsAmongFriends_Response.TrendingAppData trending_apps = 1; +} + +message CStore_MigratePartnerLinkTracking_Notification { + optional uint32 accountid = 1; + optional uint64 browserid = 2; + optional .EPartnerLinkTrackingBackfillSource backfill_source = 3 [default = k_EPartnerLinkTrackingBackfillSource_None]; +} + +message CStore_UpdatePackageReservations_Request { + repeated uint32 packages_to_reserve = 1; + repeated uint32 packages_to_unreserve = 2; + optional string country_code = 3; +} + +message CStore_UpdatePackageReservations_Response { + repeated .CPackageReservationStatus reservation_status = 1; +} + +message CStore_GetWishlistDemoEmailStatus_Request { + optional uint32 appid = 1; + optional uint32 demo_appid = 2; +} + +message CStore_GetWishlistDemoEmailStatus_Response { + optional bool can_fire = 1 [default = false]; + optional uint32 time_staged = 2; + optional uint32 demo_release_date = 3; +} + +message CStore_QueueWishlistDemoEmailToFire_Request { + optional uint32 appid = 1; + optional uint32 demo_appid = 2; +} + +message CStore_QueueWishlistDemoEmailToFire_Response { +} + +message CReservationPositionMessage { + optional uint32 edistributor = 1; + optional string product_identifier = 2; + optional uint32 start_queue_position = 3; + optional uint32 rtime_estimated_notification = 4; + optional string localization_token = 5; + optional uint32 accountid = 6; + optional uint32 rtime_created = 7; +} + +message CStore_SetReservationPositionMessage_Request { + repeated .CReservationPositionMessage settings = 1; +} + +message CStore_SetReservationPositionMessage_Response { +} + +message CStore_DeleteReservationPositionMessage_Request { + optional uint32 edistributor = 1; + optional string product_identifier = 2; + optional uint32 start_queue_position = 3; +} + +message CStore_DeleteReservationPositionMessage_Response { +} + +message CStore_GetAllReservationPositionMessages_Request { +} + +message CStore_GetAllReservationPositionMessages_Response { + repeated .CReservationPositionMessage settings = 1; +} + +message CStore_ReloadAllReservationPositionMessages_Notification { +} + +message CSteamDeckCompatibility_SetFeedback_Request { + optional uint32 appid = 1; + optional .ESteamDeckCompatibilityFeedback feedback = 2 [default = k_ESteamDeckCompatibilityFeedback_Unset]; +} + +message CSteamDeckCompatibility_SetFeedback_Response { +} + +message CSteamDeckCompatibility_ShouldPrompt_Request { + optional uint32 appid = 1; +} + +message CSteamDeckCompatibility_ShouldPrompt_Response { + optional bool prompt = 1; + optional bool feedback_eligible = 2; + optional .ESteamDeckCompatibilityFeedback existing_feedback = 3 [default = k_ESteamDeckCompatibilityFeedback_Unset]; +} + +message CStore_StorePreferencesChanged_Notification { + optional .CStore_UserPreferences preferences = 1; + optional .CStore_UserTagPreferences tag_preferences = 2; + optional .UserContentDescriptorPreferences content_descriptor_preferences = 3; +} + +service Store { + rpc RegisterCDKey (.CStore_RegisterCDKey_Request) returns (.CStore_RegisterCDKey_Response); + rpc GetMostPopularTags (.CStore_GetMostPopularTags_Request) returns (.CStore_GetMostPopularTags_Response); + rpc GetLocalizedNameForTags (.CStore_GetLocalizedNameForTags_Request) returns (.CStore_GetLocalizedNameForTags_Response); + rpc GetTagList (.CStore_GetTagList_Request) returns (.CStore_GetTagList_Response); + rpc GetDiscoveryQueue (.CStore_GetDiscoveryQueue_Request) returns (.CStore_GetDiscoveryQueue_Response); + rpc GetDiscoveryQueueSettings (.CStore_GetDiscoveryQueueSettings_Request) returns (.CStore_GetDiscoveryQueueSettings_Response); + rpc SkipDiscoveryQueueItem (.CStore_SkipDiscoveryQueueItem_Request) returns (.CStore_SkipDiscoveryQueueItem_Response); + rpc GetUserGameInterestState (.CStore_GetUserGameInterestState_Request) returns (.CStore_GetUserGameInterestState_Response); + rpc GetDiscoveryQueueSkippedApps (.CStore_GetDiscoveryQueueSkippedApps_Request) returns (.CStore_GetDiscoveryQueueSkippedApps_Response); + rpc ReportApp (.CStore_ReportApp_Request) returns (.CStore_ReportApp_Response); + rpc GetStorePreferences (.CStore_GetStorePreferences_Request) returns (.CStore_GetStorePreferences_Response); + rpc GetTrendingAppsAmongFriends (.CStore_GetTrendingAppsAmongFriends_Request) returns (.CStore_GetTrendingAppsAmongFriends_Response); + rpc MigratePartnerLinkTracking (.CStore_MigratePartnerLinkTracking_Notification) returns (.NoResponse); + rpc UpdatePackageReservations (.CStore_UpdatePackageReservations_Request) returns (.CStore_UpdatePackageReservations_Response); + rpc GetWishlistDemoEmailStatus (.CStore_GetWishlistDemoEmailStatus_Request) returns (.CStore_GetWishlistDemoEmailStatus_Response); + rpc QueueWishlistDemoEmailToFire (.CStore_QueueWishlistDemoEmailToFire_Request) returns (.CStore_QueueWishlistDemoEmailToFire_Response); + rpc SetReservationPositionMessage (.CStore_SetReservationPositionMessage_Request) returns (.CStore_SetReservationPositionMessage_Response); + rpc DeleteReservationPositionMessage (.CStore_DeleteReservationPositionMessage_Request) returns (.CStore_DeleteReservationPositionMessage_Response); + rpc GetAllReservationPositionMessages (.CStore_GetAllReservationPositionMessages_Request) returns (.CStore_GetAllReservationPositionMessages_Response); + rpc ReloadAllReservationPositionMessages (.CStore_ReloadAllReservationPositionMessages_Notification) returns (.NoResponse); + rpc SetCompatibilityFeedback (.CSteamDeckCompatibility_SetFeedback_Request) returns (.CSteamDeckCompatibility_SetFeedback_Response); + rpc ShouldPromptForCompatibilityFeedback (.CSteamDeckCompatibility_ShouldPrompt_Request) returns (.CSteamDeckCompatibility_ShouldPrompt_Response); +} + +service StoreClient { + option (service_execution_site) = k_EProtoExecutionSiteSteamClient; + + rpc NotifyStorePreferencesChanged (.CStore_StorePreferencesChanged_Notification) returns (.NoResponse); +} diff --git a/Protobufs/steam/steammessages_storebrowse.steamclient.proto b/Protobufs/steam/steammessages_storebrowse.steamclient.proto new file mode 100644 index 0000000..f33a5bb --- /dev/null +++ b/Protobufs/steam/steammessages_storebrowse.steamclient.proto @@ -0,0 +1,477 @@ +import "steammessages_base.proto"; +import "steammessages_unified_base.steamclient.proto"; +import "enums_productinfo.proto"; +import "enums.proto"; +import "contenthubs.proto"; + +option cc_generic_services = true; + +enum EStoreItemType { + k_EStoreItemType_Invalid = -1; + k_EStoreItemType_App = 0; + k_EStoreItemType_Package = 1; + k_EStoreItemType_Bundle = 2; + k_EStoreItemType_Mtx = 3; + k_EStoreItemType_Tag = 4; + k_EStoreItemType_Creator = 5; + k_EStoreItemType_HubCategory = 6; +} + +enum EStoreAppType { + k_EStoreAppType_Game = 0; + k_EStoreAppType_Demo = 1; + k_EStoreAppType_Mod = 2; + k_EStoreAppType_Movie = 3; + k_EStoreAppType_DLC = 4; + k_EStoreAppType_Guide = 5; + k_EStoreAppType_Software = 6; + k_EStoreAppType_Video = 7; + k_EStoreAppType_Series = 8; + k_EStoreAppType_Episode = 9; + k_EStoreAppType_Hardware = 10; + k_EStoreAppType_Music = 11; + k_EStoreAppType_Beta = 12; + k_EStoreAppType_Tool = 13; + k_EStoreAppType_Advertising = 14; +} + +enum EUserReviewScore { + k_EUserReviewScore_None = 0; + k_EUserReviewScore_OverwhelminglyNegative = 1; + k_EUserReviewScore_VeryNegative = 2; + k_EUserReviewScore_Negative = 3; + k_EUserReviewScore_MostlyNegative = 4; + k_EUserReviewScore_Mixed = 5; + k_EUserReviewScore_MostlyPositive = 6; + k_EUserReviewScore_Positive = 7; + k_EUserReviewScore_VeryPositive = 8; + k_EUserReviewScore_OverwhelminglyPositive = 9; +} + +enum EStoreBrowseFilterFailure { + k_EStoreBrowseFilterFailure_None = 0; + k_EStoreBrowseFilterFailure_Redundant = 10; + k_EStoreBrowseFilterFailure_NotPreferred = 20; + k_EStoreBrowseFilterFailure_NotInterested = 30; + k_EStoreBrowseFilterFailure_UnwantedContent = 40; + k_EStoreBrowseFilterFailure_Unavailable = 50; +} + +enum EStoreLinkType { + k_EStoreLinkType_None = 0; + k_EStoreLinkType_YouTube = 1; + k_EStoreLinkType_Facebook = 2; + k_EStoreLinkType_Twitter = 3; + k_EStoreLinkType_Twitch = 4; + k_EStoreLinkType_Discord = 5; + k_EStoreLinkType_MAX = 6; +} + +enum EStoreCategoryType { + k_EStoreCategoryType_Category = 0; + k_EStoreCategoryType_SupportedPlayers = 1; + k_EStoreCategoryType_Feature = 2; + k_EStoreCategoryType_ControllerSupport = 3; + k_EStoreCategoryType_CloudGaming = 4; + k_EStoreCategoryType_MAX = 5; +} + +message StoreItemID { + optional uint32 appid = 1; + optional uint32 packageid = 2; + optional uint32 bundleid = 3; + optional uint32 tagid = 4; + optional uint32 creatorid = 5; + optional uint32 hubcategoryid = 6; +} + +message StoreBrowseContext { + optional string language = 1; + optional int32 elanguage = 2; + optional string country_code = 3; + optional int32 steam_realm = 4; +} + +message StoreBrowseItemDataRequest { + optional bool include_assets = 1; + optional bool include_release = 2; + optional bool include_platforms = 3; + optional bool include_all_purchase_options = 4; + optional bool include_screenshots = 5; + optional bool include_trailers = 6; + optional bool include_ratings = 7; + optional int32 include_tag_count = 8; + optional bool include_reviews = 9; + optional bool include_basic_info = 10; + optional bool include_supported_languages = 11; + optional bool include_full_description = 12; + optional bool include_included_items = 13; + optional .StoreBrowseItemDataRequest included_item_data_request = 14; + optional bool include_assets_without_overrides = 15; + optional bool apply_user_filters = 16; + optional bool include_links = 17; +} + +message CStoreBrowse_GetItems_Request { + repeated .StoreItemID ids = 1; + optional .StoreBrowseContext context = 2; + optional .StoreBrowseItemDataRequest data_request = 3; +} + +message StoreItem { + message RelatedItems { + optional uint32 parent_appid = 1; + } + + message IncludedItems { + repeated .StoreItem included_apps = 1; + repeated .StoreItem included_packages = 2; + } + + message Categories { + repeated uint32 supported_player_categoryids = 2; + repeated uint32 feature_categoryids = 3; + repeated uint32 controller_categoryids = 4; + } + + message Reviews { + message StoreReviewSummary { + optional uint32 review_count = 1; + optional int32 percent_positive = 2; + optional .EUserReviewScore review_score = 3 [default = k_EUserReviewScore_None]; + optional string review_score_label = 4; + } + + optional .StoreItem.Reviews.StoreReviewSummary summary_filtered = 1; + optional .StoreItem.Reviews.StoreReviewSummary summary_unfiltered = 2; + } + + message BasicInfo { + message CreatorHomeLink { + optional string name = 1; + optional uint32 creator_clan_account_id = 2; + } + + optional string short_description = 1; + repeated .StoreItem.BasicInfo.CreatorHomeLink publishers = 2; + repeated .StoreItem.BasicInfo.CreatorHomeLink developers = 3; + repeated .StoreItem.BasicInfo.CreatorHomeLink franchises = 4; + optional string capsule_headline = 5; + } + + message Tag { + optional uint32 tagid = 1; + optional uint32 weight = 2; + } + + message Assets { + optional string asset_url_format = 1; + optional string main_capsule = 2; + optional string small_capsule = 3; + optional string header = 4; + optional string package_header = 5; + optional string page_background = 6; + optional string hero_capsule = 7; + optional string hero_capsule_2x = 8; + optional string library_capsule = 9; + optional string library_capsule_2x = 10; + optional string library_hero = 11; + optional string library_hero_2x = 12; + optional string community_icon = 13; + optional string clan_avatar = 14; + } + + message ReleaseInfo { + optional uint32 steam_release_date = 1; + optional uint32 original_release_date = 2; + optional uint32 original_steam_release_date = 3; + optional bool is_coming_soon = 4; + optional bool is_preload = 5; + optional string custom_release_date_message = 6; + optional bool is_abridged_release_date = 7; + optional string coming_soon_display = 8; + optional bool is_early_access = 10; + optional uint32 mac_release_date = 20; + optional uint32 linux_release_date = 21; + } + + message Platforms { + message VRSupport { + optional bool vrhmd = 1; + optional bool vrhmd_only = 2; + optional bool htc_vive = 40; + optional bool oculus_rift = 41; + optional bool windows_mr = 42; + optional bool valve_index = 43; + } + + optional bool windows = 1; + optional bool mac = 2; + optional bool steamos_linux = 3; + optional .StoreItem.Platforms.VRSupport vr_support = 10; + optional .ESteamDeckCompatibilityCategory steam_deck_compat_category = 11 [default = k_ESteamDeckCompatibilityCategory_Unknown]; + } + + message PurchaseOption { + message Discount { + optional int64 discount_amount = 1; + optional string discount_description = 2; + optional uint32 discount_end_date = 3; + } + + message RecurrenceInfo { + optional int32 packageid = 1; + optional int32 billing_agreement_type = 2; + optional int32 renewal_time_unit = 3; + optional int32 renewal_time_period = 4; + optional int64 renewal_price_in_cents = 5; + optional string formatted_renewal_price = 6; + } + + optional int32 packageid = 1; + optional int32 bundleid = 2; + optional string purchase_option_name = 3; + optional int64 final_price_in_cents = 5; + optional int64 original_price_in_cents = 6; + optional int64 user_final_price_in_cents = 7; + optional string formatted_final_price = 8; + optional string formatted_original_price = 9; + optional int32 discount_pct = 10; + optional int32 user_discount_pct = 11; + optional int32 bundle_discount_pct = 12; + repeated .StoreItem.PurchaseOption.Discount active_discounts = 20; + repeated .StoreItem.PurchaseOption.Discount user_active_discounts = 21; + repeated .StoreItem.PurchaseOption.Discount inactive_discounts = 22; + optional bool user_can_purchase = 30; + optional bool user_can_purchase_as_gift = 31; + optional bool is_commercial_license = 40; + optional bool should_suppress_discount_pct = 41; + optional bool hide_discount_pct_for_compliance = 42 [default = false]; + optional int32 included_game_count = 43; + optional int64 lowest_recent_price_in_cents = 44; + optional bool requires_shipping = 45; + optional .StoreItem.PurchaseOption.RecurrenceInfo recurrence_info = 46; + } + + message Screenshots { + message Screenshot { + optional string filename = 1; + optional int32 ordinal = 2; + } + + repeated .StoreItem.Screenshots.Screenshot all_ages_screenshots = 2; + repeated .StoreItem.Screenshots.Screenshot mature_content_screenshots = 3; + } + + message Trailers { + message VideoSource { + optional string filename = 1; + optional string type = 2; + } + + message Trailer { + optional string trailer_name = 1; + optional string trailer_url_format = 2; + repeated .StoreItem.Trailers.VideoSource trailer_480p = 3; + repeated .StoreItem.Trailers.VideoSource trailer_max = 4; + repeated .StoreItem.Trailers.VideoSource microtrailer = 5; + optional string screenshot_medium = 10; + optional string screenshot_full = 11; + optional int32 trailer_base_id = 12; + } + + repeated .StoreItem.Trailers.Trailer highlights = 1; + repeated .StoreItem.Trailers.Trailer other_trailers = 2; + } + + message SupportedLanguage { + optional int32 elanguage = 1 [default = -1]; + optional int32 eadditionallanguage = 5 [default = -1]; + optional bool supported = 2; + optional bool full_audio = 3; + optional bool subtitles = 4; + } + + message FreeWeekend { + optional uint32 start_time = 1; + optional uint32 end_time = 2; + optional string text = 3; + } + + message Link { + optional .EStoreLinkType link_type = 1 [default = k_EStoreLinkType_None]; + optional string url = 2; + } + + optional .EStoreItemType item_type = 1 [default = k_EStoreItemType_Invalid]; + optional uint32 id = 2; + optional uint32 success = 3; + optional bool visible = 4; + optional bool unvailable_for_country_restriction = 5; + optional string name = 6; + optional string store_url_path = 7; + optional uint32 appid = 9; + optional .EStoreAppType type = 10 [default = k_EStoreAppType_Game]; + repeated .EStoreAppType included_types = 11; + repeated uint32 included_appids = 12; + optional bool is_free = 13; + optional bool is_early_access = 14; + optional .StoreItem.RelatedItems related_items = 15; + optional .StoreItem.IncludedItems included_items = 16; + repeated .EContentDescriptorID content_descriptorids = 20; + repeated uint32 tagids = 21; + optional .StoreItem.Categories categories = 22; + optional .StoreItem.Reviews reviews = 23; + optional .StoreItem.BasicInfo basic_info = 24; + repeated .StoreItem.Tag tags = 25; + optional .StoreItem.Assets assets = 30; + optional .StoreItem.ReleaseInfo release = 31; + optional .StoreItem.Platforms platforms = 32; + optional .StoreGameRating game_rating = 33; + optional .StoreItem.PurchaseOption best_purchase_option = 40; + repeated .StoreItem.PurchaseOption purchase_options = 41; + repeated .StoreItem.PurchaseOption accessories = 42; + optional .StoreItem.PurchaseOption self_purchase_option = 43; + optional .StoreItem.Screenshots screenshots = 50; + optional .StoreItem.Trailers trailers = 51; + repeated .StoreItem.SupportedLanguage supported_languages = 52; + optional string store_url_path_override = 53; + optional .StoreItem.FreeWeekend free_weekend = 54; + optional bool unlisted = 55; + optional uint32 game_count = 56; + optional string internal_name = 57; + optional string full_description = 58; + optional bool is_free_temporarily = 59; + optional .StoreItem.Assets assets_without_overrides = 60; + optional .StoreBrowseFilterFailure user_filter_failure = 70; + repeated .StoreItem.Link links = 71; +} + +message StoreGameRating { + optional string type = 1; + optional string rating = 2; + repeated string descriptors = 3; + optional string interactive_elements = 4; + optional int32 required_age = 10; + optional bool use_age_gate = 11; + optional string image_url = 20; + optional string image_target = 21; +} + +message StoreBrowseFilterFailure { + optional .EStoreBrowseFilterFailure filter_failure = 1 [default = k_EStoreBrowseFilterFailure_None]; + optional bool already_owned = 5; + optional bool on_wishlist = 6; + optional bool ignored = 7; + optional bool not_in_users_language = 10; + optional bool not_on_users_platform = 11; + optional bool demo_for_owned_game = 12; + optional bool dlc_for_unowned_game = 13; + optional bool nonpreferred_product_type = 20; + repeated uint32 excluded_tagids = 21; + repeated .EContentDescriptorID excluded_content_descriptorids = 30; +} + +message CStoreBrowse_GetItems_Response { + repeated .StoreItem store_items = 1; +} + +message CStoreBrowse_GetStoreCategories_Request { + optional string language = 1; + optional int32 elanguage = 2 [default = -1]; +} + +message CStoreBrowse_GetStoreCategories_Response { + message Category { + optional uint32 categoryid = 1; + optional .EStoreCategoryType type = 2 [default = k_EStoreCategoryType_Category]; + optional string internal_name = 3; + optional string display_name = 4; + optional string image_url = 5; + optional bool show_in_search = 6; + optional bool computed = 7; + } + + repeated .CStoreBrowse_GetStoreCategories_Response.Category categories = 1; +} + +message CStoreBrowse_GetDLCForApps_Request { + optional .StoreBrowseContext context = 1; + optional .CStorePageFilter store_page_filter = 2; + repeated .StoreItemID appids = 3; + optional uint64 steamid = 4; +} + +message CStoreBrowse_GetDLCForApps_Response { + message DLCData { + optional uint32 appid = 1; + optional uint32 parentappid = 2; + optional uint32 release_date = 3; + optional bool coming_soon = 4; + optional int64 price = 5; + optional uint32 discount = 6; + optional bool free = 7; + } + + message PlaytimeForApp { + optional uint32 appid = 1; + optional uint32 playtime = 2; + optional uint32 last_played = 3; + } + + repeated .CStoreBrowse_GetDLCForApps_Response.DLCData dlc_data = 1; + repeated .CStoreBrowse_GetDLCForApps_Response.PlaytimeForApp playtime = 2; +} + +message CStoreBrowse_GetDLCForAppsSolr_Request { + optional .StoreBrowseContext context = 1; + repeated uint32 appids = 2; + optional string flavor = 3; + optional uint32 count = 4; + optional .CStorePageFilter store_page_filter = 5; +} + +message CStoreBrowse_GetDLCForAppsSolr_Response { + message DLCList { + optional uint32 parent_appid = 1; + repeated uint32 dlc_appids = 2; + } + + repeated .CStoreBrowse_GetDLCForAppsSolr_Response.DLCList dlc_lists = 1; +} + +message CStoreBrowse_GetHardwareItems_Request { + repeated uint32 packageid = 1; + optional .StoreBrowseContext context = 2; +} + +message CHardwarePackageDetails { + optional uint32 packageid = 1; + optional bool inventory_available = 3; + optional bool high_pending_orders = 4; + optional bool account_restricted_from_purchasing = 5; + optional bool requires_reservation = 6; + optional uint32 rtime_estimated_notification = 7; + optional string notificaton_token = 8; + optional int32 reservation_state = 9; + optional bool expired = 10; + optional uint32 time_expires = 11; + optional uint32 time_reserved = 12; + optional bool allow_quantity_purchase = 13; + optional int32 max_quantity_per_purchase = 14; + optional bool allow_purchase_in_country = 15; + optional uint32 estimated_delivery_soonest_business_days = 17; + optional uint32 estimated_delivery_latest_business_days = 18; +} + +message CStoreBrowse_GetHardwareItems_Response { + repeated .CHardwarePackageDetails details = 1; +} + +service StoreBrowse { + rpc GetItems (.CStoreBrowse_GetItems_Request) returns (.CStoreBrowse_GetItems_Response); + rpc GetStoreCategories (.CStoreBrowse_GetStoreCategories_Request) returns (.CStoreBrowse_GetStoreCategories_Response); + rpc GetDLCForApps (.CStoreBrowse_GetDLCForApps_Request) returns (.CStoreBrowse_GetDLCForApps_Response); + rpc GetDLCForAppsSolr (.CStoreBrowse_GetDLCForAppsSolr_Request) returns (.CStoreBrowse_GetDLCForAppsSolr_Response); + rpc GetHardwareItems (.CStoreBrowse_GetHardwareItems_Request) returns (.CStoreBrowse_GetHardwareItems_Response); +} diff --git a/Protobufs/steam/steammessages_timedtrial.steamclient.proto b/Protobufs/steam/steammessages_timedtrial.steamclient.proto new file mode 100644 index 0000000..678d93c --- /dev/null +++ b/Protobufs/steam/steammessages_timedtrial.steamclient.proto @@ -0,0 +1,40 @@ +import "steammessages_base.proto"; +import "steammessages_unified_base.steamclient.proto"; + +option cc_generic_services = true; + +message CTimedTrial_GetTimeRemaining_Request { + optional uint32 appid = 1; +} + +message CTimedTrial_GetTimeRemaining_Response { + optional uint32 seconds_played = 1; + optional uint32 seconds_allowed = 2; + optional uint32 packageid = 3; + optional uint32 mastersub_appid = 4; +} + +message CTimedTrial_RecordPlaytime_Request { + optional uint32 appid = 1; + optional uint32 seconds_played = 2; +} + +message CTimedTrial_RecordPlaytime_Response { + optional uint32 seconds_played = 1; + optional uint32 seconds_allowed = 2; +} + +message CTimedTrial_ResetPlaytime_Request { + optional uint32 appid = 1; +} + +message CTimedTrial_ResetPlaytime_Response { + optional uint32 seconds_played = 1; + optional uint32 seconds_allowed = 2; +} + +service TimedTrial { + rpc GetTimeRemaining (.CTimedTrial_GetTimeRemaining_Request) returns (.CTimedTrial_GetTimeRemaining_Response); + rpc RecordPlaytime (.CTimedTrial_RecordPlaytime_Request) returns (.CTimedTrial_RecordPlaytime_Response); + rpc ResetPlaytime (.CTimedTrial_ResetPlaytime_Request) returns (.CTimedTrial_ResetPlaytime_Response); +} diff --git a/Protobufs/steam/steammessages_twofactor.steamclient.proto b/Protobufs/steam/steammessages_twofactor.steamclient.proto new file mode 100644 index 0000000..f3f71bf --- /dev/null +++ b/Protobufs/steam/steammessages_twofactor.steamclient.proto @@ -0,0 +1,157 @@ +import "steammessages_base.proto"; +import "steammessages_unified_base.steamclient.proto"; + +option cc_generic_services = true; + +message CTwoFactor_Time_Request { + optional uint64 sender_time = 1; +} + +message CTwoFactor_Time_Response { + optional uint64 server_time = 1; + optional uint64 skew_tolerance_seconds = 2; + optional uint64 large_time_jink = 3; + optional uint32 probe_frequency_seconds = 4; + optional uint32 adjusted_time_probe_frequency_seconds = 5; + optional uint32 hint_probe_frequency_seconds = 6; + optional uint32 sync_timeout = 7; + optional uint32 try_again_seconds = 8; + optional uint32 max_attempts = 9; +} + +message CTwoFactor_Status_Request { + optional fixed64 steamid = 1; +} + +message CTwoFactor_Status_Response { + optional uint32 state = 1; + optional uint32 inactivation_reason = 2; + optional uint32 authenticator_type = 3; + optional bool authenticator_allowed = 4; + optional uint32 steamguard_scheme = 5; + optional string token_gid = 6; + optional bool email_validated = 7; + optional string device_identifier = 8; + optional uint32 time_created = 9; + optional uint32 revocation_attempts_remaining = 10; + optional string classified_agent = 11; + optional bool allow_external_authenticator = 12; + optional uint32 time_transferred = 13; + optional uint32 version = 14; +} + +message CTwoFactor_AddAuthenticator_Request { + optional fixed64 steamid = 1; + optional uint64 authenticator_time = 2; + optional fixed64 serial_number = 3; + optional uint32 authenticator_type = 4; + optional string device_identifier = 5; + repeated string http_headers = 7; + optional uint32 version = 8 [default = 1]; +} + +message CTwoFactor_AddAuthenticator_Response { + optional bytes shared_secret = 1; + optional fixed64 serial_number = 2; + optional string revocation_code = 3; + optional string uri = 4; + optional uint64 server_time = 5; + optional string account_name = 6; + optional string token_gid = 7; + optional bytes identity_secret = 8; + optional bytes secret_1 = 9; + optional int32 status = 10; + optional string phone_number_hint = 11; + optional int32 confirm_type = 12; +} + +message CTwoFactor_SendEmail_Request { + optional fixed64 steamid = 1; + optional uint32 email_type = 2; + optional bool include_activation_code = 3; +} + +message CTwoFactor_SendEmail_Response { +} + +message CTwoFactor_FinalizeAddAuthenticator_Request { + optional fixed64 steamid = 1; + optional string authenticator_code = 2; + optional uint64 authenticator_time = 3; + optional string activation_code = 4; + repeated string http_headers = 5; + optional bool validate_sms_code = 6; +} + +message CTwoFactor_FinalizeAddAuthenticator_Response { + optional bool success = 1; + optional uint64 server_time = 3; + optional int32 status = 4; +} + +message CTwoFactor_UpdateTokenVersion_Request { + optional fixed64 steamid = 1; + optional uint32 version = 2; + optional bytes signature = 3; +} + +message CTwoFactor_UpdateTokenVersion_Response { +} + +message CTwoFactor_RemoveAuthenticator_Request { + optional string revocation_code = 2; + optional uint32 revocation_reason = 5; + optional uint32 steamguard_scheme = 6; + optional bool remove_all_steamguard_cookies = 7; +} + +message CTwoFactor_RemoveAuthenticator_Response { + optional bool success = 1; + optional uint64 server_time = 3; + optional uint32 revocation_attempts_remaining = 5; +} + +message CTwoFactor_RemoveAuthenticatorViaChallengeStart_Request { +} + +message CTwoFactor_RemoveAuthenticatorViaChallengeStart_Response { + optional bool success = 1; +} + +message CTwoFactor_RemoveAuthenticatorViaChallengeContinue_Request { + optional string sms_code = 1; + optional bool generate_new_token = 2; + optional uint32 version = 3 [default = 1]; +} + +message CRemoveAuthenticatorViaChallengeContinue_Replacement_Token { + optional bytes shared_secret = 1; + optional fixed64 serial_number = 2; + optional string revocation_code = 3; + optional string uri = 4; + optional uint64 server_time = 5; + optional string account_name = 6; + optional string token_gid = 7; + optional bytes identity_secret = 8; + optional bytes secret_1 = 9; + optional int32 status = 10; + optional uint32 steamguard_scheme = 11; + optional fixed64 steamid = 12; +} + +message CTwoFactor_RemoveAuthenticatorViaChallengeContinue_Response { + optional bool success = 1; + optional .CRemoveAuthenticatorViaChallengeContinue_Replacement_Token replacement_token = 2; +} + +service TwoFactor { + rpc QueryTime (.CTwoFactor_Time_Request) returns (.CTwoFactor_Time_Response); + rpc QueryStatus (.CTwoFactor_Status_Request) returns (.CTwoFactor_Status_Response); + rpc AddAuthenticator (.CTwoFactor_AddAuthenticator_Request) returns (.CTwoFactor_AddAuthenticator_Response); + rpc SendEmail (.CTwoFactor_SendEmail_Request) returns (.CTwoFactor_SendEmail_Response); + rpc FinalizeAddAuthenticator (.CTwoFactor_FinalizeAddAuthenticator_Request) returns (.CTwoFactor_FinalizeAddAuthenticator_Response); + rpc UpdateTokenVersion (.CTwoFactor_UpdateTokenVersion_Request) returns (.CTwoFactor_UpdateTokenVersion_Response); + rpc RemoveAuthenticator (.CTwoFactor_RemoveAuthenticator_Request) returns (.CTwoFactor_RemoveAuthenticator_Response); + rpc RemoveAuthenticatorViaChallengeStart (.CTwoFactor_RemoveAuthenticatorViaChallengeStart_Request) returns (.CTwoFactor_RemoveAuthenticatorViaChallengeStart_Response); + rpc RemoveAuthenticatorViaChallengeContinue (.CTwoFactor_RemoveAuthenticatorViaChallengeContinue_Request) returns (.CTwoFactor_RemoveAuthenticatorViaChallengeContinue_Response); +} diff --git a/Protobufs/steam/steammessages_unified_base.steamclient.proto b/Protobufs/steam/steammessages_unified_base.steamclient.proto new file mode 100644 index 0000000..b064c61 --- /dev/null +++ b/Protobufs/steam/steammessages_unified_base.steamclient.proto @@ -0,0 +1,45 @@ +import "google/protobuf/descriptor.proto"; + +option optimize_for = SPEED; +option cc_generic_services = false; + +extend .google.protobuf.MessageOptions { + optional string message_description = 51000; + optional bool force_emit_message = 50026 [default = false]; +} + +extend .google.protobuf.FieldOptions { + optional string description = 50000; +} + +extend .google.protobuf.ServiceOptions { + optional string service_description = 50000; + optional .EProtoExecutionSite service_execution_site = 50008 [default = k_EProtoExecutionSiteUnknown]; + optional .EProtoServiceType service_type = 50025 [default = k_EProtoServiceTypeSteamMessages]; + optional bool force_emit_service = 50026 [default = false]; +} + +extend .google.protobuf.MethodOptions { + optional string method_description = 50000; +} + +extend .google.protobuf.EnumOptions { + optional string enum_description = 50000; +} + +extend .google.protobuf.EnumValueOptions { + optional string enum_value_description = 50000; +} + +enum EProtoExecutionSite { + k_EProtoExecutionSiteUnknown = 0; + k_EProtoExecutionSiteSteamClient = 2; +} + +enum EProtoServiceType { + k_EProtoServiceTypeSteamMessages = 0; + k_EProtoServiceTypeVRGamepadUIMessages = 1; +} + +message NoResponse { +} diff --git a/Protobufs/steam/steammessages_unified_test.steamclient.proto b/Protobufs/steam/steammessages_unified_test.steamclient.proto new file mode 100644 index 0000000..b4d156c --- /dev/null +++ b/Protobufs/steam/steammessages_unified_test.steamclient.proto @@ -0,0 +1,51 @@ +import "steammessages_base.proto"; +import "steammessages_unified_base.steamclient.proto"; + +option cc_generic_services = true; + +message CMsgTest_MessageToClient_Request { + optional string some_text = 1; +} + +message CMsgTest_MessageToClient_Response { + optional string some_text = 1; +} + +message CMsgTest_NotifyClient_Notification { + optional string some_text = 1; +} + +message CMsgTest_MessageToServer_Request { + optional string some_text = 1; +} + +message CMsgTest_MessageToServer_Response { + optional string some_text = 1; +} + +message CMsgTest_NotifyServer_Notification { + optional string some_text = 1; +} + +message CMsgTest_NoBody_Request { +} + +message CMsgTest_CallClient_Response { + optional int32 testvalue = 1; +} + +service TestSteamClient { + option (service_execution_site) = k_EProtoExecutionSiteSteamClient; + + rpc MessageToClient (.CMsgTest_MessageToClient_Request) returns (.CMsgTest_MessageToClient_Response); + rpc NotifyClient (.CMsgTest_NotifyClient_Notification) returns (.NoResponse); +} + +service TestServerFromClient { + rpc MessageToServer (.CMsgTest_MessageToServer_Request) returns (.CMsgTest_MessageToServer_Response); + rpc NotifyServer (.CMsgTest_NotifyServer_Notification) returns (.NoResponse); +} + +service TestExternalPrivilege { + rpc CallClient (.CMsgTest_NoBody_Request) returns (.CMsgTest_CallClient_Response); +} diff --git a/Protobufs/steam/steammessages_useraccount.steamclient.proto b/Protobufs/steam/steammessages_useraccount.steamclient.proto new file mode 100644 index 0000000..4069d64 --- /dev/null +++ b/Protobufs/steam/steammessages_useraccount.steamclient.proto @@ -0,0 +1,211 @@ +import "steammessages_base.proto"; +import "steammessages_unified_base.steamclient.proto"; + +option cc_generic_services = true; + +enum EInternalAccountType { + k_EInternalSteamAccountType = 1; + k_EInternalClanType = 2; + k_EInternalAppType = 3; + k_EInternalBroadcastChannelType = 4; +} + +enum EExternalAccountType { + k_EExternalNone = 0; + k_EExternalSteamAccount = 1; + k_EExternalGoogleAccount = 2; + k_EExternalFacebookAccount = 3; + k_EExternalTwitterAccount = 4; + k_EExternalTwitchAccount = 5; + k_EExternalYouTubeChannelAccount = 6; + k_EExternalFacebookPage = 7; +} + +message CUserAccount_GetAvailableValveDiscountPromotions_Request { + optional string country_code = 1; +} + +message CUserAccount_GetAvailableValveDiscountPromotions_Response { + message ValveDiscountPromotionDetails { + optional uint32 promotionid = 1; + optional string promotion_description = 2; + optional int64 minimum_cart_amount = 3; + optional int64 minimum_cart_amount_for_display = 4; + optional int64 discount_amount = 5; + optional int32 currency_code = 6; + optional int32 available_use_count = 7; + optional int32 promotional_discount_type = 8; + optional int32 loyalty_reward_id = 9; + optional string localized_name_token = 10; + optional int32 max_use_count = 11; + } + + repeated .CUserAccount_GetAvailableValveDiscountPromotions_Response.ValveDiscountPromotionDetails promotions = 1; +} + +message CUserAccount_GetClientWalletDetails_Request { + optional bool include_balance_in_usd = 1; + optional int32 wallet_region = 2 [default = 1]; + optional bool include_formatted_balance = 3; +} + +message CUserAccount_GetWalletDetails_Response { + optional bool has_wallet = 1; + optional string user_country_code = 2; + optional string wallet_country_code = 3; + optional string wallet_state = 4; + optional int64 balance = 5; + optional int64 delayed_balance = 6; + optional int32 currency_code = 7; + optional uint32 time_most_recent_txn = 8; + optional uint64 most_recent_txnid = 9; + optional int64 balance_in_usd = 10; + optional int64 delayed_balance_in_usd = 11; + optional bool has_wallet_in_other_regions = 12; + repeated int32 other_regions = 13; + optional string formatted_balance = 14; + optional string formatted_delayed_balance = 15; + optional int32 delayed_balance_available_min_time = 16; + optional int32 delayed_balance_available_max_time = 17; + optional int32 delayed_balance_newest_source = 18; +} + +message CUserAccount_GetAccountLinkStatus_Request { +} + +message CUserAccount_GetAccountLinkStatus_Response { + optional uint32 pwid = 1; + optional uint32 identity_verification = 2; + optional bool performed_age_verification = 3; +} + +message CUserAccount_CancelLicenseForApp_Request { + optional uint32 appid = 1; +} + +message CUserAccount_CancelLicenseForApp_Response { +} + +message CUserAccount_GetUserCountry_Request { + optional fixed64 steamid = 1; +} + +message CUserAccount_GetUserCountry_Response { + optional string country = 1; +} + +message CUserAccount_CreateFriendInviteToken_Request { + optional uint32 invite_limit = 1; + optional uint32 invite_duration = 2; + optional string invite_note = 3; +} + +message CUserAccount_CreateFriendInviteToken_Response { + optional string invite_token = 1; + optional uint64 invite_limit = 2; + optional uint64 invite_duration = 3; + optional fixed32 time_created = 4; + optional bool valid = 5; +} + +message CUserAccount_GetFriendInviteTokens_Request { +} + +message CUserAccount_GetFriendInviteTokens_Response { + repeated .CUserAccount_CreateFriendInviteToken_Response tokens = 1; +} + +message CUserAccount_ViewFriendInviteToken_Request { + optional fixed64 steamid = 1; + optional string invite_token = 2; +} + +message CUserAccount_ViewFriendInviteToken_Response { + optional bool valid = 1; + optional uint64 steamid = 2; + optional uint64 invite_duration = 3; +} + +message CUserAccount_RedeemFriendInviteToken_Request { + optional fixed64 steamid = 1; + optional string invite_token = 2; +} + +message CUserAccount_RedeemFriendInviteToken_Response { +} + +message CUserAccount_RevokeFriendInviteToken_Request { + optional string invite_token = 1; +} + +message CUserAccount_RevokeFriendInviteToken_Response { +} + +message CUserAccount_RegisterCompatTool_Request { + optional uint32 compat_tool = 1; +} + +message CUserAccount_RegisterCompatTool_Response { +} + +message CAccountLinking_GetLinkedAccountInfo_Request { + optional .EInternalAccountType account_type = 1 [default = k_EInternalSteamAccountType]; + optional uint64 account_id = 2; + optional .EExternalAccountType filter = 3 [default = k_EExternalNone]; + optional bool return_access_token = 4; +} + +message CAccountLinking_GetLinkedAccountInfo_Response { + message CExternalAccountTuple_Response { + optional .EExternalAccountType external_type = 1 [default = k_EExternalNone]; + optional string external_id = 2; + optional string external_user_name = 3; + optional string external_url = 4; + optional string access_token = 5; + optional string access_token_secret = 6; + optional bool is_valid = 7; + } + + repeated .CAccountLinking_GetLinkedAccountInfo_Response.CExternalAccountTuple_Response external_accounts = 1; +} + +message CEmbeddedClient_AuthorizeCurrentDevice_Request { + optional fixed64 steamid = 1; + optional uint32 appid = 2; + optional string device_info = 3; + optional uint32 deviceid = 4; +} + +message CEmbeddedClient_Token { + optional fixed64 steamid = 1; + optional bytes client_token = 2; + optional uint32 expiry = 3; + optional uint32 deviceid = 4; +} + +message CEmbeddedClient_AuthorizeDevice_Response { + optional uint32 result = 1; + optional .CEmbeddedClient_Token token = 2; +} + +service UserAccount { + rpc GetAvailableValveDiscountPromotions (.CUserAccount_GetAvailableValveDiscountPromotions_Request) returns (.CUserAccount_GetAvailableValveDiscountPromotions_Response); + rpc GetClientWalletDetails (.CUserAccount_GetClientWalletDetails_Request) returns (.CUserAccount_GetWalletDetails_Response); + rpc GetAccountLinkStatus (.CUserAccount_GetAccountLinkStatus_Request) returns (.CUserAccount_GetAccountLinkStatus_Response); + rpc CancelLicenseForApp (.CUserAccount_CancelLicenseForApp_Request) returns (.CUserAccount_CancelLicenseForApp_Response); + rpc GetUserCountry (.CUserAccount_GetUserCountry_Request) returns (.CUserAccount_GetUserCountry_Response); + rpc CreateFriendInviteToken (.CUserAccount_CreateFriendInviteToken_Request) returns (.CUserAccount_CreateFriendInviteToken_Response); + rpc GetFriendInviteTokens (.CUserAccount_GetFriendInviteTokens_Request) returns (.CUserAccount_GetFriendInviteTokens_Response); + rpc ViewFriendInviteToken (.CUserAccount_ViewFriendInviteToken_Request) returns (.CUserAccount_ViewFriendInviteToken_Response); + rpc RedeemFriendInviteToken (.CUserAccount_RedeemFriendInviteToken_Request) returns (.CUserAccount_RedeemFriendInviteToken_Response); + rpc RevokeFriendInviteToken (.CUserAccount_RevokeFriendInviteToken_Request) returns (.CUserAccount_RevokeFriendInviteToken_Response); + rpc RegisterCompatTool (.CUserAccount_RegisterCompatTool_Request) returns (.CUserAccount_RegisterCompatTool_Response); +} + +service AccountLinking { + rpc GetLinkedAccountInfo (.CAccountLinking_GetLinkedAccountInfo_Request) returns (.CAccountLinking_GetLinkedAccountInfo_Response); +} + +service EmbeddedClient { + rpc AuthorizeCurrentDevice (.CEmbeddedClient_AuthorizeCurrentDevice_Request) returns (.CEmbeddedClient_AuthorizeDevice_Response); +} diff --git a/Protobufs/steam/steammessages_vac.steamclient.proto b/Protobufs/steam/steammessages_vac.steamclient.proto new file mode 100644 index 0000000..3dca7a9 --- /dev/null +++ b/Protobufs/steam/steammessages_vac.steamclient.proto @@ -0,0 +1,37 @@ +import "steammessages_base.proto"; +import "steammessages_unified_base.steamclient.proto"; + +option cc_generic_services = true; + +message CFileVerification_SignatureCheck_Request { + optional fixed64 steamid = 1; + optional uint32 appid = 2; + optional uint64 file_size = 3; + optional uint32 file_timestamp = 4; + optional uint32 file_timestamp2 = 5; + optional uint32 signature_result = 6; + optional string filename = 7; + optional uint32 client_package_version = 8; + optional bytes sha1hash = 9; +} + +message CFileVerification_SignatureCheck_Response { + optional bool deny_operation = 1; +} + +message CFileVerification_SteamServiceCheck_Request { + optional uint32 service_status = 2; + optional uint32 client_package_version = 3; + optional uint32 launcher_type = 4; + optional uint32 os_type = 5; + optional uint32 service_repair = 6; +} + +message CFileVerification_SteamServiceCheck_Response { + optional bool attempt_repair = 1; +} + +service FileVerification { + rpc SignatureCheck (.CFileVerification_SignatureCheck_Request) returns (.CFileVerification_SignatureCheck_Response); + rpc SteamServiceCheck (.CFileVerification_SteamServiceCheck_Request) returns (.CFileVerification_SteamServiceCheck_Response); +} diff --git a/Protobufs/steam/steammessages_video.steamclient.proto b/Protobufs/steam/steammessages_video.steamclient.proto new file mode 100644 index 0000000..4d48169 --- /dev/null +++ b/Protobufs/steam/steammessages_video.steamclient.proto @@ -0,0 +1,68 @@ +import "steammessages_base.proto"; +import "steammessages_unified_base.steamclient.proto"; + +option cc_generic_services = true; + +message CVideo_ClientGetVideoURL_Request { + optional uint64 video_id = 1; + optional uint32 client_cellid = 2; +} + +message CVideo_ClientGetVideoURL_Response { + optional uint64 video_id = 1; + optional string video_url = 2; +} + +message VideoBookmark { + optional uint32 app_id = 1; + optional uint32 playback_position_in_seconds = 2; + optional uint64 video_track_id = 3; + optional uint64 audio_track_id = 4; + optional uint64 timedtext_track_id = 5; + optional uint32 last_modified = 6; + optional bool hide_from_watch_history = 7 [default = false]; + optional bool hide_from_library = 8 [default = false]; +} + +message CVideo_SetVideoBookmark_Notification { + repeated .VideoBookmark bookmarks = 1; +} + +message CVideo_GetVideoBookmarks_Request { + repeated uint32 appids = 1; + optional uint32 updated_since = 2; +} + +message CVideo_GetVideoBookmarks_Response { + repeated .VideoBookmark bookmarks = 1; +} + +message CVideo_UnlockedH264_Notification { + optional bytes encryption_key = 1; +} + +message CFovasVideo_ClientGetOPFSettings_Request { + optional uint32 app_id = 1; + optional uint32 client_cellid = 2; +} + +message CFovasVideo_ClientGetOPFSettings_Response { + optional uint32 app_id = 1; + optional string opf_settings = 2; +} + +service Video { + rpc ClientGetVideoURL (.CVideo_ClientGetVideoURL_Request) returns (.CVideo_ClientGetVideoURL_Response); + rpc SetVideoBookmark (.CVideo_SetVideoBookmark_Notification) returns (.NoResponse); + rpc GetVideoBookmarks (.CVideo_GetVideoBookmarks_Request) returns (.CVideo_GetVideoBookmarks_Response); +} + +service VideoClient { + option (service_execution_site) = k_EProtoExecutionSiteSteamClient; + + rpc NotifyUnlockedH264 (.CVideo_UnlockedH264_Notification) returns (.NoResponse); +} + +service FovasVideo { + rpc ClientGetOPFSettings (.CFovasVideo_ClientGetOPFSettings_Request) returns (.CFovasVideo_ClientGetOPFSettings_Response); +} diff --git a/Protobufs/steam/steammessages_virtualcontroller.proto b/Protobufs/steam/steammessages_virtualcontroller.proto new file mode 100644 index 0000000..991a942 --- /dev/null +++ b/Protobufs/steam/steammessages_virtualcontroller.proto @@ -0,0 +1,138 @@ +enum EInputMode { + k_EInputModeUnknown = 0; + k_EInputModeMouse = 1; + k_EInputModeController = 2; + k_EInputModeMouseAndController = 3; +} + +enum EMouseMode { + k_EMouseModeUnknown = 0; + k_EMouseModeRelativeCursor = 1; + k_EMouseModeAbsoluteCursor = 2; + k_EMouseModeTouch = 3; + k_EMouseModeRelative = 4; +} + +enum EControllerElementType { + k_EControllerElementTypeNone = -1; + k_EControllerElementTypeThumb = 0; + k_EControllerElementTypeButtonSteam = 1; + k_EControllerElementTypeJoystickLeft = 2; + k_EControllerElementTypeButtonJoystickLeft = 3; + k_EControllerElementTypeJoystickRight = 4; + k_EControllerElementTypeButtonJoystickRight = 5; + k_EControllerElementTypeDPad = 6; + k_EControllerElementTypeButtonA = 7; + k_EControllerElementTypeButtonB = 8; + k_EControllerElementTypeButtonX = 9; + k_EControllerElementTypeButtonY = 10; + k_EControllerElementTypeButtonSelect = 11; + k_EControllerElementTypeButtonStart = 12; + k_EControllerElementTypeButtonTriggerLeft = 13; + k_EControllerElementTypeButtonTriggerRight = 14; + k_EControllerElementTypeButtonBumperLeft = 15; + k_EControllerElementTypeButtonBumperRight = 16; + k_EControllerElementTypeButtonMacro0 = 17; + k_EControllerElementTypeButtonMacro1 = 18; + k_EControllerElementTypeButtonMacro2 = 19; + k_EControllerElementTypeButtonMacro3 = 20; + k_EControllerElementTypeButtonMacro4 = 21; + k_EControllerElementTypeButtonMacro5 = 22; + k_EControllerElementTypeButtonMacro6 = 23; + k_EControllerElementTypeButtonMacro7 = 24; + k_EControllerElementTypeTrackpadCenter = 25; + k_EControllerElementTypeTrackpadLeft = 26; + k_EControllerElementTypeTrackpadRight = 27; + k_EControllerElementTypeKeyboard = 28; + k_EControllerElementTypeMagnifyingGlass = 29; + k_EControllerElementTypeButtonMacro1Finger = 30; + k_EControllerElementTypeButtonMacro2Finger = 31; + k_EControllerElementTypeRecordInput = 32; + k_EControllerElementTypePlaybackInput = 33; + k_EControllerElementTypePaste = 34; + k_EControllerElementTypeMax = 35; +} + +message CVirtualControllerElement { + optional .EControllerElementType type = 1 [default = k_EControllerElementTypeNone]; + optional bool visible = 2; + optional float x_position = 3; + optional float y_position = 4; + optional float x_scale = 5 [default = 1]; + optional float y_scale = 6 [default = 1]; +} + +message CVirtualControllerColor { + optional float r = 1 [default = 1]; + optional float g = 2 [default = 1]; + optional float b = 3 [default = 1]; + optional float a = 4 [default = 1]; +} + +message CVirtualControllerLayout { + optional int32 layout_version = 1; + optional int32 actionset_id = 2; + repeated .CVirtualControllerElement elements = 4; + optional .CVirtualControllerColor color = 5; +} + +message CVirtualControllerLayouts { + repeated .CVirtualControllerLayout layouts = 1; + optional .EInputMode input_mode = 2 [default = k_EInputModeController]; + optional .EMouseMode mouse_mode = 3 [default = k_EMouseModeUnknown]; + optional float trackpad_sensitivity = 4 [default = 1]; + optional bool pinch_zoom_enabled = 5 [default = false]; + optional float pinch_zoom_x = 6 [default = 0]; + optional float pinch_zoom_y = 7 [default = 0]; + optional float pinch_zoom_scale = 8 [default = 1]; + optional bool shaken = 9; + optional bool mouse_offscreen = 10; +} + +message CVirtualControllerConfig { + message Control { + optional string name = 1; + optional string icon = 2; + optional int32 input_source = 3; + optional int32 input_mode = 4; + optional int32 input_element = 5; + optional int32 output_gamepad = 6; + optional int32 output_keyboard = 7; + optional int32 output_mouse = 8; + optional string icon_foreground = 9; + optional string icon_background = 10; + optional bool input_toggle = 11; + optional int32 input_activate_stick_or_trackpad = 12; + optional int32 activation_type = 13; + optional int32 long_press_ms = 14; + optional int32 double_press_ms = 15; + } + + message ActionSet { + optional int32 id = 1; + optional int32 parent_id = 2; + optional string name = 3; + repeated .CVirtualControllerConfig.Control controls = 4; + } + + optional string name = 1; + repeated .CVirtualControllerConfig.ActionSet actionsets = 2; + optional .EMouseMode default_mouse_mode = 3 [default = k_EMouseModeAbsoluteCursor]; +} + +message CVirtualControllerLayoutPackage { + optional uint32 appid = 1; + optional uint64 creator = 2; + optional uint32 initial_revision = 3; + optional uint32 saved_revision = 4; + optional .CVirtualControllerConfig config = 5; + optional .CVirtualControllerLayouts layouts = 6; +} + +message CVirtualControllerGlobalConfig { + optional bool feedback_enabled = 1; + optional bool gyroscope_enabled = 2 [default = true]; + optional bool auto_fade_enabled = 3 [default = true]; + optional bool rumble_enabled = 4 [default = true]; + optional bool shake_fade_enabled = 5; +} diff --git a/Protobufs/steam/steammessages_workshop.steamclient.proto b/Protobufs/steam/steammessages_workshop.steamclient.proto new file mode 100644 index 0000000..ccb3ad3 --- /dev/null +++ b/Protobufs/steam/steammessages_workshop.steamclient.proto @@ -0,0 +1,19 @@ +import "steammessages_base.proto"; +import "steammessages_unified_base.steamclient.proto"; + +option cc_generic_services = true; + +message CWorkshop_GetEULAStatus_Request { + optional uint32 appid = 1; +} + +message CWorkshop_GetEULAStatus_Response { + optional uint32 version = 1; + optional uint32 timestamp_action = 2; + optional bool accepted = 3; + optional bool needs_action = 4; +} + +service Workshop { + rpc GetEULAStatus (.CWorkshop_GetEULAStatus_Request) returns (.CWorkshop_GetEULAStatus_Response); +} diff --git a/Protobufs/steam/steamnetworkingsockets_messages.proto b/Protobufs/steam/steamnetworkingsockets_messages.proto new file mode 100644 index 0000000..0550740 --- /dev/null +++ b/Protobufs/steam/steamnetworkingsockets_messages.proto @@ -0,0 +1,177 @@ +import "steamnetworkingsockets_messages_certs.proto"; + +option optimize_for = SPEED; +option cc_generic_services = false; + +enum ESteamNetworkingSocketsCipher { + k_ESteamNetworkingSocketsCipher_INVALID = 0; + k_ESteamNetworkingSocketsCipher_NULL = 1; + k_ESteamNetworkingSocketsCipher_AES_256_GCM = 2; +} + +message CMsgSteamDatagramSessionCryptInfo { + enum EKeyType { + INVALID = 0; + CURVE25519 = 1; + } + + optional .CMsgSteamDatagramSessionCryptInfo.EKeyType key_type = 1 [default = INVALID]; + optional bytes key_data = 2; + optional fixed64 nonce = 3; + optional uint32 protocol_version = 4; + repeated .ESteamNetworkingSocketsCipher ciphers = 5; +} + +message CMsgSteamDatagramSessionCryptInfoSigned { + optional bytes info = 1; + optional bytes signature = 2; +} + +message CMsgSteamDatagramDiagnostic { + optional uint32 severity = 1; + optional string text = 2; +} + +message CMsgSteamDatagramLinkInstantaneousStats { + optional uint32 out_packets_per_sec_x10 = 1; + optional uint32 out_bytes_per_sec = 2; + optional uint32 in_packets_per_sec_x10 = 3; + optional uint32 in_bytes_per_sec = 4; + optional uint32 ping_ms = 5; + optional uint32 packets_dropped_pct = 6; + optional uint32 packets_weird_sequence_pct = 7; + optional uint32 peak_jitter_usec = 8; +} + +message CMsgSteamDatagramLinkLifetimeStats { + optional uint32 connected_seconds = 2; + optional uint64 packets_sent = 3; + optional uint64 kb_sent = 4; + optional uint64 packets_recv = 5; + optional uint64 kb_recv = 6; + optional uint64 packets_recv_sequenced = 7; + optional uint64 packets_recv_dropped = 8; + optional uint64 packets_recv_out_of_order = 9; + optional uint64 packets_recv_out_of_order_corrected = 15; + optional uint64 packets_recv_duplicate = 10; + optional uint64 packets_recv_lurch = 11; + repeated uint64 multipath_packets_recv_sequenced = 12; + repeated uint64 multipath_packets_recv_later = 13; + optional uint32 multipath_send_enabled = 14; + optional uint32 quality_histogram_100 = 21; + optional uint32 quality_histogram_99 = 22; + optional uint32 quality_histogram_97 = 23; + optional uint32 quality_histogram_95 = 24; + optional uint32 quality_histogram_90 = 25; + optional uint32 quality_histogram_75 = 26; + optional uint32 quality_histogram_50 = 27; + optional uint32 quality_histogram_1 = 28; + optional uint32 quality_histogram_dead = 29; + optional uint32 quality_ntile_2nd = 30; + optional uint32 quality_ntile_5th = 31; + optional uint32 quality_ntile_25th = 32; + optional uint32 quality_ntile_50th = 33; + optional uint32 ping_histogram_25 = 41; + optional uint32 ping_histogram_50 = 42; + optional uint32 ping_histogram_75 = 43; + optional uint32 ping_histogram_100 = 44; + optional uint32 ping_histogram_125 = 45; + optional uint32 ping_histogram_150 = 46; + optional uint32 ping_histogram_200 = 47; + optional uint32 ping_histogram_300 = 48; + optional uint32 ping_histogram_max = 49; + optional uint32 ping_ntile_5th = 50; + optional uint32 ping_ntile_50th = 51; + optional uint32 ping_ntile_75th = 52; + optional uint32 ping_ntile_95th = 53; + optional uint32 ping_ntile_98th = 54; + optional uint32 jitter_histogram_negligible = 61; + optional uint32 jitter_histogram_1 = 62; + optional uint32 jitter_histogram_2 = 63; + optional uint32 jitter_histogram_5 = 64; + optional uint32 jitter_histogram_10 = 65; + optional uint32 jitter_histogram_20 = 66; +} + +message CMsgSteamDatagramConnectionQuality { + optional .CMsgSteamDatagramLinkInstantaneousStats instantaneous = 1; + optional .CMsgSteamDatagramLinkLifetimeStats lifetime = 2; +} + +message CMsgICECandidate { + optional string candidate = 3; +} + +message CMsgICERendezvous { + message Auth { + optional string pwd_frag = 1; + } + + optional .CMsgICERendezvous.Auth auth = 2; + optional .CMsgICECandidate add_candidate = 1; +} + +message CMsgSteamNetworkingP2PRendezvous { + message ConnectRequest { + optional .CMsgSteamDatagramSessionCryptInfoSigned crypt = 6; + optional .CMsgSteamDatagramCertificateSigned cert = 7; + optional uint32 to_virtual_port = 9; + optional uint32 from_virtual_port = 10; + optional string from_fakeip = 11; + } + + message ConnectOK { + optional .CMsgSteamDatagramSessionCryptInfoSigned crypt = 5; + optional .CMsgSteamDatagramCertificateSigned cert = 6; + } + + message ConnectionClosed { + optional string debug = 5; + optional uint32 reason_code = 6; + } + + message ReliableMessage { + optional .CMsgICERendezvous ice = 1; + } + + message ApplicationMessage { + optional bytes data = 1; + optional uint64 msg_num = 2; + optional uint32 flags = 3; + optional uint32 lane_idx = 4; + } + + optional string from_identity = 8; + optional fixed32 from_connection_id = 9; + optional string to_identity = 10; + optional fixed32 to_connection_id = 1; + optional bytes sdr_routes = 2; + optional uint32 ack_peer_routes_revision = 3; + optional bool ice_enabled = 7; + optional bytes hosted_server_ticket = 14; + optional .CMsgSteamNetworkingP2PRendezvous.ConnectRequest connect_request = 4; + optional .CMsgSteamNetworkingP2PRendezvous.ConnectOK connect_ok = 5; + optional .CMsgSteamNetworkingP2PRendezvous.ConnectionClosed connection_closed = 6; + optional uint32 ack_reliable_msg = 11; + optional uint32 first_reliable_msg = 12; + repeated .CMsgSteamNetworkingP2PRendezvous.ReliableMessage reliable_messages = 13; + repeated .CMsgSteamNetworkingP2PRendezvous.ApplicationMessage application_messages = 15; +} + +message CMsgSteamNetworkingICESessionSummary { + optional uint32 failure_reason_code = 7; + optional uint32 local_candidate_types = 1; + optional uint32 remote_candidate_types = 2; + optional uint32 initial_route_kind = 3; + optional uint32 initial_ping = 4; + optional uint32 initial_score = 6; + optional uint32 negotiation_ms = 5; + optional uint32 best_route_kind = 16; + optional uint32 best_ping = 17; + optional uint32 best_score = 18; + optional uint32 best_time = 19; + optional uint32 selected_seconds = 12; + optional uint32 user_settings = 13; + optional uint32 ice_enable_var = 14; + optional uint32 local_candidate_types_allowed = 15; +} diff --git a/Protobufs/steam/steamnetworkingsockets_messages_certs.proto b/Protobufs/steam/steamnetworkingsockets_messages_certs.proto new file mode 100644 index 0000000..6ad2c3f --- /dev/null +++ b/Protobufs/steam/steamnetworkingsockets_messages_certs.proto @@ -0,0 +1,38 @@ +option optimize_for = SPEED; +option cc_generic_services = false; + +message CMsgSteamNetworkingIdentityLegacyBinary { + optional fixed64 steam_id = 16; + optional bytes generic_bytes = 2; + optional string generic_string = 3; + optional bytes ipv6_and_port = 4; +} + +message CMsgSteamDatagramCertificate { + enum EKeyType { + INVALID = 0; + ED25519 = 1; + } + + optional .CMsgSteamDatagramCertificate.EKeyType key_type = 1 [default = INVALID]; + optional bytes key_data = 2; + optional fixed64 legacy_steam_id = 4; + optional .CMsgSteamNetworkingIdentityLegacyBinary legacy_identity_binary = 11; + optional string identity_string = 12; + repeated fixed32 gameserver_datacenter_ids = 5; + optional fixed32 time_created = 8; + optional fixed32 time_expiry = 9; + repeated uint32 app_ids = 10; + repeated string ip_addresses = 13; +} + +message CMsgSteamDatagramCertificateSigned { + optional bytes cert = 4; + optional fixed64 ca_key_id = 5; + optional bytes ca_signature = 6; + optional bytes private_key_data = 1; +} + +message CMsgSteamDatagramCertificateRequest { + optional .CMsgSteamDatagramCertificate cert = 1; +} diff --git a/Protobufs/steam/steamnetworkingsockets_messages_udp.proto b/Protobufs/steam/steamnetworkingsockets_messages_udp.proto new file mode 100644 index 0000000..cc50836 --- /dev/null +++ b/Protobufs/steam/steamnetworkingsockets_messages_udp.proto @@ -0,0 +1,75 @@ +import "steamnetworkingsockets_messages_certs.proto"; +import "steamnetworkingsockets_messages.proto"; + +option optimize_for = SPEED; +option cc_generic_services = false; + +enum ESteamNetworkingUDPMsgID { + k_ESteamNetworkingUDPMsg_ChallengeRequest = 32; + k_ESteamNetworkingUDPMsg_ChallengeReply = 33; + k_ESteamNetworkingUDPMsg_ConnectRequest = 34; + k_ESteamNetworkingUDPMsg_ConnectOK = 35; + k_ESteamNetworkingUDPMsg_ConnectionClosed = 36; + k_ESteamNetworkingUDPMsg_NoConnection = 37; +} + +message CMsgSteamSockets_UDP_ChallengeRequest { + optional fixed32 connection_id = 1; + optional fixed64 my_timestamp = 3; + optional uint32 protocol_version = 4; +} + +message CMsgSteamSockets_UDP_ChallengeReply { + optional fixed32 connection_id = 1; + optional fixed64 challenge = 2; + optional fixed64 your_timestamp = 3; + optional uint32 protocol_version = 4; +} + +message CMsgSteamSockets_UDP_ConnectRequest { + optional fixed32 client_connection_id = 1; + optional fixed64 challenge = 2; + optional fixed64 my_timestamp = 5; + optional uint32 ping_est_ms = 6; + optional .CMsgSteamDatagramSessionCryptInfoSigned crypt = 7; + optional .CMsgSteamDatagramCertificateSigned cert = 4; + optional uint32 legacy_protocol_version = 8; + optional string identity_string = 10; + optional fixed64 legacy_client_steam_id = 3; + optional .CMsgSteamNetworkingIdentityLegacyBinary legacy_identity_binary = 9; +} + +message CMsgSteamSockets_UDP_ConnectOK { + optional fixed32 client_connection_id = 1; + optional fixed32 server_connection_id = 5; + optional fixed64 your_timestamp = 3; + optional uint32 delay_time_usec = 4; + optional .CMsgSteamDatagramSessionCryptInfoSigned crypt = 7; + optional .CMsgSteamDatagramCertificateSigned cert = 8; + optional string identity_string = 11; + optional fixed64 legacy_server_steam_id = 2; + optional .CMsgSteamNetworkingIdentityLegacyBinary legacy_identity_binary = 10; +} + +message CMsgSteamSockets_UDP_ConnectionClosed { + optional fixed32 to_connection_id = 4; + optional fixed32 from_connection_id = 5; + optional string debug = 2; + optional uint32 reason_code = 3; +} + +message CMsgSteamSockets_UDP_NoConnection { + optional fixed32 from_connection_id = 2; + optional fixed32 to_connection_id = 3; +} + +message CMsgSteamSockets_UDP_Stats { + enum Flags { + ACK_REQUEST_E2E = 2; + ACK_REQUEST_IMMEDIATE = 4; + NOT_PRIMARY_TRANSPORT_E2E = 16; + } + + optional .CMsgSteamDatagramConnectionQuality stats = 1; + optional uint32 flags = 3; +} diff --git a/Protobufs/steam/webuimessages_achievements.proto b/Protobufs/steam/webuimessages_achievements.proto new file mode 100644 index 0000000..0c0dc91 --- /dev/null +++ b/Protobufs/steam/webuimessages_achievements.proto @@ -0,0 +1,29 @@ +import "steammessages_base.proto"; +import "webuimessages_base.proto"; + +option optimize_for = SPEED; +option cc_generic_services = true; + +message CAchievements_GetInfo_Request { + optional uint64 gameid = 1; +} + +message CAchievements_GetInfo_Response { + message Info { + optional string id = 1; + optional string name = 2; + optional string desc = 3; + optional string image_url_achieved = 4; + optional string image_url_not_achieved = 5; + optional bool achieved = 6; + optional uint32 unlock_time = 7; + } + + repeated .CAchievements_GetInfo_Response.Info achievements = 1; +} + +service Achievements { + option (webui_service_execution_site) = k_EClientExecutionSiteClientdll; + + rpc GetInfo (.CAchievements_GetInfo_Request) returns (.CAchievements_GetInfo_Response); +} diff --git a/Protobufs/steam/webuimessages_base.proto b/Protobufs/steam/webuimessages_base.proto new file mode 100644 index 0000000..cb38b30 --- /dev/null +++ b/Protobufs/steam/webuimessages_base.proto @@ -0,0 +1,24 @@ +import "enums.proto"; +import "steammessages_base.proto"; +import "google/protobuf/descriptor.proto"; + +option optimize_for = SPEED; +option cc_generic_services = true; + +extend .google.protobuf.ServiceOptions { + optional .EClientExecutionSite webui_service_execution_site = 70000 [default = k_EClientExecutionSiteSteamUI]; +} + +extend .google.protobuf.MethodOptions { + optional .EClientExecutionSite webui_method_execution_site = 70000 [default = k_EClientExecutionSiteInvalid]; +} + +enum EClientExecutionSite { + k_EClientExecutionSiteInvalid = 0; + k_EClientExecutionSiteSteamUI = 1; + k_EClientExecutionSiteClientdll = 2; + k_EClientExecutionSiteAny = 3; +} + +message WebUINoResponse { +} diff --git a/Protobufs/steam/webuimessages_bluetooth.proto b/Protobufs/steam/webuimessages_bluetooth.proto new file mode 100644 index 0000000..b0a4996 --- /dev/null +++ b/Protobufs/steam/webuimessages_bluetooth.proto @@ -0,0 +1,138 @@ +import "enums.proto"; +import "steammessages_base.proto"; +import "webuimessages_base.proto"; + +option optimize_for = SPEED; +option cc_generic_services = true; + +message CBluetoothManager_GetState_Request { +} + +message CMsgBluetoothManagerAdapterInfo { + optional uint32 id = 1; +} + +message CMsgBluetoothManagerDeviceInfo { + optional uint32 id = 1; + optional bool should_hide_hint = 2; + optional .EBluetoothDeviceType etype = 3 [default = k_BluetoothDeviceType_Invalid]; + optional bool is_connected = 4; + optional bool is_paired = 5; + optional int32 strength_raw = 6; +} + +message CBluetoothManager_GetState_Response { + optional bool is_service_available = 1; + optional bool is_enabled = 2; + optional bool is_discovering = 3; + repeated .CMsgBluetoothManagerAdapterInfo adapters = 4; + repeated .CMsgBluetoothManagerDeviceInfo devices = 5; +} + +message CBluetoothManager_GetAdapterDetails_Request { + optional uint32 id = 1; +} + +message CMsgBluetoothManagerAdapterDetails { + optional uint32 id = 1 [default = 0]; + optional string mac = 2; + optional string name = 3; + optional bool is_enabled = 4; + optional bool is_discovering = 5; +} + +message CBluetoothManager_GetAdapterDetails_Response { + optional .CMsgBluetoothManagerAdapterDetails adapter = 1; +} + +message CBluetoothManager_GetDeviceDetails_Request { + optional uint32 id = 1; +} + +message CMsgBluetoothManagerDeviceDetails { + optional uint32 id = 1 [default = 0]; + optional uint32 adapter_id = 2 [default = 0]; + optional .EBluetoothDeviceType etype = 3 [default = k_BluetoothDeviceType_Invalid]; + optional string mac = 4; + optional string name = 5; + optional bool is_connected = 6; + optional bool is_paired = 7; + optional bool is_pairing = 8; + optional bool wake_allowed = 9; + optional bool wake_allowed_supported = 10; + optional int32 battery_percent = 11; + optional bool operation_in_progress = 12; +} + +message CBluetoothManager_GetDeviceDetails_Response { + optional .CMsgBluetoothManagerDeviceDetails device = 1; +} + +message CBluetoothManager_StateChanged_Notification { +} + +message CBluetoothManager_SetDiscovering_Request { + optional bool enabled = 1; +} + +message CBluetoothManager_SetDiscovering_Response { +} + +message CBluetoothManager_Pair_Request { + optional uint32 device = 1; +} + +message CBluetoothManager_Pair_Response { +} + +message CBluetoothManager_CancelPair_Request { + optional uint32 device = 1; +} + +message CBluetoothManager_CancelPair_Response { +} + +message CBluetoothManager_Forget_Request { + optional uint32 device = 1; +} + +message CBluetoothManager_Forget_Response { +} + +message CBluetoothManager_Connect_Request { + optional uint32 device = 1; +} + +message CBluetoothManager_Connect_Response { +} + +message CBluetoothManager_Disconnect_Request { + optional uint32 device = 1; +} + +message CBluetoothManager_Disconnect_Response { +} + +message CBluetoothManager_SetWakeAllowed_Request { + optional uint32 device = 1; + optional bool allowed = 2; +} + +message CBluetoothManager_SetWakeAllowed_Response { +} + +service BluetoothManager { + option (webui_service_execution_site) = k_EClientExecutionSiteSteamUI; + + rpc GetState (.CBluetoothManager_GetState_Request) returns (.CBluetoothManager_GetState_Response); + rpc GetAdapterDetails (.CBluetoothManager_GetAdapterDetails_Request) returns (.CBluetoothManager_GetAdapterDetails_Response); + rpc GetDeviceDetails (.CBluetoothManager_GetDeviceDetails_Request) returns (.CBluetoothManager_GetDeviceDetails_Response); + rpc NotifyStateChanged (.CBluetoothManager_StateChanged_Notification) returns (.WebUINoResponse); + rpc SetDiscovering (.CBluetoothManager_SetDiscovering_Request) returns (.CBluetoothManager_SetDiscovering_Response); + rpc Pair (.CBluetoothManager_Pair_Request) returns (.CBluetoothManager_Pair_Response); + rpc CancelPair (.CBluetoothManager_CancelPair_Request) returns (.CBluetoothManager_CancelPair_Response); + rpc Forget (.CBluetoothManager_Forget_Request) returns (.CBluetoothManager_Forget_Response); + rpc Connect (.CBluetoothManager_Connect_Request) returns (.CBluetoothManager_Connect_Response); + rpc Disconnect (.CBluetoothManager_Disconnect_Request) returns (.CBluetoothManager_Disconnect_Response); + rpc SetWakeAllowed (.CBluetoothManager_SetWakeAllowed_Request) returns (.CBluetoothManager_SetWakeAllowed_Response); +} diff --git a/Protobufs/steam/webuimessages_gamenotes.proto b/Protobufs/steam/webuimessages_gamenotes.proto new file mode 100644 index 0000000..80c71ca --- /dev/null +++ b/Protobufs/steam/webuimessages_gamenotes.proto @@ -0,0 +1,21 @@ +import "steammessages_base.proto"; +import "webuimessages_base.proto"; + +option optimize_for = SPEED; +option cc_generic_services = true; + +message CGameNotes_UploadImage_Request { + optional string file_prefix = 1; + optional string mime_type = 2; + optional bytes data = 3; +} + +message CGameNotes_UploadImage_Response { + optional string filename = 1; +} + +service GameNotes { + option (webui_service_execution_site) = k_EClientExecutionSiteSteamUI; + + rpc UploadImage (.CGameNotes_UploadImage_Request) returns (.CGameNotes_UploadImage_Response); +} diff --git a/Protobufs/steam/webuimessages_gamerecording.proto b/Protobufs/steam/webuimessages_gamerecording.proto new file mode 100644 index 0000000..fe79b9d --- /dev/null +++ b/Protobufs/steam/webuimessages_gamerecording.proto @@ -0,0 +1,585 @@ +import "enums.proto"; +import "steammessages_base.proto"; +import "webuimessages_base.proto"; +import "webuimessages_gamerecordingfiles.proto"; + +option optimize_for = SPEED; +option cc_generic_services = true; + +enum ETimelineEntryType { + k_ETimelineEntryType_Invalid = 0; + k_ETimelineEntryType_GameMode = 1; + k_ETimelineEntryType_Event = 2; + k_ETimelineEntryType_StateDescription = 3; + k_ETimelineEntryType_Achievement = 4; + k_ETimelineEntryType_UserMarker = 5; + k_ETimelineEntryType_Screenshot = 6; + k_ETimelineEntryType_Error = 7; + k_ETimelineEntryType_Tag = 8; + k_ETimelineEntryType_GamePhase = 9; +} + +enum EPhaseResultType { + k_EPhaseResultType_Automatic = 1; + k_EPhaseResultType_Blank = 2; + k_EPhaseResultType_API = 3; +} + +enum ETimelineChangeNotificationType { + k_ETimelineChangeNotificationType_Started = 1; + k_ETimelineChangeNotificationType_Stopped = 2; + k_ETimelineChangeNotificationType_Deleted = 3; + k_ETimelineChangeNotificationType_RecordingStarted = 4; + k_ETimelineChangeNotificationType_RecordingStopped = 5; + k_ETimelineChangeNotificationType_RecordingUpdated = 6; +} + +enum ERecordingSessionChangeNotificationType { + k_ERecordingSessionChangeNotificationType_Started = 1; + k_ERecordingSessionChangeNotificationType_Stopped = 2; + k_ERecordingSessionChangeNotificationType_Deleted = 3; + k_ERecordingSessionChangeNotificationType_Updated = 4; +} + +enum EDiskSpaceType { + k_eDiskSpaceType_Recording = 0; + k_eDiskSpaceType_Clip = 1; +} + +enum EThumbnailTimePrecision { + k_ePrecise = 0; + k_eLoose = 1; +} + +enum EThumbnailFormat { + k_eJPEG = 1; + k_eRGB = 2; +} + +message CGameRecording_GetActiveTimelineApps_Request { +} + +message CGameRecording_GetActiveTimelineApps_Response { + message App { + optional uint64 game_id = 1; + optional uint32 most_recent_start_time = 2; + optional .EGameRecordingType recording_type = 3 [default = k_EGameRecordingType_Unknown]; + optional double video_duration_seconds = 4; + optional double timeline_duration_seconds = 5; + optional bool is_active = 6; + optional uint64 file_size = 7; + } + + repeated .CGameRecording_GetActiveTimelineApps_Response.App apps = 1; +} + +message CGameRecording_GetTimelinesForApp_Request { + optional uint64 game_id = 1; +} + +message CGameRecording_GetTimelinesForApp_Response { + repeated .CGameRecordingTimelineMetadata timelines = 1; +} + +message CGameRecording_GetTimelinesForClip_Request { + optional string clip_id = 1; +} + +message CGameRecording_GetTimelinesForClip_Response { + optional uint64 game_id = 1; + repeated .CGameRecordingTimelineMetadata timelines = 2; + optional uint64 first_timeline_start_offset_ms = 3; +} + +message CGameRecording_QueryPhases_Request { + message Tag { + optional string group = 1; + optional string name = 2; + } + + optional uint32 page = 1; + optional uint32 count = 2; + optional uint64 filter_gameid = 10; + optional string filter_search_string = 11; + repeated .CGameRecording_QueryPhases_Request.Tag filter_tags = 12; + optional string filter_phase_id = 13; +} + +message CGameRecording_QueryPhases_Response { + message Phase { + message BackgroundRecording { + optional string timeline_id = 1; + optional uint64 offset = 2; + optional uint64 duration_ms = 3; + } + + optional uint64 game_id = 1; + optional uint32 date_recorded = 5; + optional uint64 duration_ms = 6; + repeated .CTimelineTag tags = 7; + repeated .CTimelineTag contained_tags = 8; + optional .CGameRecording_QueryPhases_Response.Phase.BackgroundRecording background_recording = 9; + repeated string clip_ids = 10; + optional .EPhaseResultType type = 11 [default = k_EPhaseResultType_Automatic]; + optional uint64 start_ms = 12; + repeated uint32 screenshots = 13; + optional bool active = 14; + optional string phase_id = 15; + repeated .CTimelineEntry significant_events = 16; + repeated .CPhaseAttribute attributes = 17; + } + + repeated .CGameRecording_QueryPhases_Response.Phase phases = 1; + optional uint32 total_count = 2; +} + +message CGameRecording_GetTags_Request { + optional uint64 game_id = 1; +} + +message CGameRecording_GetTags_Response { + repeated .CTimelineTag tags = 1; +} + +message CGameRecording_GetEnoughDiskSpace_Request { +} + +message CGameRecording_GetEnoughDiskSpace_Response { + optional bool enough_space = 1; +} + +message CGameRecording_GetAvailableDiskSpace_Request { +} + +message CGameRecording_GetAvailableDiskSpace_Response { + optional double size = 1; +} + +message CGameRecording_TimelineChanged_Notification { + optional .ETimelineChangeNotificationType notification_type = 1 [default = k_ETimelineChangeNotificationType_Started]; + optional string timeline_id = 2; + optional uint64 game_id = 3; + optional uint32 start_time = 4; + optional uint64 duration_ms = 5; +} + +message CGameRecording_RecordingSessionChanged_Notification { + optional .ERecordingSessionChangeNotificationType notification_type = 1 [default = k_ERecordingSessionChangeNotificationType_Started]; + optional string timeline_id = 2; + optional uint64 game_id = 4; + optional string session_id = 5; + optional uint64 start_offset = 6; + optional uint64 duration_ms = 7; + optional .EGameRecordingType recording_type = 8 [default = k_EGameRecordingType_Unknown]; +} + +message CTimelineEntry { + optional string timeline_id = 1; + optional uint64 entry_id = 2; + optional uint64 time = 3; + optional .ETimelineEntryType type = 4 [default = k_ETimelineEntryType_Invalid]; + optional int32 game_mode = 5; + optional string range_title = 7; + optional uint64 range_duration = 8; + optional int32 range_possible_clip = 9; + optional string timestamp_title = 10; + optional string marker_icon = 11; + optional string marker_description = 13; + optional int32 marker_priority = 14; + optional uint32 screenshot_handle = 15; + optional string achievement_name = 16; + repeated .CTimelineTag tag = 17; + optional string phase_id = 18; + repeated .CPhaseAttribute attributes = 19; +} + +message CGameRecording_TimelineEntryChanged_Notification { + optional .CTimelineEntry entry = 1; + optional fixed64 game_id = 2; +} + +message CGameRecording_LowDiskSpace_Notification { +} + +message CGameRecording_PostGameHighlightsChanged_Notification { + optional uint64 game_id = 1; +} + +message CGameRecording_OpenOverlayToGamePhase_Notification { + optional uint64 game_id = 1; + optional string phase_id = 2; +} + +message CGameRecording_OpenOverlayToTimelineEvent_Notification { + optional uint64 game_id = 1; + optional uint64 entry_id = 2; +} + +message CGameRecording_PhaseListChanged_Notification { +} + +message CGameRecording_ClipSummary { + optional string clip_id = 1; + optional uint64 game_id = 2; + optional uint64 duration_ms = 3; + optional uint32 date_recorded = 4; + optional string start_timeline_id = 5; + optional uint64 start_offset_ms = 6; + optional uint64 published_file_id = 7; + optional uint64 file_size = 8; + optional string name = 9; + optional uint32 date_clipped = 10; + optional bool temporary = 11; + optional string original_device = 12; + optional uint32 original_gaming_device_type = 13; + optional uint32 date_downloaded = 14; + optional string thumbnail_url = 15; + optional uint32 thumbnail_width = 16; + optional uint32 thumbnail_height = 17; +} + +message CGameRecording_SaveClip_Request { + message Position { + optional string timeline_id = 1; + optional uint64 offset_ms = 2; + } + + optional uint64 game_id = 1; + optional .CGameRecording_SaveClip_Request.Position start = 2; + optional .CGameRecording_SaveClip_Request.Position end = 3; + optional string name = 4; + optional string src_clip_id = 5; + optional bool temporary = 6; +} + +message CGameRecording_SaveClip_Response { + optional .CGameRecording_ClipSummary summary = 1; +} + +message CGameRecording_DeleteClip_Request { + optional string clip_id = 1; +} + +message CGameRecording_DeleteClip_Response { +} + +message CGameRecording_ExportClip_Settings { + optional int32 bitrate_kbps = 1; + optional int32 width = 2; + optional int32 height = 3; + optional int32 frames_per_second = 4; +} + +message CGameRecording_ExportClip_Request { + optional string clip_id = 1; + optional string export_mp4_path = 2; + optional .CGameRecording_ExportClip_Settings settings = 3; +} + +message CGameRecording_ExportClip_Response { +} + +message CGameRecording_TakeScreenshot_Request { + optional fixed64 game_id = 1; + optional string timeline_id = 2; + optional uint64 timeline_offset_ms = 3; +} + +message CGameRecording_TakeScreenshot_Response { + optional fixed64 screenshot_id = 1; +} + +message CGameRecording_UploadClipToSteam_Request { + optional string clip_id = 1; + optional string title = 2; + optional string desc = 3; + optional int32 visibility = 4; +} + +message CGameRecording_UploadClipToSteam_Response { + optional .CGameRecording_ClipSummary summary = 1; +} + +message CGameRecording_ZipClip_Request { + optional string clip_id = 1; +} + +message CGameRecording_ZipClip_Response { + optional string zip_path = 1; +} + +message CGameRecording_GetClips_Request { + optional uint64 game_id = 1; + optional uint32 created_after = 2; + optional bool include_temporary = 3; +} + +message CGameRecording_GetClips_Response { + repeated .CGameRecording_ClipSummary clip = 1; +} + +message CGameRecording_GetAndTrimPostGameHighlights_Request { + optional uint64 game_id = 1; + optional uint32 created_after = 2; +} + +message CGameRecording_GetAndTrimPostGameHighlights_Response { + repeated .CGameRecordingTimelineEvent events = 1; +} + +message CGameRecording_UserAddTimelineEntry_Request { + optional uint64 game_id = 1; + optional .CTimelineEntry entry = 2; + optional string clip_id = 3; +} + +message CGameRecording_UserAddTimelineEntry_Response { + optional uint64 entry_id = 1; +} + +message CGameRecording_UserUpdateTimelineEntry_Request { + optional uint64 game_id = 1; + optional .CTimelineEntry entry = 2; + optional string clip_id = 3; +} + +message CGameRecording_UserUpdateTimelineEntry_Response { +} + +message CGameRecording_UserRemoveTimelineEntry_Request { + optional uint64 game_id = 1; + optional string timeline_id = 2; + optional uint64 entry_id = 3; + optional string clip_id = 4; +} + +message CGameRecording_UserRemoveTimelineEntry_Response { +} + +message CGameRecording_ManuallyDeleteRecordingsForApps_Request { + repeated uint64 game_ids = 1; +} + +message CGameRecording_ManuallyDeleteRecordingsForApps_Response { +} + +message CGameRecording_GetTotalDiskSpaceUsage_Request { + optional string folder_path = 1; + optional .EDiskSpaceType type = 2 [default = k_eDiskSpaceType_Recording]; +} + +message CGameRecording_GetTotalDiskSpaceUsage_Response { + optional uint64 size = 1; +} + +message CGameRecording_GetThumbnails_Request { + optional string recording_id = 1; + optional string clip_id = 3; + optional string timeline_id = 7; + repeated int64 start_offset_us = 4; + optional uint32 major_axis = 5 [default = 512]; + optional .EThumbnailTimePrecision time_precision = 6 [default = k_ePrecise]; + optional .EThumbnailFormat format = 8 [default = k_eJPEG]; +} + +message CGameRecording_GetThumbnails_Response { + message Thumbnail { + optional bytes image_data = 1; + optional uint32 width = 2; + optional uint32 height = 3; + } + + repeated .CGameRecording_GetThumbnails_Response.Thumbnail thumbnails = 1; +} + +message CGameRecording_StartRecording_Request { + optional uint64 game_id = 1; +} + +message CGameRecording_StartRecording_Response { +} + +message CGameRecording_StopRecording_Request { + optional uint64 game_id = 1; +} + +message CGameRecording_StopRecording_Response { + optional .CGameRecording_ClipSummary summary = 1; +} + +message CGameRecording_GetRecordingSize_Request { + optional uint64 game_id = 1; +} + +message CGameRecording_GetRecordingSize_Response { + optional uint64 file_size = 1; +} + +message CGameRecording_CleanupBackgroundRecordings_Request { +} + +message CGameRecording_CleanupBackgroundRecordings_Response { +} + +message CGameRecording_GetPlatformCapabilities_Request { +} + +message CGameRecording_GetPlatformCapabilities_Response { + optional bool per_process_audio_capture = 1; +} + +message CGameRecording_ClipCreated_Notification { + optional .CGameRecording_ClipSummary summary = 1; +} + +message CGameRecording_ClipDeleted_Notification { + optional string clip_id = 1; + optional uint64 game_id = 2; +} + +message CGameRecording_ExportProgress_Notification { + optional float progress = 1; + optional string clip_id = 2; + optional int32 eresult = 3; +} + +message CGameRecording_PerGameSettings { + optional fixed64 gameid = 1; + optional bool enabled = 2; + optional int32 minutes = 3; + optional int32 bitrate = 4; +} + +message CGameRecording_GetPerGameSettings_Request { +} + +message CGameRecording_GetPerGameSettings_Response { + repeated .CGameRecording_PerGameSettings settings = 1; +} + +message CGameRecording_SetPerGameSettings_Request { + optional .CGameRecording_PerGameSettings game_settings = 1; +} + +message CGameRecording_SetPerGameSettings_Response { +} + +message CGameRecording_DeletePerGameSettings_Request { + optional fixed64 gameid = 1; +} + +message CGameRecording_DeletePerGameSettings_Response { +} + +message CGameRecording_UploadProgress_Notification { + optional float progress = 1; + optional string clip_id = 2; + optional int32 eresult = 3; +} + +message CGameRecording_SwitchBackgroundRecordingGame_Request { + optional uint64 game_id = 1; +} + +message CGameRecording_SwitchBackgroundRecordingGame_Response { +} + +message CGameRecordingDebug_AddTimelineHighlightMarker_Request { + optional uint32 appid = 1; + optional string icon = 2; + optional string title = 3; + optional string desc = 4; +} + +message CGameRecordingDebug_AddTimelineHighlightMarker_Response { +} + +message CGameRecordingDebug_AddTimelineTimestamp_Request { + optional uint32 appid = 1; + optional string title = 2; +} + +message CGameRecordingDebug_AddTimelineTimestamp_Response { +} + +message CGameRecordingDebug_AddTimelineRangeStart_Request { + optional uint32 appid = 1; + optional string id = 2; + optional string title = 3; +} + +message CGameRecordingDebug_AddTimelineRangeStart_Response { +} + +message CGameRecordingDebug_AddTimelineRangeEnd_Request { + optional uint32 appid = 1; + optional string id = 2; +} + +message CGameRecordingDebug_AddTimelineRangeEnd_Response { +} + +message CGameRecordingDebug_SetTimelineGameMode_Request { + optional uint32 appid = 1; + optional uint32 mode = 2; +} + +message CGameRecordingDebug_SetTimelineGameMode_Response { +} + +service GameRecording { + option (webui_service_execution_site) = k_EClientExecutionSiteSteamUI; + + rpc GetActiveTimelineApps (.CGameRecording_GetActiveTimelineApps_Request) returns (.CGameRecording_GetActiveTimelineApps_Response); + rpc GetTimelinesForApp (.CGameRecording_GetTimelinesForApp_Request) returns (.CGameRecording_GetTimelinesForApp_Response); + rpc GetTimelinesForClip (.CGameRecording_GetTimelinesForClip_Request) returns (.CGameRecording_GetTimelinesForClip_Response); + rpc QueryPhases (.CGameRecording_QueryPhases_Request) returns (.CGameRecording_QueryPhases_Response); + rpc GetTags (.CGameRecording_GetTags_Request) returns (.CGameRecording_GetTags_Response); + rpc GetEnoughDiskSpace (.CGameRecording_GetEnoughDiskSpace_Request) returns (.CGameRecording_GetEnoughDiskSpace_Response); + rpc GetAvailableDiskSpace (.CGameRecording_GetAvailableDiskSpace_Request) returns (.CGameRecording_GetAvailableDiskSpace_Response); + rpc SaveClip (.CGameRecording_SaveClip_Request) returns (.CGameRecording_SaveClip_Response); + rpc DeleteClip (.CGameRecording_DeleteClip_Request) returns (.CGameRecording_DeleteClip_Response); + rpc GetClips (.CGameRecording_GetClips_Request) returns (.CGameRecording_GetClips_Response); + rpc UploadClipToSteam (.CGameRecording_UploadClipToSteam_Request) returns (.CGameRecording_UploadClipToSteam_Response); + rpc ExportClip (.CGameRecording_ExportClip_Request) returns (.CGameRecording_ExportClip_Response); + rpc TakeScreenshot (.CGameRecording_TakeScreenshot_Request) returns (.CGameRecording_TakeScreenshot_Response); + rpc ZipClip (.CGameRecording_ZipClip_Request) returns (.CGameRecording_ZipClip_Response); + rpc StartRecording (.CGameRecording_StartRecording_Request) returns (.CGameRecording_StartRecording_Response); + rpc StopRecording (.CGameRecording_StopRecording_Request) returns (.CGameRecording_StopRecording_Response); + rpc GetBackgroundRecordingFileSize (.CGameRecording_GetRecordingSize_Request) returns (.CGameRecording_GetRecordingSize_Response); + rpc CleanupBackgroundRecordings (.CGameRecording_CleanupBackgroundRecordings_Request) returns (.CGameRecording_CleanupBackgroundRecordings_Response); + rpc GetAndTrimPostGameHighlights (.CGameRecording_GetAndTrimPostGameHighlights_Request) returns (.CGameRecording_GetAndTrimPostGameHighlights_Response); + rpc GetThumbnails (.CGameRecording_GetThumbnails_Request) returns (.CGameRecording_GetThumbnails_Response); + rpc GetPlatformCapabilities (.CGameRecording_GetPlatformCapabilities_Request) returns (.CGameRecording_GetPlatformCapabilities_Response); + rpc NotifyTimelineChanged (.CGameRecording_TimelineChanged_Notification) returns (.WebUINoResponse); + rpc NotifyRecordingSessionChanged (.CGameRecording_RecordingSessionChanged_Notification) returns (.WebUINoResponse); + rpc NotifyTimelineEntryChanged (.CGameRecording_TimelineEntryChanged_Notification) returns (.WebUINoResponse); + rpc NotifyClipCreated (.CGameRecording_ClipCreated_Notification) returns (.WebUINoResponse); + rpc NotifyClipDeleted (.CGameRecording_ClipDeleted_Notification) returns (.WebUINoResponse); + rpc NotifyExportProgress (.CGameRecording_ExportProgress_Notification) returns (.WebUINoResponse); + rpc NotifyUploadProgress (.CGameRecording_UploadProgress_Notification) returns (.WebUINoResponse); + rpc NotifyLowDiskSpace (.CGameRecording_LowDiskSpace_Notification) returns (.WebUINoResponse); + rpc NotifyPostGameHighlightsChanged (.CGameRecording_PostGameHighlightsChanged_Notification) returns (.WebUINoResponse); + rpc NotifyOpenOverlayToGamePhase (.CGameRecording_OpenOverlayToGamePhase_Notification) returns (.WebUINoResponse); + rpc NotifyOpenOverlayToTimelineEvent (.CGameRecording_OpenOverlayToTimelineEvent_Notification) returns (.WebUINoResponse); + rpc NotifyPhaseListChanged (.CGameRecording_PhaseListChanged_Notification) returns (.WebUINoResponse); + rpc GetPerGameSettings (.CGameRecording_GetPerGameSettings_Request) returns (.CGameRecording_GetPerGameSettings_Response); + rpc SetPerGameSettings (.CGameRecording_SetPerGameSettings_Request) returns (.CGameRecording_SetPerGameSettings_Response); + rpc DeletePerGameSettings (.CGameRecording_DeletePerGameSettings_Request) returns (.CGameRecording_DeletePerGameSettings_Response); + rpc UserAddTimelineEntry (.CGameRecording_UserAddTimelineEntry_Request) returns (.CGameRecording_UserAddTimelineEntry_Response); + rpc UserUpdateTimelineEntry (.CGameRecording_UserUpdateTimelineEntry_Request) returns (.CGameRecording_UserUpdateTimelineEntry_Response); + rpc UserRemoveTimelineEntry (.CGameRecording_UserRemoveTimelineEntry_Request) returns (.CGameRecording_UserRemoveTimelineEntry_Response); + rpc ManuallyDeleteRecordingsForApps (.CGameRecording_ManuallyDeleteRecordingsForApps_Request) returns (.CGameRecording_ManuallyDeleteRecordingsForApps_Response); + rpc GetTotalDiskSpaceUsage (.CGameRecording_GetTotalDiskSpaceUsage_Request) returns (.CGameRecording_GetTotalDiskSpaceUsage_Response); + rpc SwitchBackgroundRecordingGame (.CGameRecording_SwitchBackgroundRecordingGame_Request) returns (.CGameRecording_SwitchBackgroundRecordingGame_Response); +} + +service GameRecordingDebug { + option (webui_service_execution_site) = k_EClientExecutionSiteSteamUI; + + rpc AddTimelineHighlightMarker (.CGameRecordingDebug_AddTimelineHighlightMarker_Request) returns (.CGameRecordingDebug_AddTimelineHighlightMarker_Response); + rpc AddTimelineTimestamp (.CGameRecordingDebug_AddTimelineTimestamp_Request) returns (.CGameRecordingDebug_AddTimelineTimestamp_Response); + rpc AddTimelineRangeStart (.CGameRecordingDebug_AddTimelineRangeStart_Request) returns (.CGameRecordingDebug_AddTimelineRangeStart_Response); + rpc AddTimelineRangeEnd (.CGameRecordingDebug_AddTimelineRangeEnd_Request) returns (.CGameRecordingDebug_AddTimelineRangeEnd_Response); + rpc SetTimelineGameMode (.CGameRecordingDebug_SetTimelineGameMode_Request) returns (.CGameRecordingDebug_SetTimelineGameMode_Response); +} diff --git a/Protobufs/steam/webuimessages_gamerecordingfiles.proto b/Protobufs/steam/webuimessages_gamerecordingfiles.proto new file mode 100644 index 0000000..e053a16 --- /dev/null +++ b/Protobufs/steam/webuimessages_gamerecordingfiles.proto @@ -0,0 +1,118 @@ +import "enums.proto"; +import "steammessages_base.proto"; +import "webuimessages_base.proto"; + +option optimize_for = SPEED; +option cc_generic_services = true; + +message CGameRecordingFile { + repeated .CGameRecordingTimelineMetadata timelines = 1; + repeated .CGameRecordingPostGameSummary postgame_events = 2; + repeated string temporary_clips = 3; + repeated .CGameRecordingTag tags = 4; +} + +message CGameRecordingClipFile { + repeated .CGameRecordingTimelineMetadata timelines = 1; + optional uint64 first_timeline_start_offset_ms = 2; + optional uint32 date_recorded = 3; + optional uint64 game_id = 4; + optional fixed64 published_file_id = 5; + optional uint64 size_in_bytes = 6; + optional string name = 7; + optional bool temporary = 8; + optional string original_device = 9; + optional uint32 original_gaming_device_type = 10; + optional uint32 date_downloaded = 11; + optional uint32 thumbnail_width = 12; + optional uint32 thumbnail_height = 13; + repeated .CGameRecordingTag tags = 14; + repeated .CGameRecordingPhase phases = 15; +} + +message CGameRecordingTimelineMetadata { + message Recording { + optional string recording_id = 1; + optional uint64 start_offset_ms = 2; + optional uint64 duration_ms = 3; + optional .EGameRecordingType recording_type = 4 [default = k_EGameRecordingType_Unknown]; + optional bool delete_on_cleanup = 5; + optional uint64 video_manager_clip_id = 6; + optional uint64 video_manager_video_id = 7; + optional string cdn_manifest_url = 8; + optional uint64 file_size = 9; + optional uint64 recording_zero_timeline_offset_ms = 10; + } + + optional string timeline_id = 1; + optional uint64 game_id = 2; + optional uint32 date_recorded = 3; + optional uint64 duration_ms = 4; + repeated .CGameRecordingTimelineMetadata.Recording recordings = 5; + repeated .CGameRecordingPhase phases = 6; + repeated .CGameRecordingTimelineEvent significant_events = 7; +} + +message CGameRecordingPostGameSummary { + optional uint64 game_id = 1; + repeated .CGameRecordingTimelineEvent events = 2; +} + +message CGameRecordingTimelineEvent { + optional uint64 game_id = 1; + optional uint32 rt_created = 2; + optional int32 possible_clip = 3; + optional string timeline_id = 4; + optional uint64 entry_id = 5; + optional uint64 timeline_offset_ms = 6; + optional uint64 duration_ms = 7; + optional string marker_icon = 8; + optional string marker_title = 9; + optional bool user_marker = 10; +} + +message CGameRecordingTag { + message Timeline { + optional string clip_id = 1; + optional string timeline_id = 2; + optional uint64 offset_ms = 3; + } + + optional uint64 game_id = 1; + optional .CTimelineTag tag = 2; + repeated .CGameRecordingTag.Timeline references = 3; +} + +message CGameRecordingTagInstance { + optional string timeline_id = 1; + optional uint64 entry_id = 2; + optional uint64 timeline_offset_ms = 3; + optional uint64 duration_ms = 4; +} + +message CGameRecordingPhase { + message Tag { + optional string name = 1; + optional string group = 2; + } + + optional string phase_id = 4; + optional uint64 duration_ms = 5; + repeated .CGameRecordingPhase.Tag tags = 6; + repeated .CGameRecordingPhase.Tag contained_tags = 7; + optional uint64 background_timeline_offset = 8; + repeated .CPhaseAttribute attributes = 9; +} + +message CTimelineTag { + optional string name = 1; + optional string group = 2; + optional string icon = 3; + optional uint32 priority = 4; +} + +message CPhaseAttribute { + optional string group = 1; + optional string value = 2; + optional uint32 priority = 3; +} diff --git a/Protobufs/steam/webuimessages_gamescope.proto b/Protobufs/steam/webuimessages_gamescope.proto new file mode 100644 index 0000000..d197ea8 --- /dev/null +++ b/Protobufs/steam/webuimessages_gamescope.proto @@ -0,0 +1,64 @@ +import "enums.proto"; +import "steammessages_base.proto"; +import "webuimessages_base.proto"; + +option optimize_for = SPEED; +option cc_generic_services = true; + +message CMsgDisplayInfo { + optional string make = 1; + optional string model = 2; + optional string connector_name = 3; + repeated int32 supported_refresh_rates = 4; + repeated int32 supported_frame_rates = 5; + optional bool is_external = 6; + optional bool is_hdr_capable = 7; + optional bool is_vrr_capable = 8; +} + +message CMsgGamescopeState { + optional bool is_service_available = 1; + optional bool is_reshade_supported = 2; + optional bool is_app_hdr_enabled = 3; + optional bool is_app_refresh_rate_supported = 4; + optional .CMsgDisplayInfo active_display_info = 5; + optional bool is_app_refresh_rate_capable = 6; + optional bool is_refresh_rate_switching_supported = 7; + optional bool is_refresh_rate_switching_restricted = 8; + optional bool is_hdr_visualization_supported = 9; + optional bool is_mura_correction_supported = 10; +} + +message CGamescope_GetState_Request { +} + +message CGamescope_GetState_Response { + optional .CMsgGamescopeState state = 1; +} + +message CGamescope_StateChanged_Notification { +} + +message CGamescope_SetBlurParams_Request { + optional .EGamescopeBlurMode mode = 1 [default = k_EGamescopeBlurMode_Disabled]; + optional int32 radius = 2; + optional int32 fade_duration_ms = 3; +} + +message CGamescope_SetBlurParams_Response { +} + +message CGamescope_ReArmMuraCalibration_Request { +} + +message CGamescope_ReArmMuraCalibration_Response { +} + +service Gamescope { + option (webui_service_execution_site) = k_EClientExecutionSiteSteamUI; + + rpc GetState (.CGamescope_GetState_Request) returns (.CGamescope_GetState_Response); + rpc NotifyStateChanged (.CGamescope_StateChanged_Notification) returns (.WebUINoResponse); + rpc SetBlurParams (.CGamescope_SetBlurParams_Request) returns (.CGamescope_SetBlurParams_Response); + rpc ReArmMuraCalibration (.CGamescope_ReArmMuraCalibration_Request) returns (.CGamescope_ReArmMuraCalibration_Response); +} diff --git a/Protobufs/steam/webuimessages_sharedjscontext.proto b/Protobufs/steam/webuimessages_sharedjscontext.proto new file mode 100644 index 0000000..c2cd618 --- /dev/null +++ b/Protobufs/steam/webuimessages_sharedjscontext.proto @@ -0,0 +1,32 @@ +import "enums.proto"; +import "steammessages_base.proto"; +import "webuimessages_base.proto"; + +option optimize_for = SPEED; +option cc_generic_services = true; + +message CSharedJSContext_GetDesiredSteamUIWindows_Request { +} + +message CMsgSteamUIBrowserWindow { + optional int32 id = 1; + optional int32 pid = 2; + optional int32 browser_id = 3; + optional int32 window_type = 4; + optional int32 x = 5; + optional int32 y = 6; + optional uint64 appid = 7; + optional uint64 parent_window_handle = 8; + optional string app_name = 9; + optional bool gamepadui_via_gamescope = 10; +} + +message CSharedJSContext_GetDesiredSteamUIWindows_Response { + repeated .CMsgSteamUIBrowserWindow windows = 1; +} + +service SharedJSContext { + option (webui_service_execution_site) = k_EClientExecutionSiteSteamUI; + + rpc GetDesiredSteamUIWindows (.CSharedJSContext_GetDesiredSteamUIWindows_Request) returns (.CSharedJSContext_GetDesiredSteamUIWindows_Response); +} diff --git a/Protobufs/steam/webuimessages_steamengine.proto b/Protobufs/steam/webuimessages_steamengine.proto new file mode 100644 index 0000000..f111b3d --- /dev/null +++ b/Protobufs/steam/webuimessages_steamengine.proto @@ -0,0 +1,47 @@ +import "steammessages_base.proto"; +import "webuimessages_base.proto"; + +option optimize_for = SPEED; +option cc_generic_services = true; + +message CSteamEngine_UpdateTextFilterDictionary_Notification { + required string language = 1; + required string type = 2; +} + +message CSteamEngine_GetTextFilterDictionary_Request { + required string language = 1; + required string type = 2; +} + +message CSteamEngine_GetTextFilterDictionary_Response { + optional string dictionary = 1; +} + +message CSteamEngine_TextFilterDictionaryChanged_Notification { + required string language = 1; + required string type = 2; +} + +message CSteamEngine_GetGameIDForPID_Request { + optional uint32 pid = 1; +} + +message CSteamEngine_GetGameIDForPID_Response { + optional uint64 gameid = 1; +} + +message CSteamEngine_SetOverlayEscapeKeyHandling_Notification { + required uint64 gameid = 1; + required bool should_handle = 2; +} + +service SteamEngine { + option (webui_service_execution_site) = k_EClientExecutionSiteClientdll; + + rpc UpdateTextFilterDictionary (.CSteamEngine_UpdateTextFilterDictionary_Notification) returns (.WebUINoResponse); + rpc GetTextFilterDictionary (.CSteamEngine_GetTextFilterDictionary_Request) returns (.CSteamEngine_GetTextFilterDictionary_Response); + rpc NotifyTextFilterDictionaryChanged (.CSteamEngine_TextFilterDictionaryChanged_Notification) returns (.WebUINoResponse); + rpc GetGameIDForPID (.CSteamEngine_GetGameIDForPID_Request) returns (.CSteamEngine_GetGameIDForPID_Response); + rpc SetOverlayEscapeKeyHandling (.CSteamEngine_SetOverlayEscapeKeyHandling_Notification) returns (.WebUINoResponse); +} diff --git a/Protobufs/steam/webuimessages_steaminput.proto b/Protobufs/steam/webuimessages_steaminput.proto new file mode 100644 index 0000000..549c576 --- /dev/null +++ b/Protobufs/steam/webuimessages_steaminput.proto @@ -0,0 +1,132 @@ +import "steammessages_base.proto"; +import "webuimessages_base.proto"; + +option optimize_for = SPEED; +option cc_generic_services = true; + +message CSteamInputService_ControllerButtonStateChanged_Notification { + optional uint32 controller_index = 1; + optional bool dpad_up = 2; + optional bool dpad_down = 3; + optional bool dpad_left = 4; + optional bool dpad_right = 5; + optional bool button_south = 6; + optional bool button_east = 7; + optional bool button_west = 8; + optional bool button_north = 9; + optional bool button_back_view = 10; + optional bool button_start_options = 11; + optional bool button_steam = 12; + optional bool button_quick_access = 13; + optional bool button_mute_capture = 14; + optional bool left_stick_click = 15; + optional bool left_stick_touch = 16; + optional bool left_stick_deflect = 17; + optional bool right_stick_click = 18; + optional bool right_stick_touch = 19; + optional bool right_stick_deflect = 20; + optional bool center_trackpad_touch = 21; + optional bool center_trackpad_click = 22; + optional bool left_trackpad_touch = 23; + optional bool left_trackpad_click = 24; + optional bool right_trackpad_touch = 25; + optional bool right_trackpad_click = 26; + optional bool left_bumper = 27; + optional bool left_trigger = 28; + optional bool l4 = 29; + optional bool l5 = 30; + optional bool left_aux = 31; + optional bool right_bumper = 32; + optional bool right_trigger = 33; + optional bool r4 = 34; + optional bool r5 = 35; + optional bool right_aux = 36; +} + +message ControllerVector2 { + optional float x = 1; + optional float y = 2; +} + +message ControllerVector3 { + optional float x = 1; + optional float y = 2; + optional float z = 3; +} + +message ControllerQuaternion { + optional float w = 1; + optional float x = 2; + optional float y = 3; + optional float z = 4; +} + +message ControllerGyroEulerAngles { + optional float pitch = 1; + optional float yaw = 2; + optional float roll = 3; +} + +message CSteamInputService_ControllerAxesStateChange_Notification { + optional uint32 controller_index = 1; + optional .ControllerVector2 joystick_left = 2; + optional .ControllerVector2 joystick_right = 3; + optional .ControllerVector2 trackpad_left = 4; + optional .ControllerVector2 trackpad_right = 5; + optional .ControllerVector2 trackpad_center = 6; + optional float trackpad_pressure_left = 7; + optional float trackpad_pressure_right = 8; + optional float trigger_left = 9; + optional float trigger_right = 10; +} + +message CSteamInputService_GyroQuaternionChanged_Notification { + optional uint32 controller_index = 1; + optional uint32 imu_index = 2; + optional .ControllerQuaternion gyro_raw_quaternion = 3; + optional .ControllerQuaternion gyro_filtered_quaternion = 4; + optional uint32 imu_sensor_delta_time = 5; +} + +message CSteamInputService_GyroSpeedChanged_Notification { + optional uint32 controller_index = 1; + optional uint32 imu_index = 2; + optional .ControllerGyroEulerAngles gyro_raw_speed = 3; + optional .ControllerGyroEulerAngles gyro_filtered_speed = 4; +} + +message CSteamInputService_GyroAccelerometerChanged_Notification { + optional uint32 controller_index = 1; + optional uint32 imu_index = 2; + optional .ControllerVector3 acceleromter_1g = 4; + optional .ControllerVector3 trusted_gravity_1g = 5; +} + +message CSteamInputService_GyroCalibration_Notification { + optional uint32 controller_index = 1; + optional uint32 imu_index = 2; + optional float acceleromter_noise = 3; + optional float gyroscope_noise = 4; + optional float calibration_progress = 5; +} + +message CSteamInputService_ControllerStateFlow_Request { + optional uint32 controller_index = 1; + optional uint32 flow_mode = 2; +} + +message CSteamInputService_ControllerStateFlow_Response { +} + +service SteamInputManager { + option (webui_service_execution_site) = k_EClientExecutionSiteClientdll; + + rpc NotifyButtonStateChanged (.CSteamInputService_ControllerButtonStateChanged_Notification) returns (.WebUINoResponse); + rpc NotifyAxesStateChanged (.CSteamInputService_ControllerAxesStateChange_Notification) returns (.WebUINoResponse); + rpc NotifyGyroQuaternionStateChanged (.CSteamInputService_GyroQuaternionChanged_Notification) returns (.WebUINoResponse); + rpc NotifyGyroSpeedStateChanged (.CSteamInputService_GyroSpeedChanged_Notification) returns (.WebUINoResponse); + rpc NotifyGyroAccelerometerStateChanged (.CSteamInputService_GyroAccelerometerChanged_Notification) returns (.WebUINoResponse); + rpc NotifyGyroCalibrationStateChanged (.CSteamInputService_GyroCalibration_Notification) returns (.WebUINoResponse); + rpc StartControllerStateFlow (.CSteamInputService_ControllerStateFlow_Request) returns (.CSteamInputService_ControllerStateFlow_Response); + rpc EndControllerStateFlow (.CSteamInputService_ControllerStateFlow_Request) returns (.CSteamInputService_ControllerStateFlow_Response); +} diff --git a/Protobufs/steam/webuimessages_steamos.proto b/Protobufs/steam/webuimessages_steamos.proto new file mode 100644 index 0000000..46d129d --- /dev/null +++ b/Protobufs/steam/webuimessages_steamos.proto @@ -0,0 +1,123 @@ +import "enums.proto"; +import "steammessages_base.proto"; +import "webuimessages_base.proto"; + +option optimize_for = SPEED; +option cc_generic_services = true; + +message CMsgFactoryResetState { + optional bool is_running = 1; + optional int32 progress = 2; + optional bool is_restart_pending = 3; + optional fixed32 rtime_estimated_completion = 4; +} + +message CSteamOSManagerState { + optional bool is_service_available = 1; + optional string os_version = 2; + optional bool is_mandatory_update_available = 3; + optional .EStartupMovieVariant startup_movie_variant = 4 [default = k_EStartupMovieVariant_Invalid]; + optional bool is_status_led_control_available = 5; + optional .CMsgFactoryResetState factory_reset_state = 6; + optional bool is_tdp_limit_available = 7; + optional int32 tdp_limit_min = 8; + optional int32 tdp_limit_max = 9; + optional bool is_cec_available = 10; + optional bool is_wifi_debug_supported = 11; + optional bool is_wifi_debug_force_disabled = 12; + optional bool is_wifi_force_wpa_supplicant_supported = 13; +} + +message CSteamOSManager_GetState_Request { +} + +message CSteamOSManager_GetState_Response { + optional .CSteamOSManagerState state = 1; +} + +message CSteamOSManager_StateChanged_Notification { +} + +message CSteamOSManager_IsTelemetryHelperAvailable_Request { + optional .ESLSHelper etype = 1 [default = k_ESLSHelper_Invalid]; +} + +message CSteamOSManager_IsTelemetryHelperAvailable_Response { + optional bool available = 1; +} + +message CSteamOSManager_OptOutOfSideloadedClient_Request { +} + +message CSteamOSManager_OptOutOfSideloadedClient_Response { +} + +message CSteamOSManager_ApplyMandatoryUpdate_Request { +} + +message CSteamOSManager_ApplyMandatoryUpdate_Response { +} + +message CSteamOSManager_FactoryReset_Request { + optional bool reset_os = 1; + optional bool reset_user_data = 2; +} + +message CSteamOSManager_FactoryReset_Response { +} + +message CSteamOSSLSPlugin { + optional .ESLSHelper etype = 1 [default = k_ESLSHelper_Invalid]; + optional bool is_available = 2; + optional bool is_enabled = 3; +} + +message CSteamOSSLSState { + optional bool is_available = 1; + optional bool is_enabled = 2; + repeated .CSteamOSSLSPlugin plugins = 3; +} + +message CSteamOSSLS_GetState_Request { +} + +message CSteamOSSLS_GetState_Response { + optional .CSteamOSSLSState state = 1; +} + +message CSteamOSSLS_StateChanged_Notification { +} + +message CSteamOSSLS_SetEnabled_Request { + optional bool enabled = 1; +} + +message CSteamOSSLS_SetEnabled_Response { +} + +message CSteamOSSLS_SetPluginEnabled_Request { + optional .ESLSHelper etype = 1 [default = k_ESLSHelper_Invalid]; + optional bool enabled = 2; +} + +message CSteamOSSLS_SetPluginEnabled_Response { +} + +service SteamOSManager { + option (webui_service_execution_site) = k_EClientExecutionSiteSteamUI; + + rpc GetState (.CSteamOSManager_GetState_Request) returns (.CSteamOSManager_GetState_Response); + rpc NotifyStateChanged (.CSteamOSManager_StateChanged_Notification) returns (.WebUINoResponse); + rpc OptOutOfSideloadedClient (.CSteamOSManager_OptOutOfSideloadedClient_Request) returns (.CSteamOSManager_OptOutOfSideloadedClient_Response); + rpc ApplyMandatoryUpdate (.CSteamOSManager_ApplyMandatoryUpdate_Request) returns (.CSteamOSManager_ApplyMandatoryUpdate_Response); + rpc FactoryReset (.CSteamOSManager_FactoryReset_Request) returns (.CSteamOSManager_FactoryReset_Response); +} + +service SteamOSSLS { + option (webui_service_execution_site) = k_EClientExecutionSiteSteamUI; + + rpc GetState (.CSteamOSSLS_GetState_Request) returns (.CSteamOSSLS_GetState_Response); + rpc NotifyStateChanged (.CSteamOSSLS_StateChanged_Notification) returns (.WebUINoResponse); + rpc SetEnabled (.CSteamOSSLS_SetEnabled_Request) returns (.CSteamOSSLS_SetEnabled_Response); + rpc SetPluginEnabled (.CSteamOSSLS_SetPluginEnabled_Request) returns (.CSteamOSSLS_SetPluginEnabled_Response); +} diff --git a/Protobufs/steam/webuimessages_storagedevicemanager.proto b/Protobufs/steam/webuimessages_storagedevicemanager.proto new file mode 100644 index 0000000..43f089c --- /dev/null +++ b/Protobufs/steam/webuimessages_storagedevicemanager.proto @@ -0,0 +1,112 @@ +import "enums.proto"; +import "steammessages_base.proto"; +import "webuimessages_base.proto"; + +option optimize_for = SPEED; +option cc_generic_services = true; + +message CStorageDeviceManager_IsServiceAvailable_Request { +} + +message CStorageDeviceManager_IsServiceAvailable_Response { + optional bool is_available = 1; +} + +message CStorageDeviceManagerDrive { + optional uint32 id = 1 [default = 0]; + optional string model = 2; + optional string vendor = 3; + optional string serial = 4; + optional bool is_ejectable = 5; + optional uint64 size_bytes = 6; + optional .EStorageDriveMediaType media_type = 7 [default = k_EStorageDriveMediaType_Invalid]; + optional bool is_unformatted = 8; + optional .EStorageFormatStage adopt_stage = 9 [default = k_EStorageFormatStage_Invalid]; + optional bool is_formattable = 10; + optional bool is_media_available = 11; +} + +message CStorageDeviceManagerBlockDevice { + optional uint32 id = 1 [default = 0]; + optional uint32 drive_id = 2 [default = 0]; + optional string path = 3; + optional string friendly_path = 4; + optional string label = 5; + optional uint64 size_bytes = 6; + optional bool is_formattable = 7; + optional bool is_read_only = 8; + optional bool is_root_device = 9; + optional .EStorageBlockContentType content_type = 10 [default = k_EStorageBlockContentType_Invalid]; + optional .EStorageBlockFileSystemType filesystem_type = 11 [default = k_EStorageBlockFileSystemType_Invalid]; + repeated string mount_paths = 12; + optional bool is_unmounting = 13; + optional bool has_steam_library = 14; +} + +message CStorageDeviceManagerState { + repeated .CStorageDeviceManagerDrive drives = 1; + repeated .CStorageDeviceManagerBlockDevice block_devices = 2; + optional bool is_unmount_supported = 3; + optional bool is_trim_supported = 4; + optional bool is_trim_running = 5; + optional bool is_adopt_supported = 6; +} + +message CStorageDeviceManager_GetState_Request { +} + +message CStorageDeviceManager_GetState_Response { + optional .CStorageDeviceManagerState state = 1; +} + +message CStorageDeviceManager_StateChanged_Notification { +} + +message CStorageDeviceManager_Eject_Request { + optional uint32 drive_id = 1; +} + +message CStorageDeviceManager_Eject_Response { +} + +message CStorageDeviceManager_Adopt_Request { + optional uint32 drive_id = 1; + optional string label = 2; + optional bool validate = 3; +} + +message CStorageDeviceManager_Adopt_Response { +} + +message CStorageDeviceManager_Format_Request { + optional uint32 block_device_id = 1; +} + +message CStorageDeviceManager_Format_Response { +} + +message CStorageDeviceManager_Unmount_Request { + optional uint32 block_device_id = 1; +} + +message CStorageDeviceManager_Unmount_Response { +} + +message CStorageDeviceManager_TrimAll_Request { +} + +message CStorageDeviceManager_TrimAll_Response { +} + +service StorageDeviceManager { + option (webui_service_execution_site) = k_EClientExecutionSiteSteamUI; + + rpc IsServiceAvailable (.CStorageDeviceManager_IsServiceAvailable_Request) returns (.CStorageDeviceManager_IsServiceAvailable_Response); + rpc GetState (.CStorageDeviceManager_GetState_Request) returns (.CStorageDeviceManager_GetState_Response); + rpc NotifyStateChanged (.CStorageDeviceManager_StateChanged_Notification) returns (.WebUINoResponse); + rpc Adopt (.CStorageDeviceManager_Adopt_Request) returns (.CStorageDeviceManager_Adopt_Response); + rpc Eject (.CStorageDeviceManager_Eject_Request) returns (.CStorageDeviceManager_Eject_Response); + rpc Format (.CStorageDeviceManager_Format_Request) returns (.CStorageDeviceManager_Format_Response); + rpc Unmount (.CStorageDeviceManager_Unmount_Request) returns (.CStorageDeviceManager_Unmount_Response); + rpc TrimAll (.CStorageDeviceManager_TrimAll_Request) returns (.CStorageDeviceManager_TrimAll_Response); +} diff --git a/Protobufs/steam/webuimessages_systemmanager.proto b/Protobufs/steam/webuimessages_systemmanager.proto new file mode 100644 index 0000000..37cd0e9 --- /dev/null +++ b/Protobufs/steam/webuimessages_systemmanager.proto @@ -0,0 +1,26 @@ +import "steammessages_base.proto"; +import "webuimessages_base.proto"; + +option optimize_for = SPEED; +option cc_generic_services = true; + +message CSystemManager_Hibernate_Request { +} + +message CSystemManager_Hibernate_Response { +} + +message CSystemManager_WriteFile_Request { + optional string path = 1; + optional bytes data = 2; +} + +message CSystemManager_WriteFile_Response { +} + +service SystemManager { + option (webui_service_execution_site) = k_EClientExecutionSiteClientdll; + + rpc Hibernate (.CSystemManager_Hibernate_Request) returns (.CSystemManager_Hibernate_Response); + rpc WriteFile (.CSystemManager_WriteFile_Request) returns (.CSystemManager_WriteFile_Response); +} diff --git a/Protobufs/steam/webuimessages_transport.proto b/Protobufs/steam/webuimessages_transport.proto new file mode 100644 index 0000000..9d9d167 --- /dev/null +++ b/Protobufs/steam/webuimessages_transport.proto @@ -0,0 +1,22 @@ +import "steammessages_base.proto"; +import "webuimessages_base.proto"; + +option optimize_for = SPEED; +option cc_generic_services = true; + +message CTransportAuth_Authenticate_Request { + optional string auth_key = 1; +} + +message CTransportAuth_Authenticate_Response { +} + +message CTransportAuth_StartShutdown_Notification { +} + +service TransportAuth { + option (webui_service_execution_site) = k_EClientExecutionSiteAny; + + rpc Authenticate (.CTransportAuth_Authenticate_Request) returns (.CTransportAuth_Authenticate_Response); + rpc NotifyStartShutdown (.CTransportAuth_StartShutdown_Notification) returns (.WebUINoResponse); +} diff --git a/Protobufs/steam/webuimessages_transportvalidation.proto b/Protobufs/steam/webuimessages_transportvalidation.proto new file mode 100644 index 0000000..342f7cc --- /dev/null +++ b/Protobufs/steam/webuimessages_transportvalidation.proto @@ -0,0 +1,143 @@ +import "steammessages_base.proto"; +import "webuimessages_base.proto"; + +option optimize_for = SPEED; +option cc_generic_services = true; + +message CTransportValidation_AppendToString_Request { + repeated string append_strings = 1; +} + +message CTransportValidation_AppendToString_Response { + optional string combined_text = 1; +} + +message CTransportValidation_NotifyText_Notification { + optional string text = 1; +} + +message CTransportValidation_NotifyNumber_Notification { + optional int32 number = 1; +} + +message CTransportValidation_GetLastNotifyNumber_Request { +} + +message CTransportValidation_GetLastNotifyNumber_Response { + optional int32 last_notify_number = 1; +} + +message CTransportValidation_TriggerSyntheticEvents_Request { + optional int32 count = 1; +} + +message CTransportValidation_TriggerSyntheticEvents_Response { +} + +message CTransportValidation_NotifySyntheticEvent_Notification { + optional int32 sequence = 1; +} + +message CTransportValidation_TriggerDataRequest_Request { +} + +message CTransportValidation_TriggerDataRequest_Response { + optional int32 data = 1; +} + +message CTransportValidation_DataRequest_Request { +} + +message CTransportValidation_DataRequest_Response { + optional int32 data = 1; +} + +message CTransportValidation_AddNumbers_Request { + repeated int32 numbers = 1; +} + +message CTransportValidation_AddNumbers_Response { + optional int32 accumulated = 1; +} + +message CTransportValidation_CountOrderedBytes_Request { + optional bytes ordered_bytes = 1; +} + +message CTransportValidation_CountOrderedBytes_Response { + optional int32 byte_count = 1; +} + +message CTransportValidation_ThreadedCount_Request { + optional int32 start_num = 1; + optional int32 end_num = 2; +} + +message CTransportValidation_ThreadedCount_Response { +} + +message CTransportValidation_NotifyCount_Notification { + optional int32 num = 1; +} + +message CTransportValidation_RequestInvalidBool_Request { +} + +message CTransportValidation_RequestInvalidBool_Response { + optional int32 before = 1; + optional bool output = 2; + optional int32 after = 3; +} + +message CTransportValidation_GetLargeResponse_Request { + optional uint32 data_size = 1; +} + +message CTransportValidation_GetLargeResponse_Response { + optional bytes data = 1; +} + +message CTransportValidation_RequestLargeNotification_Request { + optional uint32 data_size = 1; +} + +message CTransportValidation_RequestLargeNotification_Response { +} + +message CTransportValidation_NotifyLarge_Notification { + optional bytes data = 1; +} + +message CTransportValidationClient_AddNumbers_Request { + repeated int32 numbers = 1; +} + +message CTransportValidationClient_AddNumbers_Response { + optional int32 accumulated = 1; +} + +service TransportValidation { + option (webui_service_execution_site) = k_EClientExecutionSiteSteamUI; + + rpc AppendToString (.CTransportValidation_AppendToString_Request) returns (.CTransportValidation_AppendToString_Response); + rpc AddNumbers (.CTransportValidation_AddNumbers_Request) returns (.CTransportValidation_AddNumbers_Response); + rpc AddNumbersStatic (.CTransportValidation_AddNumbers_Request) returns (.CTransportValidation_AddNumbers_Response); + rpc NotifyText (.CTransportValidation_NotifyText_Notification) returns (.WebUINoResponse); + rpc NotifyNumber (.CTransportValidation_NotifyNumber_Notification) returns (.WebUINoResponse); + rpc GetLastNotifyNumber (.CTransportValidation_GetLastNotifyNumber_Request) returns (.CTransportValidation_GetLastNotifyNumber_Response); + rpc NotifySyntheticEvent (.CTransportValidation_NotifySyntheticEvent_Notification) returns (.WebUINoResponse); + rpc TriggerSyntheticEvents (.CTransportValidation_TriggerSyntheticEvents_Request) returns (.CTransportValidation_TriggerSyntheticEvents_Response); + rpc CountOrderedBytes (.CTransportValidation_CountOrderedBytes_Request) returns (.CTransportValidation_CountOrderedBytes_Response); + rpc ThreadedCount (.CTransportValidation_ThreadedCount_Request) returns (.CTransportValidation_ThreadedCount_Response); + rpc NotifyCount (.CTransportValidation_NotifyCount_Notification) returns (.WebUINoResponse); + rpc RequestInvalidBool (.CTransportValidation_RequestInvalidBool_Request) returns (.CTransportValidation_RequestInvalidBool_Response); + rpc GetLargeResponse (.CTransportValidation_GetLargeResponse_Request) returns (.CTransportValidation_GetLargeResponse_Response); + rpc RequestLargeNotification (.CTransportValidation_RequestLargeNotification_Request) returns (.CTransportValidation_RequestLargeNotification_Response); + rpc NotifyLarge (.CTransportValidation_NotifyLarge_Notification) returns (.WebUINoResponse); +} + +service TransportValidationClient { + option (webui_service_execution_site) = k_EClientExecutionSiteClientdll; + + rpc AddNumbers (.CTransportValidationClient_AddNumbers_Request) returns (.CTransportValidationClient_AddNumbers_Response); +} diff --git a/Protobufs/tf2/base_gcmessages.proto b/Protobufs/tf2/base_gcmessages.proto new file mode 100644 index 0000000..5974347 --- /dev/null +++ b/Protobufs/tf2/base_gcmessages.proto @@ -0,0 +1,561 @@ +import "steammessages.proto"; + +option optimize_for = SPEED; +option cc_generic_services = false; + +enum EGCBaseMsg { + k_EMsgGCSystemMessage = 4001; + k_EMsgGCReplicateConVars = 4002; + k_EMsgGCConVarUpdated = 4003; + k_EMsgGCServerAvailable = 4506; + k_EMsgGCClientConnectToServer = 4507; + k_EMsgGCGameServerInfo = 4508; + k_EMsgGCError = 4509; + k_EMsgGCReplay_UploadedToYouTube = 4510; + k_EMsgGCLANServerAvailable = 4511; +} + +enum EGCBaseProtoObjectTypes { + k_EProtoObjectPartyInvite = 1001; + k_EProtoObjectLobbyInvite = 1002; +} + +enum GCGoodbyeReason { + GCGoodbyeReason_GC_GOING_DOWN = 1; + GCGoodbyeReason_NO_SESSION = 2; +} + +message CGCStorePurchaseInit_LineItem { + optional uint32 item_def_id = 1; + optional uint32 quantity = 2; + optional uint32 cost_in_local_currency = 3; + optional uint32 purchase_type = 4; +} + +message CMsgGCStorePurchaseInit { + optional string country = 1; + optional int32 language = 2; + optional int32 currency = 3; + repeated .CGCStorePurchaseInit_LineItem line_items = 4; +} + +message CMsgGCStorePurchaseInitResponse { + optional int32 result = 1; + optional uint64 txn_id = 2; +} + +message CMsgSystemBroadcast { + optional string message = 1; +} + +message CMsgClientHello { + optional uint32 version = 1; +} + +message CMsgServerHello { + optional uint32 version = 1; +} + +message CMsgClientWelcome { + optional uint32 version = 1; + optional bytes game_data = 2; + optional string txn_country_code = 3; +} + +message CMsgServerWelcome { + optional uint32 min_allowed_version = 1; + optional uint32 active_version = 2; +} + +message CMsgClientGoodbye { + optional .GCGoodbyeReason reason = 1 [default = GCGoodbyeReason_GC_GOING_DOWN]; +} + +message CMsgServerGoodbye { + optional .GCGoodbyeReason reason = 1 [default = GCGoodbyeReason_GC_GOING_DOWN]; +} + +message CMsgServerAvailable { +} + +message CMsgLANServerAvailable { + optional fixed64 lobby_id = 1; +} + +message CSOEconGameAccountClient { + optional uint32 additional_backpack_slots = 1 [default = 0]; + optional bool trial_account = 2 [default = false]; + optional bool need_to_choose_most_helpful_friend = 4; + optional bool in_coaches_list = 5; + optional fixed32 trade_ban_expiration = 6; + optional fixed32 duel_ban_expiration = 7; + optional uint32 preview_item_def = 8 [default = 0]; + optional bool phone_verified = 19 [default = false]; + optional uint32 skill_rating_6v6 = 20; + optional uint32 skill_rating_9v9 = 21; + optional bool competitive_access = 23 [default = false]; + optional uint32 matchmaking_ranked_ban_expiration = 18; + optional uint32 matchmaking_ranked_low_priority_expiration = 24; + optional uint32 matchmaking_ranked_ban_last_duration = 25; + optional uint32 matchmaking_ranked_low_priority_last_duration = 26; + optional uint32 matchmaking_casual_ban_expiration = 27; + optional uint32 matchmaking_casual_low_priority_expiration = 28; + optional uint32 matchmaking_casual_ban_last_duration = 29; + optional uint32 matchmaking_casual_low_priority_last_duration = 30; + optional bool phone_identifying = 31 [default = false]; + optional bool disable_party_quest_progress = 32 [default = false]; + optional uint32 quest_reward_credits = 33; + optional uint32 matchmaking_last_casual_excessive_reports_auto_ban_time = 34; + optional uint32 matchmaking_last_comp_excessive_reports_auto_ban_time = 35; +} + +message CSOItemCriteriaCondition { + optional int32 op = 1; + optional string field = 2; + optional bool required = 3; + optional float float_value = 4; + optional string string_value = 5; +} + +message CSOItemCriteria { + optional uint32 item_level = 1; + optional int32 item_quality = 2; + optional bool item_level_set = 3; + optional bool item_quality_set = 4; + optional uint32 initial_inventory = 5; + optional uint32 initial_quantity = 6; + optional bool ignore_enabled_flag = 8; + repeated .CSOItemCriteriaCondition conditions = 9; + optional bool recent_only = 10; + optional string tags = 11; + optional string equip_regions = 12; +} + +message CSOItemRecipe { + optional uint32 def_index = 1; + optional string name = 2; + optional string n_a = 3; + optional string desc_inputs = 4; + optional string desc_outputs = 5; + optional string di_a = 6; + optional string di_b = 7; + optional string di_c = 8; + optional string do_a = 9; + optional string do_b = 10; + optional string do_c = 11; + optional bool requires_all_same_class = 12; + optional bool requires_all_same_slot = 13; + optional int32 class_usage_for_output = 14; + optional int32 slot_usage_for_output = 15; + optional int32 set_for_output = 16; + repeated .CSOItemCriteria input_items_criteria = 20; + repeated .CSOItemCriteria output_items_criteria = 21; + repeated uint32 input_item_dupe_counts = 22; +} + +message CMsgDevNewItemRequest { + optional fixed64 receiver = 1; + optional .CSOItemCriteria criteria = 2; +} + +message CMsgDevDebugRollLootRequest { + optional fixed64 receiver = 1; + optional string loot_list_name = 2; +} + +message CMsgIncrementKillCountAttribute { + optional uint64 killer_steam_id = 1; + optional uint64 victim_steam_id = 2; + optional uint64 item_id = 3; + optional uint32 event_type = 4; + optional uint32 increment_value = 5; +} + +message CMsgIncrementKillCountAttribute_Multiple { + repeated .CMsgIncrementKillCountAttribute msgs = 1; +} + +message CMsgTrackUniquePlayerPairEvent { + optional uint64 killer_steam_id = 1; + optional uint64 victim_steam_id = 2; + optional uint64 item_id = 3; + optional uint32 event_type = 4; +} + +message CMsgApplyStrangeCountTransfer { + optional uint64 tool_item_id = 1; + optional uint64 item_src_item_id = 2; + optional uint64 item_dest_item_id = 3; +} + +message CMsgApplyStrangePart { + optional uint64 strange_part_item_id = 1; + optional uint64 item_item_id = 2; +} + +message CMsgApplyStrangeRestriction { + optional uint64 strange_part_item_id = 1; + optional uint64 item_item_id = 2; + optional uint32 strange_attr_index = 3; +} + +message CMsgApplyUpgradeCard { + optional uint64 upgrade_card_item_id = 1; + optional uint64 subject_item_id = 2; +} + +message CSOEconItemAttribute { + optional uint32 def_index = 1; + optional uint32 value = 2; + optional bytes value_bytes = 3; +} + +message CSOEconItemEquipped { + optional uint32 new_class = 1; + optional uint32 new_slot = 2; +} + +message CSOEconItem { + optional uint64 id = 1; + optional uint32 account_id = 2; + optional uint32 inventory = 3; + optional uint32 def_index = 4; + optional uint32 quantity = 5; + optional uint32 level = 6; + optional uint32 quality = 7; + optional uint32 flags = 8 [default = 0]; + optional uint32 origin = 9; + optional string custom_name = 10; + optional string custom_desc = 11; + repeated .CSOEconItemAttribute attribute = 12; + optional .CSOEconItem interior_item = 13; + optional bool in_use = 14 [default = false]; + optional uint32 style = 15 [default = 0]; + optional uint64 original_id = 16 [default = 0]; + optional bool contains_equipped_state = 17; + repeated .CSOEconItemEquipped equipped_state = 18; + optional bool contains_equipped_state_v2 = 19; +} + +message CMsgAdjustItemEquippedState { + optional uint64 item_id = 1; + optional uint32 new_class = 2; + optional uint32 new_slot = 3; +} + +message CMsgSortItems { + optional uint32 sort_type = 1; +} + +message CSOEconClaimCode { + optional uint32 account_id = 1; + optional uint32 code_type = 2; + optional uint32 time_acquired = 3; + optional string code = 4; +} + +message CMsgStoreGetUserData { + optional fixed32 price_sheet_version = 1; +} + +message CMsgStoreGetUserDataResponse { + optional int32 result = 1; + optional int32 currency = 2; + optional string country = 3; + optional fixed32 price_sheet_version = 4; + optional uint64 experiment_data = 5 [default = 0]; + optional int32 featured_item_idx = 6; + optional bool show_hat_descriptions = 7 [default = true]; + optional bytes price_sheet = 8; + optional int32 default_item_sort = 9 [default = 0]; + repeated uint32 popular_items = 10; +} + +message CMsgUpdateItemSchema { + optional bytes items_game = 1; + optional fixed32 item_schema_version = 2; + optional string items_game_url = 3; + optional bytes signature = 4; +} + +message CMsgGCError { + optional string error_text = 1; +} + +message CMsgRequestInventoryRefresh { +} + +message CMsgConVarValue { + optional string name = 1; + optional string value = 2; +} + +message CMsgReplicateConVars { + repeated .CMsgConVarValue convars = 1; +} + +message CMsgUseItem { + optional uint64 item_id = 1; + optional fixed64 target_steam_id = 2; + repeated uint32 gift__potential_targets = 3; + optional uint32 duel__class_lock = 4; + optional fixed64 initiator_steam_id = 5; + optional bool itempack__ack_immediately = 6; +} + +message CMsgReplayUploadedToYouTube { + optional string youtube_url = 1; + optional string youtube_account_name = 2; + optional uint64 session_id = 3; +} + +message CMsgConsumableExhausted { + optional int32 item_def_id = 1; +} + +message CMsgItemAcknowledged { + optional uint32 account_id = 1; + optional uint32 inventory = 2; + optional uint32 def_index = 3; + optional uint32 quality = 4; + optional uint32 rarity = 5; + optional uint32 origin = 6; + optional uint32 is_strange = 7; + optional uint32 is_unusual = 8; + optional float wear = 9; +} + +message CMsgSetPresetItemPosition { + optional uint32 class_id = 1; + optional uint32 preset_id = 2; + optional uint32 slot_id = 3; + optional uint64 item_id = 4; +} + +message CMsgSetItemPositions { + message ItemPosition { + optional uint64 item_id = 1; + optional uint32 position = 2; + } + + repeated .CMsgSetItemPositions.ItemPosition item_positions = 1; +} + +message CSOEconItemPresetInstance { + optional uint32 class_id = 2 [(key_field) = true]; + optional uint32 preset_id = 3 [(key_field) = true]; + optional uint32 slot_id = 4 [(key_field) = true]; + optional uint64 item_id = 5; +} + +message CMsgSelectPresetForClass { + optional uint32 class_id = 1; + optional uint32 preset_id = 2; +} + +message CSOClassPresetClientData { + optional uint32 account_id = 1; + optional uint32 class_id = 2; + optional uint32 active_preset_id = 3; +} + +message CMsgGCReportAbuse { + optional fixed64 target_steam_id = 1; + optional string description = 4; + optional uint64 gid = 5; + optional uint32 abuse_type = 2; + optional uint32 content_type = 3; + optional fixed32 target_game_server_ip = 6; + optional uint32 target_game_server_port = 7; +} + +message CMsgGCReportAbuseResponse { + optional fixed64 target_steam_id = 1; + optional uint32 result = 2; + optional string error_message = 3; +} + +message CMsgGCNameItemNotification { + optional fixed64 player_steamid = 1; + optional uint32 item_def_index = 2; + optional string item_name_custom = 3; +} + +message CMsgGCClientDisplayNotification { + optional string notification_title_localization_key = 1; + optional string notification_body_localization_key = 2; + repeated string body_substring_keys = 3; + repeated string body_substring_values = 4; +} + +message CMsgGCShowItemsPickedUp { + optional fixed64 player_steamid = 1; +} + +message CMsgUpdatePeriodicEvent { + optional uint32 account_id = 1; + optional uint32 event_type = 2; + optional uint32 amount = 3; +} + +message CMsgGCIncrementKillCountResponse { + optional uint32 killer_account_id = 1 [(key_field) = true]; + optional uint32 num_kills = 2; + optional uint32 item_def = 3; + optional uint32 level_type = 4; +} + +message CMsgGCRemoveStrangePart { + optional uint64 item_id = 1; + optional uint32 strange_part_score_type = 2; +} + +message CMsgGCRemoveUpgradeCard { + optional uint64 item_id = 1; + optional uint32 attribute_index = 2; +} + +message CMsgGCRemoveCustomizationAttributeSimple { + optional uint64 item_id = 1; +} + +message CMsgGCResetStrangeScores { + optional uint64 item_id = 1; +} + +message CMsgGCItemPreviewItemBoughtNotification { + optional uint32 item_def_index = 1; +} + +message CMsgGCStorePurchaseCancel { + optional uint64 txn_id = 1; +} + +message CMsgGCStorePurchaseCancelResponse { + optional uint32 result = 1; +} + +message CMsgGCStorePurchaseFinalize { + optional uint64 txn_id = 1; +} + +message CMsgGCStorePurchaseFinalizeResponse { + optional uint32 result = 1; + repeated uint64 item_ids = 2; +} + +message CMsgGCBannedWordListRequest { + optional uint32 ban_list_group_id = 1; + optional uint32 word_id = 2; +} + +message CMsgGCGiftedItems { + optional uint64 gifter_steam_id = 1; + optional bool was_random_person = 2; + repeated uint32 recipient_account_ids = 3; +} + +message CMsgGCCollectItem { + optional uint64 collection_item_id = 1; + optional uint64 subject_item_id = 2; +} + +message CMsgGCClientMarketDataRequest { + optional uint32 user_currency = 1; +} + +message CMsgGCClientMarketDataEntry { + optional uint32 item_def_index = 1; + optional uint32 item_quality = 2; + optional uint32 item_sell_listings = 3; + optional uint32 price_in_local_currency = 4; +} + +message CMsgGCClientMarketData { + repeated .CMsgGCClientMarketDataEntry entries = 1; +} + +message CMsgApplyToolToItem { + optional uint64 tool_item_id = 1; + optional uint64 subject_item_id = 2; +} + +message CMsgApplyToolToBaseItem { + optional uint64 tool_item_id = 1; + optional uint32 baseitem_def_index = 2; +} + +message CMsgRecipeComponent { + optional uint64 subject_item_id = 1; + optional uint64 attribute_index = 2; +} + +message CMsgFulfillDynamicRecipeComponent { + optional uint64 tool_item_id = 1; + repeated .CMsgRecipeComponent consumption_components = 2; +} + +message CMsgSetItemEffectVerticalOffset { + optional uint64 item_id = 1; + optional float offset = 2; +} + +message CMsgSetHatEffectUseHeadOrigin { + optional uint64 item_id = 1; + optional bool use_head = 2; +} + +message CMsgDeliverGiftResponseGiver { + optional uint32 response_code = 1; + optional string receiver_account_name = 2; +} + +message CSOEconGameAccountForGameServers { + optional bool disable_party_quest_progress = 6 [default = false]; +} + +message CWorkshop_PopulateItemDescriptions_Request { + message SingleItemDescription { + optional uint32 gameitemid = 1; + optional string item_description = 2; + } + + message ItemDescriptionsLanguageBlock { + optional string language = 1; + repeated .CWorkshop_PopulateItemDescriptions_Request.SingleItemDescription descriptions = 2; + } + + optional uint32 appid = 1; + repeated .CWorkshop_PopulateItemDescriptions_Request.ItemDescriptionsLanguageBlock languages = 2; +} + +message CWorkshop_GetContributors_Request { + optional uint32 appid = 1; + optional uint32 gameitemid = 2; +} + +message CWorkshop_GetContributors_Response { + repeated fixed64 contributors = 1; +} + +message CWorkshop_SetItemPaymentRules_Request { + message WorkshopItemPaymentRule { + optional uint64 workshop_file_id = 1; + optional float revenue_percentage = 2; + optional string rule_description = 3; + } + + message PartnerItemPaymentRule { + optional uint32 account_id = 1; + optional float revenue_percentage = 2; + optional string rule_description = 3; + } + + optional uint32 appid = 1; + optional uint32 gameitemid = 2; + repeated .CWorkshop_SetItemPaymentRules_Request.WorkshopItemPaymentRule associated_workshop_files = 3; + repeated .CWorkshop_SetItemPaymentRules_Request.PartnerItemPaymentRule partner_accounts = 4; +} + +message CWorkshop_SetItemPaymentRules_Response { +} diff --git a/Protobufs/tf2/econ_gcmessages.proto b/Protobufs/tf2/econ_gcmessages.proto new file mode 100644 index 0000000..b4a10a2 --- /dev/null +++ b/Protobufs/tf2/econ_gcmessages.proto @@ -0,0 +1,368 @@ +import "steammessages.proto"; + +option optimize_for = SPEED; +option cc_generic_services = false; + +enum EGCItemMsg { + k_EMsgGCBase = 1000; + k_EMsgGCSetSingleItemPosition = 1001; + k_EMsgGCCraft = 1002; + k_EMsgGCCraftResponse = 1003; + k_EMsgGCDelete = 1004; + k_EMsgGCVerifyCacheSubscription = 1005; + k_EMsgGCNameItem = 1006; + k_EMsgGCUnlockCrate = 1007; + k_EMsgGCUnlockCrateResponse = 1008; + k_EMsgGCPaintItem = 1009; + k_EMsgGCPaintItemResponse = 1010; + k_EMsgGCGoldenWrenchBroadcast = 1011; + k_EMsgGCMOTDRequest = 1012; + k_EMsgGCMOTDRequestResponse = 1013; + k_EMsgGCNameBaseItem = 1019; + k_EMsgGCNameBaseItemResponse = 1020; + k_EMsgGCRemoveSocketItem_DEPRECATED = 1021; + k_EMsgGCRemoveSocketItemResponse_DEPRECATED = 1022; + k_EMsgGCCustomizeItemTexture = 1023; + k_EMsgGCCustomizeItemTextureResponse = 1024; + k_EMsgGCUseItemRequest = 1025; + k_EMsgGCUseItemResponse = 1026; + k_EMsgGCRespawnPostLoadoutChange = 1029; + k_EMsgGCRemoveItemName = 1030; + k_EMsgGCRemoveItemPaint = 1031; + k_EMsgGCGiftWrapItem = 1032; + k_EMsgGCGiftWrapItemResponse = 1033; + k_EMsgGCDeliverGift = 1034; + k_EMsgGCDeliverGiftResponseReceiver = 1036; + k_EMsgGCUnwrapGiftRequest = 1037; + k_EMsgGCUnwrapGiftResponse = 1038; + k_EMsgGCSetItemStyle = 1039; + k_EMsgGCUsedClaimCodeItem = 1040; + k_EMsgGCSortItems = 1041; + k_EMsgGC_RevolvingLootList_DEPRECATED = 1042; + k_EMsgGCLookupAccount = 1043; + k_EMsgGCLookupAccountResponse = 1044; + k_EMsgGCLookupAccountName = 1045; + k_EMsgGCLookupAccountNameResponse = 1046; + k_EMsgGCUpdateItemSchema = 1049; + k_EMsgGCRequestInventoryRefresh = 1050; + k_EMsgGCRemoveCustomTexture = 1051; + k_EMsgGCRemoveCustomTextureResponse = 1052; + k_EMsgGCRemoveMakersMark = 1053; + k_EMsgGCRemoveMakersMarkResponse = 1054; + k_EMsgGCRemoveUniqueCraftIndex = 1055; + k_EMsgGCRemoveUniqueCraftIndexResponse = 1056; + k_EMsgGCSaxxyBroadcast = 1057; + k_EMsgGCBackpackSortFinished = 1058; + k_EMsgGCAdjustItemEquippedState = 1059; + k_EMsgGCCollectItem = 1061; + k_EMsgGCItemAcknowledged = 1062; + k_EMsgGCPresets_SelectPresetForClass = 1063; + k_EMsgGCPresets_SetItemPosition = 1064; + k_EMsgGC_ReportAbuse = 1065; + k_EMsgGC_ReportAbuseResponse = 1066; + k_EMsgGCPresets_SelectPresetForClassReply = 1067; + k_EMsgGCNameItemNotification = 1068; + k_EMsgGCClientDisplayNotification = 1069; + k_EMsgGCApplyStrangePart = 1070; + k_EMsgGC_IncrementKillCountAttribute = 1071; + k_EMsgGC_IncrementKillCountResponse = 1072; + k_EMsgGCRemoveStrangePart = 1073; + k_EMsgGCResetStrangeScores = 1074; + k_EMsgGCGiftedItems = 1075; + k_EMsgGCApplyUpgradeCard = 1077; + k_EMsgGCRemoveUpgradeCard = 1078; + k_EMsgGCApplyStrangeRestriction = 1079; + k_EMsgGCClientRequestMarketData = 1080; + k_EMsgGCClientRequestMarketDataResponse = 1081; + k_EMsgGCApplyXifier = 1082; + k_EMsgGCApplyXifierResponse = 1083; + k_EMsgGC_TrackUniquePlayerPairEvent = 1084; + k_EMsgGCFulfillDynamicRecipeComponent = 1085; + k_EMsgGCFulfillDynamicRecipeComponentResponse = 1086; + k_EMsgGCSetItemEffectVerticalOffset = 1087; + k_EMsgGCSetHatEffectUseHeadOrigin = 1088; + k_EMsgGCItemEaterRecharger = 1089; + k_EMsgGCItemEaterRechargerResponse = 1090; + k_EMsgGCApplyBaseItemXifier = 1091; + k_EMsgGCApplyClassTransmogrifier = 1092; + k_EMsgGCApplyHalloweenSpellbookPage = 1093; + k_EMsgGCRemoveKillStreak = 1094; + k_EMsgGCRemoveKillStreakResponse = 1095; + k_EMsgGCTFSpecificItemBroadcast = 1096; + k_EMsgGC_IncrementKillCountAttribute_Multiple = 1097; + k_EMsgGCDeliverGiftResponseGiver = 1098; + k_EMsgGCSetItemPositions = 1100; + k_EMsgGCLookupMultipleAccountNames = 1101; + k_EMsgGCLookupMultipleAccountNamesResponse = 1102; + k_EMsgGCTradingBase = 1500; + k_EMsgGCTrading_InitiateTradeRequest = 1501; + k_EMsgGCTrading_InitiateTradeResponse = 1502; + k_EMsgGCTrading_StartSession = 1503; + k_EMsgGCTrading_SessionClosed = 1509; + k_EMsgGCTrading_CancelSession = 1510; + k_EMsgGCTrading_InitiateTradeRequestResponse = 1514; + k_EMsgGCServerBrowser_FavoriteServer = 1601; + k_EMsgGCServerBrowser_BlacklistServer = 1602; + k_EMsgGCServerRentalsBase = 1700; + k_EMsgGCItemPreviewCheckStatus = 1701; + k_EMsgGCItemPreviewStatusResponse = 1702; + k_EMsgGCItemPreviewRequest = 1703; + k_EMsgGCItemPreviewRequestResponse = 1704; + k_EMsgGCItemPreviewExpire = 1705; + k_EMsgGCItemPreviewExpireNotification = 1706; + k_EMsgGCItemPreviewItemBoughtNotification = 1708; + k_EMsgGCDev_NewItemRequest = 2001; + k_EMsgGCDev_NewItemRequestResponse = 2002; + k_EMsgGCDev_DebugRollLootRequest = 2003; + k_EMsgGCStoreGetUserData = 2500; + k_EMsgGCStoreGetUserDataResponse = 2501; + k_EMsgGCStorePurchaseInit_DEPRECATED = 2502; + k_EMsgGCStorePurchaseInitResponse_DEPRECATED = 2503; + k_EMsgGCStorePurchaseFinalize = 2512; + k_EMsgGCStorePurchaseFinalizeResponse = 2513; + k_EMsgGCStorePurchaseCancel = 2514; + k_EMsgGCStorePurchaseCancelResponse = 2515; + k_EMsgGCStorePurchaseQueryTxn = 2508; + k_EMsgGCStorePurchaseQueryTxnResponse = 2509; + k_EMsgGCStorePurchaseInit = 2510; + k_EMsgGCStorePurchaseInitResponse = 2511; + k_EMsgGCToGCDirtySDOCache = 2516; + k_EMsgGCToGCDirtyMultipleSDOCache = 2517; + k_EMsgGCToGCUpdateSQLKeyValue = 2518; + k_EMsgGCToGCBroadcastConsoleCommand = 2521; + k_EMsgGCServerVersionUpdated = 2522; + k_EMsgGCApplyAutograph = 2523; + k_EMsgGCToGCWebAPIAccountChanged = 2524; + k_EMsgGCRequestAnnouncements = 2525; + k_EMsgGCRequestAnnouncementsResponse = 2526; + k_EMsgGCRequestPassportItemGrant = 2527; + k_EMsgGCClientVersionUpdated = 2528; + k_EMsgGCItemPurgatory_FinalizePurchase = 2531; + k_EMsgGCItemPurgatory_FinalizePurchaseResponse = 2532; + k_EMsgGCItemPurgatory_RefundPurchase = 2533; + k_EMsgGCItemPurgatory_RefundPurchaseResponse = 2534; + k_EMsgGCToGCPlayerStrangeCountAdjustments = 2535; + k_EMsgGCRequestStoreSalesData = 2536; + k_EMsgGCRequestStoreSalesDataResponse = 2537; + k_EMsgGCRequestStoreSalesDataUpToDateResponse = 2538; + k_EMsgGCToGCPingRequest = 2539; + k_EMsgGCToGCPingResponse = 2540; + k_EMsgGCToGCGetUserSessionServer = 2541; + k_EMsgGCToGCGetUserSessionServerResponse = 2542; + k_EMsgGCToGCGetUserServerMembers = 2543; + k_EMsgGCToGCGetUserServerMembersResponse = 2544; + k_EMsgGCToGCGrantSelfMadeItemToAccount = 2555; + k_EMsgGCToGCThankedByNewUser = 2556; + k_EMsgGCShuffleCrateContents = 2557; + k_EMsgGCQuestObjective_Progress = 2558; + k_EMsgGCQuestCompleted = 2559; + k_EMsgGCApplyDuckToken = 2560; + k_EMsgGCQuestObjective_PointsChange = 2562; + k_EMsgGCQuestObjective_RequestLoanerItems = 2564; + k_EMsgGCQuestObjective_RequestLoanerResponse = 2565; + k_EMsgGCApplyStrangeCountTransfer = 2566; + k_EMsgGCCraftCollectionUpgrade = 2567; + k_EMsgGCCraftHalloweenOffering = 2568; + k_EMsgGCQuestDiscard_Request = 2569; + k_EMsgGCRemoveGiftedBy = 2570; + k_EMsgGCRemoveGiftedByResponse = 2571; + k_EMsgGCRemoveFestivizer = 2572; + k_EMsgGCRemoveFestivizerResponse = 2573; + k_EMsgGCCraftCommonStatClock = 2574; +} + +enum EGCMsgResponse { + k_EGCMsgResponseOK = 0; + k_EGCMsgResponseDenied = 1; + k_EGCMsgResponseServerError = 2; + k_EGCMsgResponseTimeout = 3; + k_EGCMsgResponseInvalid = 4; + k_EGCMsgResponseNoMatch = 5; + k_EGCMsgResponseUnknownError = 6; + k_EGCMsgResponseNotLoggedOn = 7; + k_EGCMsgFailedToCreate = 8; +} + +enum EUnlockStyle { + k_UnlockStyle_Succeeded = 0; + k_UnlockStyle_Failed_PreReq = 1; + k_UnlockStyle_Failed_CantAfford = 2; + k_UnlockStyle_Failed_CantCommit = 3; + k_UnlockStyle_Failed_CantLockCache = 4; + k_UnlockStyle_Failed_CantAffordAttrib = 5; + k_UnlockStyle_Failed_CantAffordGem = 6; +} + +enum EItemPurgatoryResponse_Finalize { + k_ItemPurgatoryResponse_Finalize_Succeeded = 0; + k_ItemPurgatoryResponse_Finalize_Failed_Incomplete = 1; + k_ItemPurgatoryResponse_Finalize_Failed_ItemsNotInPurgatory = 2; + k_ItemPurgatoryResponse_Finalize_Failed_CouldNotFindItems = 3; + k_ItemPurgatoryResponse_Finalize_Failed_NoSOCache = 4; + k_ItemPurgatoryResponse_Finalize_BackpackFull = 5; +} + +enum EItemPurgatoryResponse_Refund { + k_ItemPurgatoryResponse_Refund_Succeeded = 0; + k_ItemPurgatoryResponse_Refund_Failed_ItemNotInPurgatory = 1; + k_ItemPurgatoryResponse_Refund_Failed_CouldNotFindItem = 2; + k_ItemPurgatoryResponse_Refund_Failed_NoSOCache = 3; + k_ItemPurgatoryResponse_Refund_Failed_NoDetail = 4; + k_ItemPurgatoryResponse_Refund_Failed_NexonWebAPI = 5; +} + +message CMsgApplyAutograph { + optional uint64 autograph_item_id = 1; + optional uint64 item_item_id = 2; +} + +message CMsgEconPlayerStrangeCountAdjustment { + message CStrangeCountAdjustment { + optional uint32 event_type = 1; + optional uint64 item_id = 2; + optional uint32 adjustment = 3; + } + + optional uint32 account_id = 1; + repeated .CMsgEconPlayerStrangeCountAdjustment.CStrangeCountAdjustment strange_count_adjustments = 2; +} + +message CMsgRequestItemPurgatory_FinalizePurchase { + repeated uint64 item_ids = 1; +} + +message CMsgRequestItemPurgatory_FinalizePurchaseResponse { + optional uint32 result = 1; +} + +message CMsgRequestItemPurgatory_RefundPurchase { + optional uint64 item_id = 1; +} + +message CMsgRequestItemPurgatory_RefundPurchaseResponse { + optional uint32 result = 1; +} + +message CMsgCraftingResponse { + repeated uint64 item_ids = 1; +} + +message CMsgGCRequestStoreSalesData { + optional uint32 version = 1; + optional uint32 currency = 2; +} + +message CMsgGCRequestStoreSalesDataResponse { + message Price { + optional uint32 item_def = 1; + optional uint32 price = 2; + } + + repeated .CMsgGCRequestStoreSalesDataResponse.Price sale_price = 1; + optional uint32 version = 2; + optional uint32 expiration_time = 3; +} + +message CMsgGCRequestStoreSalesDataUpToDateResponse { + optional uint32 version = 1; + optional uint32 expiration_time = 2; +} + +message CMsgGCToGCPingRequest { +} + +message CMsgGCToGCPingResponse { +} + +message CMsgGCToGCGetUserSessionServer { + optional uint32 account_id = 1; +} + +message CMsgGCToGCGetUserSessionServerResponse { + optional fixed64 server_steam_id = 1; +} + +message CMsgGCToGCGetUserServerMembers { + optional uint32 account_id = 1; + optional uint32 max_spectators = 2; +} + +message CMsgGCToGCGetUserServerMembersResponse { + repeated uint32 member_account_id = 1; +} + +message CMsgLookupMultipleAccountNames { + repeated uint32 accountids = 1 [packed = true]; +} + +message CMsgLookupMultipleAccountNamesResponse { + message Account { + optional uint32 accountid = 1; + optional string persona = 2; + } + + repeated .CMsgLookupMultipleAccountNamesResponse.Account accounts = 1; +} + +message CMsgGCToGCGrantSelfMadeItemToAccount { + optional uint32 item_def_index = 1; + optional uint32 accountid = 2; +} + +message CMsgGCToGCThankedByNewUser { + optional uint32 new_user_accountid = 1; + optional uint32 thanked_user_accountid = 2; +} + +message CMsgGCShuffleCrateContents { + optional uint64 crate_item_id = 1; + optional string user_code_string = 2; +} + +message CMsgGCQuestObjective_Progress { + optional uint64 quest_id = 1; + optional uint32 quest_attrib_index = 2; + optional uint32 delta = 3; + optional fixed64 owner_steamid = 4; +} + +message CMsgGCQuestObjective_PointsChange { + optional uint64 quest_id = 1; + optional fixed64 owner_steamid = 4; + optional bool update_base_points = 5 [default = false]; + optional uint32 points_0 = 6; + optional uint32 points_1 = 7; + optional uint32 points_2 = 8; +} + +message CMsgGCQuestComplete_Request { + optional uint64 quest_id = 1; +} + +message CMsgGCQuestCompleted { +} + +message CMsgGCQuestObjective_RequestLoanerItems { + optional uint64 quest_id = 1; +} + +message CMsgGCQuestObjective_RequestLoanerResponse { +} + +message CMsgCraftCollectionUpgrade { + repeated uint64 item_id = 1; +} + +message CMsgCraftHalloweenOffering { + optional uint64 tool_id = 1; + repeated uint64 item_id = 2; +} + +message CMsgCraftCommonStatClock { + optional uint64 tool_id = 1; + repeated uint64 item_id = 2; +} + +message CMsgGCQuestDiscard_Request { + optional uint64 quest_id = 1; +} diff --git a/Protobufs/tf2/enums_clientserver.proto b/Protobufs/tf2/enums_clientserver.proto new file mode 100644 index 0000000..5b12d10 --- /dev/null +++ b/Protobufs/tf2/enums_clientserver.proto @@ -0,0 +1,1547 @@ +option optimize_for = SPEED; +option cc_generic_services = false; + +enum EMsg { + option allow_alias = true; + k_EMsgInvalid = 0; + k_EMsgMulti = 1; + k_EMsgProtobufWrapped = 2; + k_EMsgBaseGeneral = 100; + k_EMsgGenericReply = 100; + k_EMsgDestJobFailed = 113; + k_EMsgAlert = 115; + k_EMsgSCIDRequest = 120; + k_EMsgSCIDResponse = 121; + k_EMsgJobHeartbeat = 123; + k_EMsgHubConnect = 124; + k_EMsgSubscribe = 126; + k_EMRouteMessage = 127; + k_EMsgWGRequest = 130; + k_EMsgWGResponse = 131; + k_EMsgKeepAlive = 132; + k_EMsgWebAPIJobRequest = 133; + k_EMsgWebAPIJobResponse = 134; + k_EMsgClientSessionStart = 135; + k_EMsgClientSessionEnd = 136; + k_EMsgClientSessionUpdate = 137; + k_EMsgStatsDeprecated = 138; + k_EMsgPing = 139; + k_EMsgPingResponse = 140; + k_EMsgStats = 141; + k_EMsgRequestFullStatsBlock = 142; + k_EMsgLoadDBOCacheItem = 143; + k_EMsgLoadDBOCacheItemResponse = 144; + k_EMsgInvalidateDBOCacheItems = 145; + k_EMsgServiceMethod = 146; + k_EMsgServiceMethodResponse = 147; + k_EMsgClientPackageVersions = 148; + k_EMsgTimestampRequest = 149; + k_EMsgTimestampResponse = 150; + k_EMsgServiceMethodCallFromClient = 151; + k_EMsgServiceMethodSendToClient = 152; + k_EMsgBaseShell = 200; + k_EMsgAssignSysID = 200; + k_EMsgExit = 201; + k_EMsgDirRequest = 202; + k_EMsgDirResponse = 203; + k_EMsgZipRequest = 204; + k_EMsgZipResponse = 205; + k_EMsgUpdateRecordResponse = 215; + k_EMsgUpdateCreditCardRequest = 221; + k_EMsgUpdateUserBanResponse = 225; + k_EMsgPrepareToExit = 226; + k_EMsgContentDescriptionUpdate = 227; + k_EMsgTestResetServer = 228; + k_EMsgUniverseChanged = 229; + k_EMsgShellConfigInfoUpdate = 230; + k_EMsgRequestWindowsEventLogEntries = 233; + k_EMsgProvideWindowsEventLogEntries = 234; + k_EMsgShellSearchLogs = 235; + k_EMsgShellSearchLogsResponse = 236; + k_EMsgShellCheckWindowsUpdates = 237; + k_EMsgShellCheckWindowsUpdatesResponse = 238; + k_EMsgTestFlushDelayedSQL = 240; + k_EMsgTestFlushDelayedSQLResponse = 241; + k_EMsgEnsureExecuteScheduledTask_TEST = 242; + k_EMsgEnsureExecuteScheduledTaskResponse_TEST = 243; + k_EMsgUpdateScheduledTaskEnableState_TEST = 244; + k_EMsgUpdateScheduledTaskEnableStateResponse_TEST = 245; + k_EMsgContentDescriptionDeltaUpdate = 246; + k_EMsgGMShellAndServerAddressUpdates = 247; + k_EMsgBaseGM = 300; + k_EMsgHeartbeat = 300; + k_EMsgShellFailed = 301; + k_EMsgExitShells = 307; + k_EMsgExitShell = 308; + k_EMsgGracefulExitShell = 309; + k_EMsgLicenseProcessingComplete = 316; + k_EMsgSetTestFlag = 317; + k_EMsgQueuedEmailsComplete = 318; + k_EMsgGMDRMSync = 320; + k_EMsgPhysicalBoxInventory = 321; + k_EMsgUpdateConfigFile = 322; + k_EMsgTestInitDB = 323; + k_EMsgGMWriteConfigToSQL = 324; + k_EMsgGMLoadActivationCodes = 325; + k_EMsgGMQueueForFBS = 326; + k_EMsgGMSchemaConversionResults = 327; + k_EMsgGMWriteShellFailureToSQL = 329; + k_EMsgGMWriteStatsToSOS = 330; + k_EMsgGMGetServiceMethodRouting = 331; + k_EMsgGMGetServiceMethodRoutingResponse = 332; + k_EMsgGMTestNextBuildSchemaConversion = 334; + k_EMsgGMTestNextBuildSchemaConversionResponse = 335; + k_EMsgExpectShellRestart = 336; + k_EMsgHotFixProgress = 337; + k_EMsgGMStatsForwardToAdminConnections = 338; + k_EMsgGMGetModifiedConVars = 339; + k_EMsgGMGetModifiedConVarsResponse = 340; + k_EMsgBaseAIS = 400; + k_EMsgAISRequestContentDescription = 402; + k_EMsgAISUpdateAppInfo = 403; + k_EMsgAISGetPackageChangeNumber = 405; + k_EMsgAISGetPackageChangeNumberResponse = 406; + k_EMsgAIGetAppGCFlags = 423; + k_EMsgAIGetAppGCFlagsResponse = 424; + k_EMsgAIGetAppList = 425; + k_EMsgAIGetAppListResponse = 426; + k_EMsgAISGetCouponDefinition = 429; + k_EMsgAISGetCouponDefinitionResponse = 430; + k_EMsgAISUpdateSubordinateContentDescription = 431; + k_EMsgAISUpdateSubordinateContentDescriptionResponse = 432; + k_EMsgAISTestEnableGC = 433; + k_EMsgBaseAM = 500; + k_EMsgAMUpdateUserBanRequest = 504; + k_EMsgAMAddLicense = 505; + k_EMsgAMSendSystemIMToUser = 508; + k_EMsgAMExtendLicense = 509; + k_EMsgAMAddMinutesToLicense = 510; + k_EMsgAMCancelLicense = 511; + k_EMsgAMInitPurchase = 512; + k_EMsgAMPurchaseResponse = 513; + k_EMsgAMGetFinalPrice = 514; + k_EMsgAMGetFinalPriceResponse = 515; + k_EMsgAMGetLegacyGameKey = 516; + k_EMsgAMGetLegacyGameKeyResponse = 517; + k_EMsgAMFindHungTransactions = 518; + k_EMsgAMSetAccountTrustedRequest = 519; + k_EMsgAMCancelPurchase = 522; + k_EMsgAMNewChallenge = 523; + k_EMsgAMLoadOEMTickets = 524; + k_EMsgAMFixPendingPurchase = 525; + k_EMsgAMFixPendingPurchaseResponse = 526; + k_EMsgAMIsUserBanned = 527; + k_EMsgAMRegisterKey = 528; + k_EMsgAMLoadActivationCodes = 529; + k_EMsgAMLoadActivationCodesResponse = 530; + k_EMsgAMLookupKeyResponse = 531; + k_EMsgAMLookupKey = 532; + k_EMsgAMChatCleanup = 533; + k_EMsgAMClanCleanup = 534; + k_EMsgAMFixPendingRefund = 535; + k_EMsgAMReverseChargeback = 536; + k_EMsgAMReverseChargebackResponse = 537; + k_EMsgAMClanCleanupList = 538; + k_EMsgAMGetLicenses = 539; + k_EMsgAMGetLicensesResponse = 540; + k_EMsgAMSendCartRepurchase = 541; + k_EMsgAMSendCartRepurchaseResponse = 542; + k_EMsgAllowUserToPlayQuery = 550; + k_EMsgAllowUserToPlayResponse = 551; + k_EMsgAMVerfiyUser = 552; + k_EMsgAMClientNotPlaying = 553; + k_EMsgAMClientRequestFriendship = 554; + k_EMsgAMRelayPublishStatus = 555; + k_EMsgAMInitPurchaseResponse = 560; + k_EMsgAMRevokePurchaseResponse = 561; + k_EMsgAMRefreshGuestPasses = 563; + k_EMsgAMGrantGuestPasses = 566; + k_EMsgAMClanDataUpdated = 567; + k_EMsgAMReloadAccount = 568; + k_EMsgAMClientChatMsgRelay = 569; + k_EMsgAMChatMulti = 570; + k_EMsgAMClientChatInviteRelay = 571; + k_EMsgAMChatInvite = 572; + k_EMsgAMClientJoinChatRelay = 573; + k_EMsgAMClientChatMemberInfoRelay = 574; + k_EMsgAMPublishChatMemberInfo = 575; + k_EMsgAMClientAcceptFriendInvite = 576; + k_EMsgAMChatEnter = 577; + k_EMsgAMClientPublishRemovalFromSource = 578; + k_EMsgAMChatActionResult = 579; + k_EMsgAMFindAccounts = 580; + k_EMsgAMFindAccountsResponse = 581; + k_EMsgAMIsAccountNameInUse = 582; + k_EMsgAMIsAccountNameInUseResponse = 583; + k_EMsgAMSetAccountFlags = 584; + k_EMsgAMCreateClan = 586; + k_EMsgAMCreateClanResponse = 587; + k_EMsgAMGetClanDetails = 588; + k_EMsgAMGetClanDetailsResponse = 589; + k_EMsgAMSetPersonaName = 590; + k_EMsgAMSetAvatar = 591; + k_EMsgAMAuthenticateUser = 592; + k_EMsgAMAuthenticateUserResponse = 593; + k_EMsgAMP2PIntroducerMessage = 596; + k_EMsgClientChatAction = 597; + k_EMsgAMClientChatActionRelay = 598; + k_EMsgBaseVS = 600; + k_EMsgReqChallenge = 600; + k_EMsgVACResponse = 601; + k_EMsgReqChallengeTest = 602; + k_EMsgVSMarkCheat = 604; + k_EMsgVSAddCheat = 605; + k_EMsgVSPurgeCodeModDB = 606; + k_EMsgVSGetChallengeResults = 607; + k_EMsgVSChallengeResultText = 608; + k_EMsgVSReportLingerer = 609; + k_EMsgVSRequestManagedChallenge = 610; + k_EMsgVSLoadDBFinished = 611; + k_EMsgBaseDRMS = 625; + k_EMsgDRMBuildBlobRequest = 628; + k_EMsgDRMBuildBlobResponse = 629; + k_EMsgDRMResolveGuidRequest = 630; + k_EMsgDRMResolveGuidResponse = 631; + k_EMsgDRMVariabilityReport = 633; + k_EMsgDRMVariabilityReportResponse = 634; + k_EMsgDRMStabilityReport = 635; + k_EMsgDRMStabilityReportResponse = 636; + k_EMsgDRMDetailsReportRequest = 637; + k_EMsgDRMDetailsReportResponse = 638; + k_EMsgDRMProcessFile = 639; + k_EMsgDRMAdminUpdate = 640; + k_EMsgDRMAdminUpdateResponse = 641; + k_EMsgDRMSync = 642; + k_EMsgDRMSyncResponse = 643; + k_EMsgDRMProcessFileResponse = 644; + k_EMsgDRMEmptyGuidCache = 645; + k_EMsgDRMEmptyGuidCacheResponse = 646; + k_EMsgBaseCS = 650; + k_EMsgBaseClient = 700; + k_EMsgClientLogOn_Deprecated = 701; + k_EMsgClientAnonLogOn_Deprecated = 702; + k_EMsgClientHeartBeat = 703; + k_EMsgClientVACResponse = 704; + k_EMsgClientGamesPlayed_obsolete = 705; + k_EMsgClientLogOff = 706; + k_EMsgClientNoUDPConnectivity = 707; + k_EMsgClientConnectionStats = 710; + k_EMsgClientPingResponse = 712; + k_EMsgClientRemoveFriend = 714; + k_EMsgClientGamesPlayedNoDataBlob = 715; + k_EMsgClientChangeStatus = 716; + k_EMsgClientVacStatusResponse = 717; + k_EMsgClientFriendMsg = 718; + k_EMsgClientGameConnect_obsolete = 719; + k_EMsgClientGamesPlayed2_obsolete = 720; + k_EMsgClientGameEnded_obsolete = 721; + k_EMsgClientSystemIM = 726; + k_EMsgClientSystemIMAck = 727; + k_EMsgClientGetLicenses = 728; + k_EMsgClientGetLegacyGameKey = 730; + k_EMsgClientContentServerLogOn_Deprecated = 731; + k_EMsgClientAckVACBan2 = 732; + k_EMsgClientGetPurchaseReceipts = 736; + k_EMsgClientGamesPlayed3_obsolete = 738; + k_EMsgClientAckGuestPass = 740; + k_EMsgClientRedeemGuestPass = 741; + k_EMsgClientGamesPlayed = 742; + k_EMsgClientRegisterKey = 743; + k_EMsgClientInviteUserToClan = 744; + k_EMsgClientAcknowledgeClanInvite = 745; + k_EMsgClientPurchaseWithMachineID = 746; + k_EMsgClientAppUsageEvent = 747; + k_EMsgClientLogOnResponse = 751; + k_EMsgClientSetHeartbeatRate = 755; + k_EMsgClientNotLoggedOnDeprecated = 756; + k_EMsgClientLoggedOff = 757; + k_EMsgGSApprove = 758; + k_EMsgGSDeny = 759; + k_EMsgGSKick = 760; + k_EMsgClientPurchaseResponse = 763; + k_EMsgClientPing = 764; + k_EMsgClientNOP = 765; + k_EMsgClientPersonaState = 766; + k_EMsgClientFriendsList = 767; + k_EMsgClientAccountInfo = 768; + k_EMsgClientNewsUpdate = 771; + k_EMsgClientGameConnectDeny = 773; + k_EMsgGSStatusReply = 774; + k_EMsgClientGameConnectTokens = 779; + k_EMsgClientLicenseList = 780; + k_EMsgClientVACBanStatus = 782; + k_EMsgClientCMList = 783; + k_EMsgClientEncryptPct = 784; + k_EMsgClientGetLegacyGameKeyResponse = 785; + k_EMsgClientAddFriend = 791; + k_EMsgClientAddFriendResponse = 792; + k_EMsgClientAckGuestPassResponse = 796; + k_EMsgClientRedeemGuestPassResponse = 797; + k_EMsgClientUpdateGuestPassesList = 798; + k_EMsgClientChatMsg = 799; + k_EMsgClientChatInvite = 800; + k_EMsgClientJoinChat = 801; + k_EMsgClientChatMemberInfo = 802; + k_EMsgClientLogOnWithCredentials_Deprecated = 803; + k_EMsgClientPasswordChangeResponse = 805; + k_EMsgClientChatEnter = 807; + k_EMsgClientFriendRemovedFromSource = 808; + k_EMsgClientCreateChat = 809; + k_EMsgClientCreateChatResponse = 810; + k_EMsgClientP2PIntroducerMessage = 813; + k_EMsgClientChatActionResult = 814; + k_EMsgClientRequestFriendData = 815; + k_EMsgClientGetUserStats = 818; + k_EMsgClientGetUserStatsResponse = 819; + k_EMsgClientStoreUserStats = 820; + k_EMsgClientStoreUserStatsResponse = 821; + k_EMsgClientClanState = 822; + k_EMsgClientServiceModule = 830; + k_EMsgClientServiceCall = 831; + k_EMsgClientServiceCallResponse = 832; + k_EMsgClientNatTraversalStatEvent = 839; + k_EMsgClientSteamUsageEvent = 842; + k_EMsgClientCheckPassword = 845; + k_EMsgClientResetPassword = 846; + k_EMsgClientCheckPasswordResponse = 848; + k_EMsgClientResetPasswordResponse = 849; + k_EMsgClientSessionToken = 850; + k_EMsgClientDRMProblemReport = 851; + k_EMsgClientSetIgnoreFriend = 855; + k_EMsgClientSetIgnoreFriendResponse = 856; + k_EMsgClientGetAppOwnershipTicket = 857; + k_EMsgClientGetAppOwnershipTicketResponse = 858; + k_EMsgClientGetLobbyListResponse = 860; + k_EMsgClientServerList = 880; + k_EMsgClientDRMBlobRequest = 896; + k_EMsgClientDRMBlobResponse = 897; + k_EMsgBaseGameServer = 900; + k_EMsgGSDisconnectNotice = 901; + k_EMsgGSStatus = 903; + k_EMsgGSUserPlaying = 905; + k_EMsgGSStatus2 = 906; + k_EMsgGSStatusUpdate_Unused = 907; + k_EMsgGSServerType = 908; + k_EMsgGSPlayerList = 909; + k_EMsgGSGetUserAchievementStatus = 910; + k_EMsgGSGetUserAchievementStatusResponse = 911; + k_EMsgGSGetPlayStats = 918; + k_EMsgGSGetPlayStatsResponse = 919; + k_EMsgGSGetUserGroupStatus = 920; + k_EMsgAMGetUserGroupStatus = 921; + k_EMsgAMGetUserGroupStatusResponse = 922; + k_EMsgGSGetUserGroupStatusResponse = 923; + k_EMsgGSGetReputation = 936; + k_EMsgGSGetReputationResponse = 937; + k_EMsgGSAssociateWithClan = 938; + k_EMsgGSAssociateWithClanResponse = 939; + k_EMsgGSComputeNewPlayerCompatibility = 940; + k_EMsgGSComputeNewPlayerCompatibilityResponse = 941; + k_EMsgBaseAdmin = 1000; + k_EMsgAdminCmd = 1000; + k_EMsgAdminCmdResponse = 1004; + k_EMsgAdminLogListenRequest = 1005; + k_EMsgAdminLogEvent = 1006; + k_EMsgUniverseData = 1010; + k_EMsgAdminSpew = 1019; + k_EMsgAdminConsoleTitle = 1020; + k_EMsgAdminGCSpew = 1023; + k_EMsgAdminGCCommand = 1024; + k_EMsgAdminGCGetCommandList = 1025; + k_EMsgAdminGCGetCommandListResponse = 1026; + k_EMsgFBSConnectionData = 1027; + k_EMsgAdminMsgSpew = 1028; + k_EMsgBaseFBS = 1100; + k_EMsgFBSReqVersion = 1100; + k_EMsgFBSVersionInfo = 1101; + k_EMsgFBSForceRefresh = 1102; + k_EMsgFBSForceBounce = 1103; + k_EMsgFBSDeployPackage = 1104; + k_EMsgFBSDeployResponse = 1105; + k_EMsgFBSUpdateBootstrapper = 1106; + k_EMsgFBSSetState = 1107; + k_EMsgFBSApplyOSUpdates = 1108; + k_EMsgFBSRunCMDScript = 1109; + k_EMsgFBSRebootBox = 1110; + k_EMsgFBSSetBigBrotherMode = 1111; + k_EMsgFBSMinidumpServer = 1112; + k_EMsgFBSDeployHotFixPackage = 1114; + k_EMsgFBSDeployHotFixResponse = 1115; + k_EMsgFBSDownloadHotFix = 1116; + k_EMsgFBSDownloadHotFixResponse = 1117; + k_EMsgFBSUpdateTargetConfigFile = 1118; + k_EMsgFBSApplyAccountCred = 1119; + k_EMsgFBSApplyAccountCredResponse = 1120; + k_EMsgFBSSetShellCount = 1121; + k_EMsgFBSTerminateShell = 1122; + k_EMsgFBSQueryGMForRequest = 1123; + k_EMsgFBSQueryGMResponse = 1124; + k_EMsgFBSTerminateZombies = 1125; + k_EMsgFBSInfoFromBootstrapper = 1126; + k_EMsgFBSRebootBoxResponse = 1127; + k_EMsgFBSBootstrapperPackageRequest = 1128; + k_EMsgFBSBootstrapperPackageResponse = 1129; + k_EMsgFBSBootstrapperGetPackageChunk = 1130; + k_EMsgFBSBootstrapperGetPackageChunkResponse = 1131; + k_EMsgFBSBootstrapperPackageTransferProgress = 1132; + k_EMsgFBSRestartBootstrapper = 1133; + k_EMsgFBSPauseFrozenDumps = 1134; + k_EMsgBaseFileXfer = 1200; + k_EMsgFileXferRequest = 1200; + k_EMsgFileXferResponse = 1201; + k_EMsgFileXferData = 1202; + k_EMsgFileXferEnd = 1203; + k_EMsgFileXferDataAck = 1204; + k_EMsgBaseChannelAuth = 1300; + k_EMsgChannelAuthChallenge = 1300; + k_EMsgChannelAuthResponse = 1301; + k_EMsgChannelAuthResult = 1302; + k_EMsgChannelEncryptRequest = 1303; + k_EMsgChannelEncryptResponse = 1304; + k_EMsgChannelEncryptResult = 1305; + k_EMsgBaseBS = 1400; + k_EMsgBSPurchaseStart = 1401; + k_EMsgBSPurchaseResponse = 1402; + k_EMsgBSAuthenticateCCTrans = 1403; + k_EMsgBSAuthenticateCCTransResponse = 1404; + k_EMsgBSSettleComplete = 1406; + k_EMsgBSInitPayPalTxn = 1408; + k_EMsgBSInitPayPalTxnResponse = 1409; + k_EMsgBSGetPayPalUserInfo = 1410; + k_EMsgBSGetPayPalUserInfoResponse = 1411; + k_EMsgBSPaymentInstrBan = 1417; + k_EMsgBSPaymentInstrBanResponse = 1418; + k_EMsgBSInitGCBankXferTxn = 1421; + k_EMsgBSInitGCBankXferTxnResponse = 1422; + k_EMsgBSCommitGCTxn = 1425; + k_EMsgBSQueryTransactionStatus = 1426; + k_EMsgBSQueryTransactionStatusResponse = 1427; + k_EMsgBSQueryTxnExtendedInfo = 1433; + k_EMsgBSQueryTxnExtendedInfoResponse = 1434; + k_EMsgBSUpdateConversionRates = 1435; + k_EMsgBSPurchaseRunFraudChecks = 1437; + k_EMsgBSPurchaseRunFraudChecksResponse = 1438; + k_EMsgBSQueryBankInformation = 1440; + k_EMsgBSQueryBankInformationResponse = 1441; + k_EMsgBSValidateXsollaSignature = 1445; + k_EMsgBSValidateXsollaSignatureResponse = 1446; + k_EMsgBSQiwiWalletInvoice = 1448; + k_EMsgBSQiwiWalletInvoiceResponse = 1449; + k_EMsgBSUpdateInventoryFromProPack = 1450; + k_EMsgBSUpdateInventoryFromProPackResponse = 1451; + k_EMsgBSSendShippingRequest = 1452; + k_EMsgBSSendShippingRequestResponse = 1453; + k_EMsgBSGetProPackOrderStatus = 1454; + k_EMsgBSGetProPackOrderStatusResponse = 1455; + k_EMsgBSCheckJobRunning = 1456; + k_EMsgBSCheckJobRunningResponse = 1457; + k_EMsgBSResetPackagePurchaseRateLimit = 1458; + k_EMsgBSResetPackagePurchaseRateLimitResponse = 1459; + k_EMsgBSUpdatePaymentData = 1460; + k_EMsgBSUpdatePaymentDataResponse = 1461; + k_EMsgBSGetBillingAddress = 1462; + k_EMsgBSGetBillingAddressResponse = 1463; + k_EMsgBSGetCreditCardInfo = 1464; + k_EMsgBSGetCreditCardInfoResponse = 1465; + k_EMsgBSRemoveExpiredPaymentData = 1468; + k_EMsgBSRemoveExpiredPaymentDataResponse = 1469; + k_EMsgBSConvertToCurrentKeys = 1470; + k_EMsgBSConvertToCurrentKeysResponse = 1471; + k_EMsgBSInitPurchase = 1472; + k_EMsgBSInitPurchaseResponse = 1473; + k_EMsgBSCompletePurchase = 1474; + k_EMsgBSCompletePurchaseResponse = 1475; + k_EMsgBSPruneCardUsageStats = 1476; + k_EMsgBSPruneCardUsageStatsResponse = 1477; + k_EMsgBSStoreBankInformation = 1478; + k_EMsgBSStoreBankInformationResponse = 1479; + k_EMsgBSVerifyPOSAKey = 1480; + k_EMsgBSVerifyPOSAKeyResponse = 1481; + k_EMsgBSReverseRedeemPOSAKey = 1482; + k_EMsgBSReverseRedeemPOSAKeyResponse = 1483; + k_EMsgBSQueryFindCreditCard = 1484; + k_EMsgBSQueryFindCreditCardResponse = 1485; + k_EMsgBSStatusInquiryPOSAKey = 1486; + k_EMsgBSStatusInquiryPOSAKeyResponse = 1487; + k_EMsgBSBoaCompraConfirmProductDelivery = 1494; + k_EMsgBSBoaCompraConfirmProductDeliveryResponse = 1495; + k_EMsgBSGenerateBoaCompraMD5 = 1496; + k_EMsgBSGenerateBoaCompraMD5Response = 1497; + k_EMsgBSCommitWPTxn = 1498; + k_EMsgBSCommitAdyenTxn = 1499; + k_EMsgBaseATS = 1500; + k_EMsgATSStartStressTest = 1501; + k_EMsgATSStopStressTest = 1502; + k_EMsgATSRunFailServerTest = 1503; + k_EMsgATSUFSPerfTestTask = 1504; + k_EMsgATSUFSPerfTestResponse = 1505; + k_EMsgATSCycleTCM = 1506; + k_EMsgATSInitDRMSStressTest = 1507; + k_EMsgATSCallTest = 1508; + k_EMsgATSCallTestReply = 1509; + k_EMsgATSStartExternalStress = 1510; + k_EMsgATSExternalStressJobStart = 1511; + k_EMsgATSExternalStressJobQueued = 1512; + k_EMsgATSExternalStressJobRunning = 1513; + k_EMsgATSExternalStressJobStopped = 1514; + k_EMsgATSExternalStressJobStopAll = 1515; + k_EMsgATSExternalStressActionResult = 1516; + k_EMsgATSStarted = 1517; + k_EMsgATSCSPerfTestTask = 1518; + k_EMsgATSCSPerfTestResponse = 1519; + k_EMsgBaseDP = 1600; + k_EMsgDPSetPublishingState = 1601; + k_EMsgDPUniquePlayersStat = 1603; + k_EMsgDPStreamingUniquePlayersStat = 1604; + k_EMsgDPBlockingStats = 1607; + k_EMsgDPNatTraversalStats = 1608; + k_EMsgDPCloudStats = 1612; + k_EMsgDPGetPlayerCount = 1615; + k_EMsgDPGetPlayerCountResponse = 1616; + k_EMsgDPGameServersPlayersStats = 1617; + k_EMsgClientDPCheckSpecialSurvey = 1620; + k_EMsgClientDPCheckSpecialSurveyResponse = 1621; + k_EMsgClientDPSendSpecialSurveyResponse = 1622; + k_EMsgClientDPSendSpecialSurveyResponseReply = 1623; + k_EMsgDPStoreSaleStatistics = 1624; + k_EMsgDPPartnerMicroTxns = 1628; + k_EMsgDPPartnerMicroTxnsResponse = 1629; + k_EMsgDPVRUniquePlayersStat = 1631; + k_EMsgBaseCM = 1700; + k_EMsgCMSetAllowState = 1701; + k_EMsgCMSpewAllowState = 1702; + k_EMsgCMSessionRejected = 1703; + k_EMsgCMSetSecrets = 1704; + k_EMsgCMGetSecrets = 1705; + k_EMsgBaseGC = 2200; + k_EMsgGCCmdRevive = 2203; + k_EMsgGCCmdDown = 2206; + k_EMsgGCCmdDeploy = 2207; + k_EMsgGCCmdDeployResponse = 2208; + k_EMsgGCCmdSwitch = 2209; + k_EMsgAMRefreshSessions = 2210; + k_EMsgGCAchievementAwarded = 2212; + k_EMsgGCSystemMessage = 2213; + k_EMsgGCCmdStatus = 2216; + k_EMsgGCRegisterWebInterfaces_Deprecated = 2217; + k_EMsgGCGetAccountDetails_DEPRECATED = 2218; + k_EMsgGCInterAppMessage = 2219; + k_EMsgGCGetEmailTemplate = 2220; + k_EMsgGCGetEmailTemplateResponse = 2221; + k_EMsgGCHRelay = 2222; + k_EMsgGCHRelayToClient = 2223; + k_EMsgGCHUpdateSession = 2224; + k_EMsgGCHRequestUpdateSession = 2225; + k_EMsgGCHRequestStatus = 2226; + k_EMsgGCHRequestStatusResponse = 2227; + k_EMsgGCHAccountVacStatusChange = 2228; + k_EMsgGCHSpawnGC = 2229; + k_EMsgGCHSpawnGCResponse = 2230; + k_EMsgGCHKillGC = 2231; + k_EMsgGCHKillGCResponse = 2232; + k_EMsgGCHAccountTradeBanStatusChange = 2233; + k_EMsgGCHAccountLockStatusChange = 2234; + k_EMsgGCHVacVerificationChange = 2235; + k_EMsgGCHAccountPhoneNumberChange = 2236; + k_EMsgGCHAccountTwoFactorChange = 2237; + k_EMsgGCHInviteUserToLobby = 2238; + k_EMsgGCHUpdateMultipleSessions = 2239; + k_EMsgGCHMarkAppSessionsAuthoritative = 2240; + k_EMsgGCHRecurringSubscriptionStatusChange = 2241; + k_EMsgGCHAppCheersReceived = 2242; + k_EMsgGCHAppCheersGetAllowedTypes = 2243; + k_EMsgGCHAppCheersGetAllowedTypesResponse = 2244; + k_EMsgGCHRoutingRulesFromGCHtoGM = 2245; + k_EMsgGCHRoutingRulesToGCHfromGM = 2246; + k_EMsgUpdateCMMessageRateRules = 2247; + k_EMsgBaseP2P = 2500; + k_EMsgP2PIntroducerMessage = 2502; + k_EMsgBaseSM = 2900; + k_EMsgSMExpensiveReport = 2902; + k_EMsgSMHourlyReport = 2903; + k_EMsgSMPartitionRenames = 2905; + k_EMsgSMMonitorSpace = 2906; + k_EMsgSMTestNextBuildSchemaConversion = 2907; + k_EMsgSMTestNextBuildSchemaConversionResponse = 2908; + k_EMsgBaseTest = 3000; + k_EMsgFailServer = 3000; + k_EMsgJobHeartbeatTest = 3001; + k_EMsgJobHeartbeatTestResponse = 3002; + k_EMsgBaseFTSRange = 3100; + k_EMsgBaseCCSRange = 3150; + k_EMsgCCSDeleteAllCommentsByAuthor = 3161; + k_EMsgCCSDeleteAllCommentsByAuthorResponse = 3162; + k_EMsgBaseLBSRange = 3200; + k_EMsgLBSSetScore = 3201; + k_EMsgLBSSetScoreResponse = 3202; + k_EMsgLBSFindOrCreateLB = 3203; + k_EMsgLBSFindOrCreateLBResponse = 3204; + k_EMsgLBSGetLBEntries = 3205; + k_EMsgLBSGetLBEntriesResponse = 3206; + k_EMsgLBSGetLBList = 3207; + k_EMsgLBSGetLBListResponse = 3208; + k_EMsgLBSSetLBDetails = 3209; + k_EMsgLBSDeleteLB = 3210; + k_EMsgLBSDeleteLBEntry = 3211; + k_EMsgLBSResetLB = 3212; + k_EMsgLBSResetLBResponse = 3213; + k_EMsgLBSDeleteLBResponse = 3214; + k_EMsgBaseOGS = 3400; + k_EMsgOGSBeginSession = 3401; + k_EMsgOGSBeginSessionResponse = 3402; + k_EMsgOGSEndSession = 3403; + k_EMsgOGSEndSessionResponse = 3404; + k_EMsgOGSWriteAppSessionRow = 3406; + k_EMsgBaseBRP = 3600; + k_EMsgBRPPostTransactionTax = 3629; + k_EMsgBRPPostTransactionTaxResponse = 3630; + k_EMsgBaseAMRange2 = 4000; + k_EMsgAMCreateChat = 4001; + k_EMsgAMCreateChatResponse = 4002; + k_EMsgAMSetProfileURL = 4005; + k_EMsgAMGetAccountEmailAddress = 4006; + k_EMsgAMGetAccountEmailAddressResponse = 4007; + k_EMsgAMRequestClanData = 4008; + k_EMsgAMRouteToClients = 4009; + k_EMsgAMLeaveClan = 4010; + k_EMsgAMClanPermissions = 4011; + k_EMsgAMClanPermissionsResponse = 4012; + k_EMsgAMCreateClanEventDummyForRateLimiting = 4013; + k_EMsgAMUpdateClanEventDummyForRateLimiting = 4015; + k_EMsgAMSetClanPermissionSettings = 4021; + k_EMsgAMSetClanPermissionSettingsResponse = 4022; + k_EMsgAMGetClanPermissionSettings = 4023; + k_EMsgAMGetClanPermissionSettingsResponse = 4024; + k_EMsgAMPublishChatRoomInfo = 4025; + k_EMsgClientChatRoomInfo = 4026; + k_EMsgAMGetClanHistory = 4039; + k_EMsgAMGetClanHistoryResponse = 4040; + k_EMsgAMGetClanPermissionBits = 4041; + k_EMsgAMGetClanPermissionBitsResponse = 4042; + k_EMsgAMSetClanPermissionBits = 4043; + k_EMsgAMSetClanPermissionBitsResponse = 4044; + k_EMsgAMSessionInfoRequest = 4045; + k_EMsgAMSessionInfoResponse = 4046; + k_EMsgAMValidateWGToken = 4047; + k_EMsgAMGetClanRank = 4050; + k_EMsgAMGetClanRankResponse = 4051; + k_EMsgAMSetClanRank = 4052; + k_EMsgAMSetClanRankResponse = 4053; + k_EMsgAMGetClanPOTW = 4054; + k_EMsgAMGetClanPOTWResponse = 4055; + k_EMsgAMSetClanPOTW = 4056; + k_EMsgAMSetClanPOTWResponse = 4057; + k_EMsgAMDumpUser = 4059; + k_EMsgAMKickUserFromClan = 4060; + k_EMsgAMAddFounderToClan = 4061; + k_EMsgAMValidateWGTokenResponse = 4062; + k_EMsgAMSetAccountDetails = 4064; + k_EMsgAMGetChatBanList = 4065; + k_EMsgAMGetChatBanListResponse = 4066; + k_EMsgAMUnBanFromChat = 4067; + k_EMsgAMSetClanDetails = 4068; + k_EMsgUGSGetUserGameStats = 4073; + k_EMsgUGSGetUserGameStatsResponse = 4074; + k_EMsgAMCheckClanMembership = 4075; + k_EMsgAMGetClanMembers = 4076; + k_EMsgAMGetClanMembersResponse = 4077; + k_EMsgAMNotifyChatOfClanChange = 4079; + k_EMsgAMResubmitPurchase = 4080; + k_EMsgAMAddFriend = 4081; + k_EMsgAMAddFriendResponse = 4082; + k_EMsgAMRemoveFriend = 4083; + k_EMsgAMDumpClan = 4084; + k_EMsgAMChangeClanOwner = 4085; + k_EMsgAMCancelEasyCollect = 4086; + k_EMsgAMCancelEasyCollectResponse = 4087; + k_EMsgAMClansInCommon = 4090; + k_EMsgAMClansInCommonResponse = 4091; + k_EMsgAMIsValidAccountID = 4092; + k_EMsgAMWipeFriendsList = 4095; + k_EMsgAMSetIgnored = 4096; + k_EMsgAMClansInCommonCountResponse = 4097; + k_EMsgAMFriendsList = 4098; + k_EMsgAMFriendsListResponse = 4099; + k_EMsgAMFriendsInCommon = 4100; + k_EMsgAMFriendsInCommonResponse = 4101; + k_EMsgAMFriendsInCommonCountResponse = 4102; + k_EMsgAMClansInCommonCount = 4103; + k_EMsgAMChallengeVerdict = 4104; + k_EMsgAMChallengeNotification = 4105; + k_EMsgAMFindGSByIP = 4106; + k_EMsgAMFoundGSByIP = 4107; + k_EMsgAMGiftRevoked = 4108; + k_EMsgAMUserClanList = 4110; + k_EMsgAMUserClanListResponse = 4111; + k_EMsgAMGetAccountDetails2 = 4112; + k_EMsgAMGetAccountDetailsResponse2 = 4113; + k_EMsgAMSetCommunityProfileSettings = 4114; + k_EMsgAMSetCommunityProfileSettingsResponse = 4115; + k_EMsgAMGetCommunityPrivacyState = 4116; + k_EMsgAMGetCommunityPrivacyStateResponse = 4117; + k_EMsgAMCheckClanInviteRateLimiting = 4118; + k_EMsgUGSGetUserAchievementStatus = 4119; + k_EMsgAMGetIgnored = 4120; + k_EMsgAMGetIgnoredResponse = 4121; + k_EMsgAMSetIgnoredResponse = 4122; + k_EMsgAMSetFriendRelationshipNone = 4123; + k_EMsgAMGetFriendRelationship = 4124; + k_EMsgAMGetFriendRelationshipResponse = 4125; + k_EMsgAMServiceModulesCache = 4126; + k_EMsgAMServiceModulesCall = 4127; + k_EMsgAMServiceModulesCallResponse = 4128; + k_EMsgCommunityAddFriendNews = 4140; + k_EMsgAMFindClanUser = 4143; + k_EMsgAMFindClanUserResponse = 4144; + k_EMsgAMBanFromChat = 4145; + k_EMsgAMGetUserNewsSubscriptions = 4147; + k_EMsgAMGetUserNewsSubscriptionsResponse = 4148; + k_EMsgAMSetUserNewsSubscriptions = 4149; + k_EMsgAMSendQueuedEmails = 4152; + k_EMsgAMSetLicenseFlags = 4153; + k_EMsgCommunityDeleteUserNews = 4155; + k_EMsgAMGetAccountStatus = 4158; + k_EMsgAMGetAccountStatusResponse = 4159; + k_EMsgAMEditBanReason = 4160; + k_EMsgAMCheckClanMembershipResponse = 4161; + k_EMsgAMProbeClanMembershipList = 4162; + k_EMsgAMProbeClanMembershipListResponse = 4163; + k_EMsgUGSGetUserAchievementStatusResponse = 4164; + k_EMsgAMGetFriendsLobbies = 4165; + k_EMsgAMGetFriendsLobbiesResponse = 4166; + k_EMsgAMGetUserFriendNewsResponse = 4172; + k_EMsgCommunityGetUserFriendNews = 4173; + k_EMsgAMGetUserClansNewsResponse = 4174; + k_EMsgAMGetUserClansNews = 4175; + k_EMsgAMGetPreviousCBAccount = 4184; + k_EMsgAMGetPreviousCBAccountResponse = 4185; + k_EMsgAMGetUserLicenseHistory = 4190; + k_EMsgAMGetUserLicenseHistoryResponse = 4191; + k_EMsgAMSupportChangePassword = 4194; + k_EMsgAMSupportChangeEmail = 4195; + k_EMsgAMResetUserVerificationGSByIP = 4197; + k_EMsgAMUpdateGSPlayStats = 4198; + k_EMsgAMSupportEnableOrDisable = 4199; + k_EMsgAMGetPurchaseStatus = 4206; + k_EMsgAMSupportIsAccountEnabled = 4209; + k_EMsgAMSupportIsAccountEnabledResponse = 4210; + k_EMsgUGSGetUserStats = 4211; + k_EMsgAMGSSearch = 4213; + k_EMsgChatServerRouteFriendMsg = 4219; + k_EMsgAMTicketAuthRequestOrResponse = 4220; + k_EMsgAMAddFreeLicense = 4224; + k_EMsgAMValidateEmailLink = 4231; + k_EMsgAMValidateEmailLinkResponse = 4232; + k_EMsgUGSStoreUserStats = 4236; + k_EMsgAMDeleteStoredCard = 4241; + k_EMsgAMRevokeLegacyGameKeys = 4242; + k_EMsgAMGetWalletDetails = 4244; + k_EMsgAMGetWalletDetailsResponse = 4245; + k_EMsgAMDeleteStoredPaymentInfo = 4246; + k_EMsgAMGetStoredPaymentSummary = 4247; + k_EMsgAMGetStoredPaymentSummaryResponse = 4248; + k_EMsgAMGetWalletConversionRate = 4249; + k_EMsgAMGetWalletConversionRateResponse = 4250; + k_EMsgAMConvertWallet = 4251; + k_EMsgAMConvertWalletResponse = 4252; + k_EMsgAMSetPreApproval = 4255; + k_EMsgAMSetPreApprovalResponse = 4256; + k_EMsgAMCreateRefund = 4258; + k_EMsgAMCreateChargeback = 4260; + k_EMsgAMCreateDispute = 4262; + k_EMsgAMClearDispute = 4264; + k_EMsgAMCreateFinancialAdjustment = 4265; + k_EMsgAMPlayerNicknameList = 4266; + k_EMsgAMPlayerNicknameListResponse = 4267; + k_EMsgAMGetUserCurrentGameInfo = 4269; + k_EMsgAMGetUserCurrentGameInfoResponse = 4270; + k_EMsgAMGetGSPlayerList = 4271; + k_EMsgAMGetGSPlayerListResponse = 4272; + k_EMsgAMGetSteamIDForMicroTxn = 4278; + k_EMsgAMGetSteamIDForMicroTxnResponse = 4279; + k_EMsgAMSetPartnerMember = 4280; + k_EMsgAMRemovePublisherUser = 4281; + k_EMsgAMGetUserLicenseList = 4282; + k_EMsgAMGetUserLicenseListResponse = 4283; + k_EMsgAMReloadGameGroupPolicy = 4284; + k_EMsgAMAddFreeLicenseResponse = 4285; + k_EMsgAMVACStatusUpdate = 4286; + k_EMsgAMGetAccountDetails = 4287; + k_EMsgAMGetAccountDetailsResponse = 4288; + k_EMsgAMGetPlayerLinkDetails = 4289; + k_EMsgAMGetPlayerLinkDetailsResponse = 4290; + k_EMsgAMGetAccountFlagsForWGSpoofing = 4294; + k_EMsgAMGetAccountFlagsForWGSpoofingResponse = 4295; + k_EMsgAMGetClanOfficers = 4298; + k_EMsgAMGetClanOfficersResponse = 4299; + k_EMsgAMNameChange = 4300; + k_EMsgAMGetNameHistory = 4301; + k_EMsgAMGetNameHistoryResponse = 4302; + k_EMsgAMUpdateProviderStatus = 4305; + k_EMsgAMSupportRemoveAccountSecurity = 4307; + k_EMsgAMIsAccountInCaptchaGracePeriod = 4308; + k_EMsgAMIsAccountInCaptchaGracePeriodResponse = 4309; + k_EMsgAMAccountPS3Unlink = 4310; + k_EMsgAMAccountPS3UnlinkResponse = 4311; + k_EMsgUGSStoreUserStatsResponse = 4312; + k_EMsgAMGetAccountPSNInfo = 4313; + k_EMsgAMGetAccountPSNInfoResponse = 4314; + k_EMsgAMAuthenticatedPlayerList = 4315; + k_EMsgAMGetUserGifts = 4316; + k_EMsgAMGetUserGiftsResponse = 4317; + k_EMsgAMTransferLockedGifts = 4320; + k_EMsgAMTransferLockedGiftsResponse = 4321; + k_EMsgAMPlayerHostedOnGameServer = 4322; + k_EMsgAMGetAccountBanInfo = 4323; + k_EMsgAMGetAccountBanInfoResponse = 4324; + k_EMsgAMRecordBanEnforcement = 4325; + k_EMsgAMRollbackGiftTransfer = 4326; + k_EMsgAMRollbackGiftTransferResponse = 4327; + k_EMsgAMHandlePendingTransaction = 4328; + k_EMsgAMRequestClanDetails = 4329; + k_EMsgAMDeleteStoredPaypalAgreement = 4330; + k_EMsgAMGameServerUpdate = 4331; + k_EMsgAMGameServerRemove = 4332; + k_EMsgAMGetPaypalAgreements = 4333; + k_EMsgAMGetPaypalAgreementsResponse = 4334; + k_EMsgAMGameServerPlayerCompatibilityCheck = 4335; + k_EMsgAMGameServerPlayerCompatibilityCheckResponse = 4336; + k_EMsgAMRenewLicense = 4337; + k_EMsgAMGetAccountCommunityBanInfo = 4338; + k_EMsgAMGetAccountCommunityBanInfoResponse = 4339; + k_EMsgAMGameServerAccountChangePassword = 4340; + k_EMsgAMGameServerAccountDeleteAccount = 4341; + k_EMsgAMRenewAgreement = 4342; + k_EMsgAMXsollaPayment = 4344; + k_EMsgAMXsollaPaymentResponse = 4345; + k_EMsgAMAcctAllowedToPurchase = 4346; + k_EMsgAMAcctAllowedToPurchaseResponse = 4347; + k_EMsgAMSwapKioskDeposit = 4348; + k_EMsgAMSwapKioskDepositResponse = 4349; + k_EMsgAMSetUserGiftUnowned = 4350; + k_EMsgAMSetUserGiftUnownedResponse = 4351; + k_EMsgAMClaimUnownedUserGift = 4352; + k_EMsgAMClaimUnownedUserGiftResponse = 4353; + k_EMsgAMSetClanName = 4354; + k_EMsgAMSetClanNameResponse = 4355; + k_EMsgAMGrantCoupon = 4356; + k_EMsgAMGrantCouponResponse = 4357; + k_EMsgAMIsPackageRestrictedInUserCountry = 4358; + k_EMsgAMIsPackageRestrictedInUserCountryResponse = 4359; + k_EMsgAMHandlePendingTransactionResponse = 4360; + k_EMsgAMGrantGuestPasses2 = 4361; + k_EMsgAMGrantGuestPasses2Response = 4362; + k_EMsgAMGetPlayerBanDetails = 4365; + k_EMsgAMGetPlayerBanDetailsResponse = 4366; + k_EMsgAMFinalizePurchase = 4367; + k_EMsgAMFinalizePurchaseResponse = 4368; + k_EMsgAMPersonaChangeResponse = 4372; + k_EMsgAMGetClanDetailsForForumCreation = 4373; + k_EMsgAMGetClanDetailsForForumCreationResponse = 4374; + k_EMsgAMGetPendingNotificationCount = 4375; + k_EMsgAMGetPendingNotificationCountResponse = 4376; + k_EMsgAMPasswordHashUpgrade = 4377; + k_EMsgAMBoaCompraPayment = 4380; + k_EMsgAMBoaCompraPaymentResponse = 4381; + k_EMsgAMCompleteExternalPurchase = 4383; + k_EMsgAMCompleteExternalPurchaseResponse = 4384; + k_EMsgAMResolveNegativeWalletCredits = 4385; + k_EMsgAMResolveNegativeWalletCreditsResponse = 4386; + k_EMsgAMPlayerGetClanBasicDetails = 4389; + k_EMsgAMPlayerGetClanBasicDetailsResponse = 4390; + k_EMsgAMMOLPayment = 4391; + k_EMsgAMMOLPaymentResponse = 4392; + k_EMsgGetUserIPCountry = 4393; + k_EMsgGetUserIPCountryResponse = 4394; + k_EMsgNotificationOfSuspiciousActivity = 4395; + k_EMsgAMDegicaPayment = 4396; + k_EMsgAMDegicaPaymentResponse = 4397; + k_EMsgAMEClubPayment = 4398; + k_EMsgAMEClubPaymentResponse = 4399; + k_EMsgAMPayPalPaymentsHubPayment = 4400; + k_EMsgAMPayPalPaymentsHubPaymentResponse = 4401; + k_EMsgAMTwoFactorRecoverAuthenticatorRequest = 4402; + k_EMsgAMTwoFactorRecoverAuthenticatorResponse = 4403; + k_EMsgAMSmart2PayPayment = 4404; + k_EMsgAMSmart2PayPaymentResponse = 4405; + k_EMsgAMValidatePasswordResetCodeAndSendSmsRequest = 4406; + k_EMsgAMValidatePasswordResetCodeAndSendSmsResponse = 4407; + k_EMsgAMGetAccountResetDetailsRequest = 4408; + k_EMsgAMGetAccountResetDetailsResponse = 4409; + k_EMsgAMBitPayPayment = 4410; + k_EMsgAMBitPayPaymentResponse = 4411; + k_EMsgAMSendAccountInfoUpdate = 4412; + k_EMsgAMSendScheduledGift = 4413; + k_EMsgAMNodwinPayment = 4414; + k_EMsgAMNodwinPaymentResponse = 4415; + k_EMsgAMResolveWalletRevoke = 4416; + k_EMsgAMResolveWalletReverseRevoke = 4417; + k_EMsgAMFundedPayment = 4418; + k_EMsgAMFundedPaymentResponse = 4419; + k_EMsgAMRequestPersonaUpdateForChatServer = 4420; + k_EMsgAMPerfectWorldPayment = 4421; + k_EMsgAMPerfectWorldPaymentResponse = 4422; + k_EMsgAMECommPayPayment = 4423; + k_EMsgAMECommPayPaymentResponse = 4424; + k_EMsgAMSetRemoteClientID = 4425; + k_EMsgBasePSRange = 5000; + k_EMsgPSCreateShoppingCart = 5001; + k_EMsgPSCreateShoppingCartResponse = 5002; + k_EMsgPSIsValidShoppingCart = 5003; + k_EMsgPSIsValidShoppingCartResponse = 5004; + k_EMsgPSRemoveLineItemFromShoppingCart = 5007; + k_EMsgPSRemoveLineItemFromShoppingCartResponse = 5008; + k_EMsgPSGetShoppingCartContents = 5009; + k_EMsgPSGetShoppingCartContentsResponse = 5010; + k_EMsgPSAddWalletCreditToShoppingCart = 5011; + k_EMsgPSAddWalletCreditToShoppingCartResponse = 5012; + k_EMsgBaseUFSRange = 5200; + k_EMsgClientUFSUploadFileRequest = 5202; + k_EMsgClientUFSUploadFileResponse = 5203; + k_EMsgClientUFSUploadFileChunk = 5204; + k_EMsgClientUFSUploadFileFinished = 5205; + k_EMsgClientUFSGetFileListForApp = 5206; + k_EMsgClientUFSGetFileListForAppResponse = 5207; + k_EMsgClientUFSDownloadRequest = 5210; + k_EMsgClientUFSDownloadResponse = 5211; + k_EMsgClientUFSDownloadChunk = 5212; + k_EMsgClientUFSLoginRequest = 5213; + k_EMsgClientUFSLoginResponse = 5214; + k_EMsgUFSReloadPartitionInfo = 5215; + k_EMsgClientUFSTransferHeartbeat = 5216; + k_EMsgUFSSynchronizeFile = 5217; + k_EMsgUFSSynchronizeFileResponse = 5218; + k_EMsgClientUFSDeleteFileRequest = 5219; + k_EMsgClientUFSDeleteFileResponse = 5220; + k_EMsgClientUFSGetUGCDetails = 5226; + k_EMsgClientUFSGetUGCDetailsResponse = 5227; + k_EMsgUFSUpdateFileFlags = 5228; + k_EMsgUFSUpdateFileFlagsResponse = 5229; + k_EMsgClientUFSGetSingleFileInfo = 5230; + k_EMsgClientUFSGetSingleFileInfoResponse = 5231; + k_EMsgClientUFSShareFile = 5232; + k_EMsgClientUFSShareFileResponse = 5233; + k_EMsgUFSReloadAccount = 5234; + k_EMsgUFSReloadAccountResponse = 5235; + k_EMsgUFSUpdateRecordBatched = 5236; + k_EMsgUFSUpdateRecordBatchedResponse = 5237; + k_EMsgUFSMigrateFile = 5238; + k_EMsgUFSMigrateFileResponse = 5239; + k_EMsgUFSGetUGCURLs = 5240; + k_EMsgUFSGetUGCURLsResponse = 5241; + k_EMsgUFSHttpUploadFileFinishRequest = 5242; + k_EMsgUFSHttpUploadFileFinishResponse = 5243; + k_EMsgUFSDownloadStartRequest = 5244; + k_EMsgUFSDownloadStartResponse = 5245; + k_EMsgUFSDownloadChunkRequest = 5246; + k_EMsgUFSDownloadChunkResponse = 5247; + k_EMsgUFSDownloadFinishRequest = 5248; + k_EMsgUFSDownloadFinishResponse = 5249; + k_EMsgUFSFlushURLCache = 5250; + k_EMsgClientUFSUploadCommit = 5251; + k_EMsgClientUFSUploadCommitResponse = 5252; + k_EMsgUFSMigrateFileAppID = 5253; + k_EMsgUFSMigrateFileAppIDResponse = 5254; + k_EMsgBaseClient2 = 5400; + k_EMsgClientRequestForgottenPasswordEmail = 5401; + k_EMsgClientRequestForgottenPasswordEmailResponse = 5402; + k_EMsgClientCreateAccountResponse = 5403; + k_EMsgClientResetForgottenPassword = 5404; + k_EMsgClientResetForgottenPasswordResponse = 5405; + k_EMsgClientInformOfResetForgottenPassword = 5407; + k_EMsgClientInformOfResetForgottenPasswordResponse = 5408; + k_EMsgClientAnonUserLogOn_Deprecated = 5409; + k_EMsgClientGamesPlayedWithDataBlob = 5410; + k_EMsgClientUpdateUserGameInfo = 5411; + k_EMsgClientFileToDownload = 5412; + k_EMsgClientFileToDownloadResponse = 5413; + k_EMsgClientLBSSetScore = 5414; + k_EMsgClientLBSSetScoreResponse = 5415; + k_EMsgClientLBSFindOrCreateLB = 5416; + k_EMsgClientLBSFindOrCreateLBResponse = 5417; + k_EMsgClientLBSGetLBEntries = 5418; + k_EMsgClientLBSGetLBEntriesResponse = 5419; + k_EMsgClientChatDeclined = 5426; + k_EMsgClientFriendMsgIncoming = 5427; + k_EMsgClientAuthList_Deprecated = 5428; + k_EMsgClientTicketAuthComplete = 5429; + k_EMsgClientIsLimitedAccount = 5430; + k_EMsgClientRequestAuthList = 5431; + k_EMsgClientAuthList = 5432; + k_EMsgClientStat = 5433; + k_EMsgClientP2PConnectionInfo = 5434; + k_EMsgClientP2PConnectionFailInfo = 5435; + k_EMsgClientGetDepotDecryptionKey = 5438; + k_EMsgClientGetDepotDecryptionKeyResponse = 5439; + k_EMsgClientEnableTestLicense = 5443; + k_EMsgClientEnableTestLicenseResponse = 5444; + k_EMsgClientDisableTestLicense = 5445; + k_EMsgClientDisableTestLicenseResponse = 5446; + k_EMsgClientRequestValidationMail = 5448; + k_EMsgClientRequestValidationMailResponse = 5449; + k_EMsgClientCheckAppBetaPassword = 5450; + k_EMsgClientCheckAppBetaPasswordResponse = 5451; + k_EMsgClientToGC = 5452; + k_EMsgClientFromGC = 5453; + k_EMsgClientEmailAddrInfo = 5456; + k_EMsgClientPasswordChange3 = 5457; + k_EMsgClientEmailChange3 = 5458; + k_EMsgClientPersonalQAChange3 = 5459; + k_EMsgClientResetForgottenPassword3 = 5460; + k_EMsgClientRequestForgottenPasswordEmail3 = 5461; + k_EMsgClientNewLoginKey = 5463; + k_EMsgClientNewLoginKeyAccepted = 5464; + k_EMsgClientLogOnWithHash_Deprecated = 5465; + k_EMsgClientStoreUserStats2 = 5466; + k_EMsgClientStatsUpdated = 5467; + k_EMsgClientActivateOEMLicense = 5468; + k_EMsgClientRegisterOEMMachine = 5469; + k_EMsgClientRegisterOEMMachineResponse = 5470; + k_EMsgClientRequestedClientStats = 5480; + k_EMsgClientStat2Int32 = 5481; + k_EMsgClientStat2 = 5482; + k_EMsgClientVerifyPassword = 5483; + k_EMsgClientVerifyPasswordResponse = 5484; + k_EMsgClientDRMDownloadRequest = 5485; + k_EMsgClientDRMDownloadResponse = 5486; + k_EMsgClientDRMFinalResult = 5487; + k_EMsgClientGetFriendsWhoPlayGame = 5488; + k_EMsgClientGetFriendsWhoPlayGameResponse = 5489; + k_EMsgClientOGSBeginSession = 5490; + k_EMsgClientOGSBeginSessionResponse = 5491; + k_EMsgClientOGSEndSession = 5492; + k_EMsgClientOGSEndSessionResponse = 5493; + k_EMsgClientOGSWriteRow = 5494; + k_EMsgClientGetPeerContentInfo = 5495; + k_EMsgClientGetPeerContentInfoResponse = 5496; + k_EMsgClientStartPeerContentServer = 5497; + k_EMsgClientStartPeerContentServerResponse = 5498; + k_EMsgClientServerUnavailable = 5500; + k_EMsgClientServersAvailable = 5501; + k_EMsgClientRegisterAuthTicketWithCM = 5502; + k_EMsgClientGCMsgFailed = 5503; + k_EMsgClientMicroTxnAuthRequest = 5504; + k_EMsgClientMicroTxnAuthorize = 5505; + k_EMsgClientMicroTxnAuthorizeResponse = 5506; + k_EMsgClientGetMicroTxnInfo = 5508; + k_EMsgClientGetMicroTxnInfoResponse = 5509; + k_EMsgClientDeregisterWithServer = 5511; + k_EMsgClientSubscribeToPersonaFeed = 5512; + k_EMsgClientLogon = 5514; + k_EMsgClientGetClientDetails = 5515; + k_EMsgClientGetClientDetailsResponse = 5516; + k_EMsgClientReportOverlayDetourFailure = 5517; + k_EMsgClientGetClientAppList = 5518; + k_EMsgClientGetClientAppListResponse = 5519; + k_EMsgClientInstallClientApp = 5520; + k_EMsgClientInstallClientAppResponse = 5521; + k_EMsgClientUninstallClientApp = 5522; + k_EMsgClientUninstallClientAppResponse = 5523; + k_EMsgClientSetClientAppUpdateState = 5524; + k_EMsgClientSetClientAppUpdateStateResponse = 5525; + k_EMsgClientRequestEncryptedAppTicket = 5526; + k_EMsgClientRequestEncryptedAppTicketResponse = 5527; + k_EMsgClientWalletInfoUpdate = 5528; + k_EMsgClientLBSSetUGC = 5529; + k_EMsgClientLBSSetUGCResponse = 5530; + k_EMsgClientAMGetClanOfficers = 5531; + k_EMsgClientAMGetClanOfficersResponse = 5532; + k_EMsgClientFriendProfileInfo = 5535; + k_EMsgClientFriendProfileInfoResponse = 5536; + k_EMsgClientUpdateMachineAuth = 5537; + k_EMsgClientUpdateMachineAuthResponse = 5538; + k_EMsgClientReadMachineAuth = 5539; + k_EMsgClientReadMachineAuthResponse = 5540; + k_EMsgClientRequestMachineAuth = 5541; + k_EMsgClientRequestMachineAuthResponse = 5542; + k_EMsgClientScreenshotsChanged = 5543; + k_EMsgClientGetCDNAuthToken = 5546; + k_EMsgClientGetCDNAuthTokenResponse = 5547; + k_EMsgClientDownloadRateStatistics = 5548; + k_EMsgClientRequestAccountData = 5549; + k_EMsgClientRequestAccountDataResponse = 5550; + k_EMsgClientResetForgottenPassword4 = 5551; + k_EMsgClientHideFriend = 5552; + k_EMsgClientFriendsGroupsList = 5553; + k_EMsgClientGetClanActivityCounts = 5554; + k_EMsgClientGetClanActivityCountsResponse = 5555; + k_EMsgClientOGSReportString = 5556; + k_EMsgClientOGSReportBug = 5557; + k_EMsgClientSentLogs = 5558; + k_EMsgClientLogonGameServer = 5559; + k_EMsgAMClientCreateFriendsGroup = 5560; + k_EMsgAMClientCreateFriendsGroupResponse = 5561; + k_EMsgAMClientDeleteFriendsGroup = 5562; + k_EMsgAMClientDeleteFriendsGroupResponse = 5563; + k_EMsgAMClientManageFriendsGroup = 5564; + k_EMsgAMClientManageFriendsGroupResponse = 5565; + k_EMsgAMClientAddFriendToGroup = 5566; + k_EMsgAMClientAddFriendToGroupResponse = 5567; + k_EMsgAMClientRemoveFriendFromGroup = 5568; + k_EMsgAMClientRemoveFriendFromGroupResponse = 5569; + k_EMsgClientAMGetPersonaNameHistory = 5570; + k_EMsgClientAMGetPersonaNameHistoryResponse = 5571; + k_EMsgClientRequestFreeLicense = 5572; + k_EMsgClientRequestFreeLicenseResponse = 5573; + k_EMsgClientDRMDownloadRequestWithCrashData = 5574; + k_EMsgClientAuthListAck = 5575; + k_EMsgClientItemAnnouncements = 5576; + k_EMsgClientRequestItemAnnouncements = 5577; + k_EMsgClientFriendMsgEchoToSender = 5578; + k_EMsgClientCommentNotifications = 5582; + k_EMsgClientRequestCommentNotifications = 5583; + k_EMsgClientPersonaChangeResponse = 5584; + k_EMsgClientRequestWebAPIAuthenticateUserNonce = 5585; + k_EMsgClientRequestWebAPIAuthenticateUserNonceResponse = 5586; + k_EMsgClientPlayerNicknameList = 5587; + k_EMsgAMClientSetPlayerNickname = 5588; + k_EMsgAMClientSetPlayerNicknameResponse = 5589; + k_EMsgClientGetNumberOfCurrentPlayersDP = 5592; + k_EMsgClientGetNumberOfCurrentPlayersDPResponse = 5593; + k_EMsgClientServiceMethodLegacy = 5594; + k_EMsgClientServiceMethodLegacyResponse = 5595; + k_EMsgClientFriendUserStatusPublished = 5596; + k_EMsgClientCurrentUIMode = 5597; + k_EMsgClientVanityURLChangedNotification = 5598; + k_EMsgClientUserNotifications = 5599; + k_EMsgBaseDFS = 5600; + k_EMsgDFSGetFile = 5601; + k_EMsgDFSInstallLocalFile = 5602; + k_EMsgDFSConnection = 5603; + k_EMsgDFSConnectionReply = 5604; + k_EMsgClientDFSAuthenticateRequest = 5605; + k_EMsgClientDFSAuthenticateResponse = 5606; + k_EMsgClientDFSEndSession = 5607; + k_EMsgDFSPurgeFile = 5608; + k_EMsgDFSRouteFile = 5609; + k_EMsgDFSGetFileFromServer = 5610; + k_EMsgDFSAcceptedResponse = 5611; + k_EMsgDFSRequestPingback = 5612; + k_EMsgDFSRecvTransmitFile = 5613; + k_EMsgDFSSendTransmitFile = 5614; + k_EMsgDFSRequestPingback2 = 5615; + k_EMsgDFSResponsePingback2 = 5616; + k_EMsgClientDFSDownloadStatus = 5617; + k_EMsgDFSStartTransfer = 5618; + k_EMsgDFSTransferComplete = 5619; + k_EMsgDFSRouteFileResponse = 5620; + k_EMsgClientNetworkingCertRequest = 5621; + k_EMsgClientNetworkingCertRequestResponse = 5622; + k_EMsgClientChallengeRequest = 5623; + k_EMsgClientChallengeResponse = 5624; + k_EMsgBadgeCraftedNotification = 5625; + k_EMsgClientNetworkingMobileCertRequest = 5626; + k_EMsgClientNetworkingMobileCertRequestResponse = 5627; + k_EMsgBaseMDS = 5800; + k_EMsgMDSGetDepotDecryptionKey = 5812; + k_EMsgMDSGetDepotDecryptionKeyResponse = 5813; + k_EMsgMDSContentServerConfigRequest = 5827; + k_EMsgMDSContentServerConfig = 5828; + k_EMsgMDSGetDepotManifest = 5829; + k_EMsgMDSGetDepotManifestResponse = 5830; + k_EMsgMDSGetDepotManifestChunk = 5831; + k_EMsgMDSGetDepotChunk = 5832; + k_EMsgMDSGetDepotChunkResponse = 5833; + k_EMsgMDSGetDepotChunkChunk = 5834; + k_EMsgMDSToCSFlushChunk = 5844; + k_EMsgMDSMigrateChunk = 5847; + k_EMsgMDSMigrateChunkResponse = 5848; + k_EMsgMDSToCSFlushManifest = 5849; + k_EMsgCSBase = 6200; + k_EMsgCSPing = 6201; + k_EMsgCSPingResponse = 6202; + k_EMsgGMSBase = 6400; + k_EMsgGMSGameServerReplicate = 6401; + k_EMsgClientGMSServerQuery = 6403; + k_EMsgGMSClientServerQueryResponse = 6404; + k_EMsgAMGMSGameServerUpdate = 6405; + k_EMsgAMGMSGameServerRemove = 6406; + k_EMsgGameServerOutOfDate = 6407; + k_EMsgDeviceAuthorizationBase = 6500; + k_EMsgClientAuthorizeLocalDeviceRequest = 6501; + k_EMsgClientAuthorizeLocalDeviceResponse = 6502; + k_EMsgClientDeauthorizeDeviceRequest = 6503; + k_EMsgClientDeauthorizeDevice = 6504; + k_EMsgClientUseLocalDeviceAuthorizations = 6505; + k_EMsgClientGetAuthorizedDevices = 6506; + k_EMsgClientGetAuthorizedDevicesResponse = 6507; + k_EMsgAMNotifySessionDeviceAuthorized = 6508; + k_EMsgClientAuthorizeLocalDeviceNotification = 6509; + k_EMsgMMSBase = 6600; + k_EMsgClientMMSCreateLobby = 6601; + k_EMsgClientMMSCreateLobbyResponse = 6602; + k_EMsgClientMMSJoinLobby = 6603; + k_EMsgClientMMSJoinLobbyResponse = 6604; + k_EMsgClientMMSLeaveLobby = 6605; + k_EMsgClientMMSLeaveLobbyResponse = 6606; + k_EMsgClientMMSGetLobbyList = 6607; + k_EMsgClientMMSGetLobbyListResponse = 6608; + k_EMsgClientMMSSetLobbyData = 6609; + k_EMsgClientMMSSetLobbyDataResponse = 6610; + k_EMsgClientMMSGetLobbyData = 6611; + k_EMsgClientMMSLobbyData = 6612; + k_EMsgClientMMSSendLobbyChatMsg = 6613; + k_EMsgClientMMSLobbyChatMsg = 6614; + k_EMsgClientMMSSetLobbyOwner = 6615; + k_EMsgClientMMSSetLobbyOwnerResponse = 6616; + k_EMsgClientMMSSetLobbyGameServer = 6617; + k_EMsgClientMMSLobbyGameServerSet = 6618; + k_EMsgClientMMSUserJoinedLobby = 6619; + k_EMsgClientMMSUserLeftLobby = 6620; + k_EMsgClientMMSInviteToLobby = 6621; + k_EMsgClientMMSFlushFrenemyListCache = 6622; + k_EMsgClientMMSFlushFrenemyListCacheResponse = 6623; + k_EMsgClientMMSSetLobbyLinked = 6624; + k_EMsgClientMMSSetRatelimitPolicyOnClient = 6625; + k_EMsgClientMMSGetLobbyStatus = 6626; + k_EMsgClientMMSGetLobbyStatusResponse = 6627; + k_EMsgMMSGetLobbyList = 6628; + k_EMsgMMSGetLobbyListResponse = 6629; + k_EMsgNonStdMsgBase = 6800; + k_EMsgNonStdMsgMemcached = 6801; + k_EMsgNonStdMsgHTTPServer = 6802; + k_EMsgNonStdMsgHTTPClient = 6803; + k_EMsgNonStdMsgWGResponse = 6804; + k_EMsgNonStdMsgPHPSimulator = 6805; + k_EMsgNonStdMsgChase = 6806; + k_EMsgNonStdMsgDFSTransfer = 6807; + k_EMsgNonStdMsgTests = 6808; + k_EMsgNonStdMsgUMQpipeAAPL = 6809; + k_EMSgNonStdMsgSyslog = 6810; + k_EMsgNonStdMsgLogsink = 6811; + k_EMsgNonStdMsgSteam2Emulator = 6812; + k_EMsgNonStdMsgRTMPServer = 6813; + k_EMsgNonStdMsgWebSocket = 6814; + k_EMsgNonStdMsgRedis = 6815; + k_EMsgUDSBase = 7000; + k_EMsgClientUDSP2PSessionStarted = 7001; + k_EMsgClientUDSP2PSessionEnded = 7002; + k_EMsgUDSRenderUserAuth = 7003; + k_EMsgUDSRenderUserAuthResponse = 7004; + k_EMsgClientInviteToGame = 7005; + k_EMsgUDSHasSession = 7006; + k_EMsgUDSHasSessionResponse = 7007; + k_EMsgMPASBase = 7100; + k_EMsgMPASVacBanReset = 7101; + k_EMsgKGSBase = 7200; + k_EMsgUCMBase = 7300; + k_EMsgClientUCMAddScreenshot = 7301; + k_EMsgClientUCMAddScreenshotResponse = 7302; + k_EMsgUCMResetCommunityContent = 7307; + k_EMsgUCMResetCommunityContentResponse = 7308; + k_EMsgClientUCMDeleteScreenshot = 7309; + k_EMsgClientUCMDeleteScreenshotResponse = 7310; + k_EMsgClientUCMPublishFile = 7311; + k_EMsgClientUCMPublishFileResponse = 7312; + k_EMsgClientUCMDeletePublishedFile = 7315; + k_EMsgClientUCMDeletePublishedFileResponse = 7316; + k_EMsgClientUCMUpdatePublishedFile = 7325; + k_EMsgClientUCMUpdatePublishedFileResponse = 7326; + k_EMsgUCMUpdatePublishedFile = 7327; + k_EMsgUCMUpdatePublishedFileResponse = 7328; + k_EMsgUCMUpdatePublishedFileStat = 7331; + k_EMsgUCMReloadPublishedFile = 7337; + k_EMsgUCMReloadUserFileListCaches = 7338; + k_EMsgUCMPublishedFileReported = 7339; + k_EMsgUCMPublishedFilePreviewAdd = 7341; + k_EMsgUCMPublishedFilePreviewAddResponse = 7342; + k_EMsgUCMPublishedFilePreviewRemove = 7343; + k_EMsgUCMPublishedFilePreviewRemoveResponse = 7344; + k_EMsgUCMPublishedFileSubscribed = 7349; + k_EMsgUCMPublishedFileUnsubscribed = 7350; + k_EMsgUCMPublishFile = 7351; + k_EMsgUCMPublishFileResponse = 7352; + k_EMsgUCMPublishedFileChildAdd = 7353; + k_EMsgUCMPublishedFileChildAddResponse = 7354; + k_EMsgUCMPublishedFileChildRemove = 7355; + k_EMsgUCMPublishedFileChildRemoveResponse = 7356; + k_EMsgUCMPublishedFileParentChanged = 7359; + k_EMsgClientUCMSetUserPublishedFileAction = 7364; + k_EMsgClientUCMSetUserPublishedFileActionResponse = 7365; + k_EMsgClientUCMEnumeratePublishedFilesByUserAction = 7366; + k_EMsgClientUCMEnumeratePublishedFilesByUserActionResponse = 7367; + k_EMsgUCMGetUserSubscribedFiles = 7369; + k_EMsgUCMGetUserSubscribedFilesResponse = 7370; + k_EMsgUCMFixStatsPublishedFile = 7371; + k_EMsgClientUCMEnumerateUserSubscribedFilesWithUpdates = 7378; + k_EMsgClientUCMEnumerateUserSubscribedFilesWithUpdatesResponse = 7379; + k_EMsgUCMPublishedFileContentUpdated = 7380; + k_EMsgClientUCMPublishedFileUpdated = 7381; + k_EMsgFSBase = 7500; + k_EMsgClientRichPresenceUpload = 7501; + k_EMsgClientRichPresenceRequest = 7502; + k_EMsgClientRichPresenceInfo = 7503; + k_EMsgFSRichPresenceRequest = 7504; + k_EMsgFSRichPresenceResponse = 7505; + k_EMsgFSComputeFrenematrix = 7506; + k_EMsgFSComputeFrenematrixResponse = 7507; + k_EMsgFSPlayStatusNotification = 7508; + k_EMsgFSAddOrRemoveFollower = 7510; + k_EMsgFSAddOrRemoveFollowerResponse = 7511; + k_EMsgFSUpdateFollowingList = 7512; + k_EMsgFSCommentNotification = 7513; + k_EMsgFSCommentNotificationViewed = 7514; + k_EMsgClientFSGetFollowerCount = 7515; + k_EMsgClientFSGetFollowerCountResponse = 7516; + k_EMsgClientFSGetIsFollowing = 7517; + k_EMsgClientFSGetIsFollowingResponse = 7518; + k_EMsgClientFSEnumerateFollowingList = 7519; + k_EMsgClientFSEnumerateFollowingListResponse = 7520; + k_EMsgFSGetPendingNotificationCount = 7521; + k_EMsgFSGetPendingNotificationCountResponse = 7522; + k_EMsgClientChatOfflineMessageNotification = 7523; + k_EMsgClientChatRequestOfflineMessageCount = 7524; + k_EMsgClientChatGetFriendMessageHistory = 7525; + k_EMsgClientChatGetFriendMessageHistoryResponse = 7526; + k_EMsgClientChatGetFriendMessageHistoryForOfflineMessages = 7527; + k_EMsgClientFSGetFriendsSteamLevels = 7528; + k_EMsgClientFSGetFriendsSteamLevelsResponse = 7529; + k_EMsgAMRequestFriendData = 7530; + k_EMsgDRMRange2 = 7600; + k_EMsgCEGVersionSetEnableDisableRequest = 7600; + k_EMsgCEGVersionSetEnableDisableResponse = 7601; + k_EMsgCEGPropStatusDRMSRequest = 7602; + k_EMsgCEGPropStatusDRMSResponse = 7603; + k_EMsgCEGWhackFailureReportRequest = 7604; + k_EMsgCEGWhackFailureReportResponse = 7605; + k_EMsgDRMSFetchVersionSet = 7606; + k_EMsgDRMSFetchVersionSetResponse = 7607; + k_EMsgEconBase = 7700; + k_EMsgEconTrading_InitiateTradeRequest = 7701; + k_EMsgEconTrading_InitiateTradeProposed = 7702; + k_EMsgEconTrading_InitiateTradeResponse = 7703; + k_EMsgEconTrading_InitiateTradeResult = 7704; + k_EMsgEconTrading_StartSession = 7705; + k_EMsgEconTrading_CancelTradeRequest = 7706; + k_EMsgEconFlushInventoryCache = 7707; + k_EMsgEconFlushInventoryCacheResponse = 7708; + k_EMsgEconCDKeyProcessTransaction = 7711; + k_EMsgEconCDKeyProcessTransactionResponse = 7712; + k_EMsgEconGetErrorLogs = 7713; + k_EMsgEconGetErrorLogsResponse = 7714; + k_EMsgRMRange = 7800; + k_EMsgRMTestVerisignOTP = 7800; + k_EMsgRMTestVerisignOTPResponse = 7801; + k_EMsgRMDeleteMemcachedKeys = 7803; + k_EMsgRMRemoteInvoke = 7804; + k_EMsgBadLoginIPList = 7805; + k_EMsgRMMsgTraceAddTrigger = 7806; + k_EMsgRMMsgTraceRemoveTrigger = 7807; + k_EMsgRMMsgTraceEvent = 7808; + k_EMsgUGSBase = 7900; + k_EMsgUGSUpdateGlobalStats = 7900; + k_EMsgClientUGSGetGlobalStats = 7901; + k_EMsgClientUGSGetGlobalStatsResponse = 7902; + k_EMsgStoreBase = 8000; + k_EMsgUMQBase = 8100; + k_EMsgUMQLogonRequest = 8100; + k_EMsgUMQLogonResponse = 8101; + k_EMsgUMQLogoffRequest = 8102; + k_EMsgUMQLogoffResponse = 8103; + k_EMsgUMQSendChatMessage = 8104; + k_EMsgUMQIncomingChatMessage = 8105; + k_EMsgUMQPoll = 8106; + k_EMsgUMQPollResults = 8107; + k_EMsgUMQ2AM_ClientMsgBatch = 8108; + k_EMsgWorkshopBase = 8200; + k_EMsgWebAPIBase = 8300; + k_EMsgWebAPIValidateOAuth2Token = 8300; + k_EMsgWebAPIValidateOAuth2TokenResponse = 8301; + k_EMsgWebAPIRegisterGCInterfaces = 8303; + k_EMsgWebAPIInvalidateOAuthClientCache = 8304; + k_EMsgWebAPIInvalidateOAuthTokenCache = 8305; + k_EMsgWebAPISetSecrets = 8306; + k_EMsgBackpackBase = 8400; + k_EMsgBackpackAddToCurrency = 8401; + k_EMsgBackpackAddToCurrencyResponse = 8402; + k_EMsgCREBase = 8500; + k_EMsgCREItemVoteSummary = 8503; + k_EMsgCREItemVoteSummaryResponse = 8504; + k_EMsgCREUpdateUserPublishedItemVote = 8507; + k_EMsgCREUpdateUserPublishedItemVoteResponse = 8508; + k_EMsgCREGetUserPublishedItemVoteDetails = 8509; + k_EMsgCREGetUserPublishedItemVoteDetailsResponse = 8510; + k_EMsgSecretsBase = 8600; + k_EMsgSecretsRequestCredentialPair = 8600; + k_EMsgSecretsCredentialPairResponse = 8601; + k_EMsgBoxMonitorBase = 8700; + k_EMsgBoxMonitorReportRequest = 8700; + k_EMsgBoxMonitorReportResponse = 8701; + k_EMsgLogsinkBase = 8800; + k_EMsgLogsinkWriteReport = 8800; + k_EMsgPICSBase = 8900; + k_EMsgClientPICSChangesSinceRequest = 8901; + k_EMsgClientPICSChangesSinceResponse = 8902; + k_EMsgClientPICSProductInfoRequest = 8903; + k_EMsgClientPICSProductInfoResponse = 8904; + k_EMsgClientPICSAccessTokenRequest = 8905; + k_EMsgClientPICSAccessTokenResponse = 8906; + k_EMsgWorkerProcess = 9000; + k_EMsgWorkerProcessPingRequest = 9000; + k_EMsgWorkerProcessPingResponse = 9001; + k_EMsgWorkerProcessShutdown = 9002; + k_EMsgDRMWorkerProcess = 9100; + k_EMsgDRMWorkerProcessDRMAndSign = 9100; + k_EMsgDRMWorkerProcessDRMAndSignResponse = 9101; + k_EMsgDRMWorkerProcessSteamworksInfoRequest = 9102; + k_EMsgDRMWorkerProcessSteamworksInfoResponse = 9103; + k_EMsgDRMWorkerProcessInstallDRMDLLRequest = 9104; + k_EMsgDRMWorkerProcessInstallDRMDLLResponse = 9105; + k_EMsgDRMWorkerProcessSecretIdStringRequest = 9106; + k_EMsgDRMWorkerProcessSecretIdStringResponse = 9107; + k_EMsgDRMWorkerProcessInstallProcessedFilesRequest = 9110; + k_EMsgDRMWorkerProcessInstallProcessedFilesResponse = 9111; + k_EMsgDRMWorkerProcessExamineBlobRequest = 9112; + k_EMsgDRMWorkerProcessExamineBlobResponse = 9113; + k_EMsgDRMWorkerProcessDescribeSecretRequest = 9114; + k_EMsgDRMWorkerProcessDescribeSecretResponse = 9115; + k_EMsgDRMWorkerProcessBackfillOriginalRequest = 9116; + k_EMsgDRMWorkerProcessBackfillOriginalResponse = 9117; + k_EMsgDRMWorkerProcessValidateDRMDLLRequest = 9118; + k_EMsgDRMWorkerProcessValidateDRMDLLResponse = 9119; + k_EMsgDRMWorkerProcessValidateFileRequest = 9120; + k_EMsgDRMWorkerProcessValidateFileResponse = 9121; + k_EMsgDRMWorkerProcessSplitAndInstallRequest = 9122; + k_EMsgDRMWorkerProcessSplitAndInstallResponse = 9123; + k_EMsgDRMWorkerProcessGetBlobRequest = 9124; + k_EMsgDRMWorkerProcessGetBlobResponse = 9125; + k_EMsgDRMWorkerProcessEvaluateCrashRequest = 9126; + k_EMsgDRMWorkerProcessEvaluateCrashResponse = 9127; + k_EMsgDRMWorkerProcessAnalyzeFileRequest = 9128; + k_EMsgDRMWorkerProcessAnalyzeFileResponse = 9129; + k_EMsgDRMWorkerProcessUnpackBlobRequest = 9130; + k_EMsgDRMWorkerProcessUnpackBlobResponse = 9131; + k_EMsgDRMWorkerProcessInstallAllRequest = 9132; + k_EMsgDRMWorkerProcessInstallAllResponse = 9133; + k_EMsgTestWorkerProcess = 9200; + k_EMsgTestWorkerProcessLoadUnloadModuleRequest = 9200; + k_EMsgTestWorkerProcessLoadUnloadModuleResponse = 9201; + k_EMsgTestWorkerProcessServiceModuleCallRequest = 9202; + k_EMsgTestWorkerProcessServiceModuleCallResponse = 9203; + k_EMsgQuestServerBase = 9300; + k_EMsgClientGetEmoticonList = 9330; + k_EMsgClientEmoticonList = 9331; + k_EMsgSLCBase = 9400; + k_EMsgSLCUserSessionStatus = 9400; + k_EMsgSLCRequestUserSessionStatus = 9401; + k_EMsgSLCSharedLicensesLockStatus = 9402; + k_EMsgClientSharedLibraryLockStatus = 9405; + k_EMsgClientSharedLibraryStopPlaying = 9406; + k_EMsgSLCOwnerLibraryChanged = 9407; + k_EMsgSLCSharedLibraryChanged = 9408; + k_EMsgRemoteClientBase = 9500; + k_EMsgRemoteClientAuth_OBSOLETE = 9500; + k_EMsgRemoteClientAuthResponse_OBSOLETE = 9501; + k_EMsgRemoteClientAppStatus = 9502; + k_EMsgRemoteClientStartStream = 9503; + k_EMsgRemoteClientStartStreamResponse = 9504; + k_EMsgRemoteClientPing = 9505; + k_EMsgRemoteClientPingResponse = 9506; + k_EMsgClientUnlockH264 = 9507; + k_EMsgClientUnlockH264Response = 9508; + k_EMsgRemoteClientAcceptEULA = 9509; + k_EMsgRemoteClientGetControllerConfig = 9510; + k_EMsgRemoteClientGetControllerConfigResponse = 9511; + k_EMsgRemoteClientStreamingEnabled = 9512; + k_EMsgClientUnlockHEVC_OBSOLETE = 9513; + k_EMsgClientUnlockHEVCResponse_OBSOLETE = 9514; + k_EMsgRemoteClientStatusRequest = 9515; + k_EMsgRemoteClientStatusResponse = 9516; + k_EMsgClientConcurrentSessionsBase = 9600; + k_EMsgClientPlayingSessionState = 9600; + k_EMsgClientKickPlayingSession = 9601; + k_EMsgClientBroadcastBase = 9700; + k_EMsgClientBroadcastInit = 9700; + k_EMsgClientBroadcastFrames = 9701; + k_EMsgClientBroadcastDisconnect = 9702; + k_EMsgClientBroadcastUploadConfig = 9704; + k_EMsgBaseClient3 = 9800; + k_EMsgClientVoiceCallPreAuthorize = 9800; + k_EMsgClientVoiceCallPreAuthorizeResponse = 9801; + k_EMsgClientServerTimestampRequest = 9802; + k_EMsgClientServerTimestampResponse = 9803; + k_EMsgServiceMethodCallFromClientNonAuthed = 9804; + k_EMsgClientHello = 9805; + k_EMsgClientEnableOrDisableDownloads = 9806; + k_EMsgClientEnableOrDisableDownloadsResponse = 9807; + k_EMsgClientLANP2PBase = 9900; + k_EMsgClientLANP2PRequestChunk = 9900; + k_EMsgClientLANP2PRequestChunkResponse = 9901; + k_EMsgClientPeerChunkRequest = 9902; + k_EMsgClientPeerChunkResponse = 9903; + k_EMsgClientLANP2PMax = 9999; + k_EMsgBaseWatchdogServer = 10000; + k_EMsgNotifyWatchdog = 10000; + k_EMsgClientSiteLicenseBase = 10100; + k_EMsgClientSiteLicenseSiteInfoNotification = 10100; + k_EMsgClientSiteLicenseCheckout = 10101; + k_EMsgClientSiteLicenseCheckoutResponse = 10102; + k_EMsgClientSiteLicenseGetAvailableSeats = 10103; + k_EMsgClientSiteLicenseGetAvailableSeatsResponse = 10104; + k_EMsgClientSiteLicenseGetContentCacheInfo = 10105; + k_EMsgClientSiteLicenseGetContentCacheInfoResponse = 10106; + k_EMsgBaseChatServer = 12000; + k_EMsgChatServerGetPendingNotificationCount = 12000; + k_EMsgChatServerGetPendingNotificationCountResponse = 12001; + k_EMsgBaseSecretServer = 12100; + k_EMsgServerSecretChanged = 12100; + k_EMsgBaseWG = 12200; + k_EMsgWGConnectionProtocolError = 12200; + k_EMsgWGConnectionValidateUserToken = 12201; + k_EMsgWGConnectionValidateUserTokenResponse = 12202; + k_EMsgWGConnectionLegacyWGRequest = 12203; + k_EMsgWGConnectionLegacyWGResponse = 12204; +} + +enum EClientPersonaStateFlag { + k_EClientPersonaStateFlagStatus = 1; + k_EClientPersonaStateFlagPlayerName = 2; + k_EClientPersonaStateFlagQueryPort = 4; + k_EClientPersonaStateFlagSourceID = 8; + k_EClientPersonaStateFlagPresence = 16; + k_EClientPersonaStateFlagLastSeen = 64; + k_EClientPersonaStateFlagUserClanRank = 128; + k_EClientPersonaStateGameExtraInfo = 256; + k_EClientPersonaStateGameDataBlob = 512; + k_EClientPersonaStateFlagClanData = 1024; + k_EClientPersonaStateFlagFacebook = 2048; + k_EClientPersonaStateFlagRichPresence = 4096; + k_EClientPersonaStateFlagBroadcast = 8192; + k_EClientPersonaStateFlagWatching = 16384; +} + +enum EMsgClanAccountFlags { + k_EMsgClanAccountFlagPublic = 1; + k_EMsgClanAccountFlagLarge = 2; + k_EMsgClanAccountFlagLocked = 4; + k_EMsgClanAccountFlagDisabled = 8; + k_EMsgClanAccountFlagOGG = 16; +} + +enum ESteamReviewScore { + k_ESteamReviewScore_OverwhelminglyPositive = 9; + k_ESteamReviewScore_VeryPositive = 8; + k_ESteamReviewScore_Positive = 7; + k_ESteamReviewScore_MostlyPositive = 6; + k_ESteamReviewScore_Mixed = 5; + k_ESteamReviewScore_MostlyNegative = 4; + k_ESteamReviewScore_Negative = 3; + k_ESteamReviewScore_VeryNegative = 2; + k_ESteamReviewScore_OverwhelminglyNegative = 1; + k_ESteamReviewScore_None = 0; +} + +enum ECodecUsagePlatform { + k_ECodecUsagePlatformUnknown = 0; + k_ECodecUsagePlatformWindows = 1; + k_ECodecUsagePlatformMacOS = 2; + k_ECodecUsagePlatformLinux = 3; + k_ECodecUsagePlatformSteamDeck = 4; +} + +enum ECodecUsageReason { + k_ECodecUsageReasonUnknown = 0; + k_ECodecUsageReasonRemotePlay = 1; + k_ECodecUsageReasonBroadcasting = 2; + k_ECodecUsageReasonGameVideo = 3; +} diff --git a/Protobufs/tf2/gcsdk_gcmessages.proto b/Protobufs/tf2/gcsdk_gcmessages.proto new file mode 100644 index 0000000..5670a1f --- /dev/null +++ b/Protobufs/tf2/gcsdk_gcmessages.proto @@ -0,0 +1,186 @@ +import "steammessages.proto"; + +option optimize_for = SPEED; +option cc_generic_services = false; + +enum PartnerAccountType { + PARTNER_NONE = 0; + PARTNER_PERFECT_WORLD = 1; + PARTNER_NEXON = 2; +} + +enum GCConnectionStatus { + GCConnectionStatus_HAVE_SESSION = 0; + GCConnectionStatus_GC_GOING_DOWN = 1; + GCConnectionStatus_NO_SESSION = 2; + GCConnectionStatus_NO_SESSION_IN_LOGON_QUEUE = 3; + GCConnectionStatus_NO_STEAM = 4; + GCConnectionStatus_SUSPENDED = 5; +} + +message CMsgSOIDOwner { + optional uint32 type = 1; + optional uint64 id = 2; +} + +message CMsgSOSingleObject { + optional fixed64 owner = 1; + optional int32 type_id = 2; + optional bytes object_data = 3; + optional fixed64 version = 4; + optional .CMsgSOIDOwner owner_soid = 5; + optional uint32 service_id = 6; +} + +message CMsgSOMultipleObjects { + message SingleObject { + optional int32 type_id = 1; + optional bytes object_data = 2; + } + + optional fixed64 owner = 1; + repeated .CMsgSOMultipleObjects.SingleObject objects = 2; + optional fixed64 version = 3; + optional .CMsgSOIDOwner owner_soid = 6; + optional uint32 service_id = 7; +} + +message CMsgSOCacheSubscribed { + message SubscribedType { + optional int32 type_id = 1; + repeated bytes object_data = 2; + } + + optional fixed64 owner = 1; + repeated .CMsgSOCacheSubscribed.SubscribedType objects = 2; + optional fixed64 version = 3; + optional .CMsgSOIDOwner owner_soid = 4; + optional uint32 service_id = 5; + repeated uint32 service_list = 6; + optional fixed64 sync_version = 7; +} + +message CMsgSOCacheSubscribedUpToDate { + optional fixed64 version = 1; + optional .CMsgSOIDOwner owner_soid = 2; + optional uint32 service_id = 3; + repeated uint32 service_list = 4; + optional fixed64 sync_version = 5; +} + +message CMsgSOCacheUnsubscribed { + optional fixed64 owner = 1; +} + +message CMsgSOCacheSubscriptionCheck { + optional fixed64 owner = 1; + optional fixed64 version = 2; + optional .CMsgSOIDOwner owner_soid = 3; + optional uint32 service_id = 4; + repeated uint32 service_list = 5; + optional fixed64 sync_version = 6; +} + +message CMsgSOCacheSubscriptionRefresh { + optional fixed64 owner = 1; + optional .CMsgSOIDOwner owner_soid = 2; +} + +message CMsgSOCacheVersion { + optional fixed64 version = 1; +} + +message CMsgGCMultiplexMessage { + optional uint32 msgtype = 1; + optional bytes payload = 2; + repeated fixed64 steamids = 3; +} + +message CGCToGCMsgMasterAck { + optional uint32 dir_index = 1; + optional string machine_name = 3; + optional string process_name = 4; + repeated uint32 type_instances = 5; +} + +message CGCToGCMsgMasterAck_Response { + optional int32 eresult = 1 [default = 2]; +} + +message CGCToGCMsgMasterStartupComplete { + message GCInfo { + optional uint32 dir_index = 1; + optional string machine_name = 2; + } + + repeated .CGCToGCMsgMasterStartupComplete.GCInfo gc_info = 1; +} + +message CGCToGCMsgRouted { + optional uint32 msg_type = 1; + optional fixed64 sender_id = 2; + optional bytes net_message = 3; +} + +message CGCToGCMsgRoutedReply { + optional uint32 msg_type = 1; + optional bytes net_message = 2; +} + +message CMsgGCUpdateSubGCSessionInfo { + message CMsgUpdate { + optional fixed64 steamid = 1; + optional fixed32 ip = 2; + optional bool trusted = 3; + } + + repeated .CMsgGCUpdateSubGCSessionInfo.CMsgUpdate updates = 1; +} + +message CMsgGCRequestSubGCSessionInfo { + optional fixed64 steamid = 1; +} + +message CMsgGCRequestSubGCSessionInfoResponse { + optional fixed32 ip = 1; + optional bool trusted = 2; +} + +message CMsgGCToGCIncrementRecruitmentLevel { + optional fixed64 steamid = 1; +} + +message CMsgSOCacheHaveVersion { + optional .CMsgSOIDOwner soid = 1; + optional fixed64 version = 2; + optional uint32 service_id = 3; +} + +message CMsgConnectionStatus { + optional .GCConnectionStatus status = 1 [default = GCConnectionStatus_HAVE_SESSION]; + optional uint32 client_session_need = 2; + optional int32 queue_position = 3; + optional int32 queue_size = 4; + optional int32 wait_seconds = 5; + optional int32 estimated_wait_seconds_remaining = 6; +} + +message CMsgGCToGCSOCacheSubscribe { + message CMsgHaveVersions { + optional uint32 service_id = 1; + optional uint64 version = 2; + } + + optional fixed64 subscriber = 1; + optional fixed64 subscribe_to = 2; + optional fixed64 sync_version = 3; + repeated .CMsgGCToGCSOCacheSubscribe.CMsgHaveVersions have_versions = 4; +} + +message CMsgGCToGCSOCacheUnsubscribe { + optional fixed64 subscriber = 1; + optional fixed64 unsubscribe_from = 2; +} + +message CMsgGCClientPing { +} diff --git a/Protobufs/tf2/gcsystemmsgs.proto b/Protobufs/tf2/gcsystemmsgs.proto new file mode 100644 index 0000000..5a7aa04 --- /dev/null +++ b/Protobufs/tf2/gcsystemmsgs.proto @@ -0,0 +1,178 @@ +option optimize_for = SPEED; +option cc_generic_services = false; + +enum EGCSystemMsg { + k_EGCMsgInvalid = 0; + k_EGCMsgMulti = 1; + k_EGCMsgGenericReply = 10; + k_EGCMsgSystemBase = 50; + k_EGCMsgAchievementAwarded = 51; + k_EGCMsgConCommand = 52; + k_EGCMsgStartPlaying = 53; + k_EGCMsgStopPlaying = 54; + k_EGCMsgStartGameserver = 55; + k_EGCMsgStopGameserver = 56; + k_EGCMsgWGRequest = 57; + k_EGCMsgWGResponse = 58; + k_EGCMsgGetUserGameStatsSchema = 59; + k_EGCMsgGetUserGameStatsSchemaResponse = 60; + k_EGCMsgGetUserStatsDEPRECATED = 61; + k_EGCMsgGetUserStatsResponse = 62; + k_EGCMsgAppInfoUpdated = 63; + k_EGCMsgValidateSession = 64; + k_EGCMsgValidateSessionResponse = 65; + k_EGCMsgLookupAccountFromInput = 66; + k_EGCMsgSendHTTPRequest = 67; + k_EGCMsgSendHTTPRequestResponse = 68; + k_EGCMsgPreTestSetup = 69; + k_EGCMsgRecordSupportAction = 70; + k_EGCMsgGetAccountDetails_DEPRECATED = 71; + k_EGCMsgReceiveInterAppMessage = 73; + k_EGCMsgFindAccounts = 74; + k_EGCMsgPostAlert = 75; + k_EGCMsgGetLicenses = 76; + k_EGCMsgGetUserStats = 77; + k_EGCMsgGetCommands = 78; + k_EGCMsgGetCommandsResponse = 79; + k_EGCMsgAddFreeLicense = 80; + k_EGCMsgAddFreeLicenseResponse = 81; + k_EGCMsgGetIPLocation = 82; + k_EGCMsgGetIPLocationResponse = 83; + k_EGCMsgSystemStatsSchema = 84; + k_EGCMsgGetSystemStats = 85; + k_EGCMsgGetSystemStatsResponse = 86; + k_EGCMsgSendEmail = 87; + k_EGCMsgSendEmailResponse = 88; + k_EGCMsgGetEmailTemplate = 89; + k_EGCMsgGetEmailTemplateResponse = 90; + k_EGCMsgGrantGuestPass = 91; + k_EGCMsgGrantGuestPassResponse = 92; + k_EGCMsgGetAccountDetails = 93; + k_EGCMsgGetAccountDetailsResponse = 94; + k_EGCMsgGetPersonaNames = 95; + k_EGCMsgGetPersonaNamesResponse = 96; + k_EGCMsgMultiplexMsg = 97; + k_EGCMsgWebAPIRegisterInterfaces = 101; + k_EGCMsgWebAPIJobRequest = 102; + k_EGCMsgWebAPIJobRequestHttpResponse = 104; + k_EGCMsgWebAPIJobRequestForwardResponse = 105; + k_EGCMsgMemCachedGet = 200; + k_EGCMsgMemCachedGetResponse = 201; + k_EGCMsgMemCachedSet = 202; + k_EGCMsgMemCachedDelete = 203; + k_EGCMsgMemCachedStats = 204; + k_EGCMsgMemCachedStatsResponse = 205; + k_EGCMsgSQLStats = 210; + k_EGCMsgSQLStatsResponse = 211; + k_EGCMsgMasterSetDirectory = 220; + k_EGCMsgMasterSetDirectoryResponse = 221; + k_EGCMsgMasterSetWebAPIRouting = 222; + k_EGCMsgMasterSetWebAPIRoutingResponse = 223; + k_EGCMsgMasterSetClientMsgRouting = 224; + k_EGCMsgMasterSetClientMsgRoutingResponse = 225; + k_EGCMsgSetOptions = 226; + k_EGCMsgSetOptionsResponse = 227; + k_EGCMsgSystemBase2 = 500; + k_EGCMsgGetPurchaseTrustStatus = 501; + k_EGCMsgGetPurchaseTrustStatusResponse = 502; + k_EGCMsgUpdateSession = 503; + k_EGCMsgGCAccountVacStatusChange = 504; + k_EGCMsgCheckFriendship = 505; + k_EGCMsgCheckFriendshipResponse = 506; + k_EGCMsgGetPartnerAccountLink = 507; + k_EGCMsgGetPartnerAccountLinkResponse = 508; + k_EGCMsgVSReportedSuspiciousActivity = 509; + k_EGCMsgAccountTradeBanStatusChange = 510; + k_EGCMsgAccountLockStatusChange = 511; + k_EGCMsgDPPartnerMicroTxns = 512; + k_EGCMsgDPPartnerMicroTxnsResponse = 513; + k_EGCMsgGetIPASN = 514; + k_EGCMsgGetIPASNResponse = 515; + k_EGCMsgGetAppFriendsList = 516; + k_EGCMsgGetAppFriendsListResponse = 517; + k_EGCMsgVacVerificationChange = 518; + k_EGCMsgAccountPhoneNumberChange = 519; + k_EGCMsgAccountTwoFactorChange = 520; + k_EGCMsgCheckClanMembership = 521; + k_EGCMsgCheckClanMembershipResponse = 522; + k_EGCMsgInviteUserToLobby = 523; + k_EGCMsgGetGamePersonalDataCategoriesRequest = 524; + k_EGCMsgGetGamePersonalDataCategoriesResponse = 525; + k_EGCMsgGetGamePersonalDataEntriesRequest = 526; + k_EGCMsgGetGamePersonalDataEntriesResponse = 527; + k_EGCMsgTerminateGamePersonalDataEntriesRequest = 528; + k_EGCMsgTerminateGamePersonalDataEntriesResponse = 529; +} + +enum ESOMsg { + k_ESOMsg_Create = 21; + k_ESOMsg_Update = 22; + k_ESOMsg_Destroy = 23; + k_ESOMsg_CacheSubscribed = 24; + k_ESOMsg_CacheUnsubscribed = 25; + k_ESOMsg_UpdateMultiple = 26; + k_ESOMsg_CacheSubscriptionCheck = 27; + k_ESOMsg_CacheSubscriptionRefresh = 28; + k_ESOMsg_CacheSubscribedUpToDate = 29; +} + +enum EGCBaseClientMsg { + k_EMsgGCPingRequest = 3001; + k_EMsgGCPingResponse = 3002; + k_EMsgGCClientWelcome = 4004; + k_EMsgGCServerWelcome = 4005; + k_EMsgGCClientHello = 4006; + k_EMsgGCServerHello = 4007; + k_EMsgGCClientGoodbye = 4008; + k_EMsgGCServerGoodbye = 4009; +} + +enum EGCToGCMsg { + k_EGCToGCMsgMasterAck = 150; + k_EGCToGCMsgMasterAckResponse = 151; + k_EGCToGCMsgRouted = 152; + k_EGCToGCMsgRoutedReply = 153; + k_EMsgGCUpdateSubGCSessionInfo = 154; + k_EMsgGCRequestSubGCSessionInfo = 155; + k_EMsgGCRequestSubGCSessionInfoResponse = 156; + k_EGCToGCMsgMasterStartupComplete = 157; + k_EMsgGCToGCSOCacheSubscribe = 158; + k_EMsgGCToGCSOCacheUnsubscribe = 159; +} + +message CCommunity_GamePersonalDataCategoryInfo { + optional string type = 1; + optional string localization_token = 2; + optional string template_file = 3; +} + +message CCommunity_GetGamePersonalDataCategories_Request { + optional uint32 appid = 1; +} + +message CCommunity_GetGamePersonalDataCategories_Response { + repeated .CCommunity_GamePersonalDataCategoryInfo categories = 1; + optional string app_assets_basename = 2; +} + +message CCommunity_GetGamePersonalDataEntries_Request { + optional uint32 appid = 1; + optional uint64 steamid = 2; + optional string type = 3; + optional string continue_token = 4; +} + +message CCommunity_GetGamePersonalDataEntries_Response { + optional uint32 gceresult = 1; + repeated string entries = 2; + optional string continue_token = 3; +} + +message CCommunity_TerminateGamePersonalDataEntries_Request { + optional uint32 appid = 1; + optional uint64 steamid = 2; +} + +message CCommunity_TerminateGamePersonalDataEntries_Response { + optional uint32 gceresult = 1; +} diff --git a/Protobufs/tf2/steamdatagram_auth_messages.proto b/Protobufs/tf2/steamdatagram_auth_messages.proto new file mode 100644 index 0000000..88de477 --- /dev/null +++ b/Protobufs/tf2/steamdatagram_auth_messages.proto @@ -0,0 +1,50 @@ +option cc_generic_services = false; + +message CMsgSteamDatagramRelayAuthTicket { + message ExtraField { + optional string name = 1; + optional string string_value = 2; + optional sint64 int64_value = 3; + optional fixed64 fixed64_value = 5; + } + + optional fixed32 time_expiry = 1; + optional fixed64 authorized_steam_id = 2; + optional fixed32 authorized_public_ip = 3; + optional fixed64 gameserver_steam_id = 4; + optional fixed64 gameserver_net_id = 5; + optional bytes legacy_signature = 6; + optional uint32 app_id = 7; + optional fixed32 gameserver_pop_id = 9; + optional uint32 virtual_port = 10; + repeated .CMsgSteamDatagramRelayAuthTicket.ExtraField extra_fields = 8; +} + +message CMsgSteamDatagramSignedRelayAuthTicket { + optional fixed64 reserved_do_not_use = 1; + optional fixed64 key_id = 2; + optional bytes ticket = 3; + optional bytes signature = 4; +} + +message CMsgSteamDatagramCertificate { + enum EKeyType { + INVALID = 0; + ED25519 = 1; + } + + optional .CMsgSteamDatagramCertificate.EKeyType key_type = 1 [default = INVALID]; + optional bytes key_data = 2; + optional fixed64 steam_id = 4; + repeated fixed32 gameserver_datacenter_ids = 5; + optional fixed32 time_created = 8; + optional fixed32 time_expiry = 9; + optional uint32 app_id = 10; +} + +message CMsgSteamDatagramCertificateSigned { + optional bytes cert = 4; + optional fixed64 ca_key_id = 5; + optional bytes ca_signature = 6; +} + diff --git a/Protobufs/tf2/steamdatagram_messages.proto b/Protobufs/tf2/steamdatagram_messages.proto new file mode 100644 index 0000000..acf8282 --- /dev/null +++ b/Protobufs/tf2/steamdatagram_messages.proto @@ -0,0 +1,598 @@ +import "steamdatagram_auth_messages.proto"; + +option cc_generic_services = false; + +enum ESteamDatagramMsgID { + k_ESteamDatagramMsg_Invalid = 0; + k_ESteamDatagramMsg_RouterPingRequest = 1; + k_ESteamDatagramMsg_RouterPingReply = 2; + k_ESteamDatagramMsg_GameserverPingRequest = 3; + k_ESteamDatagramMsg_GameserverPingReply = 4; + k_ESteamDatagramMsg_GameserverSessionRequest = 5; + k_ESteamDatagramMsg_GameserverSessionEstablished = 6; + k_ESteamDatagramMsg_NoSession = 7; + k_ESteamDatagramMsg_Diagnostic = 8; + k_ESteamDatagramMsg_DataClientToRouter = 9; + k_ESteamDatagramMsg_DataRouterToServer = 10; + k_ESteamDatagramMsg_DataServerToRouter = 11; + k_ESteamDatagramMsg_DataRouterToClient = 12; + k_ESteamDatagramMsg_Stats = 13; + k_ESteamDatagramMsg_ClientPingSampleRequest = 14; + k_ESteamDatagramMsg_ClientPingSampleReply = 15; + k_ESteamDatagramMsg_ClientToRouterSwitchedPrimary = 16; + k_ESteamDatagramMsg_RelayHealth = 17; + k_ESteamDatagramMsg_ConnectRequest = 18; + k_ESteamDatagramMsg_ConnectOK = 19; + k_ESteamDatagramMsg_ConnectionClosed = 20; + k_ESteamDatagramMsg_NoConnection = 21; + k_ESteamDatagramMsg_RelayToRelayPingRequest = 22; + k_ESteamDatagramMsg_RelayToRelayPingReply = 23; + k_ESteamDatagramMsg_P2PSessionRequest = 24; + k_ESteamDatagramMsg_P2PSessionEstablished = 25; +} + +enum ESteamNetworkingUDPMsgID { + k_ESteamNetworkingUDPMsg_ChallengeRequest = 32; + k_ESteamNetworkingUDPMsg_ChallengeReply = 33; + k_ESteamNetworkingUDPMsg_ConnectRequest = 34; + k_ESteamNetworkingUDPMsg_ConnectOK = 35; + k_ESteamNetworkingUDPMsg_ConnectionClosed = 36; + k_ESteamNetworkingUDPMsg_NoConnection = 37; + k_ESteamNetworkingUDPMsg_Stats = 38; +} + +message CMsgSteamDatagramRouterPingReply { + message RouteException { + optional fixed32 data_center_id = 1; + optional uint32 flags = 2; + optional uint32 penalty = 3; + } + + optional fixed32 client_timestamp = 1; + repeated fixed32 latency_datacenter_ids = 2 [packed = true]; + repeated uint32 latency_ping_ms = 3 [packed = true]; + optional fixed32 your_public_ip = 4; + optional fixed32 server_time = 5; + optional fixed64 challenge = 6; + optional uint32 seconds_until_shutdown = 7; + optional fixed32 client_cookie = 8; + optional uint32 scoring_penalty_relay_cluster = 9; + repeated .CMsgSteamDatagramRouterPingReply.RouteException route_exceptions = 10; +} + +message CMsgSteamDatagramGameserverPing { + optional uint32 legacy_client_session = 1; + optional fixed64 client_steam_id = 2; + optional fixed32 client_timestamp = 3; + optional fixed32 router_timestamp = 4; + optional uint32 router_gameserver_latency = 5; + optional uint32 seq_number_router = 6; + optional uint32 seq_number_e2e = 7; + optional uint32 relay_session_id = 8; + optional fixed32 connection_id = 9; +} + +message CMsgSteamDatagramRelayToRelayPing { + optional fixed32 request_timestamp = 1; + optional fixed32 request_date = 2; + optional fixed32 my_pop_id = 3; + optional fixed32 your_pop_id = 4; + optional fixed32 checksum = 5; +} + +message CMsgSteamDatagramSessionCryptInfo { + enum EKeyType { + INVALID = 0; + CURVE25519 = 1; + } + + optional .CMsgSteamDatagramSessionCryptInfo.EKeyType key_type = 1 [default = INVALID]; + optional bytes key_data = 2; + optional fixed64 nonce = 3; + optional bool is_snp = 4; +} + +message CMsgSteamDatagramSessionCryptInfoSigned { + optional bytes info = 1; + optional bytes signature = 2; +} + +message CMsgSteamDatagramGameserverSessionRequest { + optional bytes ticket = 1; + optional fixed32 challenge_time = 3; + optional fixed64 challenge = 4; + optional fixed32 client_connection_id = 5; + optional fixed32 server_connection_id = 8; + optional uint32 network_config_version = 6; + optional uint32 protocol_version = 7; +} + +message CMsgSteamDatagramGameserverSessionEstablished { + optional fixed32 connection_id = 1; + optional fixed64 gameserver_steam_id = 3; + optional uint32 seconds_until_shutdown = 4; + optional uint32 legacy_relay_session_id = 5; + optional uint32 seq_num_r2c = 6; +} + +message CMsgSteamDatagramNoSessionRelayToClient { + optional uint32 legacy_relay_session_id = 1; + optional fixed32 connection_id = 7; + optional fixed32 your_public_ip = 2; + optional fixed32 server_time = 3; + optional fixed64 challenge = 4; + optional uint32 seconds_until_shutdown = 5; +} + +message CMsgSteamDatagramNoSessionRelayToServer { + optional uint32 relay_session_id = 1; + optional fixed32 client_connection_id = 7; + optional fixed32 server_connection_id = 8; + optional fixed64 kludge_pad = 99; +} + +message CMsgSteamDatagramDiagnostic { + optional uint32 severity = 1; + optional string text = 2; +} + +message CMsgSteamDatagramDataCenterState { + message Server { + optional string address = 1; + optional uint32 ping_ms = 2; + } + + message DataCenter { + optional string code = 1; + repeated .CMsgSteamDatagramDataCenterState.Server server_sample = 2; + repeated .CMsgSteamDatagramDataCenterState.Server relay_sample = 3; + } + + repeated .CMsgSteamDatagramDataCenterState.DataCenter data_centers = 1; +} + +message CMsgSteamDatagramLinkInstantaneousStats { + optional uint32 out_packets_per_sec_x10 = 1; + optional uint32 out_bytes_per_sec = 2; + optional uint32 in_packets_per_sec_x10 = 3; + optional uint32 in_bytes_per_sec = 4; + optional uint32 ping_ms = 5; + optional uint32 packets_dropped_pct = 6; + optional uint32 packets_weird_sequence_pct = 7; + optional uint32 peak_jitter_usec = 8; +} + +message CMsgSteamDatagramLinkLifetimeStats { + optional uint64 packets_sent = 3; + optional uint64 kb_sent = 4; + optional uint64 packets_recv = 5; + optional uint64 kb_recv = 6; + optional uint64 packets_recv_sequenced = 7; + optional uint64 packets_recv_dropped = 8; + optional uint64 packets_recv_out_of_order = 9; + optional uint64 packets_recv_duplicate = 10; + optional uint64 packets_recv_lurch = 11; + optional uint32 quality_histogram_100 = 21; + optional uint32 quality_histogram_99 = 22; + optional uint32 quality_histogram_97 = 23; + optional uint32 quality_histogram_95 = 24; + optional uint32 quality_histogram_90 = 25; + optional uint32 quality_histogram_75 = 26; + optional uint32 quality_histogram_50 = 27; + optional uint32 quality_histogram_1 = 28; + optional uint32 quality_histogram_dead = 29; + optional uint32 quality_ntile_2nd = 30; + optional uint32 quality_ntile_5th = 31; + optional uint32 quality_ntile_25th = 32; + optional uint32 quality_ntile_50th = 33; + optional uint32 ping_histogram_25 = 41; + optional uint32 ping_histogram_50 = 42; + optional uint32 ping_histogram_75 = 43; + optional uint32 ping_histogram_100 = 44; + optional uint32 ping_histogram_125 = 45; + optional uint32 ping_histogram_150 = 46; + optional uint32 ping_histogram_200 = 47; + optional uint32 ping_histogram_300 = 48; + optional uint32 ping_histogram_max = 49; + optional uint32 ping_ntile_5th = 50; + optional uint32 ping_ntile_50th = 51; + optional uint32 ping_ntile_75th = 52; + optional uint32 ping_ntile_95th = 53; + optional uint32 ping_ntile_98th = 54; + optional uint32 jitter_histogram_negligible = 61; + optional uint32 jitter_histogram_1 = 62; + optional uint32 jitter_histogram_2 = 63; + optional uint32 jitter_histogram_5 = 64; + optional uint32 jitter_histogram_10 = 65; + optional uint32 jitter_histogram_20 = 66; + optional uint32 txspeed_max = 67; + optional uint32 txspeed_histogram_16 = 68; + optional uint32 txspeed_histogram_32 = 69; + optional uint32 txspeed_histogram_64 = 70; + optional uint32 txspeed_histogram_128 = 71; + optional uint32 txspeed_histogram_256 = 72; + optional uint32 txspeed_histogram_512 = 73; + optional uint32 txspeed_histogram_1024 = 74; + optional uint32 txspeed_histogram_max = 75; + optional uint32 txspeed_ntile_5th = 76; + optional uint32 txspeed_ntile_50th = 77; + optional uint32 txspeed_ntile_75th = 78; + optional uint32 txspeed_ntile_95th = 79; + optional uint32 txspeed_ntile_98th = 80; + optional uint32 rxspeed_max = 81; + optional uint32 rxspeed_histogram_16 = 82; + optional uint32 rxspeed_histogram_32 = 83; + optional uint32 rxspeed_histogram_64 = 84; + optional uint32 rxspeed_histogram_128 = 85; + optional uint32 rxspeed_histogram_256 = 86; + optional uint32 rxspeed_histogram_512 = 87; + optional uint32 rxspeed_histogram_1024 = 88; + optional uint32 rxspeed_histogram_max = 89; + optional uint32 rxspeed_ntile_5th = 90; + optional uint32 rxspeed_ntile_50th = 91; + optional uint32 rxspeed_ntile_75th = 92; + optional uint32 rxspeed_ntile_95th = 93; + optional uint32 rxspeed_ntile_98th = 94; +} + +message CMsgSteamDatagramConnectionQuality { + optional .CMsgSteamDatagramLinkInstantaneousStats instantaneous = 1; + optional .CMsgSteamDatagramLinkLifetimeStats lifetime = 2; +} + +message CMsgSteamDatagramConnectionStatsClientToRouter { + enum Flags { + ACK_REQUEST_RELAY = 1; + ACK_REQUEST_E2E = 2; + ACK_REQUEST_IMMEDIATE = 4; + } + + optional .CMsgSteamDatagramConnectionQuality c2r = 1; + optional .CMsgSteamDatagramConnectionQuality c2s = 2; + optional fixed32 legacy_client_timestamp = 3; + repeated fixed32 ack_relay = 4; + repeated fixed32 ack_e2e = 5; + optional uint32 flags = 6; + optional fixed32 client_connection_id = 8; + optional uint32 seq_num_c2r = 9; + optional uint32 seq_num_c2s = 10; +} + +message CMsgSteamDatagramConnectionStatsRouterToClient { + enum Flags { + ACK_REQUEST_RELAY = 1; + ACK_REQUEST_E2E = 2; + ACK_REQUEST_IMMEDIATE = 4; + } + + optional .CMsgSteamDatagramConnectionQuality r2c = 1; + optional .CMsgSteamDatagramConnectionQuality s2c = 2; + optional fixed32 legacy_client_timestamp_from_router = 3; + optional fixed32 legacy_client_timestamp_from_server = 4; + optional uint32 router_gameserver_latency = 5; + optional uint32 seconds_until_shutdown = 6; + optional fixed32 migrate_request_ip = 10; + optional uint32 migrate_request_port = 11; + optional uint32 scoring_penalty_relay_cluster = 12; + repeated fixed32 ack_relay = 13; + repeated fixed32 ack_e2e = 14; + optional uint32 flags = 15; + optional fixed32 client_connection_id = 7; + optional uint32 seq_num_r2c = 8; + optional uint32 seq_num_s2c = 9; +} + +message CMsgSteamDatagramConnectionStatsRouterToServer { + enum Flags { + ACK_REQUEST_RELAY = 1; + ACK_REQUEST_E2E = 2; + ACK_REQUEST_IMMEDIATE = 4; + } + + optional .CMsgSteamDatagramConnectionQuality r2s = 1; + optional .CMsgSteamDatagramConnectionQuality c2s = 2; + optional fixed32 legacy_client_timestamp = 3; + optional fixed32 legacy_router_timestamp = 4; + repeated fixed32 ack_relay = 10; + repeated fixed32 ack_e2e = 11; + optional uint32 flags = 12; + optional uint32 seq_num_r2s = 5; + optional uint32 seq_num_c2s = 6; + optional fixed64 client_steam_id = 7; + optional uint32 relay_session_id = 8; + optional fixed32 client_connection_id = 9; + optional fixed32 server_connection_id = 13; +} + +message CMsgSteamDatagramConnectionStatsServerToRouter { + enum Flags { + ACK_REQUEST_RELAY = 1; + ACK_REQUEST_E2E = 2; + ACK_REQUEST_IMMEDIATE = 4; + } + + optional .CMsgSteamDatagramConnectionQuality s2r = 1; + optional .CMsgSteamDatagramConnectionQuality s2c = 2; + repeated fixed32 ack_relay = 8; + repeated fixed32 ack_e2e = 9; + optional uint32 flags = 10; + optional uint32 seq_num_s2r = 3; + optional uint32 seq_num_s2c = 4; + optional fixed64 client_steam_id = 5; + optional uint32 relay_session_id = 6; + optional fixed32 client_connection_id = 7; + optional fixed32 server_connection_id = 11; +} + +message CMsgSteamDatagramClientPingSampleRequest { + optional fixed32 connection_id = 1; +} + +message CMsgSteamDatagramClientPingSampleReply { + message RoutingCluster { + optional fixed32 id = 1; + optional uint32 front_ping_ms = 2; + optional uint32 e2e_ping_ms = 3; + } + + message DataCenter { + optional fixed32 data_center_id = 1; + optional fixed32 via_relay_id = 2; + optional uint32 e2e_ping_ms = 3; + } + + optional fixed32 connection_id = 1; + repeated .CMsgSteamDatagramClientPingSampleReply.RoutingCluster routing_clusters = 2; + repeated .CMsgSteamDatagramClientPingSampleReply.DataCenter data_centers = 3; +} + +message CMsgSteamDatagramClientSwitchedPrimary { + message RouterQuality { + optional uint32 score = 1; + optional uint32 front_ping = 2; + optional uint32 back_ping = 3; + optional uint32 seconds_until_down = 4; + } + + optional fixed32 connection_id = 1; + optional fixed32 from_ip = 2; + optional uint32 from_port = 3; + optional fixed32 from_router_cluster = 4; + optional uint32 from_active_time = 5; + optional uint32 from_active_packets_recv = 6; + optional string from_dropped_reason = 7; + optional uint32 gap_ms = 8; + optional .CMsgSteamDatagramClientSwitchedPrimary.RouterQuality from_quality_now = 9; + optional .CMsgSteamDatagramClientSwitchedPrimary.RouterQuality to_quality_now = 10; + optional .CMsgSteamDatagramClientSwitchedPrimary.RouterQuality from_quality_then = 11; + optional .CMsgSteamDatagramClientSwitchedPrimary.RouterQuality to_quality_then = 12; +} + +message CMsgSteamDatagramRouterHealth { + message DataCenter { + optional fixed32 datacenter_id = 1; + optional uint32 state = 2; + } + + optional float cpu_load = 1; + optional uint32 active_sessions = 2; + optional uint32 data_pkts_sec = 3; + optional uint32 other_pkts_sec = 4; + optional uint32 seconds_until_shutdown = 5; + optional float cpu_cost_per_user = 8; + optional float cpu_cost_per_packet = 9; + repeated .CMsgSteamDatagramRouterHealth.DataCenter data_centers = 6; + optional fixed64 magic = 7; +} + +message CMsgSteamDatagramConnectRequest { + optional fixed32 connection_id = 1; + optional fixed64 client_steam_id = 3; + optional fixed64 my_timestamp = 4; + optional uint32 ping_est_ms = 5; + optional uint32 virtual_port = 9; + optional uint32 gameserver_relay_session_id = 2; + optional .CMsgSteamDatagramSessionCryptInfoSigned crypt = 6; + optional .CMsgSteamDatagramCertificateSigned cert = 7; + optional uint32 protocol_version = 8; +} + +message CMsgSteamDatagramConnectOK { + optional fixed32 client_connection_id = 1; + optional fixed32 server_connection_id = 7; + optional fixed64 your_timestamp = 3; + optional uint32 delay_time_usec = 4; + optional uint32 gameserver_relay_session_id = 2; + optional .CMsgSteamDatagramSessionCryptInfoSigned crypt = 5; + optional .CMsgSteamDatagramCertificateSigned cert = 6; + optional uint32 protocol_version = 8; +} + +message CMsgSteamDatagramConnectionClosed { + enum ERelayMode { + None = 0; + EndToEnd = 1; + ClosedByPeer = 2; + } + + optional fixed32 legacy_client_connection_id = 1; + optional fixed32 to_connection_id = 7; + optional fixed32 from_connection_id = 8; + optional fixed64 peer_steam_id = 3; + optional uint32 gameserver_relay_session_id = 2; + optional .CMsgSteamDatagramConnectionClosed.ERelayMode relay_mode = 4 [default = None]; + optional string debug = 5; + optional uint32 reason_code = 6; +} + +message CMsgSteamDatagramNoConnection { + optional fixed32 legacy_client_connection_id = 1; + optional fixed32 to_connection_id = 5; + optional fixed32 from_connection_id = 6; + optional uint32 gameserver_relay_session_id = 2; + optional fixed64 peer_steam_id = 3; + optional bool end_to_end = 4; + optional fixed32 dummy_pad = 1023; +} + +message CMsgSteamDatagramP2PSessionRequestBody { + optional fixed32 challenge_time = 1; + optional fixed64 challenge = 2; + optional fixed32 my_connection_id = 3; + optional fixed64 peer_steam_id = 4; + optional fixed32 peer_connection_id = 5; + optional uint32 protocol_version = 8; + optional uint32 network_config_version = 9; + optional fixed32 public_ip = 10; +} + +message CMsgSteamDatagramP2PSessionRequest { + optional .CMsgSteamDatagramCertificateSigned cert = 1; + optional bytes body = 2; + optional bytes signature = 3; +} + +message CMsgSteamDatagramP2PSessionEstablished { + optional fixed32 connection_id = 1; + optional uint32 seconds_until_shutdown = 3; + optional fixed64 relay_routing_id = 4; + optional uint32 seq_num_r2c = 5; +} + +message CMsgSteamDatagramP2PRoutes { + message RelayCluster { + optional fixed32 pop_id = 1; + optional uint32 ping_ms = 2; + optional uint32 score_penalty = 3; + optional fixed64 session_relay_routing_id = 4; + } + + message Route { + optional fixed32 my_pop_id = 1; + optional fixed32 your_pop_id = 2; + optional uint32 score = 3; + } + + repeated .CMsgSteamDatagramP2PRoutes.RelayCluster relay_clusters = 1; + repeated .CMsgSteamDatagramP2PRoutes.Route routes = 2; + optional uint32 revision = 3; +} + +message CMsgSteamDatagramP2PRendezvous { + optional fixed32 to_connection_id = 1; + optional .CMsgSteamDatagramP2PRoutes routes = 2; + optional uint32 ack_peer_routes_revision = 3; + optional .CMsgSteamDatagramConnectRequest connect_request = 4; + optional .CMsgSteamDatagramConnectOK connect_ok = 5; + optional .CMsgSteamDatagramConnectionClosed connection_closed = 6; +} + +message CMsgSteamDatagramConnectionStatsP2PClientToRouter { + enum Flags { + ACK_REQUEST_RELAY = 1; + ACK_REQUEST_E2E = 2; + ACK_REQUEST_IMMEDIATE = 4; + } + + optional .CMsgSteamDatagramConnectionQuality c2r = 1; + optional .CMsgSteamDatagramConnectionQuality c2s = 2; + repeated fixed32 ack_relay = 3; + repeated fixed32 ack_e2e = 4; + optional uint32 flags = 5; + optional fixed64 forward_target_relay_routing_id = 6; + optional uint32 forward_target_revision = 7; + optional .CMsgSteamDatagramP2PRoutes routes = 8; + optional uint32 ack_peer_routes_revision = 9; + optional fixed32 connection_id = 10; + optional uint32 seq_num_c2r = 11; + optional uint32 seq_num_c2s = 12; +} + +message CMsgSteamDatagramConnectionStatsP2PRouterToClient { + enum Flags { + ACK_REQUEST_RELAY = 1; + ACK_REQUEST_E2E = 2; + ACK_REQUEST_IMMEDIATE = 4; + } + + optional .CMsgSteamDatagramConnectionQuality r2c = 1; + optional .CMsgSteamDatagramConnectionQuality p2c = 2; + optional uint32 seconds_until_shutdown = 3; + optional fixed32 migrate_request_ip = 4; + optional uint32 migrate_request_port = 5; + optional uint32 scoring_penalty_relay_cluster = 6; + repeated fixed32 ack_relay = 7; + repeated fixed32 ack_e2e = 8; + optional uint32 flags = 9; + optional uint32 ack_forward_target_revision = 10; + optional .CMsgSteamDatagramP2PRoutes routes = 11; + optional uint32 ack_peer_routes_revision = 12; + optional fixed32 connection_id = 13; + optional uint32 seq_num_r2c = 14; + optional uint32 seq_num_p2c = 15; +} + +message CMsgSteamSockets_UDP_ChallengeRequest { + optional fixed32 connection_id = 1; + optional fixed64 my_timestamp = 3; + optional uint32 protocol_version = 4; +} + +message CMsgSteamSockets_UDP_ChallengeReply { + optional fixed32 connection_id = 1; + optional fixed64 challenge = 2; + optional fixed64 your_timestamp = 3; + optional uint32 protocol_version = 4; +} + +message CMsgSteamSockets_UDP_ConnectRequest { + optional fixed32 client_connection_id = 1; + optional fixed64 challenge = 2; + optional fixed64 client_steam_id = 3; + optional fixed64 my_timestamp = 5; + optional uint32 ping_est_ms = 6; + optional .CMsgSteamDatagramSessionCryptInfoSigned crypt = 7; + optional .CMsgSteamDatagramCertificateSigned cert = 4; + optional uint32 protocol_version = 8; +} + +message CMsgSteamSockets_UDP_ConnectOK { + optional fixed32 client_connection_id = 1; + optional fixed32 server_connection_id = 5; + optional fixed64 server_steam_id = 2; + optional fixed64 your_timestamp = 3; + optional uint32 delay_time_usec = 4; + optional .CMsgSteamDatagramSessionCryptInfoSigned crypt = 7; + optional .CMsgSteamDatagramCertificateSigned cert = 8; + optional uint32 protocol_version = 9; +} + +message CMsgSteamSockets_UDP_ConnectionClosed { + optional fixed32 legacy_client_connection_id = 1; + optional fixed32 to_connection_id = 4; + optional fixed32 from_connection_id = 5; + optional string debug = 2; + optional uint32 reason_code = 3; +} + +message CMsgSteamSockets_UDP_NoConnection { + optional fixed32 legacy_client_connection_id = 1; + optional fixed32 from_connection_id = 2; + optional fixed32 to_connection_id = 3; +} + +message CMsgSteamSockets_UDP_Stats { + enum Flags { + ACK_REQUEST_E2E = 2; + ACK_REQUEST_IMMEDIATE = 4; + } + + optional .CMsgSteamDatagramConnectionQuality stats = 1; + repeated fixed32 ack_e2e = 2; + optional uint32 flags = 3; + optional fixed32 legacy_client_connection_id = 8; + optional fixed32 to_connection_id = 9; + optional fixed32 from_connection_id = 10; + optional uint32 seq_num = 4; +} + diff --git a/Protobufs/tf2/steamdatagram_messages_auth.proto b/Protobufs/tf2/steamdatagram_messages_auth.proto new file mode 100644 index 0000000..c97793e --- /dev/null +++ b/Protobufs/tf2/steamdatagram_messages_auth.proto @@ -0,0 +1,65 @@ +import "steamnetworkingsockets_messages_certs.proto"; + +option optimize_for = SPEED; +option cc_generic_services = false; + +message CMsgSteamDatagramRelayAuthTicket { + message ExtraField { + optional string name = 1; + optional string string_value = 2; + optional sint64 int64_value = 3; + optional fixed64 fixed64_value = 5; + } + + optional fixed32 time_expiry = 1; + optional string authorized_client_identity_string = 14; + optional string gameserver_identity_string = 15; + optional fixed32 authorized_public_ip = 3; + optional bytes gameserver_address = 11; + optional uint32 app_id = 7; + optional uint32 virtual_port = 10; + repeated .CMsgSteamDatagramRelayAuthTicket.ExtraField extra_fields = 8; + optional fixed64 legacy_authorized_steam_id = 2; + optional fixed64 legacy_gameserver_steam_id = 4; + optional fixed32 legacy_gameserver_pop_id = 9; + optional bytes legacy_authorized_client_identity_binary = 12; + optional bytes legacy_gameserver_identity_binary = 13; +} + +message CMsgSteamDatagramSignedRelayAuthTicket { + optional fixed64 reserved_do_not_use = 1; + optional bytes ticket = 3; + optional bytes signature = 4; + optional fixed64 key_id = 2; + repeated .CMsgSteamDatagramCertificateSigned certs = 5; +} + +message CMsgSteamDatagramCachedCredentialsForApp { + optional bytes private_key = 1; + optional bytes cert = 2; + repeated bytes relay_tickets = 3; +} + +message CMsgSteamDatagramGameCoordinatorServerLogin { + optional uint32 time_generated = 1; + optional uint32 appid = 2; + optional bytes routing = 3; + optional bytes appdata = 4; + optional bytes legacy_identity_binary = 5; + optional string identity_string = 6; + optional fixed64 dummy_steam_id = 99; +} + +message CMsgSteamDatagramSignedGameCoordinatorServerLogin { + optional .CMsgSteamDatagramCertificateSigned cert = 1; + optional bytes login = 2; + optional bytes signature = 3; +} + +message CMsgSteamDatagramHostedServerAddressPlaintext { + optional fixed32 ipv4 = 1; + optional bytes ipv6 = 2; + optional uint32 port = 3; + optional fixed64 routing_secret = 4; + optional uint32 protocol_version = 5; +} diff --git a/Protobufs/tf2/steamdatagram_messages_sdr.proto b/Protobufs/tf2/steamdatagram_messages_sdr.proto new file mode 100644 index 0000000..899e18a --- /dev/null +++ b/Protobufs/tf2/steamdatagram_messages_sdr.proto @@ -0,0 +1,518 @@ +import "steamnetworkingsockets_messages_certs.proto"; +import "steamnetworkingsockets_messages.proto"; + +option optimize_for = SPEED; +option cc_generic_services = false; + +enum ESteamDatagramMsgID { + k_ESteamDatagramMsg_Invalid = 0; + k_ESteamDatagramMsg_RouterPingRequest = 1; + k_ESteamDatagramMsg_RouterPingReply = 2; + k_ESteamDatagramMsg_GameserverPingRequest = 3; + k_ESteamDatagramMsg_GameserverSessionRequest = 5; + k_ESteamDatagramMsg_GameserverSessionEstablished = 6; + k_ESteamDatagramMsg_NoSession = 7; + k_ESteamDatagramMsg_Diagnostic = 8; + k_ESteamDatagramMsg_DataClientToRouter = 9; + k_ESteamDatagramMsg_DataRouterToServer = 10; + k_ESteamDatagramMsg_DataServerToRouter = 11; + k_ESteamDatagramMsg_DataRouterToClient = 12; + k_ESteamDatagramMsg_Stats = 13; + k_ESteamDatagramMsg_ClientPingSampleRequest = 14; + k_ESteamDatagramMsg_ClientPingSampleReply = 15; + k_ESteamDatagramMsg_ClientToRouterSwitchedPrimary = 16; + k_ESteamDatagramMsg_RelayHealth = 17; + k_ESteamDatagramMsg_ConnectRequest = 18; + k_ESteamDatagramMsg_ConnectOK = 19; + k_ESteamDatagramMsg_ConnectionClosed = 20; + k_ESteamDatagramMsg_NoConnection = 21; + k_ESteamDatagramMsg_TicketDecryptRequest = 22; + k_ESteamDatagramMsg_TicketDecryptReply = 23; + k_ESteamDatagramMsg_P2PSessionRequest = 24; + k_ESteamDatagramMsg_P2PSessionEstablished = 25; + k_ESteamDatagramMsg_P2PStatsClient = 26; + k_ESteamDatagramMsg_P2PStatsRelay = 27; + k_ESteamDatagramMsg_P2PBadRoute = 28; + k_ESteamDatagramMsg_GameserverPingReply = 29; + k_ESteamDatagramMsg_LegacyGameserverRegistration = 30; + k_ESteamDatagramMsg_SetSecondaryAddressRequest = 31; + k_ESteamDatagramMsg_SetSecondaryAddressResult = 32; + k_ESteamDatagramMsg_RelayToRelayPingRequest = 33; + k_ESteamDatagramMsg_RelayToRelayPingReply = 34; +} + +message CMsgSteamNetworkingIPAddress { + optional fixed32 v4 = 1; + optional bytes v6 = 2; +} + +message CMsgSteamDatagramSignedMessageGeneric { + optional .CMsgSteamDatagramCertificateSigned cert = 1; + optional bytes signed_data = 2; + optional bytes signature = 3; +} + +message CMsgSteamDatagramRouterPingReply { + message RouteException { + optional fixed32 data_center_id = 1; + optional uint32 flags = 2; + optional uint32 penalty = 3; + } + + message AltAddress { + enum Protocol { + DefaultProtocol = 0; + NetworkNext = 1; + } + + optional fixed32 ipv4 = 1; + optional uint32 port = 2; + optional uint32 penalty = 3; + optional .CMsgSteamDatagramRouterPingReply.AltAddress.Protocol protocol = 4 [default = DefaultProtocol]; + optional string id = 5; + } + + enum Flags { + FLAG_MAYBE_MORE_DATA_CENTERS = 1; + FLAG_MAYBE_MORE_ALT_ADDRESSES = 2; + } + + optional fixed32 client_timestamp = 1; + repeated fixed32 latency_datacenter_ids = 2 [packed = true]; + repeated uint32 latency_ping_ms = 3 [packed = true]; + repeated fixed32 latency_datacenter_ids_p2p = 14 [packed = true]; + repeated uint32 latency_ping_ms_p2p = 15 [packed = true]; + optional fixed32 your_public_ip = 4; + optional fixed32 your_public_port = 11; + optional fixed32 server_time = 5; + optional fixed64 challenge = 6; + optional uint32 seconds_until_shutdown = 7; + optional fixed32 client_cookie = 8; + optional uint32 scoring_penalty_relay_cluster = 9; + optional uint32 flags = 12; + repeated .CMsgSteamDatagramRouterPingReply.RouteException route_exceptions = 10; + repeated .CMsgSteamDatagramRouterPingReply.AltAddress alt_addresses = 13; +} + +message CMsgSteamDatagramGameserverPingRequestBody { + optional fixed32 relay_popid = 1; + optional .CMsgSteamNetworkingIPAddress your_public_ip = 2; + optional uint32 your_public_port = 3; + optional uint64 relay_unix_time = 4; + optional fixed64 routing_secret = 5; + repeated .CMsgSteamNetworkingIPAddress my_ips = 6; + optional bytes echo = 8; +} + +message CMsgSteamDatagramGameserverPingRequestEnvelope { + optional .CMsgSteamDatagramCertificateSigned cert = 6; + optional bytes signed_data = 7; + optional bytes signature = 8; + optional fixed32 legacy_your_public_ip = 1; + optional fixed32 legacy_your_public_port = 5; + optional fixed32 legacy_relay_unix_time = 2; + optional fixed64 legacy_challenge = 3; + optional fixed32 legacy_router_timestamp = 4; +} + +message CMsgSteamDatagramGameserverPingReplyData { + optional fixed32 echo_relay_unix_time = 2; + optional bytes echo = 8; + optional fixed64 legacy_challenge = 3; + optional fixed32 legacy_router_timestamp = 4; + optional fixed32 data_center_id = 5; + optional uint32 appid = 6; + optional uint32 protocol_version = 7; + optional string build = 9; + optional uint32 network_config_version = 10; + optional fixed32 my_unix_time = 11; +} + +message CMsgSteamDatagramNoSessionRelayToClient { + optional fixed32 connection_id = 7; + optional fixed32 your_public_ip = 2; + optional fixed32 your_public_port = 6; + optional fixed32 server_time = 3; + optional fixed64 challenge = 4; + optional uint32 seconds_until_shutdown = 5; +} + +message CMsgSteamDatagramNoSessionRelayToPeer { + optional uint32 legacy_relay_session_id = 1; + optional fixed32 from_relay_session_id = 2; + optional fixed32 from_connection_id = 7; + optional fixed64 kludge_pad = 99; +} + +message CMsgSteamDatagramClientPingSampleRequest { + optional fixed32 connection_id = 1; +} + +message CMsgSteamDatagramClientPingSampleReply { + message POP { + message AltAddress { + optional string id = 1; + optional uint32 front_ping_ms = 2; + optional uint32 penalty = 3; + } + + optional fixed32 pop_id = 1; + optional uint32 default_front_ping_ms = 2; + optional uint32 cluster_penalty = 4; + repeated .CMsgSteamDatagramClientPingSampleReply.POP.AltAddress alt_addresses = 7; + optional uint32 default_e2e_ping_ms = 3; + optional uint32 default_e2e_score = 5; + optional fixed32 p2p_via_peer_relay_pop_id = 6; + optional uint32 best_dc_ping_ms = 9; + optional uint32 best_dc_score = 10; + optional fixed32 best_dc_via_relay_pop_id = 11; + optional uint32 default_dc_ping_ms = 12; + optional uint32 default_dc_score = 13; + optional fixed32 default_dc_via_relay_pop_id = 14; + optional uint32 test_dc_ping_ms = 15; + optional uint32 test_dc_score = 16; + optional fixed32 test_dc_via_relay_pop_id = 17; + } + + message LegacyDataCenter { + optional fixed32 data_center_id = 1; + optional fixed32 best_dc_via_relay_pop_id = 2; + optional uint32 best_dc_ping_ms = 3; + } + + optional fixed32 connection_id = 1; + optional bool override_active = 4; + repeated .CMsgSteamDatagramClientPingSampleReply.POP pops = 2; + repeated .CMsgSteamDatagramClientPingSampleReply.LegacyDataCenter legacy_data_centers = 3; +} + +message CMsgSteamDatagramClientSwitchedPrimary { + message RouterQuality { + optional uint32 score = 1; + optional uint32 front_ping = 2; + optional uint32 back_ping = 3; + optional uint32 seconds_until_down = 4; + } + + optional fixed32 connection_id = 1; + optional fixed32 from_ip = 2; + optional uint32 from_port = 3; + optional fixed32 from_router_cluster = 4; + optional uint32 from_active_time = 5; + optional uint32 from_active_packets_recv = 6; + optional string from_dropped_reason = 7; + optional uint32 gap_ms = 8; + optional .CMsgSteamDatagramClientSwitchedPrimary.RouterQuality from_quality_now = 9; + optional .CMsgSteamDatagramClientSwitchedPrimary.RouterQuality to_quality_now = 10; + optional .CMsgSteamDatagramClientSwitchedPrimary.RouterQuality from_quality_then = 11; + optional .CMsgSteamDatagramClientSwitchedPrimary.RouterQuality to_quality_then = 12; +} + +message CMsgSteamDatagramConnectRequest { + optional fixed32 connection_id = 1; + optional fixed64 my_timestamp = 4; + optional uint32 ping_est_ms = 5; + optional uint32 virtual_port = 9; + optional uint32 gameserver_relay_session_id = 2; + optional .CMsgSteamDatagramSessionCryptInfoSigned crypt = 6; + optional .CMsgSteamDatagramCertificateSigned cert = 7; + optional fixed64 routing_secret = 10; + optional fixed64 legacy_client_steam_id = 3; +} + +message CMsgSteamDatagramConnectOK { + optional fixed32 client_connection_id = 1; + optional fixed32 server_connection_id = 7; + optional fixed64 your_timestamp = 3; + optional uint32 delay_time_usec = 4; + optional uint32 gameserver_relay_session_id = 2; + optional .CMsgSteamDatagramSessionCryptInfoSigned crypt = 5; + optional .CMsgSteamDatagramCertificateSigned cert = 6; +} + +message CMsgSteamNetworkingP2PSDRRoutingSummary { + optional uint32 initial_ping = 1; + optional uint32 initial_ping_front_local = 2; + optional uint32 initial_ping_front_remote = 3; + optional uint32 initial_score = 4; + optional fixed32 initial_pop_local = 5; + optional fixed32 initial_pop_remote = 6; + optional uint32 best_ping = 11; + optional uint32 best_ping_front_local = 12; + optional uint32 best_ping_front_remote = 13; + optional uint32 best_score = 14; + optional fixed32 best_pop_local = 15; + optional fixed32 best_pop_remote = 16; + optional uint32 best_time = 17; + optional uint32 negotiation_ms = 7; + optional uint32 selected_seconds = 8; +} + +message CMsgSteamDatagramP2PRoutingSummary { + optional .CMsgSteamNetworkingICESessionSummary ice = 2; + optional .CMsgSteamNetworkingP2PSDRRoutingSummary sdr = 3; +} + +message CMsgSteamDatagramConnectionClosed { + enum ERelayMode { + None = 0; + EndToEnd = 1; + ClosedByPeer = 2; + } + + optional fixed32 to_connection_id = 7; + optional fixed32 from_connection_id = 8; + optional string from_identity_string = 15; + optional .CMsgSteamNetworkingIdentityLegacyBinary legacy_from_identity_binary = 13; + optional fixed64 legacy_from_steam_id = 3; + optional uint32 legacy_gameserver_relay_session_id = 2; + optional fixed32 to_relay_session_id = 9; + optional fixed32 from_relay_session_id = 10; + optional bytes forward_target_relay_routing_token = 11; + optional uint32 forward_target_revision = 12; + optional .CMsgSteamDatagramConnectionClosed.ERelayMode relay_mode = 4 [default = None]; + optional string debug = 5; + optional uint32 reason_code = 6; + optional fixed64 routing_secret = 14; + optional bool not_primary_session = 16; + optional bool not_primary_transport = 19; + optional .CMsgSteamDatagramConnectionQuality quality_relay = 17; + optional .CMsgSteamDatagramConnectionQuality quality_e2e = 18; + optional .CMsgSteamDatagramP2PRoutingSummary p2p_routing_summary = 21; +} + +message CMsgSteamDatagramNoConnection { + optional fixed32 to_connection_id = 5; + optional fixed32 from_connection_id = 6; + optional uint32 legacy_gameserver_relay_session_id = 2; + optional fixed32 to_relay_session_id = 9; + optional fixed32 from_relay_session_id = 10; + optional string from_identity_string = 7; + optional fixed64 legacy_from_steam_id = 3; + optional bool end_to_end = 4; + optional bool not_primary_session = 12; + optional bool not_primary_transport = 15; + optional .CMsgSteamDatagramConnectionQuality quality_relay = 13; + optional .CMsgSteamDatagramConnectionQuality quality_e2e = 14; + optional .CMsgSteamDatagramP2PRoutingSummary p2p_routing_summary = 16; + optional fixed64 routing_secret = 11; + optional fixed32 dummy_pad = 1023; +} + +message CMsgSteamDatagramGameserverSessionRequest { + optional bytes ticket = 1; + optional fixed32 challenge_time = 3; + optional fixed64 challenge = 4; + optional fixed32 client_connection_id = 5; + optional fixed32 server_connection_id = 8; + optional uint32 network_config_version = 6; + optional uint32 protocol_version = 7; + optional string platform = 9; + optional string build = 10; +} + +message CMsgSteamDatagramGameserverSessionEstablished { + optional fixed32 connection_id = 1; + optional string gameserver_identity_string = 2; + optional uint32 seconds_until_shutdown = 4; + optional uint32 seq_num_r2c = 6; + optional bytes dummy_legacy_identity_binary = 7; + optional fixed64 legacy_gameserver_steamid = 3; +} + +message CMsgSteamDatagramConnectionStatsClientToRouter { + enum Flags { + ACK_REQUEST_RELAY = 1; + ACK_REQUEST_E2E = 2; + ACK_REQUEST_IMMEDIATE = 4; + NOT_PRIMARY_SESSION = 8; + } + + optional .CMsgSteamDatagramConnectionQuality quality_relay = 1; + optional .CMsgSteamDatagramConnectionQuality quality_e2e = 2; + repeated fixed32 ack_relay = 4; + repeated fixed32 legacy_ack_e2e = 5; + optional uint32 flags = 6; + optional fixed32 client_connection_id = 8; + optional uint32 seq_num_c2r = 9; + optional uint32 seq_num_e2e = 10; +} + +message CMsgSteamDatagramConnectionStatsRouterToClient { + enum Flags { + ACK_REQUEST_RELAY = 1; + ACK_REQUEST_E2E = 2; + ACK_REQUEST_IMMEDIATE = 4; + } + + optional .CMsgSteamDatagramConnectionQuality quality_relay = 1; + optional .CMsgSteamDatagramConnectionQuality quality_e2e = 2; + optional uint32 seconds_until_shutdown = 6; + optional fixed32 migrate_request_ip = 10; + optional uint32 migrate_request_port = 11; + optional uint32 scoring_penalty_relay_cluster = 12; + repeated fixed32 ack_relay = 13; + repeated fixed32 legacy_ack_e2e = 14; + optional uint32 flags = 15; + optional fixed32 client_connection_id = 7; + optional uint32 seq_num_r2c = 8; + optional uint32 seq_num_e2e = 9; +} + +message CMsgSteamDatagramConnectionStatsRouterToServer { + enum Flags { + ACK_REQUEST_RELAY = 1; + ACK_REQUEST_E2E = 2; + ACK_REQUEST_IMMEDIATE = 4; + } + + optional .CMsgSteamDatagramConnectionQuality quality_relay = 1; + optional .CMsgSteamDatagramConnectionQuality quality_e2e = 2; + repeated fixed32 ack_relay = 10; + repeated fixed32 legacy_ack_e2e = 11; + optional uint32 flags = 12; + optional uint32 seq_num_r2s = 5; + optional uint32 seq_num_e2e = 6; + optional string client_identity_string = 15; + optional fixed64 legacy_client_steam_id = 7; + optional uint32 relay_session_id = 8; + optional fixed32 client_connection_id = 9; + optional fixed32 server_connection_id = 13; + optional fixed64 routing_secret = 14; +} + +message CMsgSteamDatagramConnectionStatsServerToRouter { + enum Flags { + ACK_REQUEST_RELAY = 1; + ACK_REQUEST_E2E = 2; + ACK_REQUEST_IMMEDIATE = 4; + } + + optional .CMsgSteamDatagramConnectionQuality quality_relay = 1; + optional .CMsgSteamDatagramConnectionQuality quality_e2e = 2; + repeated fixed32 ack_relay = 8; + repeated fixed32 legacy_ack_e2e = 9; + optional uint32 flags = 10; + optional uint32 seq_num_s2r = 3; + optional uint32 seq_num_e2e = 4; + optional uint32 relay_session_id = 6; + optional fixed32 client_connection_id = 7; + optional fixed32 server_connection_id = 11; +} + +message CMsgSteamDatagramP2PSessionRequestBody { + optional fixed32 challenge_time = 1; + optional fixed64 challenge = 2; + optional fixed32 client_connection_id = 3; + optional fixed64 legacy_peer_steam_id = 4; + optional string peer_identity_string = 11; + optional fixed32 peer_connection_id = 5; + optional uint32 protocol_version = 8; + optional uint32 network_config_version = 9; + optional fixed32 unused_public_ip = 10; + optional string platform = 12; + optional string build = 13; +} + +message CMsgSteamDatagramP2PSessionRequest { + optional .CMsgSteamDatagramCertificateSigned cert = 1; + optional bytes body = 2; + optional bytes signature = 3; +} + +message CMsgSteamDatagramP2PSessionEstablished { + optional fixed32 connection_id = 1; + optional uint32 seconds_until_shutdown = 3; + optional bytes relay_routing_token = 4; + optional uint32 seq_num_r2c = 5; +} + +message CMsgSteamDatagramConnectionStatsP2PClientToRouter { + enum Flags { + ACK_REQUEST_RELAY = 1; + ACK_REQUEST_E2E = 2; + ACK_REQUEST_IMMEDIATE = 4; + NOT_PRIMARY_SESSION = 8; + NOT_PRIMARY_TRANSPORT_E2E = 16; + } + + optional .CMsgSteamDatagramConnectionQuality quality_relay = 1; + optional .CMsgSteamDatagramConnectionQuality quality_e2e = 2; + optional .CMsgSteamDatagramP2PRoutingSummary p2p_routing_summary = 14; + repeated fixed32 ack_relay = 3; + repeated fixed32 legacy_ack_e2e = 4; + optional uint32 flags = 5; + optional bytes forward_target_relay_routing_token = 6; + optional uint32 forward_target_revision = 7; + optional bytes routes = 8; + optional uint32 ack_peer_routes_revision = 9; + optional fixed32 connection_id = 10; + optional uint32 seq_num_c2r = 11; + optional uint32 seq_num_e2e = 12; +} + +message CMsgSteamDatagramConnectionStatsP2PRouterToClient { + enum Flags { + ACK_REQUEST_RELAY = 1; + ACK_REQUEST_E2E = 2; + ACK_REQUEST_IMMEDIATE = 4; + NOT_PRIMARY_TRANSPORT_E2E = 16; + } + + optional .CMsgSteamDatagramConnectionQuality quality_relay = 1; + optional .CMsgSteamDatagramConnectionQuality quality_e2e = 2; + optional uint32 seconds_until_shutdown = 3; + optional fixed32 migrate_request_ip = 4; + optional uint32 migrate_request_port = 5; + optional uint32 scoring_penalty_relay_cluster = 6; + repeated fixed32 ack_relay = 7; + repeated fixed32 legacy_ack_e2e = 8; + optional uint32 flags = 9; + optional uint32 ack_forward_target_revision = 10; + optional bytes routes = 11; + optional uint32 ack_peer_routes_revision = 12; + optional fixed32 connection_id = 13; + optional uint32 seq_num_r2c = 14; + optional uint32 seq_num_e2e = 15; +} + +message CMsgSteamDatagramP2PBadRouteRouterToClient { + optional fixed32 connection_id = 1; + optional bytes failed_relay_routing_token = 2; + optional uint32 ack_forward_target_revision = 3; + optional fixed64 kludge_pad = 99; +} + +message CMsgSteamDatagramP2PRoutes { + message RelayCluster { + optional fixed32 pop_id = 1; + optional uint32 ping_ms = 2; + optional uint32 score_penalty = 3; + optional bytes session_relay_routing_token = 4; + } + + message Route { + optional fixed32 my_pop_id = 1; + optional fixed32 your_pop_id = 2; + optional uint32 legacy_score = 3; + optional uint32 interior_score = 4; + } + + repeated .CMsgSteamDatagramP2PRoutes.RelayCluster relay_clusters = 1; + repeated .CMsgSteamDatagramP2PRoutes.Route routes = 2; + optional uint32 revision = 3; +} + +message CMsgSteamDatagramSetSecondaryAddressRequest { + optional fixed32 client_main_ip = 1; + optional fixed32 client_main_port = 2; + optional fixed32 client_connection_id = 3; + optional string client_identity = 4; + optional bool request_send_duplication = 5; + optional bytes kludge_pad = 99; +} + +message CMsgSteamDatagramSetSecondaryAddressResult { + optional bool success = 1; + optional string message = 2; +} diff --git a/Protobufs/tf2/steammessages.proto b/Protobufs/tf2/steammessages.proto new file mode 100644 index 0000000..a032cc5 --- /dev/null +++ b/Protobufs/tf2/steammessages.proto @@ -0,0 +1,577 @@ +import "google/protobuf/descriptor.proto"; + +option optimize_for = SPEED; +option cc_generic_services = false; + +extend .google.protobuf.FieldOptions { + optional bool key_field = 60000 [default = false]; +} + +extend .google.protobuf.MessageOptions { + optional int32 msgpool_soft_limit = 60000 [default = 32]; + optional int32 msgpool_hard_limit = 60001 [default = 384]; +} + +enum GCProtoBufMsgSrc { + GCProtoBufMsgSrc_Unspecified = 0; + GCProtoBufMsgSrc_FromSystem = 1; + GCProtoBufMsgSrc_FromSteamID = 2; + GCProtoBufMsgSrc_FromGC = 3; + GCProtoBufMsgSrc_ReplySystem = 4; +} + +message CMsgProtoBufHeader { + option (msgpool_soft_limit) = 256; + option (msgpool_hard_limit) = 1024; + + optional fixed64 client_steam_id = 1; + optional int32 client_session_id = 2; + optional uint32 source_app_id = 3; + optional fixed64 job_id_source = 10 [default = 18446744073709551615]; + optional fixed64 job_id_target = 11 [default = 18446744073709551615]; + optional string target_job_name = 12; + optional int32 eresult = 13 [default = 2]; + optional string error_message = 14; + optional .GCProtoBufMsgSrc gc_msg_src = 200 [default = GCProtoBufMsgSrc_Unspecified]; + optional uint32 gc_dir_index_source = 201; +} + +message CMsgWebAPIKey { + optional uint32 status = 1 [default = 255]; + optional uint32 account_id = 2 [default = 0]; + optional uint32 publisher_group_id = 3 [default = 0]; + optional uint32 key_id = 4; + optional string domain = 5; +} + +message CMsgHttpRequest { + message RequestHeader { + optional string name = 1; + optional string value = 2; + } + + message QueryParam { + optional string name = 1; + optional bytes value = 2; + } + + optional uint32 request_method = 1; + optional string hostname = 2; + optional string url = 3; + repeated .CMsgHttpRequest.RequestHeader headers = 4; + repeated .CMsgHttpRequest.QueryParam get_params = 5; + repeated .CMsgHttpRequest.QueryParam post_params = 6; + optional bytes body = 7; + optional uint32 absolute_timeout = 8; +} + +message CMsgWebAPIRequest { + optional string UNUSED_job_name = 1; + optional string interface_name = 2; + optional string method_name = 3; + optional uint32 version = 4; + optional .CMsgWebAPIKey api_key = 5; + optional .CMsgHttpRequest request = 6; + optional uint32 routing_app_id = 7; +} + +message CMsgHttpResponse { + message ResponseHeader { + optional string name = 1; + optional string value = 2; + } + + optional uint32 status_code = 1; + repeated .CMsgHttpResponse.ResponseHeader headers = 2; + optional bytes body = 3; +} + +message CMsgAMFindAccounts { + optional uint32 search_type = 1; + optional string search_string = 2; +} + +message CMsgAMFindAccountsResponse { + repeated fixed64 steam_id = 1; +} + +message CMsgNotifyWatchdog { + optional uint32 source = 1; + optional uint32 alert_type = 2; + optional uint32 alert_destination = 3; + optional bool critical = 4; + optional uint32 time = 5; + optional uint32 appid = 6; + optional string text = 7; +} + +message CMsgAMGetLicenses { + optional fixed64 steamid = 1; +} + +message CMsgPackageLicense { + optional uint32 package_id = 1; + optional uint32 time_created = 2; + optional uint32 owner_id = 3; +} + +message CMsgAMGetLicensesResponse { + repeated .CMsgPackageLicense license = 1; + optional uint32 result = 2; +} + +message CMsgAMGetUserGameStats { + optional fixed64 steam_id = 1; + optional fixed64 game_id = 2; + repeated uint32 stats = 3; +} + +message CMsgAMGetUserGameStatsResponse { + message Stats { + optional uint32 stat_id = 1; + optional uint32 stat_value = 2; + } + + message Achievement_Blocks { + optional uint32 achievement_id = 1; + optional uint32 achievement_bit_id = 2; + optional fixed32 unlock_time = 3; + } + + optional fixed64 steam_id = 1; + optional fixed64 game_id = 2; + optional int32 eresult = 3 [default = 2]; + repeated .CMsgAMGetUserGameStatsResponse.Stats stats = 4; + repeated .CMsgAMGetUserGameStatsResponse.Achievement_Blocks achievement_blocks = 5; +} + +message CMsgGCGetCommandList { + optional uint32 app_id = 1; + optional string command_prefix = 2; +} + +message CMsgGCGetCommandListResponse { + repeated string command_name = 1; +} + +message CGCMsgMemCachedGet { + repeated string keys = 1; +} + +message CGCMsgMemCachedGetResponse { + message ValueTag { + optional bool found = 1; + optional bytes value = 2; + } + + repeated .CGCMsgMemCachedGetResponse.ValueTag values = 1; +} + +message CGCMsgMemCachedSet { + message KeyPair { + optional string name = 1; + optional bytes value = 2; + } + + repeated .CGCMsgMemCachedSet.KeyPair keys = 1; +} + +message CGCMsgMemCachedDelete { + repeated string keys = 1; +} + +message CGCMsgMemCachedStats { +} + +message CGCMsgMemCachedStatsResponse { + optional uint64 curr_connections = 1; + optional uint64 cmd_get = 2; + optional uint64 cmd_set = 3; + optional uint64 cmd_flush = 4; + optional uint64 get_hits = 5; + optional uint64 get_misses = 6; + optional uint64 delete_hits = 7; + optional uint64 delete_misses = 8; + optional uint64 bytes_read = 9; + optional uint64 bytes_written = 10; + optional uint64 limit_maxbytes = 11; + optional uint64 curr_items = 12; + optional uint64 evictions = 13; + optional uint64 bytes = 14; +} + +message CGCMsgSQLStats { + optional uint32 schema_catalog = 1; +} + +message CGCMsgSQLStatsResponse { + optional uint32 threads = 1; + optional uint32 threads_connected = 2; + optional uint32 threads_active = 3; + optional uint32 operations_submitted = 4; + optional uint32 prepared_statements_executed = 5; + optional uint32 non_prepared_statements_executed = 6; + optional uint32 deadlock_retries = 7; + optional uint32 operations_timed_out_in_queue = 8; + optional uint32 errors = 9; +} + +message CMsgAMAddFreeLicense { + optional fixed64 steamid = 1; + optional uint32 ip_public = 2; + optional uint32 packageid = 3; + optional string store_country_code = 4; +} + +message CMsgAMAddFreeLicenseResponse { + optional int32 eresult = 1 [default = 2]; + optional int32 purchase_result_detail = 2; + optional fixed64 transid = 3; +} + +message CGCMsgGetIPLocation { + repeated fixed32 ips = 1; +} + +message CIPLocationInfo { + optional uint32 ip = 1; + optional float latitude = 2; + optional float longitude = 3; + optional string country = 4; + optional string state = 5; + optional string city = 6; +} + +message CGCMsgGetIPLocationResponse { + repeated .CIPLocationInfo infos = 1; +} + +message CGCMsgSystemStatsSchema { + optional uint32 gc_app_id = 1; + optional bytes schema_kv = 2; +} + +message CGCMsgGetSystemStats { +} + +message CGCMsgGetSystemStatsResponse { + optional uint32 gc_app_id = 1; + optional bytes stats_kv = 2; + optional uint32 active_jobs = 3; + optional uint32 yielding_jobs = 4; + optional uint32 user_sessions = 5; + optional uint32 game_server_sessions = 6; + optional uint32 socaches = 7; + optional uint32 socaches_to_unload = 8; + optional uint32 socaches_loading = 9; + optional uint32 writeback_queue = 10; + optional uint32 steamid_locks = 11; + optional uint32 logon_queue = 12; + optional uint32 logon_jobs = 13; +} + +message CMsgAMSendEmail { + message ReplacementToken { + optional string token_name = 1; + optional string token_value = 2; + } + + message PersonaNameReplacementToken { + optional fixed64 steamid = 1; + optional string token_name = 2; + } + + optional fixed64 steamid = 1; + optional uint32 email_msg_type = 2; + optional uint32 email_format = 3; + repeated .CMsgAMSendEmail.PersonaNameReplacementToken persona_name_tokens = 5; + optional uint32 source_gc = 6; + repeated .CMsgAMSendEmail.ReplacementToken tokens = 7; +} + +message CMsgAMSendEmailResponse { + optional uint32 eresult = 1 [default = 2]; +} + +message CMsgGCGetEmailTemplate { + optional uint32 app_id = 1; + optional uint32 email_msg_type = 2; + optional int32 email_lang = 3; + optional int32 email_format = 4; +} + +message CMsgGCGetEmailTemplateResponse { + optional uint32 eresult = 1 [default = 2]; + optional bool template_exists = 2; + optional string template = 3; +} + +message CMsgAMGrantGuestPasses2 { + optional fixed64 steam_id = 1; + optional uint32 package_id = 2; + optional int32 passes_to_grant = 3; + optional int32 days_to_expiration = 4; + optional int32 action = 5; +} + +message CMsgAMGrantGuestPasses2Response { + optional int32 eresult = 1 [default = 2]; + optional int32 passes_granted = 2 [default = 0]; +} + +message CGCSystemMsg_GetAccountDetails { + option (msgpool_soft_limit) = 128; + option (msgpool_hard_limit) = 512; + + optional fixed64 steamid = 1; + optional uint32 appid = 2; +} + +message CGCSystemMsg_GetAccountDetails_Response { + option (msgpool_soft_limit) = 128; + option (msgpool_hard_limit) = 512; + + optional uint32 eresult_deprecated = 1 [default = 2]; + optional string account_name = 2; + optional string persona_name = 3; + optional bool is_profile_public = 4; + optional bool is_inventory_public = 5; + optional bool is_vac_banned = 7; + optional bool is_cyber_cafe = 8; + optional bool is_school_account = 9; + optional bool is_limited = 10; + optional bool is_subscribed = 11; + optional uint32 package = 12; + optional bool is_free_trial_account = 13; + optional uint32 free_trial_expiration = 14; + optional bool is_low_violence = 15; + optional bool is_account_locked_down = 16; + optional bool is_community_banned = 17; + optional bool is_trade_banned = 18; + optional uint32 trade_ban_expiration = 19; + optional uint32 accountid = 20; + optional uint32 suspension_end_time = 21; + optional string currency = 22; + optional uint32 steam_level = 23; + optional uint32 friend_count = 24; + optional uint32 account_creation_time = 25; + optional bool is_steamguard_enabled = 27; + optional bool is_phone_verified = 28; + optional bool is_two_factor_auth_enabled = 29; + optional uint32 two_factor_enabled_time = 30; + optional uint32 phone_verification_time = 31; + optional uint64 phone_id = 33; + optional bool is_phone_identifying = 34; + optional uint32 rt_identity_linked = 35; + optional uint32 rt_birth_date = 36; + optional string txn_country_code = 37; +} + +message CMsgGCCheckClanMembership { + optional fixed64 steamid = 1; + optional uint32 clanid = 2; +} + +message CMsgGCCheckClanMembership_Response { + optional bool ismember = 1; +} + +message CMsgGCGetPersonaNames { + repeated fixed64 steamids = 1; +} + +message CMsgGCGetPersonaNames_Response { + message PersonaName { + optional fixed64 steamid = 1; + optional string persona_name = 2; + } + + repeated .CMsgGCGetPersonaNames_Response.PersonaName succeeded_lookups = 1; + repeated fixed64 failed_lookup_steamids = 2; +} + +message CMsgGCCheckFriendship { + optional fixed64 steamid_left = 1; + optional fixed64 steamid_right = 2; +} + +message CMsgGCCheckFriendship_Response { + optional bool success = 1; + optional bool found_friendship = 2; +} + +message CMsgGCMsgMasterSetDirectory { + message SubGC { + optional uint32 dir_index = 1; + optional string name = 2; + optional string box = 3; + optional string command_line = 4; + optional string gc_binary = 5; + } + + optional uint32 master_dir_index = 1; + repeated .CMsgGCMsgMasterSetDirectory.SubGC dir = 2; +} + +message CMsgGCMsgMasterSetDirectory_Response { + optional int32 eresult = 1 [default = 2]; +} + +message CMsgGCMsgWebAPIJobRequestForwardResponse { + optional uint32 dir_index = 1; +} + +message CGCSystemMsg_GetPurchaseTrust_Request { + optional fixed64 steamid = 1; +} + +message CGCSystemMsg_GetPurchaseTrust_Response { + optional bool has_prior_purchase_history = 1; + optional bool has_no_recent_password_resets = 2; + optional bool is_wallet_cash_trusted = 3; + optional uint32 time_all_trusted = 4; +} + +message CMsgGCHAccountVacStatusChange { + optional fixed64 steam_id = 1; + optional uint32 app_id = 2; + optional uint32 rtime_vacban_starts = 3; + optional bool is_banned_now = 4; + optional bool is_banned_future = 5; +} + +message CMsgGCHAccountTradeBanStatusChange { + optional fixed64 steamid = 1; + optional uint32 appid = 2; + optional bool is_banned = 3; + optional uint32 time_banned_until = 4; +} + +message CMsgGCHAccountLockStatusChange { + optional fixed64 steamid = 1; + optional uint32 appid = 2; + optional bool is_locked = 3; +} + +message CMsgGCHVacVerificationChange { + optional fixed64 steamid = 1; + optional uint32 appid = 2; + optional bool is_verified = 3; +} + +message CMsgGCHAccountPhoneNumberChange { + optional fixed64 steamid = 1; + optional uint32 appid = 2; + optional uint64 phone_id = 3; + optional bool is_verified = 4; + optional bool is_identifying = 5; +} + +message CMsgGCHAccountTwoFactorChange { + optional fixed64 steamid = 1; + optional uint32 appid = 2; + optional bool twofactor_enabled = 3; +} + +message CMsgGCGetPartnerAccountLink { + optional fixed64 steamid = 1; +} + +message CMsgGCGetPartnerAccountLink_Response { + optional uint32 pwid = 1; + optional uint32 nexonid = 2; +} + +message CMsgGCRoutingInfo { + enum RoutingMethod { + RANDOM = 0; + DISCARD = 1; + CLIENT_STEAMID = 2; + PROTOBUF_FIELD_UINT64 = 3; + WEBAPI_PARAM_UINT64 = 4; + } + + repeated uint32 dir_index = 1; + optional .CMsgGCRoutingInfo.RoutingMethod method = 2 [default = RANDOM]; + optional .CMsgGCRoutingInfo.RoutingMethod fallback = 3 [default = DISCARD]; + optional uint32 protobuf_field = 4; + optional string webapi_param = 5; +} + +message CMsgGCMsgMasterSetWebAPIRouting { + message Entry { + optional string interface_name = 1; + optional string method_name = 2; + optional .CMsgGCRoutingInfo routing = 3; + } + + repeated .CMsgGCMsgMasterSetWebAPIRouting.Entry entries = 1; +} + +message CMsgGCMsgMasterSetClientMsgRouting { + message Entry { + optional uint32 msg_type = 1; + optional .CMsgGCRoutingInfo routing = 2; + } + + repeated .CMsgGCMsgMasterSetClientMsgRouting.Entry entries = 1; +} + +message CMsgGCMsgMasterSetWebAPIRouting_Response { + optional int32 eresult = 1 [default = 2]; +} + +message CMsgGCMsgMasterSetClientMsgRouting_Response { + optional int32 eresult = 1 [default = 2]; +} + +message CMsgGCMsgSetOptions { + message MessageRange { + required uint32 low = 1; + required uint32 high = 2; + } + + enum Option { + NOTIFY_USER_SESSIONS = 0; + NOTIFY_SERVER_SESSIONS = 1; + NOTIFY_ACHIEVEMENTS = 2; + NOTIFY_VAC_ACTION = 3; + } + + enum GCSQLVersion { + GCSQL_VERSION_BASELINE = 1; + GCSQL_VERSION_BOOLTYPE = 2; + } + + repeated .CMsgGCMsgSetOptions.Option options = 1; + repeated .CMsgGCMsgSetOptions.MessageRange client_msg_ranges = 2; + optional .CMsgGCMsgSetOptions.GCSQLVersion gcsql_version = 3 [default = GCSQL_VERSION_BASELINE]; +} + +message CMsgGCHUpdateSession { + message ExtraField { + optional string name = 1; + optional string value = 2; + } + + optional fixed64 steam_id = 1; + optional uint32 app_id = 2; + optional bool online = 3; + optional fixed64 server_steam_id = 4; + optional uint32 server_addr = 5; + optional uint32 server_port = 6; + optional uint32 os_type = 7; + optional uint32 client_addr = 8; + repeated .CMsgGCHUpdateSession.ExtraField extra_fields = 9; +} + +message CMsgNotificationOfSuspiciousActivity { + message MultipleGameInstances { + optional uint32 app_instance_count = 1; + repeated fixed64 other_steamids = 2; + } + + optional fixed64 steamid = 1; + optional uint32 appid = 2; + optional .CMsgNotificationOfSuspiciousActivity.MultipleGameInstances multiple_instances = 3; +} diff --git a/Protobufs/tf2/steammessages_base.proto b/Protobufs/tf2/steammessages_base.proto new file mode 100644 index 0000000..a2bbad4 --- /dev/null +++ b/Protobufs/tf2/steammessages_base.proto @@ -0,0 +1,332 @@ +import "google/protobuf/descriptor.proto"; + +option optimize_for = SPEED; +option cc_generic_services = true; +option (force_php_generation) = true; + +extend .google.protobuf.MessageOptions { + optional int32 msgpool_soft_limit = 50000 [default = 32]; + optional int32 msgpool_hard_limit = 50001 [default = 384]; +} + +extend .google.protobuf.FileOptions { + optional bool force_php_generation = 50000 [default = false]; +} + +extend .google.protobuf.FieldOptions { + optional bool php_output_always_number = 50020 [default = false]; + optional bool allow_field_named_steam_id = 50024 [default = false]; +} + +enum EBanContentCheckResult { + k_EBanContentCheckResult_NotScanned = 0; + k_EBanContentCheckResult_Reset = 1; + k_EBanContentCheckResult_NeedsChecking = 2; + k_EBanContentCheckResult_VeryUnlikely = 5; + k_EBanContentCheckResult_Unlikely = 30; + k_EBanContentCheckResult_Possible = 50; + k_EBanContentCheckResult_Likely = 75; + k_EBanContentCheckResult_VeryLikely = 100; +} + +enum EProtoClanEventType { + k_EClanOtherEvent = 1; + k_EClanGameEvent = 2; + k_EClanPartyEvent = 3; + k_EClanMeetingEvent = 4; + k_EClanSpecialCauseEvent = 5; + k_EClanMusicAndArtsEvent = 6; + k_EClanSportsEvent = 7; + k_EClanTripEvent = 8; + k_EClanChatEvent = 9; + k_EClanGameReleaseEvent = 10; + k_EClanBroadcastEvent = 11; + k_EClanSmallUpdateEvent = 12; + k_EClanPreAnnounceMajorUpdateEvent = 13; + k_EClanMajorUpdateEvent = 14; + k_EClanDLCReleaseEvent = 15; + k_EClanFutureReleaseEvent = 16; + k_EClanESportTournamentStreamEvent = 17; + k_EClanDevStreamEvent = 18; + k_EClanFamousStreamEvent = 19; + k_EClanGameSalesEvent = 20; + k_EClanGameItemSalesEvent = 21; + k_EClanInGameBonusXPEvent = 22; + k_EClanInGameLootEvent = 23; + k_EClanInGamePerksEvent = 24; + k_EClanInGameChallengeEvent = 25; + k_EClanInGameContestEvent = 26; + k_EClanIRLEvent = 27; + k_EClanNewsEvent = 28; + k_EClanBetaReleaseEvent = 29; + k_EClanInGameContentReleaseEvent = 30; + k_EClanFreeTrial = 31; + k_EClanSeasonRelease = 32; + k_EClanSeasonUpdate = 33; + k_EClanCrosspostEvent = 34; + k_EClanInGameEventGeneral = 35; +} + +enum PartnerEventNotificationType { + k_EEventStart = 0; + k_EEventBroadcastStart = 1; + k_EEventMatchStart = 2; + k_EEventPartnerMaxType = 3; +} + +message CMsgIPAddress { + oneof ip { + fixed32 v4 = 1; + bytes v6 = 2; + } +} + +message CMsgIPAddressBucket { + optional .CMsgIPAddress original_ip_address = 1; + optional fixed64 bucket = 2; +} + +message CMsgGCRoutingProtoBufHeader { + optional uint64 dst_gcid_queue = 1; + optional uint32 dst_gc_dir_index = 2; +} + +message CMsgProtoBufHeader { + enum ESessionDisposition { + k_ESessionDispositionNormal = 0; + k_ESessionDispositionDisconnect = 1; + } + + optional fixed64 steamid = 1; + optional int32 client_sessionid = 2; + optional uint32 routing_appid = 3; + optional fixed64 jobid_source = 10 [default = 18446744073709551615]; + optional fixed64 jobid_target = 11 [default = 18446744073709551615]; + optional string target_job_name = 12; + optional int32 seq_num = 24; + optional int32 eresult = 13 [default = 2]; + optional string error_message = 14; + optional uint32 auth_account_flags = 16; + optional uint32 token_source = 22; + optional bool admin_spoofing_user = 23; + optional int32 transport_error = 17 [default = 1]; + optional uint64 messageid = 18 [default = 18446744073709551615]; + optional uint32 publisher_group_id = 19; + optional uint32 sysid = 20; + optional uint64 trace_tag = 21; + optional uint32 webapi_key_id = 25; + optional bool is_from_external_source = 26; + repeated uint32 forward_to_sysid = 27; + optional uint32 cm_sysid = 28; + optional uint32 launcher_type = 31 [default = 0]; + optional uint32 realm = 32 [default = 0]; + optional int32 timeout_ms = 33 [default = -1]; + optional string debug_source = 34; + optional uint32 debug_source_string_index = 35; + optional uint64 token_id = 36; + optional .CMsgGCRoutingProtoBufHeader routing_gc = 37; + optional .CMsgProtoBufHeader.ESessionDisposition session_disposition = 38 [default = k_ESessionDispositionNormal]; + optional string wg_token = 39; + optional string webui_auth_key = 40; + + oneof ip_addr { + uint32 ip = 15; + bytes ip_v6 = 29; + } +} + +message CMsgMulti { + optional uint32 size_unzipped = 1; + optional bytes message_body = 2; +} + +message CMsgProtobufWrapped { + optional bytes message_body = 1; +} + +message CMsgAuthTicket { + optional uint32 estate = 1; + optional uint32 eresult = 2 [default = 2]; + optional fixed64 steamid = 3; + optional fixed64 gameid = 4; + optional uint32 h_steam_pipe = 5; + optional uint32 ticket_crc = 6; + optional bytes ticket = 7; + optional bytes server_secret = 8; + optional uint32 ticket_type = 9; +} + +message CCDDBAppDetailCommon { + optional uint32 appid = 1; + optional string name = 2; + optional string icon = 3; + optional bool tool = 6; + optional bool demo = 7; + optional bool media = 8; + optional bool community_visible_stats = 9; + optional string friendly_name = 10; + optional string propagation = 11; + optional bool has_adult_content = 12; + optional bool is_visible_in_steam_china = 13; + optional uint32 app_type = 14; + optional bool has_adult_content_sex = 15; + optional bool has_adult_content_violence = 16; + repeated uint32 content_descriptorids = 17; +} + +message CMsgAppRights { + optional bool edit_info = 1; + optional bool publish = 2; + optional bool view_error_data = 3; + optional bool download = 4; + optional bool upload_cdkeys = 5; + optional bool generate_cdkeys = 6; + optional bool view_financials = 7; + optional bool manage_ceg = 8; + optional bool manage_signing = 9; + optional bool manage_cdkeys = 10; + optional bool edit_marketing = 11; + optional bool economy_support = 12; + optional bool economy_support_supervisor = 13; + optional bool manage_pricing = 14; + optional bool broadcast_live = 15; + optional bool view_marketing_traffic = 16; + optional bool edit_store_display_content = 17; +} + +message CCuratorPreferences { + optional uint32 supported_languages = 1; + optional bool platform_windows = 2; + optional bool platform_mac = 3; + optional bool platform_linux = 4; + optional bool vr_content = 5; + optional bool adult_content_violence = 6; + optional bool adult_content_sex = 7; + optional uint32 timestamp_updated = 8; + repeated uint32 tagids_curated = 9; + repeated uint32 tagids_filtered = 10; + optional string website_title = 11; + optional string website_url = 12; + optional string discussion_url = 13; + optional bool show_broadcast = 14; +} + +message CLocalizationToken { + optional uint32 language = 1; + optional string localized_string = 2; +} + +message CClanEventUserNewsTuple { + optional uint32 clanid = 1; + optional fixed64 event_gid = 2; + optional fixed64 announcement_gid = 3; + optional uint32 rtime_start = 4; + optional uint32 rtime_end = 5; + optional uint32 priority_score = 6; + optional uint32 type = 7; + optional uint32 clamp_range_slot = 8; + optional uint32 appid = 9; + optional uint32 rtime32_last_modified = 10; +} + +message CClanMatchEventByRange { + optional uint32 rtime_before = 1; + optional uint32 rtime_after = 2; + optional uint32 qualified = 3; + repeated .CClanEventUserNewsTuple events = 4; +} + +message CCommunity_ClanAnnouncementInfo { + optional uint64 gid = 1; + optional uint64 clanid = 2; + optional uint64 posterid = 3; + optional string headline = 4; + optional uint32 posttime = 5; + optional uint32 updatetime = 6; + optional string body = 7; + optional int32 commentcount = 8; + repeated string tags = 9; + optional int32 language = 10; + optional bool hidden = 11; + optional fixed64 forum_topic_id = 12; + optional fixed64 event_gid = 13; + optional int32 voteupcount = 14; + optional int32 votedowncount = 15; + optional .EBanContentCheckResult ban_check_result = 16 [default = k_EBanContentCheckResult_NotScanned]; + optional bool banned = 17; +} + +message CClanEventData { + optional fixed64 gid = 1; + optional fixed64 clan_steamid = 2; + optional string event_name = 3; + optional .EProtoClanEventType event_type = 4 [default = k_EClanOtherEvent]; + optional uint32 appid = 5; + optional string server_address = 6; + optional string server_password = 7; + optional uint32 rtime32_start_time = 8; + optional uint32 rtime32_end_time = 9; + optional int32 comment_count = 10; + optional fixed64 creator_steamid = 11; + optional fixed64 last_update_steamid = 12; + optional string event_notes = 13; + optional string jsondata = 14; + optional .CCommunity_ClanAnnouncementInfo announcement_body = 15; + optional bool published = 16; + optional bool hidden = 17; + optional uint32 rtime32_visibility_start = 18; + optional uint32 rtime32_visibility_end = 19; + optional uint32 broadcaster_accountid = 20; + optional uint32 follower_count = 21; + optional uint32 ignore_count = 22; + optional fixed64 forum_topic_id = 23; + optional uint32 rtime32_last_modified = 24; + optional fixed64 news_post_gid = 25; + optional uint32 rtime_mod_reviewed = 26; + optional uint32 featured_app_tagid = 27; + repeated uint32 referenced_appids = 28; + optional uint32 build_id = 29; + optional string build_branch = 30; +} + +message CBilling_Address { + optional string first_name = 1; + optional string last_name = 2; + optional string address1 = 3; + optional string address2 = 4; + optional string city = 5; + optional string us_state = 6; + optional string country_code = 7; + optional string postcode = 8; + optional int32 zip_plus4 = 9; + optional string phone = 10; +} + +message CPackageReservationStatus { + optional uint32 packageid = 1; + optional int32 reservation_state = 2; + optional int32 queue_position = 3; + optional int32 total_queue_size = 4; + optional string reservation_country_code = 5; + optional bool expired = 6; + optional uint32 time_expires = 7; + optional uint32 time_reserved = 8; +} + +message CMsgKeyValuePair { + optional string name = 1; + optional string value = 2; +} + +message CMsgKeyValueSet { + repeated .CMsgKeyValuePair pairs = 1; +} + +message UserContentDescriptorPreferences { + message ContentDescriptor { + optional uint32 content_descriptorid = 1; + optional uint32 timestamp_added = 2; + } + + repeated .UserContentDescriptorPreferences.ContentDescriptor content_descriptors_to_exclude = 1; +} diff --git a/Protobufs/tf2/steammessages_gamenetworkingui.proto b/Protobufs/tf2/steammessages_gamenetworkingui.proto new file mode 100644 index 0000000..a5c67d0 --- /dev/null +++ b/Protobufs/tf2/steammessages_gamenetworkingui.proto @@ -0,0 +1,42 @@ +import "steamnetworkingsockets_messages.proto"; +import "steamdatagram_messages_sdr.proto"; + +option optimize_for = SPEED; +option cc_generic_services = true; + +message CGameNetworkingUI_GlobalState { +} + +message CGameNetworkingUI_ConnectionState { + optional string connection_key = 1; + optional uint32 appid = 2; + optional fixed32 connection_id_local = 3; + optional string identity_local = 4; + optional string identity_remote = 5; + optional uint32 connection_state = 10; + optional uint32 start_time = 12; + optional uint32 close_time = 13; + optional uint32 close_reason = 14; + optional string close_message = 15; + optional string status_loc_token = 16; + optional uint32 transport_kind = 20; + optional string sdrpopid_local = 21; + optional string sdrpopid_remote = 22; + optional string address_remote = 23; + optional .CMsgSteamDatagramP2PRoutingSummary p2p_routing = 24; + optional uint32 ping_interior = 25; + optional uint32 ping_remote_front = 26; + optional uint32 ping_default_internet_route = 27; + optional .CMsgSteamDatagramConnectionQuality e2e_quality_local = 30; + optional .CMsgSteamDatagramConnectionQuality e2e_quality_remote = 31; + optional uint64 e2e_quality_remote_instantaneous_time = 32; + optional uint64 e2e_quality_remote_lifetime_time = 33; + optional .CMsgSteamDatagramConnectionQuality front_quality_local = 40; + optional .CMsgSteamDatagramConnectionQuality front_quality_remote = 41; + optional uint64 front_quality_remote_instantaneous_time = 42; + optional uint64 front_quality_remote_lifetime_time = 43; +} + +message CGameNetworkingUI_Message { + repeated .CGameNetworkingUI_ConnectionState connection_state = 1; +} diff --git a/Protobufs/tf2/steamnetworkingsockets_messages.proto b/Protobufs/tf2/steamnetworkingsockets_messages.proto new file mode 100644 index 0000000..76d1a46 --- /dev/null +++ b/Protobufs/tf2/steamnetworkingsockets_messages.proto @@ -0,0 +1,204 @@ +import "steamnetworkingsockets_messages_certs.proto"; + +option optimize_for = SPEED; +option cc_generic_services = false; + +enum ESteamNetworkingSocketsCipher { + k_ESteamNetworkingSocketsCipher_INVALID = 0; + k_ESteamNetworkingSocketsCipher_NULL = 1; + k_ESteamNetworkingSocketsCipher_AES_256_GCM = 2; +} + +message CMsgSteamDatagramSessionCryptInfo { + enum EKeyType { + INVALID = 0; + CURVE25519 = 1; + } + + optional .CMsgSteamDatagramSessionCryptInfo.EKeyType key_type = 1 [default = INVALID]; + optional bytes key_data = 2; + optional fixed64 nonce = 3; + optional uint32 protocol_version = 4; + repeated .ESteamNetworkingSocketsCipher ciphers = 5; +} + +message CMsgSteamDatagramSessionCryptInfoSigned { + optional bytes info = 1; + optional bytes signature = 2; +} + +message CMsgSteamDatagramDiagnostic { + optional uint32 severity = 1; + optional string text = 2; +} + +message CMsgSteamDatagramLinkInstantaneousStats { + optional uint32 out_packets_per_sec_x10 = 1; + optional uint32 out_bytes_per_sec = 2; + optional uint32 in_packets_per_sec_x10 = 3; + optional uint32 in_bytes_per_sec = 4; + optional uint32 ping_ms = 5; + optional uint32 packets_dropped_pct = 6; + optional uint32 packets_weird_sequence_pct = 7; + optional uint32 peak_jitter_usec = 8; +} + +message CMsgSteamDatagramLinkLifetimeStats { + optional uint32 connected_seconds = 2; + optional uint64 packets_sent = 3; + optional uint64 kb_sent = 4; + optional uint64 packets_recv = 5; + optional uint64 kb_recv = 6; + optional uint64 packets_recv_sequenced = 7; + optional uint64 packets_recv_dropped = 8; + optional uint64 packets_recv_out_of_order = 9; + optional uint64 packets_recv_duplicate = 10; + optional uint64 packets_recv_lurch = 11; + repeated uint64 multipath_packets_recv_sequenced = 12; + repeated uint64 multipath_packets_recv_later = 13; + optional uint32 multipath_send_enabled = 14; + optional uint32 quality_histogram_100 = 21; + optional uint32 quality_histogram_99 = 22; + optional uint32 quality_histogram_97 = 23; + optional uint32 quality_histogram_95 = 24; + optional uint32 quality_histogram_90 = 25; + optional uint32 quality_histogram_75 = 26; + optional uint32 quality_histogram_50 = 27; + optional uint32 quality_histogram_1 = 28; + optional uint32 quality_histogram_dead = 29; + optional uint32 quality_ntile_2nd = 30; + optional uint32 quality_ntile_5th = 31; + optional uint32 quality_ntile_25th = 32; + optional uint32 quality_ntile_50th = 33; + optional uint32 ping_histogram_25 = 41; + optional uint32 ping_histogram_50 = 42; + optional uint32 ping_histogram_75 = 43; + optional uint32 ping_histogram_100 = 44; + optional uint32 ping_histogram_125 = 45; + optional uint32 ping_histogram_150 = 46; + optional uint32 ping_histogram_200 = 47; + optional uint32 ping_histogram_300 = 48; + optional uint32 ping_histogram_max = 49; + optional uint32 ping_ntile_5th = 50; + optional uint32 ping_ntile_50th = 51; + optional uint32 ping_ntile_75th = 52; + optional uint32 ping_ntile_95th = 53; + optional uint32 ping_ntile_98th = 54; + optional uint32 jitter_histogram_negligible = 61; + optional uint32 jitter_histogram_1 = 62; + optional uint32 jitter_histogram_2 = 63; + optional uint32 jitter_histogram_5 = 64; + optional uint32 jitter_histogram_10 = 65; + optional uint32 jitter_histogram_20 = 66; + optional uint32 txspeed_max = 67; + optional uint32 txspeed_histogram_16 = 68; + optional uint32 txspeed_histogram_32 = 69; + optional uint32 txspeed_histogram_64 = 70; + optional uint32 txspeed_histogram_128 = 71; + optional uint32 txspeed_histogram_256 = 72; + optional uint32 txspeed_histogram_512 = 73; + optional uint32 txspeed_histogram_1024 = 74; + optional uint32 txspeed_histogram_max = 75; + optional uint32 txspeed_ntile_5th = 76; + optional uint32 txspeed_ntile_50th = 77; + optional uint32 txspeed_ntile_75th = 78; + optional uint32 txspeed_ntile_95th = 79; + optional uint32 txspeed_ntile_98th = 80; + optional uint32 rxspeed_max = 81; + optional uint32 rxspeed_histogram_16 = 82; + optional uint32 rxspeed_histogram_32 = 83; + optional uint32 rxspeed_histogram_64 = 84; + optional uint32 rxspeed_histogram_128 = 85; + optional uint32 rxspeed_histogram_256 = 86; + optional uint32 rxspeed_histogram_512 = 87; + optional uint32 rxspeed_histogram_1024 = 88; + optional uint32 rxspeed_histogram_max = 89; + optional uint32 rxspeed_ntile_5th = 90; + optional uint32 rxspeed_ntile_50th = 91; + optional uint32 rxspeed_ntile_75th = 92; + optional uint32 rxspeed_ntile_95th = 93; + optional uint32 rxspeed_ntile_98th = 94; +} + +message CMsgSteamDatagramConnectionQuality { + optional .CMsgSteamDatagramLinkInstantaneousStats instantaneous = 1; + optional .CMsgSteamDatagramLinkLifetimeStats lifetime = 2; +} + +message CMsgICERendezvous { + message Auth { + optional string pwd_frag = 1; + } + + message Candidate { + optional string candidate = 3; + } + + optional .CMsgICERendezvous.Auth auth = 2; + optional .CMsgICERendezvous.Candidate add_candidate = 1; +} + +message CMsgSteamNetworkingP2PRendezvous { + message ConnectRequest { + optional .CMsgSteamDatagramSessionCryptInfoSigned crypt = 6; + optional .CMsgSteamDatagramCertificateSigned cert = 7; + optional uint32 to_virtual_port = 9; + optional uint32 from_virtual_port = 10; + optional string from_fakeip = 11; + } + + message ConnectOK { + optional .CMsgSteamDatagramSessionCryptInfoSigned crypt = 5; + optional .CMsgSteamDatagramCertificateSigned cert = 6; + } + + message ConnectionClosed { + optional string debug = 5; + optional uint32 reason_code = 6; + } + + message ReliableMessage { + optional .CMsgICERendezvous ice = 1; + } + + message ApplicationMessage { + optional bytes data = 1; + optional uint64 msg_num = 2; + optional uint32 flags = 3; + optional uint32 lane_idx = 4; + } + + optional string from_identity = 8; + optional fixed32 from_connection_id = 9; + optional string to_identity = 10; + optional fixed32 to_connection_id = 1; + optional bytes sdr_routes = 2; + optional uint32 ack_peer_routes_revision = 3; + optional bool ice_enabled = 7; + optional bytes hosted_server_ticket = 14; + optional .CMsgSteamNetworkingP2PRendezvous.ConnectRequest connect_request = 4; + optional .CMsgSteamNetworkingP2PRendezvous.ConnectOK connect_ok = 5; + optional .CMsgSteamNetworkingP2PRendezvous.ConnectionClosed connection_closed = 6; + optional uint32 ack_reliable_msg = 11; + optional uint32 first_reliable_msg = 12; + repeated .CMsgSteamNetworkingP2PRendezvous.ReliableMessage reliable_messages = 13; + repeated .CMsgSteamNetworkingP2PRendezvous.ApplicationMessage application_messages = 15; +} + +message CMsgSteamNetworkingICESessionSummary { + optional uint32 failure_reason_code = 7; + optional uint32 local_candidate_types = 1; + optional uint32 remote_candidate_types = 2; + optional uint32 initial_route_kind = 3; + optional uint32 initial_ping = 4; + optional uint32 initial_score = 6; + optional uint32 negotiation_ms = 5; + optional uint32 best_route_kind = 16; + optional uint32 best_ping = 17; + optional uint32 best_score = 18; + optional uint32 best_time = 19; + optional uint32 selected_seconds = 12; + optional uint32 user_settings = 13; + optional uint32 ice_enable_var = 14; + optional uint32 local_candidate_types_allowed = 15; +} diff --git a/Protobufs/tf2/steamnetworkingsockets_messages_certs.proto b/Protobufs/tf2/steamnetworkingsockets_messages_certs.proto new file mode 100644 index 0000000..4c59f35 --- /dev/null +++ b/Protobufs/tf2/steamnetworkingsockets_messages_certs.proto @@ -0,0 +1,38 @@ +option optimize_for = SPEED; +option cc_generic_services = false; + +message CMsgSteamNetworkingIdentityLegacyBinary { + optional fixed64 steam_id = 16; + optional string xbox_pairwise_id = 17; + optional bytes generic_bytes = 2; + optional string generic_string = 3; + optional bytes ipv6_and_port = 4; +} + +message CMsgSteamDatagramCertificate { + enum EKeyType { + INVALID = 0; + ED25519 = 1; + } + + optional .CMsgSteamDatagramCertificate.EKeyType key_type = 1 [default = INVALID]; + optional bytes key_data = 2; + optional fixed64 legacy_steam_id = 4; + optional .CMsgSteamNetworkingIdentityLegacyBinary legacy_identity_binary = 11; + optional string identity_string = 12; + repeated fixed32 gameserver_datacenter_ids = 5; + optional fixed32 time_created = 8; + optional fixed32 time_expiry = 9; + repeated uint32 app_ids = 10; +} + +message CMsgSteamDatagramCertificateSigned { + optional bytes cert = 4; + optional fixed64 ca_key_id = 5; + optional bytes ca_signature = 6; + optional bytes private_key_data = 1; +} + +message CMsgSteamDatagramCertificateRequest { + optional .CMsgSteamDatagramCertificate cert = 1; +} diff --git a/Protobufs/tf2/steamnetworkingsockets_messages_udp.proto b/Protobufs/tf2/steamnetworkingsockets_messages_udp.proto new file mode 100644 index 0000000..cc50836 --- /dev/null +++ b/Protobufs/tf2/steamnetworkingsockets_messages_udp.proto @@ -0,0 +1,75 @@ +import "steamnetworkingsockets_messages_certs.proto"; +import "steamnetworkingsockets_messages.proto"; + +option optimize_for = SPEED; +option cc_generic_services = false; + +enum ESteamNetworkingUDPMsgID { + k_ESteamNetworkingUDPMsg_ChallengeRequest = 32; + k_ESteamNetworkingUDPMsg_ChallengeReply = 33; + k_ESteamNetworkingUDPMsg_ConnectRequest = 34; + k_ESteamNetworkingUDPMsg_ConnectOK = 35; + k_ESteamNetworkingUDPMsg_ConnectionClosed = 36; + k_ESteamNetworkingUDPMsg_NoConnection = 37; +} + +message CMsgSteamSockets_UDP_ChallengeRequest { + optional fixed32 connection_id = 1; + optional fixed64 my_timestamp = 3; + optional uint32 protocol_version = 4; +} + +message CMsgSteamSockets_UDP_ChallengeReply { + optional fixed32 connection_id = 1; + optional fixed64 challenge = 2; + optional fixed64 your_timestamp = 3; + optional uint32 protocol_version = 4; +} + +message CMsgSteamSockets_UDP_ConnectRequest { + optional fixed32 client_connection_id = 1; + optional fixed64 challenge = 2; + optional fixed64 my_timestamp = 5; + optional uint32 ping_est_ms = 6; + optional .CMsgSteamDatagramSessionCryptInfoSigned crypt = 7; + optional .CMsgSteamDatagramCertificateSigned cert = 4; + optional uint32 legacy_protocol_version = 8; + optional string identity_string = 10; + optional fixed64 legacy_client_steam_id = 3; + optional .CMsgSteamNetworkingIdentityLegacyBinary legacy_identity_binary = 9; +} + +message CMsgSteamSockets_UDP_ConnectOK { + optional fixed32 client_connection_id = 1; + optional fixed32 server_connection_id = 5; + optional fixed64 your_timestamp = 3; + optional uint32 delay_time_usec = 4; + optional .CMsgSteamDatagramSessionCryptInfoSigned crypt = 7; + optional .CMsgSteamDatagramCertificateSigned cert = 8; + optional string identity_string = 11; + optional fixed64 legacy_server_steam_id = 2; + optional .CMsgSteamNetworkingIdentityLegacyBinary legacy_identity_binary = 10; +} + +message CMsgSteamSockets_UDP_ConnectionClosed { + optional fixed32 to_connection_id = 4; + optional fixed32 from_connection_id = 5; + optional string debug = 2; + optional uint32 reason_code = 3; +} + +message CMsgSteamSockets_UDP_NoConnection { + optional fixed32 from_connection_id = 2; + optional fixed32 to_connection_id = 3; +} + +message CMsgSteamSockets_UDP_Stats { + enum Flags { + ACK_REQUEST_E2E = 2; + ACK_REQUEST_IMMEDIATE = 4; + NOT_PRIMARY_TRANSPORT_E2E = 16; + } + + optional .CMsgSteamDatagramConnectionQuality stats = 1; + optional uint32 flags = 3; +} diff --git a/Protobufs/tf2/tf_gcmessages.proto b/Protobufs/tf2/tf_gcmessages.proto new file mode 100644 index 0000000..efe10c8 --- /dev/null +++ b/Protobufs/tf2/tf_gcmessages.proto @@ -0,0 +1,1638 @@ +import "steammessages.proto"; +import "base_gcmessages.proto"; + +option optimize_for = SPEED; +option cc_generic_services = false; + +enum ETFGCMsg { + k_EMsgGCReportWarKill = 5001; + k_EMsgGCKickPlayer_DEPRECATED = 5020; + k_EMsgGCStartedTraining_DEPRECATED = 5021; + k_EMsgGCFreeTrial_ChooseMostHelpfulFriend = 5022; + k_EMsgGCRequestTF2Friends = 5023; + k_EMsgGCRequestTF2FriendsResponse = 5024; + k_EMsgGCReplay_SubmitContestEntry = 5026; + k_EMsgGCReplay_SubmitContestEntryResponse = 5027; + k_EMsgGCSaxxy_Awarded = 5029; + k_EMsgGCFreeTrial_ThankedBySomeone = 5028; + k_EMsgGCFreeTrial_ThankedSomeone = 5030; + k_EMsgGCFreeTrial_ConvertedToPremium = 5031; + k_EMsgGCMeetThePyroSilliness_BananaCraft_DEPRECATED = 5032; + k_EMsgGCMVMARG_HighFiveSuccessResponse_DEPRECATED = 5033; + k_EMsgGCMVMARG_HighFiveOnClient_DEPRECATED = 5034; + k_EMsgGCCoaching_AddToCoaches = 5200; + k_EMsgGCCoaching_AddToCoachesResponse = 5201; + k_EMsgGCCoaching_RemoveFromCoaches = 5202; + k_EMsgGCCoaching_RemoveFromCoachesResponse = 5203; + k_EMsgGCCoaching_FindCoach = 5204; + k_EMsgGCCoaching_FindCoachResponse = 5205; + k_EMsgGCCoaching_AskCoach = 5206; + k_EMsgGCCoaching_AskCoachResponse = 5207; + k_EMsgGCCoaching_CoachJoinGame = 5208; + k_EMsgGCCoaching_CoachJoining = 5209; + k_EMsgGCCoaching_CoachJoined = 5210; + k_EMsgGCCoaching_LikeCurrentCoach = 5211; + k_EMsgGCCoaching_RemoveCurrentCoach = 5212; + k_EMsgGCCoaching_AlreadyRatedCoach = 5213; + k_EMsgGC_Duel_Request = 5500; + k_EMsgGC_Duel_Response = 5501; + k_EMsgGC_Duel_Results = 5502; + k_EMsgGC_Duel_Status = 5503; + k_EMsgGC_Halloween_ReservedItem_DEPRECATED = 5600; + k_EMsgGC_Halloween_GrantItem_DEPRECATED = 5601; + k_EMsgGC_Halloween_GrantItemResponse_DEPRECATED = 5604; + k_EMsgGC_Halloween_Cheat_QueryResponse_DEPRECATED = 5605; + k_EMsgGC_Halloween_ItemClaimed_DEPRECATED = 5606; + k_EMsgGC_Halloween_ReservedItem = 5607; + k_EMsgGC_Halloween_GrantItem = 5608; + k_EMsgGC_Halloween_GrantItemResponse = 5609; + k_EMsgGC_Halloween_Cheat_QueryResponse_DEPRECATED_2 = 5610; + k_EMsgGC_Halloween_ItemClaimed_DEPRECATED_2 = 5611; + k_EMsgGC_Halloween_ServerBossEvent = 5612; + k_EMsgGC_Halloween_Merasmus2012 = 5613; + k_EMsgGC_Halloween_UpdateMerasmusLootLevel = 5614; + k_EMsgGC_GameServer_LevelInfo = 5700; + k_EMsgGC_GameServer_AuthChallenge = 5701; + k_EMsgGC_GameServer_AuthChallengeResponse = 5702; + k_EMsgGC_GameServer_CreateIdentity = 5703; + k_EMsgGC_GameServer_CreateIdentityResponse = 5704; + k_EMsgGC_GameServer_List = 5705; + k_EMsgGC_GameServer_ListResponse = 5706; + k_EMsgGC_GameServer_AuthResult = 5707; + k_EMsgGC_GameServer_ResetIdentity = 5708; + k_EMsgGC_GameServer_ResetIdentityResponse = 5709; + k_EMsgGC_Client_UseServerModificationItem = 5710; + k_EMsgGC_Client_UseServerModificationItem_Response = 5711; + k_EMsgGC_GameServer_UseServerModificationItem = 5712; + k_EMsgGC_GameServer_UseServerModificationItem_Response = 5713; + k_EMsgGC_GameServer_ServerModificationItemExpired = 5714; + k_EMsgGC_GameServer_ModificationItemState = 5715; + k_EMsgGC_GameServer_AckPolicy = 5716; + k_EMsgGC_GameServer_AckPolicyResponse = 5717; + k_EMsgGC_QP_ScoreServers = 5800; + k_EMsgGC_QP_ScoreServersResponse = 5801; + k_EMsgGC_QP_PlayerJoining = 5802; + k_EMsgGC_PickupItemEligibility_Query_DEPRECATED = 6000; + k_EMsgGC_PickupItemEligibility_Query_DEPRECATED_2 = 6001; + k_EMsgGC_IncrementKillCountAttribute_DEPRECATED = 6100; + k_EMsgGC_IncrementKillCountResponse_DEPRECATED = 6101; + k_EMsgGCAbandonCurrentGame = 6235; + k_EMsgForceSOCacheResend = 6237; + k_EMsgGCRequestChatChannelList = 6260; + k_EMsgGCRequestChatChannelListResponse = 6261; + k_EMsgGCReadyUp = 6270; + k_EMsgGCKickedFromMatchmakingQueue = 6271; + k_EMsgGCLeaverDetected = 6272; + k_EMsgGCLeaverDetectedResponse = 6287; + k_EMsgGCExitMatchmaking = 6289; + k_EMsgGCMatchmakingProgress = 6293; + k_EMsgGCMvMVictoryInfo = 6294; + k_EMsgGCGameServerMatchmakingStatus = 6295; + k_EMsgGCMvMVictory = 6297; + k_EMsgGCMvMVictoryReply = 6298; + k_EMsgGCGameServerKickingLobby = 6299; + k_EMsgGCLeaveGameAndPrepareToJoinParty = 6300; + k_EMsgGC_UpdatePeriodicEvent = 6400; + k_EMsgGC_DuckLeaderboard_IndividualUpdate = 6401; + k_EMsgGC_Client2GCEconPreviewDataBlockRequest = 6402; + k_EMsgGC_Client2GCEconPreviewDataBlockResponse = 6403; + k_EMsgGC_ClientVerificationChallenge = 6500; + k_EMsgGC_ClientVerificationChallengeResponse = 6501; + k_EMsgGC_ClientVerificationVerboseResponse = 6502; + k_EMsgGC_ClientSetItemSlotAttribute = 6503; + k_EMsgGC_War_IndividualUpdate = 6505; + k_EMsgGC_War_JoinWar = 6506; + k_EMsgGC_War_RequestGlobalStats = 6507; + k_EMsgGC_War_GlobalStatsResponse = 6508; + k_EMsgGC_WorldItemPlacement_Attribute = 6510; + k_EMsgGC_WorldItemPlacement_Update = 6511; + k_EMsgGC_Match_Result = 6512; + k_EMsgGCVoteKickPlayerRequest = 6513; + k_EMsgGCVoteKickPlayerRequestResponse = 6514; + k_EMsgGC_DailyCompetitiveStatsRollup = 6516; + k_EMsgGC_DailyCompetitiveStatsRollup_Response = 6517; + k_EMsgGC_WorldStatusBroadcast = 6518; + k_EMsgGC_ReportPlayer = 6519; + k_EMsgGC_Match_ResultResponse = 6520; + k_EMsgGCGameServerKickingLobbyResponse = 6521; + k_EMsgGCPlayerLeftMatch = 6522; + k_EMsgGCPlayerLeftMatchResponse = 6523; + k_EMsgGCRequestMatchMakerStats = 6524; + k_EMsgGCMatchMakerStatsResponse = 6525; + k_EMsgGCMatchHistoryLoad = 6526; + k_EMsgGC_AcknowledgeXP = 6527; + k_EMsgGCDataCenterPing_Update = 6528; + k_EMsgGC_NotificationAcknowledge = 6529; + k_EMsgGC_NotificationAcknowledgeReply = 6530; + k_EMsgGC_KickPlayerFromLobby = 6531; + k_EMsgGC_SurveyQuestionRequest = 6534; + k_EMsgGC_SurveyQuestionResponse = 6535; + k_EMsgGC_TFClientInit = 6536; + k_EMsgGC_NewMatchForLobbyRequest = 6537; + k_EMsgGC_NewMatchForLobbyResponse = 6538; + k_EMsgGC_ChangeMatchPlayerTeamsRequest = 6539; + k_EMsgGC_ChangeMatchPlayerTeamsResponse = 6540; + k_EMsgGC_QuestIdentify = 6541; + k_EMsgGC_QuestDevGive = 6542; + k_EMsgGCQuestComplete_Debug = 6544; + k_EMsgGC_QuestMapDebug = 6545; + k_EMsgGC_QuestMapUnlockNode = 6547; + k_EMsgGC_QuestMapPurchaseReward = 6549; + k_EMsgGC_SetDisablePartyQuestProgress = 6550; + k_EMsgGCQuestProgressReport = 6553; + k_EMsgGCParty_SetOptions = 6554; + k_EMsgGCParty_SetOptionsResponse = 6555; + k_EMsgGCParty_QueueForMatch = 6556; + k_EMsgGCParty_QueueForMatchResponse = 6557; + k_EMsgGCParty_RemoveFromQueue = 6558; + k_EMsgGCParty_RemoveFromQueueResponse = 6559; + k_EMsgGCParty_InvitePlayer = 6560; + k_EMsgGCParty_RequestJoinPlayer = 6561; + k_EMsgGCParty_SendChat = 6562; + k_EMsgGCParty_ChatMsg = 6563; + k_EMsgGCQuestNodeTurnIn = 6564; + k_EMsgGCConsumePaintKit = 6565; + k_EMsgGC_Painkit_DevGrant = 6566; + k_EMsgGCParty_QueueForStandby = 6567; + k_EMsgGCParty_QueueForStandbyResponse = 6568; + k_EMsgGCParty_RemoveFromStandbyQueue = 6569; + k_EMsgGCParty_RemoveFromStandbyQueueResponse = 6570; + k_EMsgGCParty_ClearPendingPlayer = 6571; + k_EMsgGCParty_ClearPendingPlayerResponse = 6572; + k_EMsgGCParty_ClearOtherPartyRequest = 6573; + k_EMsgGCParty_ClearOtherPartyRequestResponse = 6574; + k_EMsgGCParty_PromoteToLeader = 6575; + k_EMsgGCParty_KickMember = 6576; + k_EMsgGCQuestStrangeEvent = 6577; + k_EMsgGC_AcceptLobbyInvite = 6578; + k_EMsgGC_AcceptLobbyInviteReply = 6579; + k_EMsgGC_SDRTicket = 6580; + k_EMsgGC_ProcessMatchVoteKick = 6581; + k_EMsgGC_ProcessMatchVoteKickResponse = 6582; + k_EMsgGCToGC_SendAccountBannedNotifications = 6584; + k_EMsgGCToGC_SendNotification = 6585; + k_EMsgGCDev_GrantWarKill = 10001; +} + +enum EServerModificationItemType { + kGameServerModificationItem_Halloween = 1; +} + +enum ETFSyncedMMMenuStep { + k_eTFSyncedMMMenuStep_Invalid = -1; + k_eTFSyncedMMMenuStep_None = 0; + k_eTFSyncedMMMenuStep_Configuring_Mode = 1; + k_eTFSyncedMMMenuStep_MvM_Selecting_Mode = 2; + k_eTFSyncedMMMenuStep_MvM_Selecting_Tour = 3; + k_eTFSyncedMMMenuStep_MvM_Selecting_Missions = 4; +} + +enum ETFMatchGroup { + option allow_alias = true; + k_eTFMatchGroup_Invalid = -1; + k_eTFMatchGroup_MvM_Practice = 0; + k_eTFMatchGroup_MvM_MannUp = 1; + k_eTFMatchGroup_First = 0; + k_eTFMatchGroup_MvM_Default = 0; + k_eTFMatchGroup_MvM_First = 0; + k_eTFMatchGroup_MvM_Last = 1; + k_eTFMatchGroup_Ladder_6v6 = 2; + k_eTFMatchGroup_Ladder_9v9 = 3; + k_eTFMatchGroup_Ladder_12v12 = 4; + k_eTFMatchGroup_Ladder_Default = 2; + k_eTFMatchGroup_Ladder_First = 2; + k_eTFMatchGroup_Ladder_Last = 4; + k_eTFMatchGroup_Casual_6v6 = 5; + k_eTFMatchGroup_Casual_9v9 = 6; + k_eTFMatchGroup_Casual_12v12 = 7; + k_eTFMatchGroup_Casual_Default = 7; + k_eTFMatchGroup_Casual_First = 5; + k_eTFMatchGroup_Casual_Last = 7; + k_eTFMatchGroup_Event_Placeholder = 8; + k_eTFMatchGroup_Event_Default = 8; + k_eTFMatchGroup_Event_First = 8; + k_eTFMatchGroup_Event_Last = 8; +} + +enum ETFPartyChatType { + k_eTFPartyChatType_Invalid = 0; + k_eTFPartyChatType_MemberChat = 1; + k_eTFPartyChatType_Synthetic_MemberJoin = 1000; + k_eTFPartyChatType_Synthetic_MemberLeave = 1001; + k_eTFPartyChatType_Synthetic_SendFailed = 1002; + k_eTFPartyChatType_Synthetic_MemberOnline = 1003; + k_eTFPartyChatType_Synthetic_MemberOffline = 1004; +} + +enum TF_GC_GameState { + TF_GC_GAMESTATE_STATE_INIT = 0; + TF_GC_GAMESTATE_WAIT_FOR_PLAYERS_TO_LOAD = 1; + TF_GC_GAMESTATE_STRATEGY_TIME = 3; + TF_GC_GAMESTATE_GAME_IN_PROGRESS = 5; + TF_GC_GAMESTATE_POST_GAME = 6; + TF_GC_GAMESTATE_DISCONNECT = 7; + TF_GC_GAMESTATE_LAST = 8; +} + +enum TF_GC_TEAM { + TF_GC_TEAM_DEFENDERS = 0; + TF_GC_TEAM_INVADERS = 1; + TF_GC_TEAM_BROADCASTER = 2; + TF_GC_TEAM_SPECTATOR = 3; + TF_GC_TEAM_PLAYER_POOL = 4; + TF_GC_TEAM_NOTEAM = 5; +} + +enum TFMatchLeaveReason { + TFMatchLeaveReason_UNSPECIFIED = 0; + TFMatchLeaveReason_VOTE_KICK = 1; + TFMatchLeaveReason_IDLE = 2; + TFMatchLeaveReason_ADMIN_KICK = 3; + TFMatchLeaveReason_AWOL = 4; + TFMatchLeaveReason_NO_SHOW = 5; + TFMatchLeaveReason_GC_REMOVED = 6; +} + +enum TFVoteKickReason { + TFVoteKickReason_Invalid = -1; + TFVoteKickReason_Other = 0; + TFVoteKickReason_Cheating = 1; + TFVoteKickReason_Idle = 2; + TFVoteKickReason_Scamming = 3; +} + +enum ServerMatchmakingState { + ServerMatchmakingState_INVALID = 0; + ServerMatchmakingState_NOT_PARTICIPATING = 1; + ServerMatchmakingState_EMPTY = 2; + ServerMatchmakingState_ACTIVE_MATCH_REQUESTING_LATE_JOIN = 3; + ServerMatchmakingState_ACTIVE_MATCH = 4; +} + +enum SurveyQuestionType { + QUESTION_MATCH_QUALITY = 0; + QUESTION_MAP_QUALITY = 1; + QUESTION_COMP_INQUIRY = 2; + QUESTION_CASUAL_INQUIRY = 3; + QUESTION_RANDOM_CRIT = 4; +} + +message CMsgTFGoldenWrenchBroadcast { + optional int32 wrench_number = 1; + optional bool deleted = 2; + optional string user_name = 3; +} + +message CMsgTFSaxxyBroadcast { + optional int32 category_number = 1; + optional string user_name = 2; +} + +message CMsgGCTFSpecificItemBroadcast { + optional uint32 item_def_index = 1; + optional bool was_destruction = 2; + optional string user_name = 3; +} + +message CMsgTFWorldStatus { + optional bool beta_stress_test_event_active = 1 [default = false]; + optional .ETFMatchGroup event_match_group = 2 [default = k_eTFMatchGroup_Invalid]; + optional fixed32 event_expire_time = 3 [default = 0]; + optional uint32 active_client_version = 4; + repeated .ETFMatchGroup disabled_match_groups = 5; +} + +message CSOTFDuelSummary { + optional uint32 account_id = 1 [(key_field) = true]; + optional uint32 duel_wins = 2; + optional uint32 duel_losses = 3; + optional uint32 last_duel_account_id = 4; + optional uint32 last_duel_timestamp = 5; + optional uint32 last_duel_status = 6; +} + +message CSOTFMapContribution { + optional uint32 account_id = 1 [(key_field) = true]; + optional uint32 def_index = 2 [(key_field) = true]; + optional uint32 contribution_level = 3; +} + +message CMsgTFFreeTrialChooseMostHelpfulFriend { + optional uint32 account_id_friend = 1; +} + +message CMsgTFRequestTF2Friends { + repeated uint32 account_ids = 1; +} + +message CMsgTFRequestTF2FriendsResponse { + repeated uint32 account_ids = 1; +} + +message CSOTFPlayerInfo { + optional uint32 num_new_users_helped = 1; +} + +message CMsgTFThankedBySomeone { + optional uint64 thanker_steam_id = 1; +} + +message CMsgTFThankedSomeone { +} + +message CMsgTFFreeTrialConvertedToPremium { +} + +message CMsgSaxxyAwarded { + optional uint32 category = 1; + repeated string winner_names = 2; +} + +message CMsgReplaySubmitContestEntry { + optional string youtube_url = 1; + optional uint32 category = 2; +} + +message CMsgReplaySubmitContestEntryResponse { + optional bool success = 1; +} + +message CReplayCachedContestData { + optional fixed32 timestamp = 1; + optional uint32 num_votes_last_day = 2; + repeated uint32 video_entry_ids = 3; + optional uint32 num_flags_last_day = 4; +} + +message CMsgTFCoaching_AddToCoaches { +} + +message CMsgTFCoaching_RemoveFromCoaches { +} + +message CMsgTFCoaching_FindCoach { + optional uint32 account_id_friend_as_coach = 1; +} + +message CMsgTFCoaching_FindCoachResponse { + optional bool found_coach = 1; + optional uint32 num_likes = 2; + optional string coach_name = 3; +} + +message CMsgTFCoaching_AskCoach { + optional uint32 account_id_student = 1; + optional bool student_is_friend = 2; +} + +message CMsgTFCoaching_AskCoachResponse { + optional bool accept_coaching_assignment = 1; +} + +message CMsgTFCoaching_CoachJoinGame { + optional bool join_game = 1; + optional uint32 server_address = 2; + optional uint32 server_port = 3; + optional uint32 account_id_student = 4; +} + +message CMsgTFCoaching_CoachJoining { + optional uint32 account_id_coach = 1; + optional uint32 account_id_student = 2; +} + +message CMsgTFCoaching_CoachJoined { + optional uint32 account_id_coach = 1; +} + +message CMsgTFCoaching_LikeCurrentCoach { + optional bool like_coach = 1; +} + +message CMsgTFCoaching_RemoveCurrentCoach { + optional uint32 account_id_coach = 1; +} + +message CMsgTFQuickplay_ScoreServers { + message ServerInfo { + optional uint32 server_address = 1; + optional uint32 server_port = 2; + optional uint32 num_users = 3; + optional uint64 steam_id = 4; + optional uint32 max_users = 5; + optional float user_score = 6; + } + + repeated .CMsgTFQuickplay_ScoreServers.ServerInfo servers = 1; +} + +message CMsgTFQuickplay_ScoreServersResponse { + message ServerInfo { + optional uint32 server_address = 1; + optional uint32 server_port = 2; + optional float total_score = 3; + optional uint64 steam_id = 4; + optional uint32 options_score = 5; + } + + repeated .CMsgTFQuickplay_ScoreServersResponse.ServerInfo servers = 1; +} + +message CMsgTFQuickplay_PlayerJoining { + optional uint32 account_id = 1; +} + +message CMsgGC_GameServer_LevelInfo { + optional bool level_loaded = 1; + optional string level_name = 2; +} + +message CMsgGC_GameServer_AuthChallenge { + optional string challenge_string = 1; +} + +message CMsgGC_GameServer_AuthResult { + optional bool authenticated = 1; + optional int32 game_server_standing = 2; + optional int32 game_server_standing_trend = 3; + optional bool is_valve_server = 4; + optional string message = 5; +} + +message CMsgGC_GameServer_AuthChallengeResponse { + optional uint32 game_server_account_id = 1; + optional bytes hashed_challenge_string = 2; +} + +message CMsgGC_GameServer_CreateIdentity { + optional uint32 account_id = 1; +} + +message CMsgGC_GameServer_CreateIdentityResponse { + enum EStatus { + kStatus_GenericFailure = 0; + kStatus_TooMany = -1; + kStatus_NoPrivs = -2; + kStatus_Created = 1; + } + + optional bool account_created = 1; + optional uint32 game_server_account_id = 2; + optional string game_server_identity_token = 3; + optional .CMsgGC_GameServer_CreateIdentityResponse.EStatus status = 4 [default = kStatus_GenericFailure]; +} + +message CMsgGC_GameServer_List { + optional uint32 account_id = 1; +} + +message CMsgGC_GameServer_ListResponse { + message GameServerIdentity { + optional uint32 game_server_account_id = 1; + optional string game_server_identity_token = 2; + optional int32 game_server_standing = 3; + optional int32 game_server_standing_trend = 4; + } + + repeated .CMsgGC_GameServer_ListResponse.GameServerIdentity owned_game_servers = 1; +} + +message CMsgGC_GameServer_ResetIdentity { + optional uint32 game_server_account_id = 1; +} + +message CMsgGC_GameServer_ResetIdentityResponse { + optional bool game_server_identity_token_reset = 1; + optional uint32 game_server_account_id = 2; + optional string game_server_identity_token = 3; +} + +message CMsgGC_GameServer_AckPolicy { +} + +message CMsgGC_GameServer_AckPolicyResponse { + optional uint32 result = 1; + optional string message = 2; +} + +message CMsgGC_Client_UseServerModificationItem { + optional uint64 item_id = 1; +} + +message CMsgGC_Client_UseServerModificationItem_Response { + enum EServerModificationItemResponse { + kServerModificationItemResponse_AlreadyInUse = 1; + kServerModificationItemResponse_NotOnAuthenticatedServer = 2; + kServerModificationItemResponse_ServerReject = 3; + kServerModificationItemResponse_InternalError = 4; + kServerModificationItemResponse_EventAlreadyActive = 5; + } + + optional .CMsgGC_Client_UseServerModificationItem_Response.EServerModificationItemResponse response_code = 1 [default = kServerModificationItemResponse_AlreadyInUse]; +} + +message CMsgGC_GameServer_UseServerModificationItem { + optional .EServerModificationItemType modification_type = 1 [default = kGameServerModificationItem_Halloween]; +} + +message CMsgGC_GameServer_UseServerModificationItem_Response { + enum EServerModificationItemServerResponse { + kServerModificationItemServerResponse_Accepted = 1; + kServerModificationItemServerResponse_NoVoteCalled = 2; + kServerModificationItemServerResponse_VoteFailed = 3; + } + + optional .EServerModificationItemType modification_type = 1 [default = kGameServerModificationItem_Halloween]; + optional .CMsgGC_GameServer_UseServerModificationItem_Response.EServerModificationItemServerResponse server_response_code = 2 [default = kServerModificationItemServerResponse_Accepted]; +} + +message CMsgGC_GameServer_ServerModificationItemExpired { + optional .EServerModificationItemType modification_type = 1 [default = kGameServerModificationItem_Halloween]; +} + +message CMsgGC_GameServer_ServerModificationItem { + optional .EServerModificationItemType modification_type = 1 [default = kGameServerModificationItem_Halloween]; + optional bool active = 2; +} + +message CMsgGC_Halloween_ReservedItem { + repeated float x = 1; + repeated float y = 2; + repeated float z = 3; + optional uint32 spawn_meta_info = 7; +} + +message CMsgGC_Halloween_GrantItem { + optional uint32 recipient_account_id = 1; + optional uint32 level_id = 2; + optional bool flagged = 3; +} + +message CMsgGC_Halloween_GrantItemResponse { + optional uint32 recipient_account_id = 1; +} + +message CMsgGC_Halloween_ItemClaimed { +} + +message CMsgGC_PickupItemEligibility_Query { + optional uint32 account_id = 1; + optional uint32 seconds_ago = 2; +} + +message CMsgGC_PickupItemEligibility_QueryResponse { + optional uint32 account_id = 1; + optional bool was_eligible = 2; + optional uint32 level_id = 3; +} + +message CSOTFPartyMember { + message Activity { + optional fixed64 lobby_id = 1; + optional .ETFMatchGroup lobby_match_group = 2 [default = k_eTFMatchGroup_Invalid]; + optional bool multiqueue_blocked = 3; + optional bool online = 4; + optional uint32 client_version = 5; + } + + optional bool owns_ticket = 2; + optional uint32 completed_missions = 3; + optional uint32 badge_level = 4; + optional bool competitive_access = 9; + optional uint32 experience = 14; + optional .CTFPerPlayerMatchCriteriaProto player_criteria = 16; + optional .CSOTFPartyMember.Activity activity = 17; + optional bool casual_banned = 18; + optional bool ranked_banned = 19; + optional bool casual_low_priority = 20; + optional bool ranked_low_priority = 21; + optional bool lobby_standby = 22; +} + +message TFPendingPartyMember { + enum EType { + Invited = 0; + RequestedToJoin = 1; + } + + optional fixed64 steamid = 1; + optional .TFPendingPartyMember.EType type = 2 [default = Invited]; + optional fixed64 inviter = 3; +} + +message TFSyncedMMUIState { + optional .ETFSyncedMMMenuStep menu_step = 1 [default = k_eTFSyncedMMMenuStep_None]; + optional .ETFMatchGroup match_group = 2 [default = k_eTFMatchGroup_Invalid]; +} + +message CTFGroupMatchCriteriaProto { + optional bool late_join_ok = 5; + optional uint32 custom_ping_tolerance = 13 [default = 0]; + optional string mvm_mannup_tour = 10; + repeated string mvm_mannup_missions = 15; + repeated string mvm_bootcamp_missions = 16; + optional .CTFCasualMatchCriteria casual_criteria = 12; +} + +message CTFCasualMatchCriteria { + repeated fixed32 selected_maps_bits = 3; +} + +message CTFPerPlayerMatchCriteriaProto { + optional bool mvm_squad_surplus = 1; +} + +message CTFPartyOptions { + optional bool overwrite_existing = 1; + optional .CTFGroupMatchCriteriaProto group_criteria = 2; + optional .CTFPerPlayerMatchCriteriaProto player_criteria = 3; + optional .TFSyncedMMUIState player_uistate = 5; +} + +message CMsgPartySetOptions { + optional fixed64 party_id = 1; + optional .CTFPartyOptions options = 2; +} + +message CMsgPartySetOptionsResponse { +} + +message CMsgPartyQueueForMatch { + optional fixed64 party_id = 1; + optional .CTFPartyOptions final_options = 2; + optional .ETFMatchGroup match_group = 3 [default = k_eTFMatchGroup_Invalid]; +} + +message CMsgPartyQueueForMatchResponse { +} + +message CMsgPartyQueueForStandby { + optional fixed64 party_id = 1; + optional fixed64 party_lobby_id = 2; +} + +message CMsgPartyQueueForStandbyResponse { +} + +message CMsgPartyRemoveFromQueue { + optional fixed64 party_id = 1; + optional .ETFMatchGroup match_group = 2 [default = k_eTFMatchGroup_Invalid]; +} + +message CMsgPartyRemoveFromQueueResponse { +} + +message CMsgPartyRemoveFromStandbyQueue { + optional fixed64 party_id = 1; +} + +message CMsgPartyRemoveFromStandbyQueueResponse { +} + +message CMsgPartyInvitePlayer { + optional fixed64 party_id = 1; + optional fixed64 player_id = 2; + optional bool expecting_request_to_join = 3; +} + +message CMsgPartyRequestJoinPlayer { + optional fixed64 current_party_id = 1; + optional fixed64 join_player_id = 2; + optional fixed64 join_party_id = 3; + optional bool expecting_invite = 4; +} + +message CMsgPartyClearPendingPlayer { + optional fixed64 party_id = 1; + optional fixed64 pending_player_id = 2; +} + +message CMsgPartyClearPendingPlayerResponse { +} + +message CMsgPartyClearOtherPartyRequest { + optional fixed64 other_party_id = 1; +} + +message CMsgPartyClearOtherPartyRequestResponse { +} + +message CMsgPartyPromoteToLeader { + optional fixed64 party_id = 1; + optional fixed64 new_leader_id = 2; +} + +message CMsgPartyKickMember { + optional fixed64 party_id = 1; + optional fixed64 target_id = 2; +} + +message CMsgPartySendChat { + optional fixed64 party_id = 1; + optional string msg = 2; +} + +message CMsgPartyChatMsg { + optional .ETFPartyChatType type = 1 [default = k_eTFPartyChatType_Invalid]; + optional fixed64 actor_id = 2; + optional string msg = 3; +} + +message CSOTFParty { + message QueueEntry { + optional .ETFMatchGroup match_group = 1 [default = k_eTFMatchGroup_Invalid]; + optional fixed32 queued_time = 2; + } + + optional uint64 party_id = 1 [(key_field) = true]; + optional fixed64 leader_id = 2; + repeated fixed64 member_ids = 3; + repeated .CSOTFPartyMember members = 13; + optional uint64 associated_lobby_id = 35; + optional .ETFMatchGroup associated_lobby_match_group = 40 [default = k_eTFMatchGroup_Invalid]; + repeated .CSOTFParty.QueueEntry matchmaking_queues = 43; + optional .CTFGroupMatchCriteriaProto group_criteria = 37; + optional uint32 casual_banned_time = 18; + optional uint32 casual_low_priority_time = 20; + optional uint32 ranked_banned_time = 41; + optional uint32 ranked_low_priority_time = 42; + optional .TFSyncedMMUIState leader_ui_state = 44; + repeated .TFPendingPartyMember pending_members = 39; +} + +message CSOTFPartyInvite { + message PartyMember { + optional fixed64 steamid = 2; + } + + enum Type { + PENDING_INVITE = 1; + PENDING_JOIN_REQUEST = 2; + } + + optional uint64 group_id = 1 [(key_field) = true]; + optional fixed64 inviter = 2; + repeated .CSOTFPartyInvite.PartyMember members = 4; + optional .CSOTFPartyInvite.Type type = 5 [default = PENDING_INVITE]; +} + +message CTFLobbyPlayerProto { + enum ConnectState { + INVALID = 0; + RESERVATION_PENDING = 1; + RESERVED = 2; + CONNECTED = 3; + DISCONNECTED = 5; + } + + enum Type { + INVALID_PLAYER = 0; + MATCH_PLAYER = 1; + STANDBY_PLAYER = 2; + OBSERVING_PLAYER = 3; + } + + optional fixed64 id = 1 [(key_field) = true]; + optional .TF_GC_TEAM team = 3 [default = TF_GC_TEAM_DEFENDERS]; + optional .CTFLobbyPlayerProto.ConnectState connect_state = 13 [default = INVALID]; + optional string name = 6; + optional uint64 original_party_id = 12; + optional bool squad_surplus = 14; + optional uint32 badge_level = 15; + optional uint32 last_connect_time = 17; + optional .CTFLobbyPlayerProto.Type type = 19 [default = INVALID_PLAYER]; + optional double normalized_rating = 20; + optional double normalized_uncertainty = 22; + optional uint32 rank = 21; + optional bool chat_suspension = 23; +} + +message CTFLobbyInviteProto { + optional fixed64 lobby_id = 1 [(key_field) = true]; + optional .ETFMatchGroup match_group = 2 [default = k_eTFMatchGroup_Invalid]; +} + +message CSOTFGameServerLobby { + enum State { + UNKNOWN = 0; + SERVERSETUP = 1; + RUN = 2; + } + + enum WarMatch { + NOPE = 0; + INVADERS_ARE_PYRO = 1; + INVADERS_ARE_HEAVY = 2; + } + + optional uint64 lobby_id = 1 [(key_field) = true]; + repeated .CTFLobbyPlayerProto members = 2; + optional fixed64 server_id = 6 [default = 0]; + optional .CSOTFGameServerLobby.State state = 4 [default = UNKNOWN]; + optional string connect = 5; + optional .TF_GC_GameState game_state = 22 [default = TF_GC_GAMESTATE_STATE_INIT]; + optional double initial_average_mm_rating = 32; + optional string mannup_tour_name = 42; + optional string map_name = 38; + optional string mission_name = 39; + optional uint32 match_group = 41; + optional uint64 match_id = 30 [default = 0]; + optional uint32 formed_time = 36; + optional uint32 flags = 43; + optional bool late_join_eligible = 44; + optional uint32 fixed_match_size = 45; + optional .CSOTFGameServerLobby.WarMatch is_war_match = 46 [default = NOPE]; + repeated uint32 next_maps_for_vote = 47; + optional uint32 lobby_mm_version = 48; + repeated .CTFLobbyPlayerProto pending_members = 49; +} + +message CMsgExitMatchmaking { + optional bool explicit_abandon = 1; + optional uint64 party_id = 2; + optional uint64 lobby_id = 3; +} + +message CMsgAcceptLobbyInvite { + optional uint64 invited_lobby_id = 1; + optional uint64 abandoning_match_id = 2; + repeated uint64 abandoning_invite_lobby_ids = 3; +} + +message CMsgAcceptLobbyInviteReply { +} + +message CMsgMatchmakingSearchCountRequest { +} + +message CMsgMatchmakingSearchCountResponse { + repeated uint32 searching_players_by_group = 1; +} + +message CMsgKickedFromMatchmakingQueue { +} + +message CMsgGameServerMatchmakingStatus { + message Player { + optional fixed64 steam_id = 1; + optional .CMsgGameServerMatchmakingStatus.PlayerConnectState connect_state = 2 [default = INVALID]; + } + + enum PlayerConnectState { + INVALID = 0; + CONNECTED = 1; + RESERVED = 2; + } + + enum Event { + None = 0; + MvMVictory = 1; + MvMDefeat = 2; + AcknowledgePlayers = 3; + } + + optional uint32 server_version = 16 [default = 1225]; + optional .ServerMatchmakingState matchmaking_state = 1 [default = ServerMatchmakingState_INVALID]; + optional string map = 3; + optional string tags = 4; + optional uint32 bot_count = 5; + optional uint32 num_spectators = 6; + optional uint32 max_players = 7; + optional uint32 slots_free = 8; + optional uint32 server_region = 9; + optional float server_loadavg = 10; + optional bool server_trusted = 11; + optional bool server_dedicated = 12; + optional uint32 strict = 17; + optional string fake_ip = 25; + repeated .CMsgGameServerMatchmakingStatus.Player players = 13; + optional .TF_GC_GameState game_state = 14 [default = TF_GC_GAMESTATE_STATE_INIT]; + optional .CMsgGameServerMatchmakingStatus.Event event = 15 [default = None]; + optional uint32 mvm_wave = 18; + optional uint32 mvm_credits_acquired = 19; + optional uint32 mvm_credits_dropped = 20; + optional sint32 match_group = 23 [default = -1]; + optional uint32 lobby_mm_version = 24; +} + +message CMsgMatchmakingProgress { + optional uint32 avg_wait_time_new = 4; + optional uint32 avg_wait_time_join_late = 5; + optional uint32 your_wait_time = 6; + optional uint32 matching_worldwide_searching_players = 8; + optional uint32 matching_near_you_searching_players = 9; + optional uint32 total_worldwide_searching_players = 13; + optional uint32 total_near_you_searching_players = 14; + optional uint32 matching_worldwide_active_players = 15; + optional uint32 matching_near_you_active_players = 16; + optional uint32 total_worldwide_active_players = 17; + optional uint32 total_near_you_active_players = 18; + optional uint32 matching_worldwide_empty_gameservers = 19; + optional uint32 matching_near_you_empty_gameservers = 20; + optional uint32 total_worldwide_empty_gameservers = 21; + optional uint32 total_near_you_empty_gameservers = 22; + optional uint32 urgency_pct = 1; +} + +message CMsgMvMVictoryInfo { + message Item { + optional .CMsgMvMVictoryInfo.GrantReason grant_reason = 1 [default = INVALID]; + optional bytes item_data = 2; + optional fixed64 squad_surplus_claimer_steam_id = 3; + } + + message Player { + optional fixed64 steam_id = 1; + optional bool badge_granted = 3; + optional bool badge_progress_updated = 4; + optional bool badge_leveled = 5; + optional uint32 badge_level = 6; + optional uint32 badge_progress_bits = 7; + repeated .CMsgMvMVictoryInfo.Item items = 8; + optional bool voucher_missing = 9; + optional uint32 badge_points = 10; + } + + enum GrantReason { + INVALID = 0; + BADGE_LEVELED = 1; + SQUAD_SURPLUS = 2; + MANN_UP = 3; + HELP_A_NOOB = 4; + } + + repeated .CMsgMvMVictoryInfo.Player players = 1; + optional string tour_name = 2; + optional string mission_name = 3; +} + +message CGCMsgTFHelloResponse { + optional uint32 version_check = 1; + repeated uint64 version_checksum = 2; + optional uint32 version_verbose = 3; +} + +message CGCMsgTFSync { + optional bytes version_checksum = 1; + optional uint32 version_check = 2; + optional uint32 version_check_ex = 3; + optional uint32 version_check_ex2 = 4; + optional bytes version_checksum_ex = 5; +} + +message CGCMsgTFSyncEx { + optional string version_checksum = 1; + optional bytes version_checksum_ex = 2; + optional uint32 version_check = 3; +} + +message CMsgMvMVictory { + message Player { + optional fixed64 steam_id = 1; + optional bool squad_surplus = 2; + } + + optional uint32 legacy_mission_index = 1; + optional string tour_name_mannup = 5; + optional string mission_name = 6; + repeated .CMsgMvMVictory.Player players = 2; + optional uint64 lobby_id = 3; + optional fixed32 event_time = 4; +} + +message CMsgMvMMannUpVictoryReply { +} + +message CMsgGameServerKickingLobby { + optional uint64 lobby_id = 3; + optional uint64 match_id = 4; +} + +message CMsgGameServerKickingLobbyResponse { +} + +message CMsgLeaveGameAndPrepareToJoinParty { + optional fixed64 party_id = 1; +} + +message CMsgPlayerLeftMatch { + optional fixed64 steam_id = 1; + optional .TFMatchLeaveReason leave_reason = 2 [default = TFMatchLeaveReason_UNSPECIFIED]; + optional bool was_abandon = 3; + optional uint64 lobby_id = 4; + optional uint64 match_id = 5; + repeated .CMsgTFXPSource xp_breakdown = 6; +} + +message CMsgPlayerLeftMatchResponse { +} + +message CMsgProcessMatchVoteKick { + message Vote { + optional fixed64 steam_id = 1; + optional bool vote_yay = 2; + } + + optional fixed64 match_id = 1; + optional fixed64 initiator_steam_id = 2; + optional fixed64 target_steam_id = 3; + optional .TFVoteKickReason reason = 4 [default = TFVoteKickReason_Invalid]; + repeated .CMsgProcessMatchVoteKick.Vote votes = 5; + optional bool default_pass = 6; +} + +message CMsgProcessMatchVoteKickResponse { + optional bool rip = 1; +} + +message CMsgHalloween_ServerBossEvent { + optional uint32 event_counter = 1; + optional uint32 timestamp = 2; + optional uint32 boss_type = 3; + optional uint32 boss_level = 4; + optional uint32 event_type = 5; + optional uint32 players_involved = 6; + optional float elapsed_time = 7; +} + +message CMsgHalloween_Merasmus2012 { + optional uint32 event_counter = 1; + optional fixed32 time_submitted = 2; + optional bool is_valve_server = 3; + optional uint32 boss_level = 4; + optional uint32 spawned_health = 5; + optional uint32 remaining_health = 6; + optional uint32 life_time = 7; + optional uint32 bomb_kills = 8; + optional uint32 staff_kills = 9; + optional uint32 pvp_kills = 10; + optional uint32 prophunt_time1 = 11; + optional uint32 prophunt_time2 = 12; + optional uint32 dmg_scout = 13; + optional uint32 dmg_sniper = 14; + optional uint32 dmg_soldier = 15; + optional uint32 dmg_demo = 16; + optional uint32 dmg_medic = 17; + optional uint32 dmg_heavy = 18; + optional uint32 dmg_pyro = 19; + optional uint32 dmg_spy = 20; + optional uint32 dmg_engineer = 21; + optional uint32 scout_count = 22; + optional uint32 sniper_count = 23; + optional uint32 solider_count = 24; + optional uint32 demo_count = 25; + optional uint32 medic_count = 26; + optional uint32 heavy_count = 27; + optional uint32 pyro_count = 28; + optional uint32 spy_count = 29; + optional uint32 engineer_count = 30; +} + +message CMsgUpdateHalloweenMerasmusLootLevel { + message Player { + optional fixed64 steam_id = 1; + } + + repeated .CMsgUpdateHalloweenMerasmusLootLevel.Player players = 1; + optional uint32 merasmus_level = 2; +} + +message CAttribute_String { + optional string value = 1; +} + +message CAttribute_DynamicRecipeComponent { + optional uint32 def_index = 1; + optional uint32 item_quality = 2; + optional uint32 component_flags = 3; + optional string attributes_string = 4; + optional uint32 num_required = 5; + optional uint32 num_fulfilled = 6; +} + +message CAttribute_DynamicRecipeComponent_COMPAT_NEVER_SERIALIZE_THIS_OUT { + optional uint32 def_index = 1; + optional uint32 item_def = 2; + optional uint32 item_quality = 3; + optional uint32 component_flags = 4; + optional uint32 item_flags = 5; + optional string attributes_string = 6; + optional uint32 num_required = 7; + optional uint32 item_count = 8; + optional uint32 num_fulfilled = 9; + optional uint32 items_fulfilled = 10; +} + +message CAttribute_ItemSlotCriteria { + optional string tags = 1; +} + +message CMsgSetItemSlotAttribute { + optional uint64 item_id = 1; + optional uint64 slot_item_original_id = 2; + optional uint32 slot_index = 3; +} + +message CSOWarData { + optional uint32 account_id = 1 [(key_field) = true]; + optional uint32 war_id = 2 [(key_field) = true]; + optional uint32 affiliation = 3; + optional uint32 points_scored = 4; +} + +message CGCMsgGC_War_IndividualUpdate { + optional fixed64 steam_id = 1; + optional uint32 war_id = 2; + optional uint32 score = 3; +} + +message CGCMsgGC_War_JoinWar { + optional uint32 affiliation = 1; + optional uint32 war_id = 2; +} + +message CGCMsgGC_War_RequestGlobalStats { + optional uint32 war_id = 1; +} + +message CGCMsgGC_War_GlobalStatsResponse { + message SideScore { + optional uint32 side = 1; + optional uint64 score = 2; + } + + repeated .CGCMsgGC_War_GlobalStatsResponse.SideScore side_scores = 1; + optional uint32 war_id = 2; +} + +message CGCMsgGC_PlayerDuckLeaderboard_IndividualUpdate { + optional uint32 score = 2; + optional uint32 type = 3; + optional bytes score_id = 4; + optional uint32 score_check = 5; +} + +message CAttribute_WorldItemPlacement { + optional uint64 original_item_id = 1; + optional float pos_x = 2; + optional float pos_y = 3; + optional float pos_z = 4; + optional float ang_x = 5; + optional float ang_y = 6; + optional float ang_z = 7; +} + +message CGCMsg_WorldItemPlacement_Update { + optional uint64 original_item_id = 1; + optional float pos_x = 2; + optional float pos_y = 3; + optional float pos_z = 4; + optional float ang_x = 5; + optional float ang_y = 6; + optional float ang_z = 7; + optional bool force_remove_all = 8; + optional string attrib_name = 9; +} + +message CMsgAcknowledgeXP { + optional int32 match_group = 1; + optional uint32 predicted_experience = 2; +} + +message CMsgTFXPSource { + enum XPSourceType { + SOURCE_SCORE = 0; + SOURCE_OBJECTIVE_BONUS = 1; + SOURCE_COMPLETED_MATCH = 2; + SOURCE_COMPETITIVE_ABANDON = 3; + SOURCE_COMPETITIVE_WIN = 4; + SOURCE_COMPETITIVE_LOSS = 5; + SOURCE_AUTOBALANCE_BONUS = 6; + SOURCE_PRESTIGE_BONUS = 7; + } + + optional .CMsgTFXPSource.XPSourceType type = 1 [default = SOURCE_SCORE, (key_field) = true]; + optional int32 amount = 2; + optional int32 match_group = 3; + optional uint32 account_id = 4 [(key_field) = true]; + optional uint64 match_id = 5 [(key_field) = true]; +} + +message CMsgTFXPSourceBreakdown { + repeated .CMsgTFXPSource sources = 1; +} + +message CMsgTFClientInit { + optional uint32 client_version = 1; + optional int32 language = 2; +} + +message CMsgGCNotification { + enum NotificationType { + NOTIFICATION_REPORTED_PLAYER_BANNED = 0; + NOTIFICATION_CUSTOM_STRING = 1; + NOTIFICATION_MM_BAN_DUE_TO_EXCESSIVE_REPORTS = 2; + NOTIFICATION_REPORTED_PLAYER_WAS_BANNED = 3; + NOTIFICATION_SUPPORT_MESSAGE = 4; + NOTIFICATION_NUM_TYPES = 5; + } + + optional uint64 notification_id = 1 [(key_field) = true]; + optional uint32 account_id = 2; + optional fixed32 expiration_time = 3; + optional .CMsgGCNotification.NotificationType type = 4 [default = NOTIFICATION_CUSTOM_STRING]; + optional string notification_string = 5; +} + +message CMsgGCNotificationQueue { + repeated .CMsgGCNotification notifications = 1; +} + +message CMsgNotificationAcknowledge { + optional uint32 account_id = 1; + optional uint64 notification_id = 2; +} + +message CMsgNotificationAcknowledgeReply { +} + +message CMsgGC_Match_Result { + message Player { + optional fixed64 steam_id = 1; + optional uint64 original_party_id = 2; + optional uint32 team = 3; + optional uint32 score = 4; + optional uint32 ping = 5; + optional uint32 flags = 6; + optional uint32 rank = 9; + optional uint32 classes_played = 10; + optional uint32 kills = 11; + optional uint32 deaths = 12; + optional uint32 damage = 13; + optional uint32 healing = 14; + optional uint32 support = 15; + optional uint32 score_medal = 16; + optional uint32 kills_medal = 17; + optional uint32 damage_medal = 18; + optional uint32 healing_medal = 19; + optional uint32 support_medal = 20; + repeated .CMsgTFXPSource xp_breakdown = 21; + optional uint32 leave_time = 22; + optional .TFMatchLeaveReason leave_reason = 23 [default = TFMatchLeaveReason_UNSPECIFIED]; + optional uint32 connect_time = 24; + } + + enum Status { + MATCH_SUCCEEDED = 0; + MATCH_FAILED_GC = 1; + MATCH_FAILED_TRUSTED = 2; + MATCH_FAILED_ABANDON = 3; + MATCH_FAILED_UNKNOWN = 5; + MATCH_FAILED_TIMEOUT = 6; + MATCH_FINISHED_ABANDON = 7; + } + + optional uint64 match_id = 1 [(key_field) = true]; + optional int32 match_group = 2; + optional .CMsgGC_Match_Result.Status status = 3 [default = MATCH_SUCCEEDED]; + optional uint32 duration = 4; + optional uint32 red_score = 5; + optional uint32 blue_score = 6; + optional uint32 winning_team = 7; + optional uint32 map_index = 8; + optional uint32 game_type = 9 [default = 0]; + repeated .CMsgGC_Match_Result.Player players = 10; + optional uint32 win_reason = 13; + optional uint32 flags = 14; + optional uint32 bots = 16; +} + +message CMsgGC_Match_ResultResponse { +} + +message CEconItemPreviewDataBlock { + optional .CSOEconItem econitem = 1; +} + +message CMsgGC_Client2GCEconPreviewDataBlockRequest { + optional uint64 param_s = 1; + optional uint64 param_a = 2; + optional uint64 param_d = 3; + optional uint64 param_m = 4; +} + +message CMsgGC_Client2GCEconPreviewDataBlockResponse { + optional .CEconItemPreviewDataBlock iteminfo = 1; +} + +message CSOTFLadderPlayerStats { + optional uint32 account_id = 1 [(key_field) = true]; + optional int32 match_group = 2 [(key_field) = true]; + optional uint32 season_id = 3 [(key_field) = true]; + optional uint32 games = 9; + optional uint32 score = 10; + optional uint32 kills = 11; + optional uint32 deaths = 12; + optional uint32 damage = 13; + optional uint32 healing = 14; + optional uint32 support = 15; + optional uint32 score_bronze = 16; + optional uint32 score_silver = 17; + optional uint32 score_gold = 18; + optional uint32 kills_bronze = 19; + optional uint32 kills_silver = 20; + optional uint32 kills_gold = 21; + optional uint32 damage_bronze = 22; + optional uint32 damage_silver = 23; + optional uint32 damage_gold = 24; + optional uint32 healing_bronze = 25; + optional uint32 healing_silver = 26; + optional uint32 healing_gold = 27; + optional uint32 support_bronze = 28; + optional uint32 support_silver = 29; + optional uint32 support_gold = 30; +} + +message CSOTFRatingData { + optional uint32 account_id = 1 [(key_field) = true]; + optional int32 rating_type = 2 [(key_field) = true]; + optional uint32 rating_primary = 3; + optional uint32 rating_secondary = 4; + optional uint32 rating_tertiary = 5; +} + +message CMsgGC_TFVoteKickPlayerRequest { + optional uint64 target_id = 2; + optional uint64 voter_id = 3; + optional .TFVoteKickReason reason = 4 [default = TFVoteKickReason_Invalid]; + optional uint64 match_id = 5; +} + +message CMsgGC_VoteKickPlayerRequestResponse { + optional bool allowed = 1; + optional bool voter_inhibit = 3; + optional bool target_inhibit = 4; +} + +message CMsgGC_DailyCompetitiveStatsRollup { +} + +message CMsgGC_DailyCompetitiveStatsRollup_Response { + message RankBucketEntry { + optional uint32 rank = 1; + optional uint32 records = 2; + optional uint32 avg_score = 3; + optional uint32 stdev_score = 4; + optional uint32 avg_kills = 5; + optional uint32 stdev_kills = 6; + optional uint32 avg_damage = 7; + optional uint32 stdev_damage = 8; + optional uint32 avg_healing = 9; + optional uint32 stdev_healing = 10; + optional uint32 avg_support = 11; + optional uint32 stdev_support = 12; + } + + repeated .CMsgGC_DailyCompetitiveStatsRollup_Response.RankBucketEntry rankdata = 1; +} + +message CMsgGC_ReportPlayer { + enum EReason { + kReason_INVALID = 0; + kReason_CHEATING = 1; + kReason_IDLE = 2; + kReason_HARASSMENT = 3; + kReason_GRIEFING = 4; + kReason_COUNT = 5; + } + + optional uint32 account_id_target = 1; + optional .CMsgGC_ReportPlayer.EReason reason = 2 [default = kReason_INVALID]; +} + +message CSOTFMatchResultPlayerStats { + optional uint64 match_id = 1 [(key_field) = true]; + optional uint32 account_id = 2 [(key_field) = true]; + optional int32 match_group = 3 [(key_field) = true]; + optional uint32 endtime = 4; + optional uint32 season_id = 5; + optional uint32 status = 6; + optional uint32 original_party_id = 7; + optional uint32 team = 8; + optional uint32 score = 9; + optional uint32 ping = 10; + optional uint32 flags = 11; + optional uint32 display_rating = 12; + optional int32 display_rating_change = 13; + optional uint32 rank = 14; + optional uint32 classes_played = 15; + optional uint32 kills = 16; + optional uint32 deaths = 17; + optional uint32 damage = 18; + optional uint32 healing = 19; + optional uint32 support = 20; + optional uint32 score_medal = 21; + optional uint32 kills_medal = 22; + optional uint32 damage_medal = 23; + optional uint32 healing_medal = 24; + optional uint32 support_medal = 25; + optional uint32 map_index = 26; + optional uint32 winning_team = 27; +} + +message CMsgGCRequestMatchMakerStats { +} + +message CMsgGCDataCenterPopulation { + optional string name = 1; + optional float health_ratio = 2; +} + +message CMsgGCMatchGroupDataCenterPopulation { + repeated .CMsgGCDataCenterPopulation data_center_population = 1; +} + +message CMsgGCMatchMakerStatsResponse { + repeated uint32 map_count = 1; + repeated .CMsgGCMatchGroupDataCenterPopulation matchgroup_data_center_population = 2; +} + +message CMsgGCMatchHistoryLoad { + optional .ETFMatchGroup match_group = 1 [default = k_eTFMatchGroup_Invalid]; +} + +message CMsgGCDataCenterPing_Update { + message PingEntry { + optional string name = 1; + optional uint32 ping = 2; + optional .CMsgGCDataCenterPing_Update.Status ping_status = 3 [default = Normal]; + } + + enum Status { + Invalid = 0; + Normal = 1; + Unreachable = 2; + FallbackToDCPing = 3; + } + + repeated .CMsgGCDataCenterPing_Update.PingEntry pingdata = 1; +} + +message CMsgGC_KickPlayerFromLobby { + optional uint64 targetID = 1; +} + +message CMsgGCSurveyRequest { + optional .SurveyQuestionType question_type = 1 [default = QUESTION_MATCH_QUALITY]; + optional uint64 match_id = 2; +} + +message CMsgGCSurveyResponse { + optional .SurveyQuestionType question_type = 1 [default = QUESTION_MATCH_QUALITY]; + optional uint64 match_id = 2; + optional int32 response = 3; +} + +message CSOQuestMapNode { + optional uint32 account_id = 1 [(key_field) = true]; + optional uint32 defindex = 3 [(key_field) = true]; + optional uint32 node_id = 4; + optional bool star_0_earned = 6 [default = false]; + optional bool star_1_earned = 7 [default = false]; + optional bool star_2_earned = 8 [default = false]; + optional bool loot_claimed = 9 [default = false]; + optional uint32 selected_quest_def = 10 [default = 0]; + optional uint32 map_cycle = 11; +} + +message CSOQuest { + optional uint32 account_id = 1; + optional uint64 quest_id = 2 [(key_field) = true]; + optional uint32 defindex = 3; + optional bool active = 4 [default = false]; + optional uint32 points_0 = 5; + optional uint32 points_1 = 6; + optional uint32 points_2 = 7; + optional uint32 quest_map_node_source_id = 8; + optional uint32 map_cycle = 9; +} + +message CSOQuestMapRewardPurchase { + optional uint32 account_id = 1; + optional uint32 defindex = 2 [(key_field) = true]; + optional uint32 count = 3; + optional uint32 map_cycle = 4; + optional uint32 purchase_id = 5; +} + +message CMsgGCQuestIdentify { + optional uint64 quest_id = 1; +} + +message CMsgGCQuestDevGive { + optional uint32 quest_def_index = 1; +} + +message CMsgGCQuestNodeTurnIn { + optional uint32 node_defindex = 1; +} + +message CMsgGCQuestMapUnlockNode { + optional uint32 node_defindex = 1; + optional uint32 quest_defindex = 2; +} + +message CMsgGCNewMatchForLobbyRequest { + optional uint64 current_match_id = 1; + optional uint32 next_map_id = 2; + optional uint64 lobby_id = 3; +} + +message CMsgGCNewMatchForLobbyResponse { + optional bool success = 1; +} + +message CMsgGCChangeMatchPlayerTeamsRequest { + message Member { + optional uint64 member_id = 1; + optional .TF_GC_TEAM new_team = 2 [default = TF_GC_TEAM_NOTEAM]; + } + + optional uint64 match_id = 1; + optional uint64 lobby_id = 2; + repeated .CMsgGCChangeMatchPlayerTeamsRequest.Member member = 3; +} + +message CMsgGCChangeMatchPlayerTeamsResponse { + optional bool success = 1; +} + +message CMsgGCQuestComplete_Debug { + optional uint64 quest_id = 1; + optional uint32 points_type = 2; +} + +message CMsgGCQuestMap_Debug { + optional uint32 reset_operation = 1; + optional uint32 give_credit = 2; + optional .CMsgGCQuestMapUnlockNode unlock_node = 3; +} + +message CMsgGCQuestMapPurchaseReward { + optional uint32 store_item_defindex = 1; +} + +message CMsgGCQuestResponse { + optional bool success = 1 [default = false]; +} + +message CMsgGCSetDisablePartyQuestProgress { + optional bool state = 1; +} + +message CMsgQuestProgressReport { + optional uint64 quest_id = 1; + optional bool star_0_earned = 2; + optional bool star_1_earned = 3; + optional bool star_2_earned = 4; + repeated uint64 items_earned = 5; + optional uint32 reward_credits_earned = 6; + optional bool contract_completed = 7; +} + +message CMsgConsumePaintkit { + optional fixed64 source_id = 1; + optional uint32 target_defindex = 2; +} + +message CMsgPainkitDevGrant { + optional uint32 paintkit_defindex = 1; + optional float wear = 2; + optional uint32 item_defindex = 3; +} + +message GCQuestStrangeEvent { + optional uint32 owner_account_id = 1; + optional uint32 scorer_account_id = 2; + optional uint64 quest_id = 3; + optional uint32 strange_event_id = 4; + optional uint32 score = 5; +} + +message CMsgSDRTicket { + optional bytes serialized_ticket = 1; +} + +message CMsgAuthorizeServerItemRetrieval { + repeated uint64 item_id = 1; +} + +message CMsgGCToGCSendAccountBannedNotifications { + optional uint32 banned_accountid = 1; + optional uint32 report_period_begin = 2; + optional uint32 report_period_end = 3; +} + +message CMsgGCToGCSendNotification { + optional .CMsgGCNotification notification = 1; +} diff --git a/Protobufs/tf2/tf_proto_def_messages.proto b/Protobufs/tf2/tf_proto_def_messages.proto new file mode 100644 index 0000000..df4ca41 --- /dev/null +++ b/Protobufs/tf2/tf_proto_def_messages.proto @@ -0,0 +1,598 @@ +import "google/protobuf/descriptor.proto"; + +option optimize_for = SPEED; +option cc_generic_services = false; + +extend .google.protobuf.MessageOptions { + optional bool start_expanded = 80000 [default = true]; +} + +extend .google.protobuf.FieldOptions { + optional .ProtoDefTypes valid_type = 70000 [default = DEF_TYPE_QUEST_MAP_NODE]; + optional bool editable = 70001 [default = true]; + optional bool localized = 70002 [default = false]; + optional bool do_not_inherit = 70003 [default = false]; + optional string display_name = 70004; + optional string comment = 70005; + optional uint32 max_count = 70007; + optional bool allow_add = 70008 [default = true]; + optional bool allow_delete = 70009 [default = true]; + optional string panel_class_override = 70010; + optional string message_inherhitance_key_field_name = 70011; + optional bool inherit_reference_variables = 70012 [default = false]; + optional bool self_inherit_only = 70013 [default = false]; + optional .EVarFieldType var_field_type = 70014 [default = VAR_TYPE_INVALID]; + optional bool merging_key_field = 70015 [default = false]; +} + +enum LogicalOperation { + AND = 0; + OR = 1; + NOT = 2; +} + +enum EValueDefinitionSource { + REFERENCE_DEFINES = 0; + PARENT_DEFINES = 1; + THIS_DEFINES = 2; + VARIABLE_DEFINES = 3; + NOT_DEFINED = 4; +} + +enum ProtoDefTypes { + DEF_TYPE_QUEST_MAP_NODE = 0; + DEF_TYPE_QUEST_THEME = 2; + DEF_TYPE_QUEST_MAP_REGION = 3; + DEF_TYPE_QUEST = 4; + DEF_TYPE_QUEST_OBJECTIVE = 5; + DEF_TYPE_PAINTKIT_VARIABLES = 6; + DEF_TYPE_PAINTKIT_OPERATION = 7; + DEF_TYPE_PAINTKIT_ITEM_DEFINITION = 8; + DEF_TYPE_PAINTKIT_DEFINITION = 9; + DEF_TYPE_HEADER_ONLY = 10; + DEF_TYPE_QUEST_MAP_STORE_ITEM = 11; + DEF_TYPE_QUEST_MAP_STAR_TYPE = 12; +} + +enum EQuestPoints { + QUEST_POINTS_NOVICE = 0; + QUEST_POINTS_ADVANCED = 1; + QUEST_POINTS_EXPERT = 2; +} + +enum EVarFieldType { + VAR_TYPE_INVALID = 1; + VAR_TYPE_FLOAT = 2; + VAR_TYPE_DOUBLE = 3; + VAR_TYPE_UINT32 = 4; + VAR_TYPE_UINT64 = 5; + VAR_TYPE_SINT32 = 6; + VAR_TYPE_SINT64 = 7; + VAR_TYPE_BOOL = 8; + VAR_TYPE_STRING = 9; +} + +enum ENodeCashReward { + CASH_REWARD_NONE = 1; + CASH_REWARD_SMALL = 2; + CASH_REWARD_MEDIUM = 3; + CASH_REWARD_LARGE = 4; +} + +message CMsgFieldID { + message CMsgField { + optional uint32 field_number = 1; + optional uint32 repeated_index = 2; + } + + repeated .CMsgFieldID.CMsgField field = 1; +} + +message CMsgUniversalFieldID { + optional .EValueDefinitionSource source_type = 1 [default = REFERENCE_DEFINES]; + optional .CMsgProtoDefID defining_obj_id = 2; + optional .CMsgFieldID field_id = 3; +} + +message CMsgVariableDefinition { + optional string name = 1 [(merging_key_field) = true]; + optional bool inherit = 2 [default = true]; + optional string value = 3; +} + +message CMsgProtoDefHeader { + required uint32 defindex = 1 [(editable) = false, (display_name) = "Defindex", (comment) = "Autogenerated", (self_inherit_only) = true]; + optional string name = 2 [(display_name) = "Name", (comment) = "Name to show in the editor", (self_inherit_only) = true]; + repeated .CMsgProtoDefID prefabs = 3 [(display_name) = "Prefab", (comment) = "Inherit the values of these definitions, in order from top to bottom.", (panel_class_override) = "CPrefabFieldEditingPanel", (self_inherit_only) = true]; + repeated string tags = 4 [(display_name) = "Tags", (comment) = "Strings used to describe this definition while searching. ie. 'class', 'shotgun', 'easy'"]; + optional bool prefab_only = 5 [default = false, (display_name) = "Pure Prefab", (comment) = "If true, this is only a prefab and will not be made into an object", (self_inherit_only) = true]; + repeated .CMsgVariableDefinition variables = 6 [(display_name) = "Variables", (comment) = "Variable value definitions", (message_inherhitance_key_field_name) = "name"]; +} + +message CMsgValidTypes { + repeated .ProtoDefTypes types = 1; +} + +message CMsgProtoDefID { + optional uint32 defindex = 1; + optional .ProtoDefTypes type = 2 [default = DEF_TYPE_QUEST_MAP_NODE]; + + oneof instance { + .CMsgQuestMapNodeDef instance_def_type_quest_map_node = 3; + .CMsgQuestTheme instance_def_type_quest_theme = 5; + .CMsgQuestMapRegionDef instance_def_type_quest_map_region = 6; + .CMsgQuestDef instance_def_type_quest = 7; + .CMsgQuestObjectiveDef instance_def_type_quest_objective = 8; + .CMsgPaintKit_Variables instance_def_type_paintkit_variables = 9; + .CMsgPaintKit_Operation instance_def_type_paintkit_operation = 10; + .CMsgPaintKit_ItemDefinition instance_def_type_paintkit_item_definition = 11; + .CMsgPaintKit_Definition instance_def_type_paintkit_definition = 12; + .CMsgHeaderOnly instance_def_type_header_only = 13; + } +} + +message CMsgQuestObjectiveDef { + enum ETF2GameModes { + kGameCategory_Escort = 0; + kGameCategory_CTF = 1; + kGameCategory_AttackDefense = 2; + kGameCategory_Koth = 3; + kGameCategory_CP = 4; + kGameCategory_EscortRace = 5; + kGameCategory_EventMix = 6; + kGameCategory_SD = 7; + kGameCategory_Quickplay = 8; + kGameCategory_Event247 = 9; + kGameCategory_Arena = 10; + kGameCategory_RobotDestruction = 11; + kGameCategory_Powerup = 12; + kGameCategory_Featured = 13; + kGameCategory_Passtime = 14; + kGameCategory_Community_Update = 15; + kGameCategory_Misc = 16; + kGameCategory_Competitive_6v6 = 17; + kGameCategory_Other = 18; + kGameCategory_Halloween = 19; + } + + enum ETF2Conditions { + TF_COND_AIMING = 0; + TF_COND_ZOOMED = 1; + TF_COND_DISGUISING = 2; + TF_COND_DISGUISED = 3; + TF_COND_STEALTHED = 4; + TF_COND_INVULNERABLE = 5; + TF_COND_TELEPORTED = 6; + TF_COND_TAUNTING = 7; + TF_COND_INVULNERABLE_WEARINGOFF = 8; + TF_COND_STEALTHED_BLINK = 9; + TF_COND_SELECTED_TO_TELEPORT = 10; + TF_COND_CRITBOOSTED = 11; + TF_COND_TMPDAMAGEBONUS = 12; + TF_COND_FEIGN_DEATH = 13; + TF_COND_PHASE = 14; + TF_COND_STUNNED = 15; + TF_COND_OFFENSEBUFF = 16; + TF_COND_SHIELD_CHARGE = 17; + TF_COND_DEMO_BUFF = 18; + TF_COND_ENERGY_BUFF = 19; + TF_COND_RADIUSHEAL = 20; + TF_COND_HEALTH_BUFF = 21; + TF_COND_BURNING = 22; + TF_COND_HEALTH_OVERHEALED = 23; + TF_COND_URINE = 24; + TF_COND_BLEEDING = 25; + TF_COND_DEFENSEBUFF = 26; + TF_COND_MAD_MILK = 27; + TF_COND_MEGAHEAL = 28; + TF_COND_REGENONDAMAGEBUFF = 29; + TF_COND_MARKEDFORDEATH = 30; + TF_COND_NOHEALINGDAMAGEBUFF = 31; + TF_COND_SPEED_BOOST = 32; + TF_COND_CRITBOOSTED_PUMPKIN = 33; + TF_COND_CRITBOOSTED_USER_BUFF = 34; + TF_COND_CRITBOOSTED_DEMO_CHARGE = 35; + TF_COND_SODAPOPPER_HYPE = 36; + TF_COND_CRITBOOSTED_FIRST_BLOOD = 37; + TF_COND_CRITBOOSTED_BONUS_TIME = 38; + TF_COND_CRITBOOSTED_CTF_CAPTURE = 39; + TF_COND_CRITBOOSTED_ON_KILL = 40; + TF_COND_CANNOT_SWITCH_FROM_MELEE = 41; + TF_COND_DEFENSEBUFF_NO_CRIT_BLOCK = 42; + TF_COND_REPROGRAMMED = 43; + TF_COND_CRITBOOSTED_RAGE_BUFF = 44; + TF_COND_DEFENSEBUFF_HIGH = 45; + TF_COND_SNIPERCHARGE_RAGE_BUFF = 46; + TF_COND_DISGUISE_WEARINGOFF = 47; + TF_COND_MARKEDFORDEATH_SILENT = 48; + TF_COND_DISGUISED_AS_DISPENSER = 49; + TF_COND_SAPPED = 50; + TF_COND_INVULNERABLE_HIDE_UNLESS_DAMAGED = 51; + TF_COND_INVULNERABLE_USER_BUFF = 52; + TF_COND_HALLOWEEN_BOMB_HEAD = 53; + TF_COND_HALLOWEEN_THRILLER = 54; + TF_COND_RADIUSHEAL_ON_DAMAGE = 55; + TF_COND_CRITBOOSTED_CARD_EFFECT = 56; + TF_COND_INVULNERABLE_CARD_EFFECT = 57; + TF_COND_MEDIGUN_UBER_BULLET_RESIST = 58; + TF_COND_MEDIGUN_UBER_BLAST_RESIST = 59; + TF_COND_MEDIGUN_UBER_FIRE_RESIST = 60; + TF_COND_MEDIGUN_SMALL_BULLET_RESIST = 61; + TF_COND_MEDIGUN_SMALL_BLAST_RESIST = 62; + TF_COND_MEDIGUN_SMALL_FIRE_RESIST = 63; + TF_COND_STEALTHED_USER_BUFF = 64; + TF_COND_MEDIGUN_DEBUFF = 65; + TF_COND_STEALTHED_USER_BUFF_FADING = 66; + TF_COND_BULLET_IMMUNE = 67; + TF_COND_BLAST_IMMUNE = 68; + TF_COND_FIRE_IMMUNE = 69; + TF_COND_PREVENT_DEATH = 70; + TF_COND_MVM_BOT_STUN_RADIOWAVE = 71; + TF_COND_HALLOWEEN_SPEED_BOOST = 72; + TF_COND_HALLOWEEN_QUICK_HEAL = 73; + TF_COND_HALLOWEEN_GIANT = 74; + TF_COND_HALLOWEEN_TINY = 75; + TF_COND_HALLOWEEN_IN_HELL = 76; + TF_COND_HALLOWEEN_GHOST_MODE = 77; + TF_COND_MINICRITBOOSTED_ON_KILL = 78; + TF_COND_OBSCURED_SMOKE = 79; + TF_COND_PARACHUTE_ACTIVE = 80; + TF_COND_BLASTJUMPING = 81; + TF_COND_HALLOWEEN_KART = 82; + TF_COND_HALLOWEEN_KART_DASH = 83; + TF_COND_BALLOON_HEAD = 84; + TF_COND_MELEE_ONLY = 85; + TF_COND_SWIMMING_CURSE = 86; + TF_COND_FREEZE_INPUT = 87; + TF_COND_HALLOWEEN_KART_CAGE = 88; + TF_COND_DONOTUSE_0 = 89; + TF_COND_RUNE_STRENGTH = 90; + TF_COND_RUNE_HASTE = 91; + TF_COND_RUNE_REGEN = 92; + TF_COND_RUNE_RESIST = 93; + TF_COND_RUNE_VAMPIRE = 94; + TF_COND_RUNE_REFLECT = 95; + TF_COND_RUNE_PRECISION = 96; + TF_COND_RUNE_AGILITY = 97; + TF_COND_GRAPPLINGHOOK = 98; + TF_COND_GRAPPLINGHOOK_SAFEFALL = 99; + TF_COND_GRAPPLINGHOOK_LATCHED = 100; + TF_COND_GRAPPLINGHOOK_BLEEDING = 101; + TF_COND_AFTERBURN_IMMUNE = 102; + TF_COND_RUNE_KNOCKOUT = 103; + TF_COND_RUNE_IMBALANCE = 104; + TF_COND_CRITBOOSTED_RUNE_TEMP = 105; + TF_COND_PASSTIME_INTERCEPTION = 106; + TF_COND_SWIMMING_NO_EFFECTS = 107; + TF_COND_PURGATORY = 108; + TF_COND_RUNE_KING = 109; + TF_COND_RUNE_PLAGUE = 110; + TF_COND_RUNE_SUPERNOVA = 111; + TF_COND_PLAGUE = 112; + TF_COND_KING_BUFFED = 113; + TF_COND_TEAM_GLOWS = 114; + TF_COND_KNOCKED_INTO_AIR = 115; + TF_COND_COMPETITIVE_WINNER = 116; + TF_COND_COMPETITIVE_LOSER = 117; + TF_COND_HEALING_DEBUFF = 118; + TF_COND_PASSTIME_PENALTY_DEBUFF = 119; + TF_COND_PARACHUTE_DEPLOYED = 120; + TF_COND_NO_COMBAT_SPEED_BOOST = 121; + TF_COND_TRANQ_SPY_BOOST = 122; + TF_COND_TRANQ_MARKED = 123; + TF_COND_ROCKETPACK = 126; + TF_COND_ROCKETPACK_PASSENGER = 127; + TF_COND_STEALTHED_PHASE = 128; + TF_COND_CLIP_OVERLOAD = 129; + TF_COND_SPY_CLASS_STEAL = 130; + TF_COND_GAS = 131; + } + + enum ETF2Team { + TF_TEAM_RED = 2; + TF_TEAM_BLUE = 3; + } + + required .CMsgProtoDefHeader header = 1; + optional string loc_desctoken = 2 [(localized) = true]; + optional uint32 points = 3; + optional uint32 conditions_defindex = 5; + repeated string map = 8 [(display_name) = "Maps Modifier", (comment) = "If set, the player must be on one of the listed maps to get credit."]; + repeated .CMsgQuestObjectiveDef.ETF2GameModes game_mode = 9 [(display_name) = "Game Mode Modifier", (comment) = "If set, the player must be in one of the listed game modes to get credit."]; + optional .CMsgQuestObjectiveDef.ETF2Team team = 10 [default = TF_TEAM_RED, (display_name) = "Team Modifier", (comment) = "If set, the player must be on the specified team to get credit."]; + repeated .CMsgVarField condition_vars = 11 [(display_name) = "Objective Vars", (var_field_type) = VAR_TYPE_STRING]; + repeated .CMsgVarField classes_vars = 12 [(display_name) = "Class Modifier", (var_field_type) = VAR_TYPE_STRING]; + repeated .CMsgQuestObjectiveDef.ETF2Conditions conditions = 13 [(display_name) = "Required Conds"]; + optional .LogicalOperation condition_logic = 14 [default = AND, (display_name) = "Condition Logic", (comment) = "What kind of logic to use when evaluating the player's conditions."]; + repeated string item_name = 15 [(display_name) = "Required equipped item", (comment) = "Require that this item be equipped in any slot."]; + optional .LogicalOperation item_logic = 16 [default = AND, (display_name) = "Item logic", (comment) = "What kind of logic to use when evaluating the player's items."]; + optional uint32 jump_state = 17 [(display_name) = "Jump logic", (comment) = "What state of jumping the player needs to be in."]; +} + +message CMsgQuestDef { + message MMCriteria { + optional string group_name = 1; + optional string category_name = 2; + optional string map_name = 3; + } + + message ObjectiveInstance { + optional .CMsgProtoDefID objective = 1 [(valid_type) = DEF_TYPE_QUEST_OBJECTIVE]; + optional .EQuestPoints point_type = 2 [default = QUEST_POINTS_NOVICE]; + optional uint32 point_value = 3 [(display_name) = "Points Override", (comment) = "Override value for the point value of the objective. If not set, uses the objective's point value"]; + } + + required .CMsgProtoDefHeader header = 1; + optional uint32 max_points_0 = 2; + optional uint32 max_points_1 = 3; + optional uint32 max_points_2 = 4; + optional string name_loctoken = 5 [(localized) = true]; + optional string operation = 7; + optional .CMsgQuestDef.MMCriteria mm_criteria = 8; + optional string node_image = 12 [(display_name) = "Node Image", (comment) = "Filename of the image to show on the node view"]; + optional string icon_image = 13 [(display_name) = "Node Icon", (comment) = "Which icon to show on the map"]; + optional .CMsgProtoDefID theme = 14 [(valid_type) = DEF_TYPE_QUEST_THEME]; + repeated string loaner_names = 15 [(display_name) = "Loaners", (comment) = "Names of items to give as loaners"]; + repeated .CMsgQuestDef.ObjectiveInstance objectives = 16; + repeated string map = 17 [(display_name) = "Maps Modifier", (comment) = "If set, the player must be on one of the listed maps to get credit."]; +} + +message CMsgQuestMapStoreItem { + required .CMsgProtoDefHeader header = 1; + optional string item_name = 2; + optional string reward_lootlist_name = 6 [(display_name) = "Reward Lootlist", (comment) = "The name of the lootlist to roll as a reward"]; + optional .CMsgVarField price = 3 [(var_field_type) = VAR_TYPE_SINT32]; + optional uint32 purchase_limit = 4 [(display_name) = "Purchase Limit", (comment) = "How many times this reward can be purchased"]; + optional uint32 sort_group = 5 [(display_name) = "Sort group", (comment) = "Sort by this group, then alhpabetically"]; +} + +message CMsgQuestMapRegionDef { + message RegionLink { + required .CMsgProtoDefID target_region_defid = 1 [(valid_type) = DEF_TYPE_QUEST_MAP_REGION]; + optional uint32 xpos = 2; + optional uint32 ypos = 3; + } + + required .CMsgProtoDefHeader header = 1; + optional string name = 2 [(localized) = true]; + optional string resfile = 3; + repeated .CMsgQuestMapRegionDef.RegionLink links = 4; + optional .CMsgProtoDefID return_link = 5 [(valid_type) = DEF_TYPE_QUEST_MAP_REGION, (display_name) = "Return Link", (comment) = "Which link we go to when right-clicking in this region"]; + optional float radio_freq = 6 [(display_name) = "Radio Freq.", (comment) = "Where the radio tuner goes on the CYOA PDA when this region is selection"]; + optional float zoom_scale = 7 [(display_name) = "Zoom Scale", (comment) = "How zoomed in this panel should be. Affects the scale of the map grid lines and node link dashed lines"]; + optional .CMsgProtoDefID star_type = 8 [(valid_type) = DEF_TYPE_QUEST_MAP_STAR_TYPE, (display_name) = "Star Type", (comment) = "What stars (if any) the nodes within use to unlock"]; +} + +message CMsgVarField { + optional string variable = 1 [(merging_key_field) = true]; + + oneof value { + float float = 2; + double double = 3; + uint32 uint32 = 4; + uint64 uint64 = 5; + sint32 sint32 = 6; + sint64 sint64 = 7; + bool bool = 8; + string string = 9; + } +} + +message CMsgQuestMapStarType { + required .CMsgProtoDefHeader header = 1; + optional string name = 2 [(localized) = true, (display_name) = "Type Name"]; +} + +message CMsgQuestMapNodeDef { + required .CMsgProtoDefHeader header = 1; + optional string name_loctoken = 4 [(localized) = true, (display_name) = "Node Name", (comment) = "The name of this node"]; + optional float x_pos = 6 [(display_name) = "Map X Pos", (comment) = "X position on the quest map"]; + optional float y_pos = 7 [(display_name) = "Map Y Pos", (comment) = "Y position on the quest map"]; + optional .CMsgQuestMapNodeCondition condition = 9 [(display_name) = "Conditions", (comment) = "Logic to unlock this node. Can be nested with logic"]; + optional .CMsgProtoDefID owning_region = 10 [(valid_type) = DEF_TYPE_QUEST_MAP_REGION, (display_name) = "Region", (comment) = "Which region in the map this node shows up in"]; + repeated .CMsgProtoDefID quest_options = 11 [(valid_type) = DEF_TYPE_QUEST, (display_name) = "Offered Quests", (comment) = "Which quests this node offers.", (max_count) = 3]; + optional string associated_operation = 16 [(display_name) = "Associated Operation", (comment) = "Operation this node is associated with"]; + optional string reward_item_name = 18 [(display_name) = "Reward Item", (comment) = "The name of an item to give as a reward"]; + optional string reward_lootlist_name = 22 [(display_name) = "Reward Lootlist", (comment) = "The name of the lootlist to roll as a reward"]; + optional .ENodeCashReward cash_reward = 19 [default = CASH_REWARD_NONE, (display_name) = "Cash Reward", (comment) = "How much cash to give when completing the primary objective"]; + optional .CMsgProtoDefID star_type = 20 [(valid_type) = DEF_TYPE_QUEST_MAP_STAR_TYPE, (display_name) = "Star Type", (comment) = "Which type of star this node uses"]; + optional uint32 stars_to_unlock = 21 [default = 1, (display_name) = "Stars to Unlock", (comment) = "Numbers of stars it costs to unlock"]; +} + +message CMsgPaintKit_Variables { + required .CMsgProtoDefHeader header = 1; +} + +message CMsgPaintKit_Operation_TextureStage { + optional .CMsgVarField texture = 1 [(var_field_type) = VAR_TYPE_STRING]; + optional .CMsgVarField texture_red = 2 [(var_field_type) = VAR_TYPE_STRING]; + optional .CMsgVarField texture_blue = 3 [(var_field_type) = VAR_TYPE_STRING]; + optional .CMsgVarField adjust_black = 4 [(var_field_type) = VAR_TYPE_STRING]; + optional .CMsgVarField adjust_offset = 5 [(var_field_type) = VAR_TYPE_STRING]; + optional .CMsgVarField adjust_gamma = 6 [(var_field_type) = VAR_TYPE_STRING]; + optional .CMsgVarField rotation = 7 [(var_field_type) = VAR_TYPE_STRING]; + optional .CMsgVarField translate_u = 8 [(var_field_type) = VAR_TYPE_STRING]; + optional .CMsgVarField translate_v = 9 [(var_field_type) = VAR_TYPE_STRING]; + optional .CMsgVarField scale_uv = 10 [(var_field_type) = VAR_TYPE_STRING]; + optional .CMsgVarField flip_u = 11 [(var_field_type) = VAR_TYPE_STRING]; + optional .CMsgVarField flip_v = 12 [(var_field_type) = VAR_TYPE_STRING]; +} + +message CMsgPaintKit_Operation_CombineStage { + optional .CMsgVarField adjust_black = 1 [(var_field_type) = VAR_TYPE_STRING]; + optional .CMsgVarField adjust_offset = 2 [(var_field_type) = VAR_TYPE_STRING]; + optional .CMsgVarField adjust_gamma = 3 [(var_field_type) = VAR_TYPE_STRING]; + optional .CMsgVarField rotation = 4 [(var_field_type) = VAR_TYPE_STRING]; + optional .CMsgVarField translate_u = 5 [(var_field_type) = VAR_TYPE_STRING]; + optional .CMsgVarField translate_v = 6 [(var_field_type) = VAR_TYPE_STRING]; + optional .CMsgVarField scale_uv = 7 [(var_field_type) = VAR_TYPE_STRING]; + optional .CMsgVarField flip_u = 8 [(var_field_type) = VAR_TYPE_STRING]; + optional .CMsgVarField flip_v = 9 [(var_field_type) = VAR_TYPE_STRING]; + repeated .CMsgPaintKit_OperationNode operation_node = 11; +} + +message CMsgPaintKit_Operation_SelectStage { + optional .CMsgVarField groups = 1 [(var_field_type) = VAR_TYPE_STRING]; + repeated .CMsgVarField select = 2 [(max_count) = 16, (var_field_type) = VAR_TYPE_STRING]; +} + +message CMsgPaintKit_Operation_Sticker { + optional .CMsgVarField base = 1 [(comment) = "Name of the base file for the sticker (the albedo)", (var_field_type) = VAR_TYPE_STRING]; + optional .CMsgVarField weight = 2 [(comment) = "Random likelihood this one is to be selected", (var_field_type) = VAR_TYPE_STRING]; + optional .CMsgVarField spec = 3 [(comment) = "Name of the specular file for the sticker, or if blank we will assume it is baseFilename + _spec + baseExtension", (var_field_type) = VAR_TYPE_STRING]; +} + +message CMsgPaintKit_Operation_StickerStage { + repeated .CMsgPaintKit_Operation_Sticker sticker = 1; + optional .CMsgVarField dest_tl = 2 [(var_field_type) = VAR_TYPE_STRING]; + optional .CMsgVarField dest_tr = 3 [(var_field_type) = VAR_TYPE_STRING]; + optional .CMsgVarField dest_bl = 4 [(var_field_type) = VAR_TYPE_STRING]; + optional .CMsgVarField adjust_black = 5 [(var_field_type) = VAR_TYPE_STRING]; + optional .CMsgVarField adjust_offset = 6 [(var_field_type) = VAR_TYPE_STRING]; + optional .CMsgVarField adjust_gamma = 7 [(var_field_type) = VAR_TYPE_STRING]; + repeated .CMsgPaintKit_OperationNode operation_node = 9; +} + +message CMsgPaintKit_OperationStage { + oneof stage { + .CMsgPaintKit_Operation_TextureStage texture_lookup = 1; + .CMsgPaintKit_Operation_CombineStage combine_add = 2; + .CMsgPaintKit_Operation_CombineStage combine_lerp = 3; + .CMsgPaintKit_Operation_CombineStage combine_multiply = 4; + .CMsgPaintKit_Operation_SelectStage select = 5; + .CMsgPaintKit_Operation_StickerStage apply_sticker = 6; + } +} + +message CMsgPaintKit_OperationNode { + oneof node { + .CMsgPaintKit_OperationStage stage = 1; + .CMsgProtoDefID operation_template = 2 [(valid_type) = DEF_TYPE_PAINTKIT_OPERATION, (inherit_reference_variables) = true]; + } +} + +message CMsgPaintKit_Operation { + required .CMsgProtoDefHeader header = 1; + repeated .CMsgPaintKit_OperationNode operation_node = 2; +} + +message CMsgPaintKit_ItemDefinition { + message Definition { + optional .CMsgProtoDefID operation_template = 1 [(valid_type) = DEF_TYPE_PAINTKIT_OPERATION]; + repeated .CMsgVarField variable = 2 [(allow_add) = false, (allow_delete) = false, (var_field_type) = VAR_TYPE_STRING]; + } + + required .CMsgProtoDefHeader header = 1; + required uint32 item_definition_index = 2; + optional .CMsgProtoDefID variable_template = 3 [(valid_type) = DEF_TYPE_PAINTKIT_VARIABLES, (inherit_reference_variables) = true]; + repeated .CMsgPaintKit_ItemDefinition.Definition definition = 4 [(max_count) = 5]; +} + +message CMsgPaintKit_Definition { + message Item { + option (start_expanded) = false; + + message ItemData { + optional bool can_apply_paintkit = 2 [default = true]; + optional string material_override = 3; + repeated .CMsgVarField variable = 4 [(allow_add) = false, (allow_delete) = false, (var_field_type) = VAR_TYPE_STRING]; + } + + required .CMsgProtoDefID item_definition_template = 1 [(valid_type) = DEF_TYPE_PAINTKIT_ITEM_DEFINITION, (panel_class_override) = "CPaintKitDefIdFieldProtoEditorField"]; + optional .CMsgPaintKit_Definition.Item.ItemData data = 5; + } + + required .CMsgProtoDefHeader header = 1; + optional string loc_desctoken = 2 [(localized) = true]; + optional .CMsgProtoDefID operation_template = 3 [(valid_type) = DEF_TYPE_PAINTKIT_OPERATION, (comment) = "operation template which all items in the list will use unless there's operation_template specified in an item_definition", (inherit_reference_variables) = true]; + optional bool has_team_textures = 4; + repeated .CMsgPaintKit_Definition.Item item = 5; + optional .CMsgPaintKit_Definition.Item paintkit_tool = 6; + optional .CMsgPaintKit_Definition.Item flamethrower = 7; + optional .CMsgPaintKit_Definition.Item grenadelauncher = 8; + optional .CMsgPaintKit_Definition.Item knife = 9; + optional .CMsgPaintKit_Definition.Item medigun = 10; + optional .CMsgPaintKit_Definition.Item minigun = 11; + optional .CMsgPaintKit_Definition.Item pistol = 12; + optional .CMsgPaintKit_Definition.Item revolver = 13; + optional .CMsgPaintKit_Definition.Item rocketlauncher = 14; + optional .CMsgPaintKit_Definition.Item scattergun = 15; + optional .CMsgPaintKit_Definition.Item shotgun = 16; + optional .CMsgPaintKit_Definition.Item smg = 17; + optional .CMsgPaintKit_Definition.Item sniperrifle = 18; + optional .CMsgPaintKit_Definition.Item stickybomb_launcher = 19; + optional .CMsgPaintKit_Definition.Item ubersaw = 20; + optional .CMsgPaintKit_Definition.Item wrench = 21; + optional .CMsgPaintKit_Definition.Item amputator = 22; + optional .CMsgPaintKit_Definition.Item atom_launcher = 23; + optional .CMsgPaintKit_Definition.Item back_scratcher = 24; + optional .CMsgPaintKit_Definition.Item battleaxe = 25; + optional .CMsgPaintKit_Definition.Item bazaar_sniper = 26; + optional .CMsgPaintKit_Definition.Item blackbox = 27; + optional .CMsgPaintKit_Definition.Item claidheamohmor = 28; + optional .CMsgPaintKit_Definition.Item crusaders_crossbow = 29; + optional .CMsgPaintKit_Definition.Item degreaser = 30; + optional .CMsgPaintKit_Definition.Item demo_cannon = 31; + optional .CMsgPaintKit_Definition.Item demo_sultan_sword = 32; + optional .CMsgPaintKit_Definition.Item detonator = 33; + optional .CMsgPaintKit_Definition.Item gatling_gun = 34; + optional .CMsgPaintKit_Definition.Item holymackerel = 35; + optional .CMsgPaintKit_Definition.Item jag = 36; + optional .CMsgPaintKit_Definition.Item lochnload = 37; + optional .CMsgPaintKit_Definition.Item powerjack = 38; + optional .CMsgPaintKit_Definition.Item quadball = 39; + optional .CMsgPaintKit_Definition.Item reserve_shooter = 40; + optional .CMsgPaintKit_Definition.Item riding_crop = 41; + optional .CMsgPaintKit_Definition.Item russian_riot = 42; + optional .CMsgPaintKit_Definition.Item scimitar = 43; + optional .CMsgPaintKit_Definition.Item scorch_shot = 44; + optional .CMsgPaintKit_Definition.Item shortstop = 45; + optional .CMsgPaintKit_Definition.Item soda_popper = 46; + optional .CMsgPaintKit_Definition.Item tele_shotgun = 47; + optional .CMsgPaintKit_Definition.Item tomislav = 48; + optional .CMsgPaintKit_Definition.Item trenchgun = 49; + optional .CMsgPaintKit_Definition.Item winger_pistol = 50; +} + +message CMsgQuestTheme { + message WeightedString { + optional string string = 1; + optional uint32 weight = 2; + } + + message WeightedStringSet { + repeated .CMsgQuestTheme.WeightedString weighted_strings = 1; + } + + required .CMsgProtoDefHeader header = 1; + optional string notification_res = 2; + optional string quest_item_res = 3; + optional string in_game_tracker_res = 4; + repeated .CMsgQuestTheme.WeightedStringSet give_sounds = 5; + repeated .CMsgQuestTheme.WeightedStringSet complete_sounds = 6; + repeated .CMsgQuestTheme.WeightedStringSet fully_complete_sounds = 7; + optional string reward_sound = 8; + optional string discard_sound = 9; + optional string reveal_sound = 10; +} + +message CMsgQuestMapNodeCondition_NodeState { + optional uint32 bonus_objectives_required = 1 [default = 0, (display_name) = "Bonus Required", (comment) = "Number of bonus objectives required, on top of the primary objective"]; + required .CMsgProtoDefID target_node_defid = 2 [(valid_type) = DEF_TYPE_QUEST_MAP_NODE, (display_name) = "Target Node", (comment) = "Which node is required to have the above number of medals"]; +} + +message CMsgQuestMapNodeCondition_Logic { + required .LogicalOperation operation = 1 [default = AND, (display_name) = "Logic", (comment) = "Logical operation"]; + repeated .CMsgQuestMapNodeCondition sub_conditions = 2 [(display_name) = "Operands", (comment) = "Definitions to use in the logical operation"]; +} + +message CMsgQuestMapNodeCondition { + oneof operation { + .CMsgQuestMapNodeCondition_NodeState node_state = 1 [(display_name) = "Node State Condition", (comment) = "Returns true if a specific node has a required number of medals"]; + .CMsgQuestMapNodeCondition_Logic logical = 2 [(display_name) = "Logical Condition", (comment) = "Performs a specified logical operation to all sub conditions"]; + } +} + +message CMsgHeaderOnly { + required .CMsgProtoDefHeader header = 1; +} diff --git a/Protobufs/underlords/base_gcmessages.proto b/Protobufs/underlords/base_gcmessages.proto new file mode 100644 index 0000000..cdc539d --- /dev/null +++ b/Protobufs/underlords/base_gcmessages.proto @@ -0,0 +1,532 @@ +import "steammessages.proto"; + +option optimize_for = SPEED; +option cc_generic_services = false; + +enum EGCBaseMsg { + k_EMsgGCSystemMessage = 4001; + k_EMsgGCReplicateConVars = 4002; + k_EMsgGCConVarUpdated = 4003; + k_EMsgGCInviteToParty = 4501; + k_EMsgGCInvitationCreated = 4502; + k_EMsgGCPartyInviteResponse = 4503; + k_EMsgGCKickFromParty = 4504; + k_EMsgGCLeaveParty = 4505; + k_EMsgGCServerAvailable = 4506; + k_EMsgGCClientConnectToServer = 4507; + k_EMsgGCGameServerInfo = 4508; + k_EMsgGCError = 4509; + k_EMsgGCLANServerAvailable = 4511; + k_EMsgGCInviteToLobby = 4512; + k_EMsgGCLobbyInviteResponse = 4513; + k_EMsgGCToClientPollFileRequest = 4514; + k_EMsgGCToClientPollFileResponse = 4515; + k_EMsgGCToGCPerformManualOp = 4516; + k_EMsgGCToGCPerformManualOpCompleted = 4517; + k_EMsgGCToGCReloadServerRegionSettings = 4518; +} + +enum EGCBaseProtoObjectTypes { + k_EProtoObjectPartyInvite = 1001; + k_EProtoObjectLobbyInvite = 1002; +} + +enum ECustomGameInstallStatus { + k_ECustomGameInstallStatus_Unknown = 0; + k_ECustomGameInstallStatus_Ready = 1; + k_ECustomGameInstallStatus_Busy = 2; + k_ECustomGameInstallStatus_FailedGeneric = 101; + k_ECustomGameInstallStatus_FailedInternalError = 102; + k_ECustomGameInstallStatus_RequestedTimestampTooOld = 103; + k_ECustomGameInstallStatus_RequestedTimestampTooNew = 104; + k_ECustomGameInstallStatus_CRCMismatch = 105; + k_ECustomGameInstallStatus_FailedSteam = 106; + k_ECustomGameInstallStatus_FailedCanceled = 107; +} + +message CGCStorePurchaseInit_LineItem { + optional uint32 item_def_id = 1; + optional uint32 quantity = 2; + optional uint32 cost_in_local_currency = 3; + optional uint32 purchase_type = 4; + optional uint64 source_reference_id = 5; +} + +message CMsgGCStorePurchaseInit { + optional string country = 1; + optional int32 language = 2; + optional int32 currency = 3; + repeated .CGCStorePurchaseInit_LineItem line_items = 4; +} + +message CMsgGCStorePurchaseInitResponse { + optional int32 result = 1; + optional uint64 txn_id = 2; +} + +message CMsgSystemBroadcast { + optional string message = 1; +} + +message CMsgClientPingData { + repeated fixed32 relay_codes = 4 [packed = true]; + repeated uint32 relay_pings = 5 [packed = true]; + repeated uint32 region_codes = 8 [packed = true]; + repeated uint32 region_pings = 9 [packed = true]; + optional uint32 region_ping_failed_bitmask = 10; +} + +message CMsgInviteToParty { + optional fixed64 steam_id = 1; + optional uint32 client_version = 2; + optional uint32 team_id = 3; + optional bool as_coach = 4; + optional .CMsgClientPingData ping_data = 5; +} + +message CMsgInviteToLobby { + optional fixed64 steam_id = 1; + optional uint32 client_version = 2; +} + +message CMsgInvitationCreated { + optional uint64 group_id = 1; + optional fixed64 steam_id = 2; + optional bool user_offline = 3; +} + +message CMsgPartyInviteResponse { + optional uint64 party_id = 1; + optional bool accept = 2; + optional uint32 client_version = 3; + optional .CMsgClientPingData ping_data = 8; +} + +message CMsgLobbyInviteResponse { + optional fixed64 lobby_id = 1; + optional bool accept = 2; + optional uint32 client_version = 3; + optional fixed64 custom_game_crc = 6; + optional fixed32 custom_game_timestamp = 7; +} + +message CMsgKickFromParty { + optional fixed64 steam_id = 1; +} + +message CMsgLeaveParty { +} + +message CMsgCustomGameInstallStatus { + optional .ECustomGameInstallStatus status = 1 [default = k_ECustomGameInstallStatus_Unknown]; + optional string message = 2; + optional fixed32 latest_timestamp_from_steam = 3; +} + +message CMsgServerAvailable { + optional .CMsgCustomGameInstallStatus custom_game_install_status = 1; +} + +message CMsgLANServerAvailable { + optional fixed64 lobby_id = 1; +} + +message CSOEconGameAccountClient { + optional uint32 additional_backpack_slots = 1 [default = 0]; + optional bool trial_account = 2 [default = false]; + optional bool eligible_for_online_play = 3 [default = true]; + optional bool need_to_choose_most_helpful_friend = 4; + optional bool in_coaches_list = 5; + optional fixed32 trade_ban_expiration = 6; + optional fixed32 duel_ban_expiration = 7; + optional bool made_first_purchase = 9 [default = false]; +} + +message CSOItemCriteriaCondition { + optional int32 op = 1; + optional string field = 2; + optional bool required = 3; + optional float float_value = 4; + optional string string_value = 5; +} + +message CSOItemCriteria { + optional uint32 item_level = 1; + optional int32 item_quality = 2; + optional bool item_level_set = 3; + optional bool item_quality_set = 4; + optional uint32 initial_inventory = 5; + optional uint32 initial_quantity = 6; + optional bool ignore_enabled_flag = 8; + repeated .CSOItemCriteriaCondition conditions = 9; + optional bool recent_only = 10; +} + +message CSOItemRecipe { + optional uint32 def_index = 1; + optional string name = 2; + optional string n_a = 3; + optional string desc_inputs = 4; + optional string desc_outputs = 5; + optional string di_a = 6; + optional string di_b = 7; + optional string di_c = 8; + optional string do_a = 9; + optional string do_b = 10; + optional string do_c = 11; + optional bool requires_all_same_class = 12; + optional bool requires_all_same_slot = 13; + optional int32 class_usage_for_output = 14; + optional int32 slot_usage_for_output = 15; + optional int32 set_for_output = 16; + repeated .CSOItemCriteria input_items_criteria = 20; + repeated .CSOItemCriteria output_items_criteria = 21; + repeated uint32 input_item_dupe_counts = 22; +} + +message CMsgApplyStrangePart { + optional uint64 strange_part_item_id = 1; + optional uint64 item_item_id = 2; +} + +message CMsgApplyPennantUpgrade { + optional uint64 upgrade_item_id = 1; + optional uint64 pennant_item_id = 2; +} + +message CMsgApplyEggEssence { + optional uint64 essence_item_id = 1; + optional uint64 egg_item_id = 2; +} + +message CSOEconItemAttribute { + optional uint32 def_index = 1; + optional uint32 value = 2; + optional bytes value_bytes = 3; +} + +message CSOEconItemEquipped { + optional uint32 new_class = 1; + optional uint32 new_slot = 2; +} + +message CSOEconItem { + optional uint64 id = 1; + optional uint32 account_id = 2; + optional uint32 inventory = 3; + optional uint32 def_index = 4; + optional uint32 quantity = 5 [default = 1]; + optional uint32 level = 6 [default = 1]; + optional uint32 quality = 7 [default = 4]; + optional uint32 flags = 8 [default = 0]; + optional uint32 origin = 9 [default = 0]; + repeated .CSOEconItemAttribute attribute = 12; + optional .CSOEconItem interior_item = 13; + optional uint32 style = 15 [default = 0]; + optional uint64 original_id = 16 [default = 0]; + repeated .CSOEconItemEquipped equipped_state = 18; +} + +message CMsgSortItems { + optional uint32 sort_type = 1; +} + +message CSOEconClaimCode { + optional uint32 account_id = 1; + optional uint32 code_type = 2; + optional uint32 time_acquired = 3; + optional string code = 4; +} + +message CMsgUpdateItemSchema { + optional bytes items_game = 1; + optional fixed32 item_schema_version = 2; + optional string items_game_url = 3; +} + +message CMsgGCError { + optional string error_text = 1; +} + +message CMsgRequestInventoryRefresh { +} + +message CMsgConVarValue { + optional string name = 1; + optional string value = 2; +} + +message CMsgReplicateConVars { + repeated .CMsgConVarValue convars = 1; +} + +message CMsgItemAcknowledged { + optional uint32 account_id = 1; + optional uint32 inventory = 2; + optional uint32 def_index = 3; + optional uint32 quality = 4; + optional uint32 rarity = 5; + optional uint32 origin = 6; +} + +message CMsgSetItemPositions { + message ItemPosition { + optional uint64 item_id = 1; + optional uint32 position = 2; + } + + repeated .CMsgSetItemPositions.ItemPosition item_positions = 1; +} + +message CMsgGCNameItemNotification { + optional fixed64 player_steamid = 1; + optional uint32 item_def_index = 2; + optional string item_name_custom = 3; +} + +message CMsgGCClientDisplayNotification { + optional string notification_title_localization_key = 1; + optional string notification_body_localization_key = 2; + repeated string body_substring_keys = 3; + repeated string body_substring_values = 4; +} + +message CMsgGCShowItemsPickedUp { + optional fixed64 player_steamid = 1; +} + +message CMsgGCIncrementKillCountResponse { + optional uint32 killer_account_id = 1 [(key_field) = true]; + optional uint32 num_kills = 2; + optional uint32 item_def = 3; + optional uint32 level_type = 4; +} + +message CSOEconItemDropRateBonus { + optional uint32 account_id = 1 [(key_field) = true]; + optional fixed32 expiration_date = 2; + optional float bonus = 3 [(key_field) = true]; + optional uint32 bonus_count = 4; + optional uint64 item_id = 5; + optional uint32 def_index = 6; + optional uint32 seconds_left = 7; + optional uint32 booster_type = 8 [(key_field) = true]; +} + +message CSOEconItemLeagueViewPass { + optional uint32 account_id = 1 [(key_field) = true]; + optional uint32 league_id = 2 [(key_field) = true]; + optional uint32 itemindex = 4; + optional uint32 grant_reason = 5; +} + +message CSOEconItemEventTicket { + optional uint32 account_id = 1; + optional uint32 event_id = 2; + optional uint64 item_id = 3; +} + +message CSOEconItemTournamentPassport { + optional uint32 account_id = 1; + optional uint32 league_id = 2; + optional uint64 item_id = 3; + optional uint32 original_purchaser_id = 4; + optional uint32 passports_bought = 5; + optional uint32 version = 6; + optional uint32 def_index = 7; + optional uint32 reward_flags = 8; +} + +message CMsgGCStorePurchaseCancel { + optional uint64 txn_id = 1; +} + +message CMsgGCStorePurchaseCancelResponse { + optional uint32 result = 1; +} + +message CMsgGCStorePurchaseFinalize { + optional uint64 txn_id = 1; +} + +message CMsgGCStorePurchaseFinalizeResponse { + optional uint32 result = 1; + repeated uint64 item_ids = 2; +} + +message CMsgGCToGCBannedWordListUpdated { + optional uint32 group_id = 1; +} + +message CMsgGCToGCDirtySDOCache { + optional uint32 sdo_type = 1; + optional uint64 key_uint64 = 2; +} + +message CMsgGCToGCDirtyMultipleSDOCache { + optional uint32 sdo_type = 1; + repeated uint64 key_uint64 = 2; +} + +message CMsgGCToGCApplyLocalizationDiff { + optional uint32 language = 1; + optional string packed_diff = 2; +} + +message CMsgGCToGCApplyLocalizationDiffResponse { + optional bool success = 1; +} + +message CMsgGCCollectItem { + optional uint64 collection_item_id = 1; + optional uint64 subject_item_id = 2; +} + +message CMsgSDONoMemcached { +} + +message CMsgGCToGCUpdateSQLKeyValue { + optional string key_name = 1; +} + +message CMsgGCServerVersionUpdated { + optional uint32 server_version = 1; +} + +message CMsgGCClientVersionUpdated { + optional uint32 client_version = 1; +} + +message CMsgGCToGCWebAPIAccountChanged { +} + +message CMsgRecipeComponent { + optional uint64 subject_item_id = 1; + optional uint64 attribute_index = 2; +} + +message CMsgFulfillDynamicRecipeComponent { + optional uint64 tool_item_id = 1; + repeated .CMsgRecipeComponent consumption_components = 2; +} + +message CMsgGCClientMarketDataRequest { + optional uint32 user_currency = 1; +} + +message CMsgGCClientMarketDataEntry { + optional uint32 item_def_index = 1; + optional uint32 item_quality = 2; + optional uint32 item_sell_listings = 3; + optional uint32 price_in_local_currency = 4; +} + +message CMsgGCClientMarketData { + repeated .CMsgGCClientMarketDataEntry entries = 1; +} + +message CMsgExtractGems { + optional uint64 tool_item_id = 1; + optional uint64 item_item_id = 2; + optional uint32 item_socket_id = 3 [default = 65535]; +} + +message CMsgExtractGemsResponse { + enum EExtractGems { + k_ExtractGems_Succeeded = 0; + k_ExtractGems_Failed_ToolIsInvalid = 1; + k_ExtractGems_Failed_ItemIsInvalid = 2; + k_ExtractGems_Failed_ToolCannotRemoveGem = 3; + k_ExtractGems_Failed_FailedToRemoveGem = 4; + } + + optional uint64 item_id = 1; + optional .CMsgExtractGemsResponse.EExtractGems response = 2 [default = k_ExtractGems_Succeeded]; +} + +message CMsgAddSocket { + optional uint64 tool_item_id = 1; + optional uint64 item_item_id = 2; + optional bool unusual = 3; +} + +message CMsgAddSocketResponse { + enum EAddSocket { + k_AddSocket_Succeeded = 0; + k_AddSocket_Failed_ToolIsInvalid = 1; + k_AddSocket_Failed_ItemCannotBeSocketed = 2; + k_AddSocket_Failed_FailedToAddSocket = 3; + } + + optional uint64 item_id = 1; + repeated uint32 updated_socket_index = 2; + optional .CMsgAddSocketResponse.EAddSocket response = 3 [default = k_AddSocket_Succeeded]; +} + +message CMsgAddItemToSocketData { + optional uint64 gem_item_id = 1; + optional uint32 socket_index = 2; +} + +message CMsgAddItemToSocket { + optional uint64 item_item_id = 1; + repeated .CMsgAddItemToSocketData gems_to_socket = 2; +} + +message CMsgAddItemToSocketResponse { + enum EAddGem { + k_AddGem_Succeeded = 0; + k_AddGem_Failed_GemIsInvalid = 1; + k_AddGem_Failed_ItemIsInvalid = 2; + k_AddGem_Failed_FailedToAddGem = 3; + k_AddGem_Failed_InvalidGemTypeForSocket = 4; + k_AddGem_Failed_InvalidGemTypeForHero = 5; + k_AddGem_Failed_InvalidGemTypeForSlot = 6; + k_AddGem_Failed_SocketContainsUnremovableGem = 7; + } + + optional uint64 item_item_id = 1; + repeated uint32 updated_socket_index = 2; + optional .CMsgAddItemToSocketResponse.EAddGem response = 3 [default = k_AddGem_Succeeded]; +} + +message CMsgResetStrangeGemCount { + optional uint64 item_item_id = 1; + optional uint32 socket_index = 2; +} + +message CMsgResetStrangeGemCountResponse { + enum EResetGem { + k_ResetGem_Succeeded = 0; + k_ResetGem_Failed_FailedToResetGem = 1; + k_ResetGem_Failed_ItemIsInvalid = 2; + k_ResetGem_Failed_InvalidSocketId = 3; + k_ResetGem_Failed_SocketCannotBeReset = 4; + } + + optional .CMsgResetStrangeGemCountResponse.EResetGem response = 1 [default = k_ResetGem_Succeeded]; +} + +message CMsgGCToClientPollFileRequest { + optional string file_name = 1; + optional uint32 client_version = 2; + optional uint32 poll_id = 3; +} + +message CMsgGCToClientPollFileResponse { + optional uint32 poll_id = 1; + optional uint32 file_size = 2; +} + +message CMsgGCToGCPerformManualOp { + optional uint64 op_id = 1; + optional uint32 group_code = 2; +} + +message CMsgGCToGCPerformManualOpCompleted { + optional bool success = 1; + optional uint32 source_gc = 2; +} + +message CMsgGCToGCReloadServerRegionSettings { +} diff --git a/Protobufs/underlords/c_peer2peer_netmessages.proto b/Protobufs/underlords/c_peer2peer_netmessages.proto new file mode 100644 index 0000000..d8f21f6 --- /dev/null +++ b/Protobufs/underlords/c_peer2peer_netmessages.proto @@ -0,0 +1,57 @@ +import "netmessages.proto"; +import "networkbasetypes.proto"; + +option cc_generic_services = false; + +enum P2P_Messages { + p2p_TextMessage = 256; + p2p_Voice = 257; + p2p_Ping = 258; + p2p_VRAvatarPosition = 259; + p2p_WatchSynchronization = 260; +} + +message CP2P_TextMessage { + optional bytes text = 1; +} + +message CSteam_Voice_Encoding { + optional bytes voice_data = 1; +} + +message CP2P_Voice { + enum Handler_Flags { + Played_Audio = 1; + } + + optional .CMsgVoiceAudio audio = 1; + optional uint32 broadcast_group = 2; +} + +message CP2P_Ping { + required uint64 send_time = 1; + required bool is_reply = 2; +} + +message CP2P_VRAvatarPosition { + message COrientation { + optional .CMsgVector pos = 1; + optional .CMsgQAngle ang = 2; + } + + repeated .CP2P_VRAvatarPosition.COrientation body_parts = 1; + optional int32 hat_id = 2; + optional int32 scene_id = 3; + optional int32 world_scale = 4; +} + +message CP2P_WatchSynchronization { + optional int32 demo_tick = 1; + optional bool paused = 2; + optional int32 tv_listen_voice_indices = 3; + optional int32 dota_spectator_mode = 4; + optional int32 dota_spectator_watching_broadcaster = 5; + optional int32 dota_spectator_hero_index = 6; + optional int32 dota_spectator_autospeed = 7; + optional int32 dota_replay_speed = 8; +} diff --git a/Protobufs/underlords/clientmessages.proto b/Protobufs/underlords/clientmessages.proto new file mode 100644 index 0000000..320f6bc --- /dev/null +++ b/Protobufs/underlords/clientmessages.proto @@ -0,0 +1,51 @@ +option optimize_for = SPEED; +option cc_generic_services = false; + +enum EBaseClientMessages { + CM_CustomGameEvent = 280; + CM_CustomGameEventBounce = 281; + CM_ClientUIEvent = 282; + CM_DevPaletteVisibilityChanged = 283; + CM_WorldUIControllerHasPanelChanged = 284; + CM_RotateAnchor = 285; + CM_MAX_BASE = 300; +} + +enum EClientUIEvent { + EClientUIEvent_Invalid = 0; + EClientUIEvent_DialogFinished = 1; + EClientUIEvent_FireOutput = 2; +} + +message CClientMsg_CustomGameEvent { + optional string event_name = 1; + optional bytes data = 2; +} + +message CClientMsg_CustomGameEventBounce { + optional string event_name = 1; + optional bytes data = 2; + optional int32 player_index = 3; +} + +message CClientMsg_ClientUIEvent { + optional .EClientUIEvent event = 1 [default = EClientUIEvent_Invalid]; + optional uint32 ent_ehandle = 2; + optional uint32 client_ehandle = 3; + optional string data1 = 4; + optional string data2 = 5; +} + +message CClientMsg_DevPaletteVisibilityChangedEvent { + optional bool visible = 1; +} + +message CClientMsg_WorldUIControllerHasPanelChangedEvent { + optional bool has_panel = 1; + optional uint32 client_ehandle = 2; + optional uint32 literal_hand_type = 3; +} + +message CClientMsg_RotateAnchor { + optional float angle = 1; +} diff --git a/Protobufs/underlords/connectionless_netmessages.proto b/Protobufs/underlords/connectionless_netmessages.proto new file mode 100644 index 0000000..1f625c7 --- /dev/null +++ b/Protobufs/underlords/connectionless_netmessages.proto @@ -0,0 +1,21 @@ +import "netmessages.proto"; + +option cc_generic_services = false; + +message C2S_CONNECT_Message { + optional uint32 host_version = 1; + optional uint32 auth_protocol = 2; + optional uint32 challenge_number = 3; + optional fixed64 reservation_cookie = 4; + optional bool low_violence = 5; + optional bytes encrypted_password = 6; + repeated .CCLCMsg_SplitPlayerConnect splitplayers = 7; + optional bytes auth_steam = 8; + optional string challenge_context = 9; + optional sint32 use_snp = 10; +} + +message C2S_CONNECTION_Message { + optional string addon_name = 1; + optional bool use_snp = 2; +} diff --git a/Protobufs/underlords/dac_gamemessages.proto b/Protobufs/underlords/dac_gamemessages.proto new file mode 100644 index 0000000..29f7e95 --- /dev/null +++ b/Protobufs/underlords/dac_gamemessages.proto @@ -0,0 +1,1376 @@ +import "steammessages.proto"; +import "dac_gcmessages_common.proto"; +import "usermessages.proto"; + +option optimize_for = SPEED; +option cc_generic_services = false; + +enum EDACGameMessages { + k_EMsgNetBufferContents = 2; + k_EMsgClientConnectionStarted = 3; + k_EMsgClientConnectionComplete = 4; + k_EMsgClientSetDebugNetBuffer = 5; + k_EMsgPlayerOrder = 6; + k_EMsgGameReplayActionMarker = 7; + k_EMsgPlayerCombinedHero = 8; + k_EMsgPlayerCombatResult = 9; + k_EMsgPlayerWinStreak = 10; + k_EMsgNetBufferRemoved = 11; + k_EMsgClientToServerChatMsg = 12; + k_EMsgServerToClientChatMsg = 13; + k_EMsgPlayerEliminated = 14; + k_EMsgRecordLocalBotStats = 15; + k_EMsgPlayerOrderProcessed = 16; + k_EMsgPlayerAcquiredItem = 18; + k_EMsgPlayerLevelUp = 19; + k_EMsgClientToServerUpvoteNotification = 20; + k_EMsgServerToClientNotificationChanged = 21; + k_EMsgItemChangedOwner = 22; + k_EMsgLocalPlayerInventory = 23; + k_eMsgIndividualPostMatchStats = 24; + k_EMsgPlayerPreferences = 25; + k_EMsgPlayerStateUpdatesComplete = 26; + k_EMsgClientToServerTeammateDuosMessage = 27; + k_EMsgServerToClientTeammateDuosMessage = 28; + k_EMsgPlayerSelectedTalent = 29; + k_EMsgPlayerRecievedUnitFromDuosPartner = 30; + k_EMsgClientToServerLoadShareCode = 31; + k_EMsgPlayerBoardBuddyCommand = 33; + k_EMsgPlayerMapPropCommand = 34; + k_EMsgPlayerLoadPuzzleLeaderboardCommand = 35; + k_EMsgClientToServerClickMsg = 36; + k_EMsgServerToClientClickMsg = 37; + k_EMsgPlayerChallengeCompletePrediction = 38; +} + +enum EDACDisconnectReason { + k_EDACDisconnectReason_UserLeaveMatch = 1001; + k_EDACDisconnectReason_UserQuitApp = 1002; + k_EDACDisconnectReason_UserCancel = 1003; + k_EDACDisconnectReason_Goodbye = 1004; + k_EDACDisconnectReason_BadMessage = 2001; + k_EDACDisconnectReason_GameDestroyedUnexpectedly = 2002; + k_EDACDisconnectReason_ChangingServer = 2003; + k_EDACDisconnectReason_OldConnection = 2004; + k_EDACDisconnectReason_GoodbyeUnrecognizedGame = 2005; +} + +enum EGameState { + EGameState_Intro = 0; + EGameState_Playing = 1; + EGameState_GameOver = 2; +} + +enum ERoundState { + ERoundState_Preparing = 0; + ERoundState_Ready = 1; + ERoundState_Combat = 2; + ERoundState_RoundOver = 3; +} + +enum EUnitKeyword { + EUnitKeyword_Invalid = 0; + EUnitKeyword_Beast = 1; + EUnitKeyword_Demon = 2; + EUnitKeyword_Dragon = 3; + EUnitKeyword_Dwarf = 4; + EUnitKeyword_Element = 5; + EUnitKeyword_Elf = 6; + EUnitKeyword_Goblin = 7; + EUnitKeyword_Human = 8; + EUnitKeyword_Naga = 9; + EUnitKeyword_Ogre = 10; + EUnitKeyword_Orc = 11; + EUnitKeyword_Troll = 12; + EUnitKeyword_Undead = 13; + EUnitKeyword_Satyr = 14; + EUnitKeyword_Assassin = 15; + EUnitKeyword_DemonHunter = 16; + EUnitKeyword_Druid = 17; + EUnitKeyword_Hunter = 18; + EUnitKeyword_Knight = 19; + EUnitKeyword_Mage = 20; + EUnitKeyword_Mech = 21; + EUnitKeyword_Shaman = 22; + EUnitKeyword_Warlock = 23; + EUnitKeyword_Warrior = 24; + EUnitKEyword_MegaWarrior = 25; + EUnitKeyword_MegaAssassin = 26; + EUnitKeyword_MegaBloodbound = 27; + EUnitKeyword_MegaElusive = 28; + EUnitKeyword_MegaWarlock = 29; + EUnitKeyword_MegaScaled = 30; + EUnitKeyword_MegaTroll = 31; + EUnitKeyword_MegaDemon = 32; + EUnitKeyword_Primordial = 33; + EUnitKeyword_Brawny = 34; + EUnitKeyword_Savage = 35; + EUnitKeyword_Inventor = 36; + EUnitKeyword_Insect = 37; + EUnitKeyword_Spectral = 38; + EUnitKeyword_Summoner = 39; + EUnitKeyword_SpiritBrother = 40; + EUnitKeyword_Meepo = 41; + EUnitKeyword_Brawler = 43; + EUnitKeyword_Guardian = 46; + EUnitKeyword_Champion = 50; + EUnitKeyword_Wisp = 51; + EUnitKeyword_Brutal = 52; + EUnitKeyword_Healer = 53; + EUnitKeyword_Vigilant = 54; + EUnitKeyword_Void = 55; + EUnitKeyword_Fallen = 42; + EUnitKeyword_Wild = 44; + EUnitKeyword_Swordsman = 45; + EUnitKeyword_Rogue = 47; + EUnitKeyword_Poisoner = 48; + EUnitKeyword_Magus = 49; +} + +enum ESynergyType { + ESynergyType_Class = 1; + ESynergyType_Race = 2; +} + +enum EDACItemType { + EDACItemType_Invalid = -1; + EDACItemType_Global = 0; + EDACItemType_Equipment_Offensive = 1; + EDACItemType_Equipment_Defensive = 2; + EDACItemType_Equipment_Support = 3; + EDACItemType_Placeable = 5; + EDACItemType_Equipment_Hat = 9; +} + +enum EPlayerConnectionState { + EPlayerConnectionState_Connecting = 0; + EPlayerConnectionState_Connected = 1; + EPlayerConnectionState_Disconnected = 2; +} + +enum ESendDestination { + ESendDestination_Duos_Partner = 0; +} + +enum EPlayerOrder { + EPlayerOrder_SellUnit = 2; + EPlayerOrder_MoveUnit = 3; + EPlayerOrder_BuyXP = 4; + EPlayerOrder_ReRoll = 5; + EPlayerOrder_LockShop = 6; + EPlayerOrder_AssignEquipmentItem = 7; + EPlayerOrder_SelectItemRewardChoice = 8; + EPlayerOrder_DevGold = 9; + EPlayerOrder_DevItem = 10; + EPlayerOrder_DevHero = 12; + EPlayerOrder_BuyAndCombine = 15; + EPlayerOrder_PauseGame = 16; + EPlayerOrder_ResumeGame = 17; + EPlayerOrder_SpectatePlayer = 18; + EPlayerOrder_RequestPlayerStats = 19; + EPlayerOrder_StepForward = 20; + EPlayerOrder_MutePlayer = 21; + EPlayerOrder_SelectTalent = 22; + EPlayerOrder_Send = 23; + EPlayerOrder_CombineItem = 24; + EPlayerOrder_BuyCombineMove = 25; + EPlayerOrder_BuyAndSend = 26; + EPlayerOrder_SendGold = 27; + EPlayerOrder_DevTalent = 28; + EPlayerOrder_SellItem = 29; + EPlayerOrder_DevSetPlayerLevel = 30; + EPlayerOrder_DevGiveUnderlord = 32; + EPlayerOrder_DevSetAutosavingEnabled = 33; + EPlayerOrder_DevRemoveAllUnits = 34; + EPlayerOrder_DevSetUnitRank = 35; + EPlayerOrder_DevRemoveAllItems = 36; + EPlayerOrder_ClearBoard = 37; + EPlayerOrder_GoToTutorialState = 38; + EPlayerOrder_SelectTurboBucket = 39; + EPlayerOrder_TurboBucketReroll = 40; + EPlayerOrder_SelectUnderlord = 41; + EPlayerOrder_DevMakeTestBot = 42; + EPlayerOrder_ItemRewardChoiceReroll = 43; + EPlayerOrder_BuyPuzzleUnit = 44; + EPlayerOrder_Dungeon_AdvancePhase = 45; +} + +enum ERoundCombatResult { + ERoundCombatResult_Draw = 0; + ERoundCombatResult_HomeWin = 1; + ERoundCombatResult_AwayWin = 2; +} + +enum EDamageSourceType { + k_EDamageSourceType_Round = 0; + k_EDamageSourceType_Unit = 1; + k_EDamageSourceType_Item = 2; + k_EDamageSourceType_DuosNetDamage = 3; +} + +enum ERoundVictoryLevel { + ERoundVictoryLevel_HomeDecisive = 0; + ERoundVictoryLevel_HomeNarrow = 1; + ERoundVictoryLevel_HomeFlawless = 2; + ERoundVictoryLevel_HomeNormal = 3; + ERoundVictoryLevel_AwayDecisive = 4; + ERoundVictoryLevel_AwayNarrow = 5; + ERoundVictoryLevel_AwayFlawless = 6; + ERoundVictoryLevel_AwayNormal = 7; + ERoundVictoryLevel_Draw = 8; +} + +enum EDACPuzzleRule { + k_EDACPuzzleRule_None = 0; + k_EDACPuzzleRule_UnitCountLimit = 1; + k_EDACPuzzleRule_UnitStarLimit = 2; + k_EDACPuzzleRule_BoardCostLimit = 3; + k_EDACPuzzleRule_ItemCountLimit = 4; + k_EDACPuzzleRule_ValidBoardPositions = 5; + k_EDACPuzzleRule_MaxCombatDuration = 6; + k_EDACPuzzleRule_UnitCopyLimit = 7; + k_EDACPuzzleRule_Custom1 = 100; + k_EDACPuzzleRule_Custom2 = 101; + k_EDACPuzzleRule_Custom3 = 102; + k_EDACPuzzleRule_Custom4 = 103; + k_EDACPuzzleRule_AllianceAllowed1 = 110; + k_EDACPuzzleRule_AllianceAllowed2 = 111; + k_EDACPuzzleRule_AllianceAllowed3 = 112; + k_EDACPuzzleRule_AllianceAllowed4 = 113; + k_EDACPuzzleRule_AllianceDisllowed1 = 120; + k_EDACPuzzleRule_AllianceDisllowed2 = 121; + k_EDACPuzzleRule_AllianceDisllowed3 = 122; + k_EDACPuzzleRule_AllianceDisllowed4 = 123; + k_EDACPuzzleRule_UnitAllowed1 = 130; + k_EDACPuzzleRule_UnitAllowed2 = 131; + k_EDACPuzzleRule_UnitAllowed3 = 132; + k_EDACPuzzleRule_UnitAllowed4 = 133; + k_EDACPuzzleRule_UnitDisallowed1 = 140; + k_EDACPuzzleRule_UnitDisallowed2 = 141; + k_EDACPuzzleRule_UnitDisallowed3 = 142; + k_EDACPuzzleRule_UnitDisallowed4 = 143; +} + +enum EDACDungeonRoomType { + k_EDACDungeonRoomType_None = 0; + k_EDACDungeonRoomType_Shop = 1; + k_EDACDungeonRoomType_Mystery = 2; + k_EDACDungeonRoomType_MiniGame = 3; + k_EDACDungeonRoomType_StandardCombat = 4; + k_EDACDungeonRoomType_MiniBoss = 5; + k_EDACDungeonRoomType_Boss = 6; +} + +enum EDACDungeonPhase { + k_EDACDungeonPhase_None = 0; + k_EDACDungeonPhase_Intro_ChoosingUnderlord = 1; + k_EDACDungeonPhase_Intro_ChoosingFirstUnit = 2; + k_EDACDungeonPhase_Room_Setup = 3; + k_EDACDungeonPhase_Room_Main = 4; + k_EDACDungeonPhase_Room_Post_Rewards = 5; + k_EDACDungeonPhase_Room_Post_ChooseNextRoom = 6; + k_EDACDungeonPhase_Victory = 7; + k_EDACDungeonPhase_Defeat = 8; +} + +enum EUnitAIState { + EUnitAIState_Idle = 0; + EUnitAIState_MoveToAttack = 1; + EUnitAIState_MoveToLocation = 2; + EUnitAIState_Attack = 3; + EUnitAIState_CastAbility = 4; + EUnitAIState_Dead = 5; + EUnitAIState_Portrait = 6; + EUnitAIState_WalkBack = 7; + EUnitAIState_Celebrate = 8; + EUnitAIState_RoundEndTeleport = 9; + EUnitAIState_Resurrecting = 10; + EUnitAIState_WalkThroughGate = 11; + EUnitAIState_MoveInFear = 12; +} + +enum EDACIncidentType { + EDACIncidentType_None = 0; + EDACIncidentType_DamagePhysical = 1; + EDACIncidentType_DamageMagical = 2; + EDACIncidentType_DamagePure = 3; + EDACIncidentType_Died = 4; + EDACIncidentType_Heal = 5; +} + +enum EDACNetBuffer { + k_eDACNetBuffer_MatchState = 0; + k_eDACNetBuffer_RoundCombat = 1; + k_eDACNetBuffer_PublicPlayerState = 2; + k_eDACNetBuffer_PrivatePlayerState = 3; + k_eDACNetBuffer_Debug = 4; + k_eDACNetBuffer_ModifierName = 5; + k_eDACNetBuffer_IndividualPostMatchStats = 6; + k_eDACNetBuffer_PublicPostMatchStats = 7; + k_eDACNetBuffer_GameModeState = 8; + k_eDACNetBuffer_RoundCombatGlobal = 9; +} + +enum EInGameChatType { + k_eInGameChatType_Global = 0; + k_eInGameChatType_Combat = 1; +} + +enum EClickType { + k_eClickType_Left = 0; + k_eClickType_Right = 1; +} + +enum EMapPropCommand { + k_eMapPropCommand_None = 0; + k_eMapPropCommand_Click = 1; +} + +enum EDuosMessageType { + k_eDuosMessageType_None = 0; + k_eDuosMessageType_IWant = 1001; + k_eDuosMessageType_DoYouWant = 1002; + k_eDuosMessageType_YesWant = 1003; + k_eDuosMessageType_NoWant = 1004; + k_eDuosMessageType_FreeYourBenchFor = 1005; + k_eDuosMessageType_Thanks = 1006; + k_eDuosMessageType_Sent1Gold = 1007; + k_eDuosMessageType_Sent5Gold = 1008; + k_eDuosMessageType_INoLongerWant = 1009; + k_eDuosMessageType_WantGold = 1010; + k_eDuosMessageType_LevelUpQuestion = 1011; + k_eDuosMessageType_SpendRerollQuestion = 1012; +} + +enum EDuosMessageTargetType { + k_eDuosMessageTargetType_None = 0; + k_eDuosMessageTargetType_Unit = 1; + k_eDuosMessageTargetType_Synergy = 2; + k_eDuosMessageTargetType_Gold = 3; +} + +enum EBoardBuddyCommand { + k_eBoardBuddyCommand_None = 0; + k_eBoardBuddyCommand_Move = 1; +} + +message CClientReconnectInfo { + optional fixed64 server_steam_id = 1; + optional uint64 lobby_id = 2; + optional uint32 time_updated = 3; + optional uint32 udp_connect_ip = 4; + optional uint32 udp_connect_port = 5; + optional uint32 compatibility_version = 7; +} + +message CMsgPlayerStateUpdatesComplete { +} + +message CMsgClientUnderlordLoadout { + repeated uint32 item_defs = 1; + optional string loadout_name = 2; + optional bool selected = 3; + optional uint32 underlord_id = 4; +} + +message CMsgClientUnderlordLoadoutList { + optional uint32 version = 1; + repeated .CMsgClientUnderlordLoadout loadouts = 2; +} + +message CMsgPlayerOrder { + required .EPlayerOrder order = 1 [default = EPlayerOrder_SellUnit]; + optional int32 param1 = 2; + optional int32 param2 = 3; + optional int32 param3 = 4; + optional uint32 spoof_player_slot = 5; + optional uint32 command_id = 6; + optional int32 param4 = 7; + optional int32 param5 = 8; + optional int32 param6 = 9; + optional string string_param1 = 10; +} + +message CMsgPlayerOrderProcessed { + optional uint32 command_id = 1; +} + +message CMsgPlayerCombinedHero { + optional uint32 player_slot = 1; + optional int32 unit_id = 2; + optional uint32 new_rank = 3; + optional uint32 entindex = 4; + optional uint32 notification_id = 5; + optional bool duos_combine = 6; +} + +message CMsgPlayerAcquiredItem { + optional uint32 player_slot = 1; + optional int32 item_id = 2; + optional uint32 notification_id = 3; +} + +message CMsgPlayerRecievedUnitFromDuosPartner { + optional int32 unit_id = 1; +} + +message CMsgPlayerSelectedTalent { + optional uint32 player_slot = 1; + optional int32 talent_itemdef_index = 2; + optional uint32 notification_id = 3; +} + +message CMsgPlayerCombatResult { + message DamageSource { + required .EDamageSourceType type = 1 [default = k_EDamageSourceType_Round]; + optional int32 entity_id = 2; + optional int32 rank = 3; + optional int32 damage_dealt = 4; + } + + optional uint32 player_slot = 1; + optional .ERoundCombatResult result = 4 [default = ERoundCombatResult_Draw]; + optional uint32 damage_taken = 5; + repeated .CMsgPlayerCombatResult.DamageSource damage_sources = 6; + optional bool aegis_used = 7; + optional .ERoundVictoryLevel victory_level = 8 [default = ERoundVictoryLevel_HomeDecisive]; + optional uint32 notification_id = 9; + optional uint32 total_gold = 11; + optional uint32 gold_from_interest = 12; + optional uint32 gold_from_streak = 13; + optional uint32 gold_from_items = 14; + optional uint32 gold_from_round_bonus = 15; + optional uint32 gold_from_victory = 16; + optional bool free_reroll = 17; + + oneof opponent { + uint32 opponent_player_slot = 2; + uint32 opponent_neutral_wave = 3; + } +} + +message CMsgPlayerWinStreak { + optional uint32 player_slot = 1; + optional uint32 streak_length = 2; + optional uint32 notification_id = 3; +} + +message CMsgPlayerLevelUp { + optional uint32 player_slot = 1; + optional uint32 level = 2; + optional uint32 notification_id = 3; +} + +message CMsgItemChangedOwner { + optional uint32 old_player_slot = 1; + optional uint32 new_player_slot = 2; + optional uint32 item_id = 3; + optional uint32 notification_id = 4; +} + +message CMsgPlayerEliminated { + optional uint32 player_slot = 1; + optional uint32 final_position = 2; + optional uint32 notification_id = 3; + optional uint32 opponent_player_slot = 4; + optional bool was_head_to_head = 5; +} + +message CMsgPosition { + required int32 x = 1; + required int32 y = 2; +} + +message CMsgUnit { + required int32 entindex = 1; + optional int32 unit_id = 2; + optional .CMsgPosition position = 3; + optional int32 rank = 4; + optional int32 gold_value = 6; + optional uint32 kill_count = 8; + optional uint32 kill_streak = 9; + repeated .EUnitKeyword keywords = 10; + optional bool is_summoned = 11; + optional uint32 duel_bonus_damage = 12; + optional int32 unit_cap_cost = 13; + optional bool is_placeable_item = 14; + optional bool bot_ignore = 15; + optional bool can_move_to_bench = 16; + optional bool can_be_sold = 17; + optional bool recommended_for_placement = 18; + optional float float_kill_count = 38; +} + +message CMsgShopItem { + optional int32 unit_id = 1; + optional bool will_combine_two_stars = 2; + optional int32 gold_cost = 3; + optional bool wanted_legendary = 4; + optional bool will_combine_three_stars = 5; + repeated .EUnitKeyword keywords = 6; +} + +message CMsgTurboBucket { + repeated .EUnitKeyword keywords = 1; + repeated int32 unit_ids = 2; +} + +message CMsgUnderlordPickerOffering { + optional uint32 underlord_id = 1; + optional uint32 build_id = 2; +} + +message CMsgSynergy { + optional .EUnitKeyword keyword = 1 [default = EUnitKeyword_Invalid]; + optional int32 unique_unit_count = 2; + optional int32 bench_additional_unique_unit_count = 3; +} + +message CMsgItemSlot { + optional uint32 slot_index = 1; + required uint32 item_id = 2; + optional int32 assigned_unit_entindex = 3; +} + +message CMsgBoardBuddy { + optional float desired_pos_x = 1; + optional float desired_pos_y = 2; +} + +message CMsgMapProp { + optional uint32 prop_idx = 1; + optional uint32 prop_state = 2; + optional uint32 num_clicks = 3; +} + +message CMsgPublicPlayerState { + message LoadoutItem { + optional uint32 slot = 1; + optional uint32 sub_slot = 2; + optional uint32 def_index = 3; + } + + required uint32 player_slot = 1; + optional uint32 account_id = 2; + optional .EPlayerConnectionState connection_status = 3 [default = EPlayerConnectionState_Connecting]; + optional bool is_human_player = 4; + optional int32 health = 5; + optional int32 gold = 6; + optional int32 level = 7; + optional int32 xp = 8; + repeated .CMsgItemSlot item_slots = 9; + repeated .CMsgUnit units = 10; + optional uint32 final_place = 14; + optional int32 next_level_xp = 15; + repeated .CMsgSynergy synergies = 16; + optional string bot_persona_name = 17; + optional uint64 sequence_number = 18; + optional int32 shop_cost_modifier = 20; + optional float combat_duration = 21; + optional int32 reroll_cost_modifier = 22; + optional int32 win_streak = 26; + optional int32 lose_streak = 27; + optional uint32 rank_tier = 28; + optional float disconnected_time = 29; + optional uint32 vs_opponent_wins = 30; + optional uint32 vs_opponent_losses = 31; + optional uint32 vs_opponent_draws = 32; + optional .EDACPlatform platform = 33 [default = k_eDACPlatform_None]; + optional uint32 event_tier = 34; + optional string persona_name = 36; + optional uint32 wins = 37; + optional uint32 losses = 38; + optional uint32 global_leaderboard_rank = 39; + repeated .CMsgPublicPlayerState.LoadoutItem player_loadout = 40; + optional uint32 net_worth = 41; + optional uint32 combat_result = 43; + optional .EDACLobbyTeam lobby_team = 44 [default = k_EDACLobbyTeam_Team0]; + repeated uint32 underlord_selected_talents = 45; + optional bool is_mirrored_match = 46; + optional uint32 underlord = 47; + optional uint32 party_index = 48; + optional uint32 next_combat_opponent_neutral_wave = 49; + optional int32 board_unit_limit = 52; + repeated uint32 underlord_available_talents = 53; + optional uint32 combat_type = 54; + optional .CMsgBoardBuddy board_buddy = 55; + repeated .CMsgMapProp prop_state = 56; + optional float brawny_kills_float = 57; + optional bool owns_event = 58; + optional uint32 city_prestige_level = 59; + optional uint32 stat_best_victory_duration = 1000; + optional uint32 stat_best_victory_net_worth = 1001; + optional uint32 stat_best_victory_remaining_health_percent = 1002; + optional uint32 stat_best_victory_units = 1006; + optional uint32 stat_prev_victory_duration = 1003; + optional uint32 stat_prev_victory_net_worth = 1004; + optional uint32 stat_prev_victory_remaining_health_percent = 1005; + optional uint32 stat_prev_victory_units = 1007; + + oneof opponent { + uint32 opponent_player_slot = 24; + uint32 opponent_neutral_wave = 25; + } +} + +message CMsgPublicPostMatchStats { + message PlayerPerRoundInfo { + optional uint32 gold = 1; + optional uint32 health = 2; + optional uint32 level = 3; + optional uint32 wins = 4; + optional uint32 losses = 5; + optional uint32 net_worth = 6; + repeated .CMsgUnit units = 7; + repeated uint32 synergies = 8; + repeated .CMsgItemSlot item_slots = 9; + repeated uint32 underlord_selected_talents = 10; + } + + message PlayerInfo { + repeated .CMsgPublicPostMatchStats.PlayerPerRoundInfo rounds = 1; + optional uint32 player_slot = 2; + optional uint32 account_id = 3; + optional bool is_human_player = 4; + optional string persona_name = 5; + optional uint32 mmr_level = 6; + optional uint32 global_leaderboard_rank = 7; + optional uint32 final_position = 8; + optional .EDACLobbyTeam lobby_team = 9 [default = k_EDACLobbyTeam_Team0]; + } + + repeated .CMsgPublicPostMatchStats.PlayerInfo players = 1; + optional uint32 game_mode = 2; + optional uint64 match_id = 3; +} + +message CMsgIndividualPostMatchStats { + message Round { + repeated .CMsgUnit units = 1; + repeated uint32 synergies = 2; + repeated .CMsgItemSlot items = 3; + optional uint32 gold_spent_on_rerolls = 4; + optional uint32 gold_earned = 5; + optional uint32 interest_gold_earned = 6; + optional uint32 streak_gold_earned = 7; + optional uint32 victory = 8; + optional uint32 xp_earned = 9; + optional uint32 health = 10; + optional uint32 gold = 11; + optional uint32 round_ranking = 12; + optional uint32 level = 13; + optional uint32 enemy_player_slot = 14; + optional uint32 gold_spent_on_levels = 15; + optional uint32 gold_spent_on_units = 16; + optional uint32 damage_dealt_to_units = 17; + optional uint32 victory_level = 18; + optional uint32 damage_dealt_to_player = 19; + optional uint32 enemy_underlord = 20; + repeated uint32 underlord_selected_talents = 21; + } + + message Challenge { + optional uint32 slot_id = 1; + optional uint32 sequence_id = 2; + optional uint32 progress = 3; + optional uint32 initial_progress = 4; + optional uint32 claimed = 5; + } + + message Currency { + optional uint32 currency_id = 1; + optional uint32 initial_amount = 2; + optional uint32 amount_gained = 3; + } + + message Event { + optional uint32 event_id = 1; + optional bool event_owned = 2; + optional uint32 event_tier = 3; + repeated .CMsgIndividualPostMatchStats.Challenge challenges = 4; + repeated .CMsgIndividualPostMatchStats.Currency currencies = 5; + } + + message RankUpdate { + optional uint32 initial_level_score = 1; + optional uint32 initial_level = 2; + optional float initial_level_partial_progress = 3; + optional uint32 final_level_score = 4; + optional uint32 final_level = 5; + optional float final_level_partial_progress = 6; + optional uint32 initial_leaderboard_place = 7; + } + + repeated .CMsgIndividualPostMatchStats.Round rounds = 1; + optional uint32 player_slot = 2; + optional uint32 position = 3; + repeated .CMsgIndividualPostMatchStats.Event events = 4; + optional .CMsgIndividualPostMatchStats.RankUpdate individual_rank_update = 5; + optional .CMsgIndividualPostMatchStats.RankUpdate duos_rank_update = 6; + optional .EDACGameMode game_mode = 7 [default = k_EDACGameMode_Invalid]; + optional .EDACMatchMode match_mode = 8 [default = k_EDACMatchMode_Invalid]; + optional .EDACBotDifficulty bot_difficulty = 9 [default = k_EDACBotDifficulty_None]; + optional uint32 underlord_id = 10; + optional uint32 underlord_build_id = 11; + optional .CMsgGameModeSettings game_mode_settings = 12; +} + +message CMsgPlayerPreferences { + optional bool auto_deploy_units = 1; +} + +message CMsgPrivatePlayerState { + message ItemChoiceReward { + message Choice { + required uint32 item_id = 1; + optional bool available = 2; + } + + required int32 reward_id = 1; + repeated .CMsgPrivatePlayerState.ItemChoiceReward.Choice choices = 2; + } + + message Challenge { + optional uint32 slot_id = 1; + optional uint32 sequence_id = 2; + optional uint32 progress = 3; + optional uint32 initial_progress = 4; + optional uint32 claimed = 5; + } + + enum EGrantRewards { + EGrantRewards_No = 0; + EGrantRewards_Yes = 1; + EGrantRewards_NoLongerEligible = 2; + } + + required uint32 player_slot = 1; + optional int32 unclaimed_reward_count = 2; + optional .CMsgPrivatePlayerState.ItemChoiceReward oldest_unclaimed_reward = 3; + optional bool shop_locked = 4; + repeated .CMsgShopItem shop_units = 5; + optional uint32 gold_earned_this_round = 6; + optional uint32 shop_generation_id = 7; + repeated .CMsgPrivatePlayerState.Challenge challenges = 8; + optional .CMsgPrivatePlayerState.EGrantRewards grants_rewards = 9 [default = EGrantRewards_No]; + optional uint32 sequence_number = 10; + optional int32 reroll_cost = 11; + optional bool used_turbo_bucket_reroll = 20; + repeated .CMsgTurboBucket turbo_buckets = 21; + optional bool can_select_underlord = 22; + repeated .CMsgUnderlordPickerOffering underlord_picker_offering = 23; + optional bool used_item_reward_reroll_this_round = 24; +} + +message CMsgMatchState { + message TeamInfo { + optional .EDACLobbyTeam lobby_team = 1 [default = k_EDACLobbyTeam_Team0]; + optional string team_name = 2; + optional uint32 team_mmr_level = 3; + optional uint32 team_leaderboard_place = 4; + } + + optional .EGameState game_state = 1 [default = EGameState_Intro]; + optional .ERoundState round_state = 2 [default = ERoundState_Preparing]; + optional int32 round_number = 3; + optional float state_change_time = 4; + optional float state_duration = 5; + optional float paused_state_time_remaining = 6; + optional uint64 match_id = 8; + optional .CMsgGameModifiers game_modifiers = 9; + repeated .CMsgMatchState.TeamInfo team_info = 10; + optional string feature_controls = 11; +} + +message CMsgGameModeState_Normal { +} + +message CMsgGameModeState_Turbo { + optional .CMsgGameModeState_Normal base_normal = 1; +} + +message CMsgDuos_TeamCombatResult { + optional uint32 player_slot = 1; + optional uint32 opponent_slot = 2; + optional int32 damage_result = 3; + optional uint32 teammate_slot = 4; + optional uint32 teammate_opponent_slot = 5; + optional int32 teammate_damage_result = 6; +} + +message CMsgGameModeState_Duos { + optional .CMsgGameModeState_Normal base_normal = 1; + repeated .CMsgDuos_TeamCombatResult combat_results = 2; +} + +message CMsgGameModeState_TechPrototypeA { + optional int32 rounds_remaining = 1; +} + +message CMsgGameModeState_Sandbox { + optional int32 opponent_player_slot = 1; +} + +message CMsgGameModeState_Puzzle { + message ActiveRule { + optional .EDACPuzzleRule rule = 1 [default = k_EDACPuzzleRule_None]; + optional bool satisfied = 2; + repeated int32 constraints = 3 [packed = true]; + optional int32 current_value = 4; + } + + optional int32 opponent_player_slot = 1; + repeated .CMsgGameModeState_Puzzle.ActiveRule active_rules = 2; + optional bool active_rules_satisfied = 3; + optional int32 puzzle_id = 4; + repeated uint32 allowed_unit_def_indices = 5; +} + +message CMsgGameModeState_Tutorial { + optional string tutorial_state_name = 1; + optional int32 opponent_player_slot = 2; +} + +message CMsgGameModeState_Streetfight { + optional uint32 streetfight_id = 1; + optional int32 opponent_player_slot = 2; +} + +message DungeonActionCard { + optional int32 card_id = 1; +} + +message CMsgGameModeState_Dungeon { + optional .EDACDungeonPhase dungeon_phase = 1 [default = k_EDACDungeonPhase_None]; + optional .EDACDungeonRoomType current_room_type = 2 [default = k_EDACDungeonRoomType_None]; + repeated .EDACDungeonRoomType next_room_types = 3; + repeated .DungeonActionCard available_cards = 4; +} + +message CMsgGameModeState { + oneof details { + .CMsgGameModeState_Normal details_normal = 1; + .CMsgGameModeState_Turbo details_turbo = 2; + .CMsgGameModeState_Duos details_duos = 3; + .CMsgGameModeState_TechPrototypeA details_tech_prototype_a = 4; + .CMsgGameModeState_Sandbox details_sandbox = 5; + .CMsgGameModeState_Puzzle details_puzzle = 6; + .CMsgGameModeState_Tutorial details_tutorial = 7; + .CMsgGameModeState_Streetfight details_streetfight = 8; + .CMsgGameModeState_Dungeon details_dungeon = 9; + } +} + +message CMsgUnitPosition { + required float x = 1; + required float y = 2; + required float z = 3; +} + +message CMsgUnitPositionAndFacing { + required float x = 1; + required float y = 2; + required float z = 3; + required float yaw = 4; +} + +message CMsgUnitAbilityCooldown { + required uint32 ability_id = 1; + required float cooldown_ratio = 2; +} + +message CMsgUnitSnapshot { + optional int32 entindex = 1; + optional int32 unit_id = 2; + optional int32 team_number = 3; + optional .CMsgUnitPositionAndFacing position = 4; + optional int32 health = 5; + optional int32 mana = 6; + repeated string particle_attachment_names = 7; + optional int32 rank = 8; + optional .EUnitAIState ai_state = 9 [default = EUnitAIState_Idle]; + optional float cooldown_ratio = 10; + optional uint32 kill_count = 12; + optional uint32 kill_streak = 13; + optional int32 max_health = 14; + repeated .EUnitKeyword keywords = 15; + optional .CMsgUnitPositionAndFacing starting_position = 16; + optional bool is_summoned = 17; + optional int32 summon_owner_entindex = 18; + optional uint32 duel_bonus_damage = 19; + optional int32 armor = 20; + optional uint32 underlord_power = 21; + optional uint32 status_label = 22; + optional uint32 status_effect_index = 23; + optional float attacks_per_second = 24; + optional int32 damage_min = 25; + optional int32 damage_max = 26; + optional int32 damage_bonus = 27; + optional bool full_update = 28; + repeated .CMsgUnitAbilityCooldown ability_cooldowns = 29; + repeated uint32 abilities_enabled = 30; + repeated uint32 buff_status = 31; + optional bool force_big_healthbar = 32; + optional uint32 override_item_slot = 33; + optional int32 range_bonus = 34; + optional bool can_move_to_bench = 35; + optional bool can_be_sold = 36; + optional bool recommended_for_placement = 37; + optional float float_kill_count = 38; + optional float cooldown_multiplier = 39; + optional bool client_synthesized_for_setup = 1001; + optional bool client_is_on_bench = 1002; +} + +message CMsgUnitMeterDamageDealt { + optional int32 total_damage_dealt = 1; + optional int32 spell_damage_dealt = 2; + optional int32 attack_damage_dealt = 3; + optional int32 item_damage_dealt = 4; +} + +message CMsgUnitMeterDetail { + optional int32 value = 2; + optional uint32 id = 3; +} + +message CMsgUnitMeterDamageTaken { + optional int32 total_damage_taken = 1; + optional int32 physical_damage_taken = 2; + optional int32 magical_damage_taken = 3; + optional int32 pure_damage_taken = 4; +} + +message CMsgUnitMeterSnapshot { + optional int32 entindex = 1; + optional int32 unit_id = 2; + optional int32 team_number = 3; + optional .CMsgUnitMeterDamageDealt damage_dealt = 4; + optional .CMsgUnitMeterDamageTaken damage_taken = 5; + optional uint32 healing_done = 6; + optional uint32 kills = 7; + optional float time_of_death = 8; + optional uint32 rank = 9; + optional int32 globalindex = 10; + repeated .CMsgUnitMeterDetail damage_dealt_details = 11; + repeated .CMsgUnitMeterDetail healing_done_details = 12; + optional float disable_done = 13; + repeated .CMsgUnitMeterDetail damage_taken_details = 14; + repeated .CMsgUnitMeterDetail kills_details = 15; + repeated .CMsgUnitMeterDetail disable_done_details = 16; +} + +message CMsgCombatMetersSnapshot { + required float snapshot_time = 1; + repeated .CMsgUnitMeterSnapshot units = 2; +} + +message CMsgCombatDebugSnapshot { + message PathfindingCell { + required bool reserved = 1; + optional int32 owner_entindex = 2; + } + + message ActivePath { + optional int32 owner_entindex = 1; + repeated .CMsgPosition path_waypoints = 2; + optional int32 path_waypoint_index = 3; + } + + repeated .CMsgCombatDebugSnapshot.PathfindingCell pathfinding_cells = 1; + repeated .CMsgCombatDebugSnapshot.ActivePath active_paths = 2; +} + +message CMsgCombatSnapshot { + required float snapshot_time = 1; + repeated .CMsgUnitSnapshot units = 2; + optional .CMsgCombatDebugSnapshot debug_snapshot = 3; +} + +message CMsgCombatEvent_Attack { + optional int32 attack_projectile_speed = 1; +} + +message CMsgCombatEvent_Damage { + optional uint32 damage_amount = 1; + optional bool is_critical = 2; +} + +message CMsgCombatEvent_AttackMissed { +} + +message CMsgCombatEvent_AttackEvaded { +} + +message CMsgCombatEvent_AttackBlocked { + optional uint32 block_amount = 1; +} + +message CMsgCombatEvent_Death { +} + +message CMsgCombatEvent_StartAttack { + optional float attack_speed = 1; +} + +message CMsgCombatEvent_SoundEvent { + optional uint32 soundevent_hash = 1; + optional .CMsgUnitPosition position = 2; + optional bool restrict_to_home_team = 4; +} + +message CMsgCombatEvent_SpeechEvent { + optional string vcd_name = 1; + optional bool restrict_to_home_team = 2; + optional int32 priority = 3; +} + +message CMsgCombatEvent_ModifierCreate { + required uint32 modifier_entindex = 1; + required uint32 modifier_id = 2; + optional float duration = 3; + optional int32 synergy_level = 4; +} + +message CMsgCombatEvent_ModifierDestroy { + required uint32 modifier_entindex = 1; +} + +message CMsgCombatEvent_StartGesture { + required uint32 activity = 1; + optional float fade_in = 2; + optional float fade_out = 3; + optional int32 slot = 4; + optional float duration = 5; +} + +message CMsgCombatEvent_StopGesture { + required uint32 activity = 1; +} + +message CMsgCombatEvent_CancelAttack { +} + +message CMsgCombatEvent_CombatEnded { + optional bool ran_out_of_time = 1; +} + +message CMsgCombatEvent_Resurrect { +} + +message CMsgCombatEvent_CastAbility { + optional uint32 ability_id = 1; +} + +message CMsgCombatEvent { + required float event_time = 1; + optional uint32 source_entindex = 2; + optional uint32 target_entindex = 3; + + oneof details { + .CMsgCombatEvent_Attack details_attack = 4; + .CMsgCombatEvent_Damage details_damage = 5; + .CMsgCombatEvent_Death details_death = 6; + .CMsgCombatEvent_StartAttack details_start_attack = 7; + .CMsgCombatEvent_SoundEvent details_sound_event = 8; + .CUserMsg_ParticleManager details_particle_event = 9; + .CMsgCombatEvent_ModifierCreate details_modifier_create = 10; + .CMsgCombatEvent_ModifierDestroy details_modifier_destroy = 11; + .CMsgCombatEvent_StartGesture details_start_gesture = 12; + .CMsgCombatEvent_CancelAttack details_cancel_attack = 13; + .CMsgCombatEvent_CombatEnded details_combat_ended = 14; + .CMsgCombatEvent_AttackMissed details_attack_missed = 15; + .CMsgCombatEvent_AttackEvaded details_attack_evaded = 16; + .CMsgCombatEvent_AttackBlocked details_attack_blocked = 17; + .CMsgCombatEvent_Resurrect details_resurrect = 18; + .CMsgCombatEvent_SpeechEvent details_speech_event = 19; + .CMsgCombatEvent_CastAbility details_cast_ability = 20; + .CMsgCombatEvent_StopGesture details_stop_gesture = 21; + } +} + +message CMsgCombatHighlight { + required .EDACIncidentType highlight_type = 1 [default = EDACIncidentType_None]; + optional float start_time = 2; + optional float finish_time = 3; + optional int32 source_unit_idx = 4; + optional int32 target_unit_idx = 5; + optional float magnitude = 6; +} + +message CMsgRoundCombat { + optional int32 round_number = 1; + optional float combat_duration = 2; + optional float combat_intro_duration = 3; + optional float added_time_before_results = 4; + repeated .CMsgCombatSnapshot snapshots = 5; + repeated .CMsgCombatEvent events = 6; + optional .ERoundCombatResult result = 7 [default = ERoundCombatResult_Draw]; + optional uint32 player_player_slot = 8; + repeated .CMsgCombatMetersSnapshot meter_snapshots = 11; + repeated .CMsgCombatHighlight combat_highlights = 12; + optional bool mirrored = 14; + + oneof opponent { + uint32 opponent_player_slot = 9; + uint32 opponent_neutral_wave = 10; + } +} + +message CMsgBattle { + optional int32 round_number = 1; + repeated .CMsgRoundCombat combats = 2; + optional .CMsgRoundCombatGlobal global = 3; +} + +message CMsgRoundCombatGlobal { + message EventList { + repeated .CMsgCombatEvent events = 1; + } + + message CombatPlayerSlotToEventsEntry { + optional uint32 key = 1; + optional .CMsgRoundCombatGlobal.EventList value = 2; + } + + optional int32 round_number = 1; + repeated .CMsgRoundCombatGlobal.CombatPlayerSlotToEventsEntry combat_player_slot_to_events = 2; +} + +message CMsgClientServerHeader { + required .EDACGameMessages msg_id = 1 [default = k_EMsgNetBufferContents]; + optional bytes payload = 2; +} + +message CMsgNetBufferContents { + optional bool is_diff = 1; + optional bool is_last = 2; + optional bytes payload = 3; + optional uint32 unpacked_state_size = 4; + optional .EDACNetBuffer net_buffer_type = 5 [default = k_eDACNetBuffer_MatchState]; + optional uint32 net_buffer_id = 6; + optional uint32 server_time_ms = 7; + optional bool is_result_compressed = 8; + optional bool is_update_compressed = 9; +} + +message CMsgNetBufferRemoved { + optional .EDACNetBuffer net_buffer_type = 5 [default = k_eDACNetBuffer_MatchState]; + optional uint32 net_buffer_id = 6; +} + +message CMsgClientConnectionStarted { + message GameConstants { + message UnitChances { + repeated float chance = 1; + } + + optional .CMsgGameModeSettings game_mode_settings = 1; + repeated int32 player_experience_table = 2; + optional int32 experience_purchase_gold_cost = 3; + optional int32 experience_purchase_amount = 4; + repeated .CMsgClientConnectionStarted.GameConstants.UnitChances unit_tier_chances = 5; + optional int32 max_interest_gold = 6; + optional int32 interest_gold_divisor = 7; + optional bool win_matters_for_item_rewards = 8; + repeated int32 loot_round_numbers = 9; + optional bool has_neutral_rounds = 10; + optional int32 underlord_selection_round = 11; + optional float kill_multiplier = 12; + optional uint32 prestige_level = 13; + } + + message GameManager { + optional uint32 definition_set = 1; + } + + optional bool in_developer_mode = 1; + optional bool in_offline_mode = 2; + optional bool is_listen_server_game = 3; + optional bool is_single_human_game = 4; + optional .EDACMatchMode match_mode = 5 [default = k_EDACMatchMode_Invalid]; + optional .EDACGameMode game_mode = 6 [default = k_EDACGameMode_Invalid]; + optional .CMsgClientConnectionStarted.GameConstants game_constants = 7; + optional .CMsgClientConnectionStarted.GameManager game_manager = 8; +} + +message CMsgClientConnectionComplete { +} + +message CMsgClientSetDebugNetBuffer { + optional uint32 net_buffer_id = 1; + optional string contents = 2; + optional uint32 repeat = 3; + optional bool force_full_send = 4; +} + +message CDACNetBuffer_Debug { + optional string contents = 1; +} + +message CMsgGameReplayActionMarker { + enum EActionType { + k_eActionType_Placholder = 1; + } + + optional .CMsgGameReplayActionMarker.EActionType action = 1 [default = k_eActionType_Placholder]; +} + +message CMsgModifierName { + message Modifier { + required uint32 modifier_id = 1; + required string modifier_name = 2; + } + + repeated .CMsgModifierName.Modifier modifier_list = 1; +} + +message CMsgClientToServerChatMsg { + optional uint32 message_id = 1; + optional string custom_text = 2; + optional .EInGameChatType chat_type = 3 [default = k_eInGameChatType_Global]; + optional uint32 board_spray_id = 4; + optional float board_spray_x = 5; + optional float board_spray_y = 6; + optional uint32 sprayed_board_player_slot = 7; +} + +message CMsgServerToClientChatMsg { + optional uint32 player_slot = 1; + optional uint32 message_id = 2; + optional string custom_text = 3; + optional uint32 notification_id = 4; + optional .EInGameChatType chat_type = 5 [default = k_eInGameChatType_Global]; + optional uint32 board_spray_id = 6; + optional float board_spray_x = 7; + optional float board_spray_y = 8; + optional uint32 sprayed_board_player_slot = 9; +} + +message CMsgClientToServerClickMsg { + optional .EClickType click_type = 1 [default = k_eClickType_Left]; + optional uint32 target_player_slot = 2; + optional float click_x = 3; + optional float click_y = 4; + optional float click_z = 5; +} + +message CMsgServerToClientClickMsg { + optional .EClickType click_type = 1 [default = k_eClickType_Left]; + optional uint32 source_player_slot = 2; + optional uint32 target_player_slot = 3; + optional float click_x = 4; + optional float click_y = 5; + optional float click_z = 6; +} + +message CMsgPlayerMapPropCommand { + optional uint32 command = 1; + optional uint32 player_slot = 2; + optional uint32 prop_idx = 3; +} + +message CMsgClientToServerTeammateDuosMessage { + optional uint32 teammate_slot = 1; + optional .EDuosMessageType message_type = 2 [default = k_eDuosMessageType_None]; + optional .EDuosMessageTargetType target_type = 3 [default = k_eDuosMessageTargetType_None]; + optional uint32 target_id = 4; +} + +message CMsgServerToClientTeammateDuosMessage { + optional uint32 teammate_slot = 1; + optional .EDuosMessageType message_type = 2 [default = k_eDuosMessageType_None]; + optional .EDuosMessageTargetType target_type = 3 [default = k_eDuosMessageTargetType_None]; + optional uint32 target_id = 4; +} + +message CMsgClientToServerLoadShareCode { + optional string share_code = 1; +} + +message CMsgClientToServerBoardBuddyCommand { + optional uint32 command = 1; + optional float pos_x = 2; + optional float pos_y = 3; +} + +message CMsgClientToServerPuzzleLeaderboardCommand { + optional uint32 leaderboard = 1; +} + +message CMsgRecordLocalBotStats { + optional bytes serialized_msg = 1; +} + +message CMsgClientToServerUpvoteNotification { + optional uint32 notification_id = 1; +} + +message CMsgServerToClientNotificationChanged { + message UpvoteSubtype { + optional uint32 item_id = 1; + optional uint32 upvotes = 2; + } + + optional uint32 notification_id = 1; + optional uint32 upvotes = 2; + repeated .CMsgServerToClientNotificationChanged.UpvoteSubtype subtypes = 3; +} + +message CMsgClientToServerLocalPlayerInventory { + message LoadoutItem { + optional uint32 slot = 1; + optional uint32 sub_slot = 2; + optional uint32 def_index = 3; + } + + repeated .CMsgClientToServerLocalPlayerInventory.LoadoutItem player_loadout = 1; +} + +message CMsgGameStateIntegrationData { + optional uint32 id = 1; + optional .CMsgPublicPlayerState public_player_state = 2; + optional .CMsgPrivatePlayerState private_player_state = 3; +} + +message CMsgGameStateIntegrationBlock { + repeated .CMsgGameStateIntegrationData data = 1; + optional uint32 id = 2; +} + +message CMsgGameStateIntegrationUpdate { + repeated .CMsgGameStateIntegrationBlock block = 1; + optional string auth = 2; +} + +message CMsgClientToServerInitData { + optional .CMsgGameModifiers game_modifiers = 1; + optional uint32 event_id = 2; + optional bool developer_mode = 3; + optional string load_save_file = 4; + optional int32 local_mmr_level = 5 [default = -1]; + optional uint32 underlord = 6; + optional uint32 local_global_leaderboard_rank = 7; + optional bool offline_mode = 8; + optional int32 bot_difficulty = 9 [default = 0]; + optional bool tutorial = 10; + optional .EDACGameMode game_mode = 11 [default = k_EDACGameMode_Normal]; + optional .CMsgGameModeSettings game_mode_settings = 12; + optional string feature_controls = 13; + optional uint32 active_challenge_slot_id = 14; +} + +message CMsgClientAccountSyncStorageFile { + optional uint32 version = 1; + repeated uint32 ids = 2; + repeated uint32 values = 3; +} + +message CMsgPlayerChallengeCompletePrediction { + optional uint32 event_id = 1; + optional uint32 slot_id = 2; + optional uint32 challenge_id = 3; + optional uint32 config_id = 4; + optional uint32 initial_progress = 5; + optional uint32 predicted_total = 6; +} diff --git a/Protobufs/underlords/dac_gcmessages_client.proto b/Protobufs/underlords/dac_gcmessages_client.proto new file mode 100644 index 0000000..1d356c6 --- /dev/null +++ b/Protobufs/underlords/dac_gcmessages_client.proto @@ -0,0 +1,1518 @@ +import "steammessages.proto"; +import "dac_gamemessages.proto"; +import "dac_gcmessages_common.proto"; +import "econ_gcmessages.proto"; + +option optimize_for = SPEED; +option cc_generic_services = false; + +enum EGCDACClientMessages { + k_EMsgClientToGCStartMatchmaking = 9010; + k_EMsgClientToGCStartMatchmakingResponse = 9011; + k_EMsgClientToGCStopMatchmaking = 9012; + k_EMsgClientToGCStopMatchmakingResponse = 9013; + k_EMsgGCToClientMatchmakingStopped = 9014; + k_EMsgClientToGCLeaveLobby = 9015; + k_EMsgClientToGCLeaveLobbyResponse = 9016; + k_EMsgClientToGCIsInMatchmaking = 9017; + k_EMsgClientToGCIsInMatchmakingResponse = 9018; + k_EMsgGCToClientSDRTicket = 9120; + k_EMsgClientToGCReplacementSDRTicket = 9121; + k_EMsgClientToGCReplacementSDRTicketResponse = 9122; + k_EMsgClientToGCPartyCreate = 9123; + k_EMsgClientToGCPartyCreateResponse = 9124; + k_EMsgClientToGCPartyLeave = 9125; + k_EMsgClientToGCPartyLeaveResponse = 9126; + k_EMsgClientToGCPartyJoin = 9127; + k_EMsgClientToGCPartyJoinResponse = 9128; + k_EMsgClientToGCPartyAction = 9129; + k_EMsgClientToGCPartyActionResponse = 9130; + k_EMsgClientToGCPartyStartMatch = 9131; + k_EMsgClientToGCPartyStartMatchResponse = 9132; + k_EMsgClientToGCPartyInviteUser = 9133; + k_EMsgClientToGCPartyInviteUserResponse = 9134; + k_EMsgGCToClientPartyEvent = 9135; + k_EMsgClientToGCPartyClientVersion = 9136; + k_EMsgGCToClientCanRejoinParty = 9137; + k_EMsgClientToGCPartyJoinViaCode = 9138; + k_EMsgClientToGCPartyJoinViaCodeResponse = 9139; + k_EMsgGCToClientDevMMStatus = 9140; + k_EMsgClientToGCDevForceMatchFormation = 9141; + k_EMsgClientToGCEventRequestInfo = 9142; + k_EMsgGCToClientEventInfo = 9143; + k_EMsgClientToGCEventClaim = 9144; + k_EMsgClientToGCEventClaimResponse = 9145; + k_EMsgClientToGCEquipLoadout = 9146; + k_EMsgClientToGCEquipLoadoutResponse = 9147; + k_EMsgClientToGCSpectateUser = 9148; + k_EMsgClientToGCSpectateUserResponse = 9149; + k_EMsgClientToGCRecordLocalBotMatch = 9150; + k_EMsgClientToGCRerollChallenge = 9151; + k_EMsgClientToGCRerollChallengeResponse = 9152; + k_EMsgClientToGCClaimChallengeReward = 9153; + k_EMsgClientToGCClaimChallengeRewardResponse = 9154; + k_EMsgClientToGCCreateFriendCode = 9155; + k_EMsgClientToGCCreateFriendCodeResponse = 9156; + k_EMsgClientToGCGetFriendCodes = 9157; + k_EMsgClientToGCGetFriendCodesResponse = 9158; + k_EMsgClientToGCCheckFriendCode = 9159; + k_EMsgClientToGCCheckFriendCodeResponse = 9160; + k_EMsgClientToGCRedeemFriendCode = 9161; + k_EMsgClientToGCRedeemFriendCodeResponse = 9162; + k_EMsgClientToGCRevokeFriendCode = 9163; + k_EMsgClientToGCRevokeFriendCodeResponse = 9164; + k_EMsgClientToGCEventRequestInfoSync = 9165; + k_EMsgClientToGCEventRequestInfoSyncResponse = 9166; + k_EMsgClientToGCDevEventOperation = 9169; + k_EMsgClientToGCDevEventOperationResponse = 9170; + k_EMsgGCToClientUpdateConsoleCommands = 9171; + k_EMsgClientToGCPerformAutoActions = 9172; + k_EMsgClientToGCPerformAutoActionsResponse = 9173; + k_EMsgClientToGCCanPurchaseItem = 9176; + k_EMsgClientToGCCanPurchaseItemResponse = 9177; + k_EMsgClientToGCHandleItemPurchase = 9178; + k_EMsgClientToGCHandleItemPurchaseResponse = 9179; + k_EMsgClientToGCEventEquipVirtualItems = 9188; + k_EMsgClientToGCEventEquipVirtualItemsResponse = 9189; + k_EMsgClientToGCClearPurchaseReserve = 9190; + k_EMsgClientToGCClearPurchaseReserveResponse = 9191; + k_EMsgGCToClientAcquireRegionModeInfo = 9192; + k_EMsgGCToClientDurationControlWarning = 9193; + k_EMsgClientToGCGetRegionModeInfo = 9194; + k_EMsgClientToGCGetRegionModeInfoResponse = 9195; + k_EMsgGCToClientGameModifiersUpdated = 9196; + k_EMsgClientToGCEventChallengeProgress = 9197; + k_EMsgClientToGCEventChallengeProgressResponse = 9198; + k_EMsgClientToGCAssociateDevice = 9199; + k_EMsgClientToGCAssociateDeviceResponse = 9200; + k_EMsgClientToGCEventPurchase = 9201; + k_EMsgClientToGCEventPurchaseResponse = 9202; + k_EMsgClientToGCPartySetGameModifier = 9203; + k_EMsgClientToGCPartySetGameModifierResponse = 9204; + k_EMsgClientToGCAckSupportCredits = 9205; + k_EMsgClientToGCAckSupportCreditsResponse = 9206; + k_EMsgClientToGCSetTeamName = 9207; + k_EMsgClientToGCSetTeamNameResponse = 9208; + k_EMsgClientToGCDevOperation = 9212; + k_EMsgClientToGCDevOperationResponse = 9213; + k_EMsgClientToGCUpdateAccountSync = 9214; + k_EMsgClientToGCUpdateAccountSyncResponse = 9215; + k_EMsgClientToGCGetDuosRanks = 9216; + k_EMsgClientToGCGetDuosRanksResponse = 9217; + k_EMsgClientToGCGetProfile = 9218; + k_EMsgClientToGCGetProfileResponse = 9219; + k_EMsgClientToGCGetMatchHistory = 9220; + k_EMsgClientToGCGetMatchHistoryResponse = 9221; + k_EMsgClientToGCEventPurchaseCurrency = 9222; + k_EMsgClientToGCEventPurchaseCurrencyResponse = 9223; + k_EMsgClientToGCGetFriendRanks = 9224; + k_EMsgClientToGCGetFriendRanksResponse = 9225; + k_EMsgClientToGCGetPuzzleLeaderboards = 9226; + k_EMsgClientToGCGetPuzzleLeaderboardsResponse = 9227; + k_EMsgClientToGCGetPostMatchStats = 9228; + k_EMsgClientToGCGetPostMatchStatsResponse = 9229; + k_EMsgClientToGCEventChallengeProgressWithCurrency = 9230; + k_EMsgClientToGCEventChallengeProgressWithCurrencyResponse = 9231; +} + +enum EItemEditorReservationResult { + k_EItemEditorReservationResult_OK = 1; + k_EItemEditorReservationResult_AlreadyExists = 2; + k_EItemEditorReservationResult_Reserved = 3; + k_EItemEditorReservationResult_TimedOut = 4; +} + +enum EClientStatsEvent { + k_EClientStatsEvent_Boot = 1; + k_EClientStatsEvent_StartMatch = 2; + k_EClientStatsEvent_AbandonMatch = 3; + k_EClientStatsEvent_FinishMatch = 4; + k_EClientStatsEvent_StartSteamSignon = 5; + k_EClientStatsEvent_FinishSteamSignon = 6; +} + +message CMsgWebAPIClientDeviceInfo { + enum EFlags { + k_eFlags_StartedTutorial = 1; + k_eFlags_FinishedTutorial = 2; + k_eFlags_SideLoaded = 4; + k_eFlags_China = 8; + k_eFlags_RegisteredAccount = 16; + k_eFlags_StartedTutorialBot = 32; + } + + optional fixed64 device_id = 1; + optional .EDACPlatform platform = 2 [default = k_eDACPlatform_None]; + optional fixed32 salt = 3; + optional uint32 time_stamp = 4; + optional fixed64 access_key = 5; + optional uint32 client_version = 6; + optional uint32 flags = 7; + optional uint32 bot_matches_started = 8; + optional uint32 bot_matches_completed = 9; + optional string country = 10; + optional uint32 times_launched = 11; +} + +message CMsgPartyMMInfo { + optional .EDACPlatform platform = 1 [default = k_eDACPlatform_None]; + optional .CMsgRegionPingTimesClient ping_times = 2; + optional uint32 client_version = 3; + optional .EDACRegionMode region_mode = 5 [default = k_EDACRegionMode_ROW]; + optional uint32 active_challenge_slot_id = 6; +} + +message CMsgDACClientHello { + optional bool side_loaded = 1; + optional .EDACRegionMode region_mode = 2 [default = k_EDACRegionMode_ROW]; +} + +message CMsgClientToGCStartMatchmaking { + optional .CMsgStartFindingMatchInfo match_info = 1; + optional .CMsgRegionPingTimesClient ping_times = 2; +} + +message CMsgClientToGCStartMatchmakingResponse { + enum EResultCode { + k_EResult_OK = 0; + k_EResult_AlreadyFindingMatch = 1; + k_EResult_PartyMemberInLobby = 2; + k_EResult_InvalidClientVersion = 3; + k_EResult_MatchmakingDisabled = 4; + k_EResult_MatchmakingTooBusy = 5; + k_EResult_InternalError = 6; + k_EResult_NoRegionPings = 7; + k_EResult_InParty = 8; + k_EResult_ModeLocked = 9; + k_EResult_ModeBanned = 10; + k_EResult_RegionInfoNotProvided = 11; + k_EResult_DurationControlBlocked = 12; + } + + optional .CMsgClientToGCStartMatchmakingResponse.EResultCode result = 1 [default = k_EResult_OK]; + optional string debug_message = 2; +} + +message CMsgClientToGCStopMatchmaking { +} + +message CMsgClientToGCStopMatchmakingResponse { + optional bool success = 1; +} + +message CMsgGCToClientMatchmakingStopped { + enum EReason { + k_EResult_Unspecified = 0; + k_EResult_VersionUpdated = 1; + } + + optional .CMsgGCToClientMatchmakingStopped.EReason reason = 1 [default = k_EResult_Unspecified]; +} + +message CMsgClientToGCLeaveLobby { + optional uint64 lobby_id = 1; +} + +message CMsgClientToGCLeaveLobbyResponse { +} + +message CMsgClientWelcomeDAC { + optional uint32 currency = 1; + repeated .CExtraMsgBlock extra_messages = 2; + optional uint32 compatibility_version = 3; + optional uint64 steam_announcement_gid = 5; + repeated string console_commands = 6; + optional string patch_notes_preview_password = 7; + optional uint32 latest_compat_version = 8; + optional uint32 latest_client_version = 9; +} + +message CMsgClientToGCIsInMatchmaking { +} + +message CMsgClientToGCIsInMatchmakingResponse { + optional bool in_matchmaking = 1; +} + +message CMsgGCToClientSDRTicket { + optional string ticket = 1; +} + +message CMsgClientToGCReplacementSDRTicket { + optional fixed64 lobby_id = 1; +} + +message CMsgClientToGCReplacementSDRTicketResponse { + optional string ticket = 1; + optional string error_message = 2; +} + +message CMsgClientToGCPartyCreate { + optional .CMsgPartyMMInfo party_mm_info = 1; + optional bool start_ready = 2; + optional uint32 invite_account_id = 3; + optional bool disable_party_code = 4; +} + +message CMsgClientToGCPartyCreateResponse { + enum EResponse { + k_eInternalError = 0; + k_eSuccess = 1; + k_eAlreadyInParty = 2; + k_eDisabled = 3; + k_eInvalidVersion = 4; + k_eNoRegionPings = 5; + k_eTooBusy = 6; + k_eRateLimited = 7; + k_eNotFriends = 8; + k_eRegionInfoNotProvided = 9; + k_eDurationControlBlocked = 10; + } + + optional .CMsgClientToGCPartyCreateResponse.EResponse result = 1 [default = k_eInternalError]; + optional fixed64 party_id = 2; +} + +message CMsgClientToGCPartyLeave { + optional fixed64 party_id = 1; +} + +message CMsgClientToGCPartyLeaveResponse { + enum EResponse { + k_eInternalError = 0; + k_eSuccess = 1; + k_eNotInParty = 2; + k_eInMatchMaking = 3; + } + + optional .CMsgClientToGCPartyLeaveResponse.EResponse result = 1 [default = k_eInternalError]; +} + +message CMsgClientToGCPartyJoin { + optional fixed64 party_id = 1; + optional bool is_rejoin = 2; + optional .CMsgPartyMMInfo party_mm_info = 3; + optional bool start_ready = 4; +} + +message CMsgClientToGCPartyJoinResponse { + enum EResponse { + k_eInternalError = 0; + k_eSuccess = 1; + k_eAlreadyInParty = 2; + k_eDisabled = 3; + k_eInvalidPartyID = 4; + k_eInvalidPermissions = 5; + k_eInvalidVersion = 6; + k_eNoRegionPings = 7; + k_eTooBusy = 8; + k_eInvalidCode = 9; + k_eRateLimited = 10; + k_eRegionInfoNotProvided = 11; + k_eDurationControlBlocked = 12; + } + + optional .CMsgClientToGCPartyJoinResponse.EResponse result = 1 [default = k_eInternalError]; +} + +message CMsgClientToGCPartyAction { + enum EAction { + k_eKickUser = 1; + k_eCancelInvite = 2; + k_eCancelFindMatch = 3; + k_eSetReady = 4; + k_eSetPlayerType = 5; + k_eSetBotDifficulty = 6; + k_eEnablePartyCode = 7; + k_eSetMemberTeam = 8; + } + + optional fixed64 party_id = 1; + optional uint32 target_account_id = 2; + optional .CMsgClientToGCPartyAction.EAction action_id = 3 [default = k_eKickUser]; + optional uint64 uint_value = 4; + optional bool bool_value = 5; +} + +message CMsgClientToGCPartyActionResponse { + enum EResponse { + k_eInternalError = 0; + k_eSuccess = 1; + k_eInvalidPartyID = 2; + k_eInvalidPermissions = 3; + k_eInvalidTarget = 4; + k_eInvalidValue = 5; + k_eInMatchMaking = 6; + k_eInMatch = 7; + k_eDisabled = 8; + k_eTooBusy = 9; + k_eRateLimited = 10; + } + + optional .CMsgClientToGCPartyActionResponse.EResponse result = 1 [default = k_eInternalError]; +} + +message CMsgClientToGCPartyStartMatch { + optional fixed64 party_id = 1; + optional string server_search_key = 3; + optional .EDACMatchMode match_mode = 4 [default = k_EDACMatchMode_Invalid]; + optional bool dev_ignore_staging_files = 5; + optional .EDACGameMode game_mode = 6 [default = k_EDACGameMode_Invalid]; + optional .EDACBotDifficulty bot_difficulty = 7 [default = k_EDACBotDifficulty_None]; + optional .CMsgGameModeSettings game_mode_settings = 8; +} + +message CMsgClientToGCPartyStartMatchResponse { + enum EResponse { + k_eInternalError = 0; + k_eSuccess = 1; + k_eDisabled = 2; + k_eInvalidPartyID = 3; + k_eInvalidPermissions = 4; + k_eTooBusy = 5; + k_eInMatchmaking = 6; + k_eInMatch = 7; + k_eInvalidVersion = 10; + k_ePlayersNotReady = 11; + k_eCannotSelectRegion = 12; + k_eNotAllPlayersAvailable = 13; + k_eTooManyPlayersForMM = 14; + k_eTooManyPlayersForPrivate = 15; + k_eTooManySpectatorsForMM = 16; + k_eTooManySpectatorsForPrivate = 17; + k_eTooFewPlayersForMM = 18; + k_eTooFewPlayersForPrivate = 19; + k_eMismatchedVersions = 20; + k_eInvalidPartyMatchMode = 21; + k_eNotAllPlayersCanPlayRanked = 22; + k_ePlayerBannedFromMode = 23; + k_eTooManyPlayersOnTeam = 24; + k_eUnableToFillTeam = 25; + k_eInvalidTeam = 26; + } + + optional .CMsgClientToGCPartyStartMatchResponse.EResponse result = 1 [default = k_eInternalError]; + optional uint32 account_id = 2; +} + +message CMsgClientToGCPartyInviteUser { + optional fixed64 party_id = 1; + optional uint32 invite_account_id = 2; +} + +message CMsgClientToGCPartyInviteUserResponse { + enum EResponse { + k_eInternalError = 0; + k_eSuccess = 1; + k_eAlreadyInvited = 2; + k_eInvalidPermissions = 3; + k_eInvalidPartyID = 4; + k_eDisabled = 5; + k_eTooManyInvites = 6; + k_eNotFriends = 7; + k_eTooBusy = 8; + k_eRateLimited = 9; + } + + optional .CMsgClientToGCPartyInviteUserResponse.EResponse result = 1 [default = k_eInternalError]; + optional bool user_online = 2; +} + +message CMsgGCToClientPartyEvent { + enum EEvent { + k_ePlayerKicked = 1; + k_eJoinedParty = 3; + k_eMatchCompleted = 4; + k_eMatchMakingStopped_User = 5; + k_eMatchMakingStopped_Version = 6; + k_eMatchMakingStopped_NoServerRegion = 7; + k_eLeftParty = 8; + k_eDeclinedInvite = 9; + k_eMatchMakingStopped_FailedOther = 10; + } + + optional fixed64 party_id = 1; + optional .CMsgGCToClientPartyEvent.EEvent event = 2 [default = k_ePlayerKicked]; + optional uint32 initiator_account_id = 3; + optional uint32 target_account_id = 4; + optional bytes bytes_data = 5; + optional string str_data = 6; + optional uint64 uint_data = 7; +} + +message CMsgClientToGCPartyClientVersion { + optional fixed64 party_id = 1; + optional .CMsgPartyMMInfo party_mm_info = 2; +} + +message CMsgGCToClientCanRejoinParty { + optional fixed64 party_id = 1; +} + +message CMsgClientToGCPartyJoinViaCode { + optional uint64 join_code = 1; + optional .CMsgPartyMMInfo party_mm_info = 2; + optional bool start_ready = 3; +} + +message CMsgClientToGCPartyJoinViaCodeResponse { + optional .CMsgClientToGCPartyJoinResponse.EResponse result = 1 [default = k_eInternalError]; + optional fixed64 party_id = 2; +} + +message CMsgGCToClientDevMMStatus { + message Party { + optional uint32 party_size = 1; + optional uint32 compat_version = 2; + optional .EDACGameMode game_mode = 3 [default = k_EDACGameMode_Invalid]; + optional .EDACMatchMode match_mode = 4 [default = k_EDACMatchMode_Invalid]; + } + + repeated .CMsgGCToClientDevMMStatus.Party parties = 2; +} + +message CMsgGCItemEditorReservationsRequest { +} + +message CMsgGCItemEditorReservation { + optional uint32 def_index = 1; + optional string name = 2; +} + +message CMsgGCItemEditorReservationsResponse { + repeated .CMsgGCItemEditorReservation reservations = 1; +} + +message CMsgGCItemEditorReserveItemDef { + optional uint32 def_index = 1; + optional string username = 2; +} + +message CMsgGCItemEditorReserveItemDefResponse { + optional uint32 def_index = 1; + optional string username = 2; + optional uint32 result = 3; +} + +message CMsgGCItemEditorReleaseReservation { + optional uint32 def_index = 1; + optional string username = 2; +} + +message CMsgGCItemEditorReleaseReservationResponse { + optional uint32 def_index = 1; + optional bool released = 2; +} + +message CMsgClientToGCDevForceMatchFormation { +} + +message CMsgClientToGCEventRequestInfo { + optional uint32 account_id = 1; + optional uint32 event_id = 2; +} + +message CMsgGCToClientEventInfo { + message EventState { + optional bool event_owned = 1; + } + + message Currency { + optional uint32 currency_id = 1; + optional uint32 balance = 2; + } + + message Claim { + optional uint32 claim_id = 1; + optional uint32 num_claims = 2; + } + + message Challenge { + optional uint32 slot_id = 1; + optional uint32 sequence_id = 2; + optional uint32 challenge_id = 3; + optional uint32 created_time = 4; + optional uint32 claimed = 5; + optional uint32 progress = 6; + optional uint32 config_id = 7; + optional bool active = 8; + } + + message VirtualItem { + optional uint32 def_index = 1; + } + + message VirtualItemEquip { + optional uint32 equip_slot = 1; + optional uint32 equip_sub_slot = 2; + optional uint32 def_index = 3; + } + + optional uint32 account_id = 1; + optional uint32 event_id = 2; + optional .CMsgGCToClientEventInfo.EventState event_state = 3; + repeated .CMsgGCToClientEventInfo.Currency currencies = 5; + repeated .CMsgGCToClientEventInfo.Claim claims = 6; + repeated .CMsgGCToClientEventInfo.Challenge challenges = 7; + repeated .CMsgGCToClientEventInfo.VirtualItem virtual_items = 8; + repeated .CMsgGCToClientEventInfo.VirtualItemEquip virtual_item_equips = 9; + repeated .CMsgGCToClientEventInfo.VirtualItem virtual_item_revokes = 11; + optional bool merge_contents = 10; +} + +message CMsgClientToGCEventRequestInfoSync { + optional uint32 account_id = 1; + optional uint32 event_id = 2; +} + +message CMsgClientToGCEventRequestInfoSyncResponse { + enum EResponse { + k_eInternalError = 0; + k_eSuccess = 1; + k_eInvalidEventID = 3; + k_eInvalidPermissions = 4; + k_eRateLimited = 5; + k_eDisabled = 6; + k_eTooBusy = 7; + } + + optional .CMsgClientToGCEventRequestInfoSyncResponse.EResponse result = 1 [default = k_eInternalError]; + optional .CMsgGCToClientEventInfo event_info = 2; +} + +message CMsgGCToClientEventInfoSerialize { + optional .CMsgGCToClientEventInfo event_info = 1; + optional uint32 time_stamp = 2; + optional uint32 version = 3; + optional uint32 account_id = 4; +} + +message CMsgClientToGCEventClaim { + optional uint32 event_id = 1; + optional uint32 claim_id = 2; + optional uint32 starting_value = 3; +} + +message CMsgEventClaimRewards { + message Item { + optional uint32 def_index = 1; + optional uint64 item_id = 2; + } + + message Achievement { + optional uint32 achievement_id = 1; + optional uint32 progress = 2; + } + + message Currency { + optional uint32 currency_id = 1; + optional uint32 grant = 2; + } + + message Challenge { + optional uint32 challenge_slot = 1; + optional uint32 progress = 2; + optional bool activated = 3; + optional bool rolled = 4; + } + + repeated .CMsgEventClaimRewards.Item items = 1; + repeated .CMsgEventClaimRewards.Achievement achievements = 2; + repeated .CMsgEventClaimRewards.Currency currencies = 3; + repeated .CMsgEventClaimRewards.Challenge challenges = 4; +} + +message CMsgClientToGCEventClaimResponse { + enum EResponse { + k_eInternalError = 0; + k_eSuccess = 1; + k_eStartingValueMismatch = 2; + k_eInvalidEventID = 3; + k_eInvalidClaimID = 4; + k_eRequirementsNotMet = 5; + k_eDisabled = 6; + k_eTooBusy = 7; + } + + optional .CMsgClientToGCEventClaimResponse.EResponse result = 1 [default = k_eInternalError]; + optional .CMsgEventClaimRewards rewards = 2; +} + +message CMsgClientToGCEquipLoadout { + repeated uint32 loadout_slot = 1; + repeated uint64 item_id = 2; + repeated uint32 loadout_sub_slot = 3; +} + +message CMsgClientToGCEquipLoadoutResponse { + enum EResponse { + k_eInternalError = 0; + k_eSuccess = 1; + k_eDisabled = 2; + k_eTooBusy = 3; + k_eInvalidLoadoutSlot = 4; + k_eInvalidItem = 5; + k_eInvalidItemType = 6; + k_eItemExpired = 7; + k_eRateLimited = 8; + k_eTooManyChanges = 9; + } + + optional .CMsgClientToGCEquipLoadoutResponse.EResponse result = 1 [default = k_eInternalError]; +} + +message CMsgClientToGCSpectateUser { + optional uint32 spectate_account_id = 1; + optional .EDACRegionMode region_mode = 2 [default = k_EDACRegionMode_ROW]; +} + +message CMsgClientToGCSpectateUserResponse { + enum EResponse { + k_eInternalError = 0; + k_eSuccess = 1; + k_eDisabled = 2; + k_eTooBusy = 3; + k_eRateLimited = 4; + k_eNotInGame = 5; + k_eDisabledForGame = 6; + k_eServerFull = 7; + k_eNotFriends = 8; + k_eRegionInfoNotProvided = 9; + k_eDurationControlBlocked = 10; + } + + optional .CMsgClientToGCSpectateUserResponse.EResponse result = 1 [default = k_eInternalError]; + optional fixed64 server_steam_id = 3; + optional bytes sdr_key = 4; + optional uint32 udp_connect_ip = 5; + optional uint32 udp_connect_port = 6; +} + +message CMsgClientToGCRecordLocalBotMatch { + optional uint32 time_stamp = 1; + optional uint32 version = 2; + optional uint32 duration_s = 3; + optional uint32 final_place = 4; + optional uint32 difficulty = 5; + optional uint32 rounds = 6; + optional uint32 remaining_players = 7; + optional .EDACPlatform platform = 8 [default = k_eDACPlatform_None]; + optional bool is_tutorial = 9; + optional .EDACGameMode game_mode = 10 [default = k_EDACGameMode_Invalid]; +} + +message CMsgClientToGCRerollChallenge { + optional uint32 event_id = 1; + optional uint32 slot_id = 2; + optional uint32 sequence_id = 3; +} + +message CMsgClientToGCRerollChallengeResponse { + enum EResponse { + k_eInternalError = 0; + k_eSuccess = 1; + k_eDisabled = 2; + k_eTooBusy = 3; + k_eRateLimited = 4; + k_eRerollCooldown = 5; + k_eNotComplete = 6; + k_eCannotReroll = 7; + k_eSequenceMismatch = 8; + k_eRewardsNotClaimed = 9; + k_eEventInactive = 10; + k_eRequiresOwningEvent = 11; + } + + optional .CMsgClientToGCRerollChallengeResponse.EResponse result = 1 [default = k_eInternalError]; +} + +message CMsgClientToGCClaimChallengeReward { + optional uint32 event_id = 1; + optional uint32 slot_id = 2; + optional uint32 sequence_id = 3; + optional uint32 starting_claimed = 4; +} + +message CMsgClientToGCClaimChallengeRewardResponse { + enum EResponse { + k_eInternalError = 0; + k_eSuccess = 1; + k_eDisabled = 2; + k_eTooBusy = 3; + k_eRateLimited = 4; + k_eNotComplete = 5; + k_eAlreadyClaimed = 6; + k_eSequenceMismatch = 7; + k_eEventInactive = 8; + k_eNoRewards = 9; + } + + optional .CMsgClientToGCClaimChallengeRewardResponse.EResponse result = 1 [default = k_eInternalError]; + optional .CMsgEventClaimRewards rewards = 2; +} + +message CMsgClientToGCGetFriendCodes { +} + +message CMsgClientToGCGetFriendCodesResponse { + message Code { + optional uint64 friend_code = 1; + optional uint32 remaining_uses = 2; + optional uint32 expiry_time = 3; + } + + enum EResponse { + k_eInternalError = 0; + k_eSuccess = 1; + k_eDisabled = 2; + k_eTooBusy = 3; + k_eRateLimited = 4; + } + + optional .CMsgClientToGCGetFriendCodesResponse.EResponse result = 1 [default = k_eInternalError]; + repeated .CMsgClientToGCGetFriendCodesResponse.Code code_list = 2; +} + +message CMsgClientToGCCreateFriendCode { +} + +message CMsgClientToGCCreateFriendCodeResponse { + enum EResponse { + k_eInternalError = 0; + k_eSuccess = 1; + k_eDisabled = 2; + k_eTooBusy = 3; + k_eRateLimited = 4; + k_eTooManyCodes = 5; + } + + optional .CMsgClientToGCCreateFriendCodeResponse.EResponse result = 1 [default = k_eInternalError]; + optional .CMsgClientToGCGetFriendCodesResponse.Code code = 2; +} + +message CMsgClientToGCCheckFriendCode { + optional uint64 friend_code = 1; +} + +message CMsgClientToGCCheckFriendCodeResponse { + enum EResponse { + k_eInternalError = 0; + k_eSuccess = 1; + k_eDisabled = 2; + k_eTooBusy = 3; + k_eRateLimited = 4; + k_eInvalidKey = 5; + k_eKeyExpired = 6; + k_eKeyConsumed = 7; + k_eAlreadyFriends = 8; + k_eTargetHasTooManyFriends = 9; + k_eHaveTooManyFriends = 10; + k_eBlocked = 11; + k_eIgnored = 12; + } + + optional .CMsgClientToGCCheckFriendCodeResponse.EResponse result = 1 [default = k_eInternalError]; + optional uint32 account_id = 2; +} + +message CMsgClientToGCRedeemFriendCode { + optional uint64 friend_code = 1; + optional uint32 target_account_id = 2; +} + +message CMsgClientToGCRedeemFriendCodeResponse { + optional .CMsgClientToGCCheckFriendCodeResponse.EResponse result = 1 [default = k_eInternalError]; +} + +message CMsgClientToGCRevokeFriendCode { + optional uint64 friend_code = 1; +} + +message CMsgClientToGCRevokeFriendCodeResponse { + enum EResponse { + k_eInternalError = 0; + k_eSuccess = 1; + k_eDisabled = 2; + k_eTooBusy = 3; + k_eRateLimited = 4; + k_eInvalidKey = 5; + } + + optional .CMsgClientToGCRevokeFriendCodeResponse.EResponse result = 1 [default = k_eInternalError]; +} + +message CMsgClientToGCDevEventOperation { + enum EOperation { + k_eOp_Reset = 0; + k_eOp_GrantCurrency = 1; + k_eOp_GrantChallenge = 2; + k_eOp_RerollCooldown = 3; + k_eOp_SetCurrencyLevel = 4; + k_eOp_SetCurrencyValue = 5; + k_eOp_SetChallengeValue = 6; + k_eOp_GrantOwnership = 7; + k_eOp_GrantVirtualItem = 8; + k_eOp_RevokeVirtualItem = 9; + k_eOp_SetChallenge = 10; + } + + optional .CMsgClientToGCDevEventOperation.EOperation operation = 1 [default = k_eOp_Reset]; + optional uint32 event_id = 2; + optional uint32 id = 3; + optional uint32 amount = 4; + optional uint64 uint_val1 = 5; + optional uint64 uint_val2 = 6; +} + +message CMsgClientToGCDevEventOperationResponse { +} + +message CMsgGCToClientUpdateConsoleCommands { + repeated string console_commands = 1; +} + +message CMsgClientToGCPerformAutoActions { + optional uint32 event_id = 1; + repeated uint32 update_challenge_slots = 4; + repeated uint32 update_claims = 5; + optional uint32 client_version = 6; +} + +message CMsgClientToGCPerformAutoActionsResponse { + enum EResponse { + k_eInternalError = 0; + k_eSuccess = 1; + k_eDisabled = 2; + k_eTooBusy = 3; + k_eInvalidEventID = 4; + } + + optional .CMsgClientToGCPerformAutoActionsResponse.EResponse result = 1 [default = k_eInternalError]; + optional .CMsgEventClaimRewards rewards = 2; +} + +message CMsgClientToGCCanPurchaseItem { + optional uint32 def_index = 1; + optional uint32 client_version = 2; + optional .EDACStoreID store_id = 3 [default = k_EDACStoreID_Invalid]; + optional uint32 quantity = 4; + optional .EDACPlatform platform = 5 [default = k_eDACPlatform_None]; + optional uint64 device_id = 6; + optional bool create_reservation = 7; + optional bool ignore_reservations = 8; +} + +message CMsgClientToGCCanPurchaseItemResponse { + message Reservation { + optional .EDACStoreID store_id = 1 [default = k_EDACStoreID_Invalid]; + optional uint32 quantity = 2; + optional uint32 time_stamp = 3; + optional uint64 device_id = 4; + } + + enum EResponse { + k_eInternalError = 0; + k_eSuccess = 1; + k_eDisabled = 2; + k_eTooBusy = 3; + k_eItemDisabled = 4; + k_eInvalidItem = 5; + k_eStoreDisabled = 6; + k_eInvalidClientVersion = 7; + k_eInvalidQuantity = 8; + k_eOutstandingReservations = 9; + k_eExceedsCreditLimit = 10; + } + + optional .CMsgClientToGCCanPurchaseItemResponse.EResponse result = 1 [default = k_eInternalError]; + repeated .CMsgClientToGCCanPurchaseItemResponse.Reservation reservations = 2; +} + +message CMsgClientToGCHandleItemPurchase { + message StoreInfo_iOS { + optional bytes receipt = 1; + } + + message StoreInfo_GooglePlay { + optional string token = 1; + optional string store_sku_id = 2; + } + + message StoreInfo_Test { + optional string token = 1; + optional uint32 def_index = 2; + optional uint32 quantity = 3; + } + + optional .EDACStoreID store_id = 1 [default = k_EDACStoreID_Invalid]; + optional uint32 client_version = 2; + optional uint64 device_id = 3; + optional .CMsgClientToGCHandleItemPurchase.StoreInfo_iOS store_info_ios = 4; + optional .CMsgClientToGCHandleItemPurchase.StoreInfo_GooglePlay store_info_google_play = 5; + repeated .CMsgClientToGCHandleItemPurchase.StoreInfo_Test store_info_test = 6; + optional .EDACPlatform platform = 7 [default = k_eDACPlatform_None]; +} + +message CMsgClientToGCHandleItemPurchaseResponse { + message PurchaseResponse { + enum EPurchaseResponse { + k_eInternalError = 0; + k_eSuccess = 1; + k_ePurchaseItemError = 2; + k_eInvalidOrderID = 3; + k_eUnableToValidate = 4; + k_eAlreadyResolved = 5; + k_eResolvedOnOtherAccount = 6; + k_ePurchaseRefunded = 7; + k_ePurchasePending = 8; + k_ePurchaseCanceled = 9; + } + + optional .CMsgClientToGCHandleItemPurchaseResponse.PurchaseResponse.EPurchaseResponse result = 1 [default = k_eInternalError]; + optional .CMsgClientToGCCanPurchaseItemResponse.EResponse purchase_item_result = 2 [default = k_eInternalError]; + optional string store_sku_id = 3; + optional string token = 4; + } + + enum EResponse { + k_eInternalError = 0; + k_eSuccess = 1; + k_eStoreDisabled = 2; + k_eTooBusy = 3; + k_eInvalidReceipt = 4; + k_eUnableToValidateReceipt = 5; + k_eInvalidClientVersion = 6; + } + + optional .CMsgClientToGCHandleItemPurchaseResponse.EResponse result = 1 [default = k_eInternalError]; + repeated .CMsgClientToGCHandleItemPurchaseResponse.PurchaseResponse purchase_responses = 2; +} + +message CMsgClientToGCEventEquipVirtualItems { + message Equip { + optional uint32 def_index = 2; + optional uint32 equip_slot = 3; + optional uint32 equip_sub_slot = 4; + } + + optional uint32 event_id = 1; + repeated .CMsgClientToGCEventEquipVirtualItems.Equip equip_list = 2; +} + +message CMsgClientToGCEventEquipVirtualItemsResponse { + enum EResponse { + k_eInternalError = 0; + k_eSuccess = 1; + k_eDisabled = 2; + k_eTooBusy = 3; + k_eInvalidItem = 4; + k_eInvalidSlot = 5; + k_eEventInactive = 6; + k_eTooManyEquips = 7; + k_eDuplicateEquip = 8; + } + + optional .CMsgClientToGCEventEquipVirtualItemsResponse.EResponse result = 1 [default = k_eInternalError]; +} + +message CMsgClientToGCClearPurchaseReserve { + optional uint32 def_index = 1; + optional .EDACStoreID store_id = 2 [default = k_EDACStoreID_Invalid]; + optional uint64 device_id = 3; +} + +message CMsgClientToGCClearPurchaseReserveResponse { + enum EResponse { + k_eInternalError = 0; + k_eSuccess = 1; + k_eTooBusy = 2; + } + + optional .CMsgClientToGCClearPurchaseReserveResponse.EResponse result = 1 [default = k_eInternalError]; +} + +message CMsgGCToClientAcquireRegionModeInfo { + optional string password = 1; +} + +message CMsgGCToClientDurationControlWarning { + optional uint32 time_remaining = 1; +} + +message CMsgClientToGCGetRegionModeInfo { +} + +message CMsgClientToGCGetRegionModeInfoResponse { + optional string password = 1; +} + +message CMsgGCToClientGameModifiersUpdated { + optional .CMsgGameModifiers game_modifiers = 1; + optional uint32 next_update_time = 2; +} + +message CMsgClientToGCEventChallengeProgress { + optional uint32 event_id = 1; + optional uint32 slot_id = 2; + optional uint32 sequence_id = 3; + optional uint32 progress = 4; + optional uint64 audit_data = 5; +} + +message CMsgClientToGCEventChallengeProgressResponse { + enum EResponse { + k_eInternalError = 0; + k_eSuccess = 1; + k_eDisabled = 2; + k_eTooBusy = 3; + k_eEventInactive = 4; + k_eInvalidSlot = 5; + k_eInvalidChallengeConfig = 6; + k_eSequenceMismatch = 7; + k_eRateLimited = 8; + } + + optional .CMsgClientToGCEventChallengeProgressResponse.EResponse result = 1 [default = k_eInternalError]; +} + +message CMsgClientToGCEventChallengeProgressWithCurrency { + optional uint32 event_id = 1; + optional uint32 slot_id = 2; + optional uint32 sequence_id = 3; + optional uint32 progress = 4; + optional uint32 currency_id = 5; + optional uint32 starting_balance = 6; + optional uint64 audit_data = 7; +} + +message CMsgClientToGCEventChallengeProgressWithCurrencyResponse { + enum EResponse { + k_eInternalError = 0; + k_eSuccess = 1; + k_eDisabled = 2; + k_eTooBusy = 3; + k_eEventInactive = 4; + k_eInvalidSlot = 5; + k_eInvalidChallengeConfig = 6; + k_eSequenceMismatch = 7; + k_eInvalidCurrency = 8; + k_eInsufficientCurrency = 9; + k_eRateLimited = 10; + k_eInvalidStartingBalance = 11; + } + + optional .CMsgClientToGCEventChallengeProgressWithCurrencyResponse.EResponse result = 1 [default = k_eInternalError]; +} + +message CMsgClientToGCAssociateDevice { + optional uint64 device_id = 1; + optional .EDACPlatform platform = 2 [default = k_eDACPlatform_None]; + optional uint32 salt = 3; +} + +message CMsgClientToGCAssociateDeviceResponse { + enum EResponse { + k_eInternalError = 0; + k_eSuccess = 1; + k_eDisabled = 2; + k_eTooBusy = 3; + k_eRateLimited = 4; + k_eNotFound = 5; + } + + optional .CMsgClientToGCAssociateDeviceResponse.EResponse result = 1 [default = k_eInternalError]; +} + +message CMsgClientToGCEventPurchase { + optional uint32 event_id = 1; + optional uint32 expected_credits = 2; +} + +message CMsgClientToGCEventPurchaseResponse { + enum EResponse { + k_eInternalError = 0; + k_eSuccess = 1; + k_eDisabled = 2; + k_eTooBusy = 3; + k_eInvalidEvent = 5; + k_eInsufficientCredits = 6; + k_eExpectedCostMismatch = 7; + k_eAlreadyOwned = 8; + } + + optional .CMsgClientToGCEventPurchaseResponse.EResponse result = 1 [default = k_eInternalError]; +} + +message CMsgClientToGCPartySetGameModifier { + optional uint64 party_id = 1; + optional bool use_custom_modifier = 2; + optional .CMsgGameModifiers custom_modifier = 3; +} + +message CMsgClientToGCPartySetGameModifierResponse { + enum EResponse { + k_eInternalError = 0; + k_eSuccess = 1; + k_eDisabled = 2; + k_eTooBusy = 3; + k_eInvalidPartyID = 4; + k_eInvalidPermissions = 5; + k_eInvalidModifier = 6; + k_eInMatchMaking = 7; + } + + optional .CMsgClientToGCPartySetGameModifierResponse.EResponse result = 1 [default = k_eInternalError]; +} + +message CMsgClientToGCAckSupportCredits { + optional uint64 item_id = 1; +} + +message CMsgClientToGCAckSupportCreditsResponse { + enum EResponse { + k_eInternalError = 0; + k_eSuccess = 1; + k_eDisabled = 2; + k_eTooBusy = 3; + k_eInvalidItem = 4; + } + + optional .CMsgClientToGCAckSupportCreditsResponse.EResponse result = 1 [default = k_eInternalError]; +} + +message CMsgClientToGCSetTeamName { + optional uint32 routing_id = 1; + optional uint32 other_account_id = 2; + optional string team_name = 3; +} + +message CMsgClientToGCSetTeamNameResponse { + enum EResponse { + k_eInternalError = 0; + k_eSuccess = 1; + k_eDisabled = 2; + k_eTooBusy = 3; + k_eNotUnlocked = 4; + k_eInCooldown = 5; + k_eNameTooLong = 6; + k_eCommunityBanned = 7; + k_eGameBanned = 8; + } + + optional .CMsgClientToGCSetTeamNameResponse.EResponse result = 1 [default = k_eInternalError]; +} + +message CMsgClientToGCDevOperation { + enum EOperation { + k_eSetGACFlags = 0; + k_eGrantCreditObject = 1; + k_eClearAllCredits = 2; + k_eForceAccountSyncValue = 3; + k_eSetAccountSearchKey = 4; + } + + optional .CMsgClientToGCDevOperation.EOperation op = 1 [default = k_eSetGACFlags]; + optional uint64 uint_value = 2; + optional string str_value = 3; + optional uint64 uint_value_2 = 4; +} + +message CMsgClientToGCDevOperationResponse { +} + +message CMsgClientToGCUpdateAccountSync { + repeated uint32 ids = 1; + repeated uint32 values = 2; +} + +message CMsgClientToGCUpdateAccountSyncResponse { + enum EResponse { + k_eInternalError = 0; + k_eSuccess = 1; + k_eDisabled = 2; + k_eTooBusy = 3; + k_eInvalidMessage = 4; + } + + optional .CMsgClientToGCUpdateAccountSyncResponse.EResponse result = 1 [default = k_eInternalError]; +} + +message CMsgClientToGCGetDuosRanks { + enum ESortOrder { + k_eSort_LastPlayed = 0; + k_eSort_HighestRanked = 1; + k_eSort_MostGames = 2; + } + + optional uint32 account_id = 1; + optional uint32 cursor_value = 2; + optional uint32 batch_size = 3; + optional .CMsgClientToGCGetDuosRanks.ESortOrder sort_order = 4 [default = k_eSort_LastPlayed]; +} + +message CMsgClientToGCGetDuosRanksResponse { + message Team { + optional uint32 other_account_id = 1; + optional uint32 last_played = 2; + optional string team_name = 3; + optional uint32 games_played = 4; + optional uint32 num_first_place = 6; + optional uint32 num_top_three = 7; + optional uint32 mmr_level = 8; + optional uint32 mmr_level_progress = 9; + optional uint32 mmr_level_score = 10; + optional uint32 leaderboard_place = 12; + } + + enum EResponse { + k_eInternalError = 0; + k_eSuccess = 1; + k_eDisabled = 2; + k_eTooBusy = 3; + k_eInvalidMessage = 4; + k_eRateLimited = 5; + k_eInvalidPermission = 6; + } + + optional .CMsgClientToGCGetDuosRanksResponse.EResponse result = 1 [default = k_eInternalError]; + repeated .CMsgClientToGCGetDuosRanksResponse.Team teams = 2; + optional uint32 cursor_value = 3; +} + +message CMsgClientToGCGetProfile { + optional uint32 account_id = 1; +} + +message CMsgClientToGCGetProfileResponse { + message CityCrawlProgress { + optional uint32 underlord_id = 1; + optional uint32 progress = 2; + optional uint32 total = 3; + } + + enum EResponse { + k_eInternalError = 0; + k_eSuccess = 1; + k_eDisabled = 2; + k_eTooBusy = 3; + k_eInvalidMessage = 4; + k_eRateLimited = 5; + k_eInvalidPermission = 6; + } + + optional .CMsgClientToGCGetProfileResponse.EResponse result = 1 [default = k_eInternalError]; + optional int32 bp_progress = 10; + repeated .CMsgClientToGCGetProfileResponse.CityCrawlProgress citycrawl_progress = 20; + optional int32 knockout_rank_score = 30; + optional int32 standard_rank_score = 31; + optional int32 stats_underlord_winrate_1 = 40; + optional int32 stats_underlord_winrate_2 = 41; + optional int32 stats_underlord_winrate_3 = 42; + optional int32 stats_underlord_winrate_4 = 43; + optional uint32 selected_underlord_id = 50; + optional uint32 selected_underlord_poster_title = 51; + optional int32 stats_first_finishes = 60; + optional int32 stats_second_finishes = 61; + optional int32 stats_third_finishes = 62; + optional int32 stats_games_played = 70; + optional int32 stats_most_total_damage = 71; + optional int32 stats_highest_net_worth = 72; + optional int32 stats_latest_round = 73; + optional int32 stats_undefeated_knockout_games = 74; +} + +message CMsgClientToGCGetMatchHistory { + optional uint32 account_id = 1; + optional uint32 request_rows = 2; + optional uint64 match_id_cursor = 3; +} + +message CMsgClientToGCGetMatchHistoryResponse { + message Match { + optional uint32 start_time = 1; + optional uint64 match_id = 2; + optional uint32 elimination_place = 3; + optional uint32 elimination_time = 4; + optional uint32 elimination_round = 5; + optional .EDACPlatform platform = 6 [default = k_eDACPlatform_None]; + optional uint32 underlord_id = 7; + optional .EDACMatchMode match_mode = 8 [default = k_EDACMatchMode_Invalid]; + optional .EDACGameMode game_mode = 9 [default = k_EDACGameMode_Invalid]; + optional uint32 match_length = 10; + optional uint32 match_rounds = 11; + optional uint32 event_id = 12; + optional uint32 duos_partner = 13; + optional uint32 match_salt = 14; + } + + message MatchStats { + optional uint64 match_id = 1; + repeated uint32 stat_id = 2; + repeated uint32 value = 3; + } + + enum EResponse { + k_eInternalError = 0; + k_eSuccess = 1; + k_eDisabled = 2; + k_eTooBusy = 3; + k_eInvalidMessage = 4; + k_eRateLimited = 5; + k_eInvalidPermission = 6; + } + + optional .CMsgClientToGCGetMatchHistoryResponse.EResponse result = 1 [default = k_eInternalError]; + repeated .CMsgClientToGCGetMatchHistoryResponse.Match matches = 2; + optional uint64 match_id_cursor = 3; + repeated .CMsgClientToGCGetMatchHistoryResponse.MatchStats match_stats = 4; +} + +message CMsgClientToGCEventPurchaseCurrency { + optional uint32 event_id = 1; + optional uint32 purchase_quantity = 2; + optional uint32 expected_cost = 3; + optional uint32 currency_id = 4; + optional uint32 starting_balance = 5; +} + +message CMsgClientToGCEventPurchaseCurrencyResponse { + enum EResponse { + k_eInternalError = 0; + k_eSuccess = 1; + k_eDisabled = 2; + k_eTooBusy = 3; + k_eEventNotOwned = 4; + k_eInvalidCurrency = 5; + k_eEventClosed = 6; + k_eInvalidQuantity = 7; + k_eInvalidExpectedCost = 8; + k_eInvalidStartingBalance = 9; + k_eInsufficientCredits = 10; + k_eCurrencyOverflow = 11; + } + + optional .CMsgClientToGCEventPurchaseCurrencyResponse.EResponse result = 1 [default = k_eInternalError]; +} + +message CMsgClientToGCGetFriendRanks { +} + +message CMsgClientToGCGetFriendRanksResponse { + message FriendRank { + optional uint32 account_id = 1; + optional uint32 mmr_level = 2; + optional uint32 turbo_mmr_level = 3; + } + + enum EResponse { + k_eInternalError = 0; + k_eSuccess = 1; + k_eDisabled = 2; + k_eTooBusy = 3; + k_eRateLimited = 4; + } + + optional .CMsgClientToGCGetFriendRanksResponse.EResponse result = 1 [default = k_eInternalError]; + repeated .CMsgClientToGCGetFriendRanksResponse.FriendRank friends = 2; +} + +message CMsgClientToGCGetPuzzleLeaderboards { + optional uint32 puzzle_id = 1; + optional uint32 count = 2; +} + +message CMsgClientToGCGetPuzzleLeaderboardsResponse { + message LeaderboardEntry { + optional uint32 account_id = 1; + optional string persona = 2; + optional uint32 value = 3; + } + + message Leaderboard { + optional uint32 leaderboard_type = 1; + repeated .CMsgClientToGCGetPuzzleLeaderboardsResponse.LeaderboardEntry leaderboard_entry = 2; + optional .CMsgHistogram histogram = 3; + optional string board_code = 4; + } + + enum EResponse { + k_eInternalError = 0; + k_eSuccess = 1; + k_eDisabled = 2; + k_eTooBusy = 3; + k_eRateLimited = 4; + } + + optional .CMsgClientToGCGetPuzzleLeaderboardsResponse.EResponse result = 1 [default = k_eInternalError]; + repeated .CMsgClientToGCGetPuzzleLeaderboardsResponse.Leaderboard leaderboards = 2; +} + +message CMsgClientToGCGetPostMatchStats { + optional uint64 match_id = 1; +} + +message CMsgClientToGCGetPostMatchStatsResponse { + enum EResponse { + k_eInternalError = 0; + k_eSuccess = 1; + k_eDisabled = 2; + k_eTooBusy = 3; + k_eRateLimited = 4; + } + + optional .CMsgClientToGCGetPostMatchStatsResponse.EResponse result = 1 [default = k_eInternalError]; + optional .CMsgPublicPostMatchStats match_stats = 2; +} + +message CMsgMatchStats { + message RoundUnitStats { + optional uint32 entity_id = 1; + optional uint32 num_wins = 2; + optional uint32 num_losses = 3; + optional uint64 final_place = 4; + } + + message RoundStats { + optional uint32 round_min = 1; + optional uint32 round_max = 2; + optional uint32 num_combat_rounds = 3; + optional uint64 starting_life = 4; + optional uint64 player_level = 5; + optional uint64 rerolls = 6; + optional uint64 gold = 7; + optional uint64 interest_gold = 8; + optional uint64 streak_gold = 9; + optional uint64 bonus_gold = 10; + optional uint64 total_damage = 11; + optional uint64 total_losses = 12; + optional bool is_creep = 13; + repeated .CMsgMatchStats.RoundUnitStats unit_stats = 14; + } + + message UnderlordStats { + optional uint32 underlord_id = 1; + optional uint32 total_players = 2; + optional uint64 total_place = 3; + } + + message EntityInfo { + optional uint32 entity_id = 1; + optional string name = 2; + optional string type = 3; + } + + optional uint32 timestamp = 1; + optional .EDACMatchMode match_mode = 2 [default = k_EDACMatchMode_Invalid]; + optional .EDACGameMode game_mode = 3 [default = k_EDACGameMode_Invalid]; + optional uint32 mmr_min = 4; + optional uint32 mmr_max = 5; + optional uint32 num_games = 10; + optional uint32 num_players = 11; + optional uint64 total_duration_seconds = 12; + optional uint64 total_rounds = 13; + optional uint64 player_duration_seconds = 14; + optional uint64 player_rounds = 15; + repeated .CMsgMatchStats.RoundStats round_stats = 20; + repeated .CMsgMatchStats.UnderlordStats underlord_stats = 21; + repeated .CMsgMatchStats.EntityInfo entity_infos = 22; +} diff --git a/Protobufs/underlords/dac_gcmessages_common.proto b/Protobufs/underlords/dac_gcmessages_common.proto new file mode 100644 index 0000000..32c3f5f --- /dev/null +++ b/Protobufs/underlords/dac_gcmessages_common.proto @@ -0,0 +1,377 @@ +import "steammessages.proto"; +import "econ_gcmessages.proto"; + +option optimize_for = SPEED; +option cc_generic_services = false; + +enum EGCDACCommonMessages { + k_EMsgAnyToGCReportAsserts = 7000; + k_EMsgAnyToGCReportAssertsResponse = 7001; + k_EMsgGCItemEditorReservationsRequest = 7283; + k_EMsgGCItemEditorReservationsResponse = 7284; + k_EMsgGCItemEditorReserveItemDef = 7285; + k_EMsgGCItemEditorReserveItemDefResponse = 7286; + k_EMsgGCItemEditorReleaseReservation = 7287; + k_EMsgGCItemEditorReleaseReservationResponse = 7288; +} + +enum EDACStoreID { + k_EDACStoreID_Invalid = 0; + k_EDACStoreID_iOS = 1; + k_EDACStoreID_GooglePlay = 2; + k_EDACStoreID_SteamOverlay = 3; + k_EDACStoreID_Test = 4; +} + +enum EDACRegionMode { + k_EDACRegionMode_ROW = 0; + k_EDACRegionMode_China = 1; +} + +enum EDACMatchMode { + k_EDACMatchMode_Invalid = 0; + k_EDACMatchMode_Casual = 1; + k_EDACMatchMode_PrivateLobby = 2; + k_EDACMatchMode_SoloBot = 3; + k_EDACMatchMode_Ranked = 4; +} + +enum EDACGameMode { + k_EDACGameMode_Invalid = 0; + k_EDACGameMode_Normal = 1; + k_EDACGameMode_Turbo = 2; + k_EDACGameMode_Duos = 3; + k_EDACGameMode_TechPrototypeA = 4; + k_EDACGameMode_Sandbox = 5; + k_EDACGameMode_Puzzle = 6; + k_EDACGameMode_Tutorial = 7; + k_EDACGameMode_Streetfight = 8; + k_EDACGameMode_Classic = 11; +} + +enum EDACLobbyTeam { + k_EDACLobbyTeam_Team0 = 0; + k_EDACLobbyTeam_Team1 = 1; + k_EDACLobbyTeam_Team2 = 2; + k_EDACLobbyTeam_Team3 = 3; + k_EDACLobbyTeam_Team4 = 4; + k_EDACLobbyTeam_Team5 = 5; + k_EDACLobbyTeam_Team6 = 6; + k_EDACLobbyTeam_Team7 = 7; + k_EDACLobbyTeam_Spectator = 250; +} + +enum EDACBotDifficulty { + k_EDACBotDifficulty_None = 0; + k_EDACBotDifficulty_Easy = 1; + k_EDACBotDifficulty_Medium = 2; + k_EDACBotDifficulty_Hard = 3; + k_EDACBotDifficulty_Nightmare = 4; + k_EDACBotDifficulty_ML = 5; + k_EDACBotDifficulty_MommaEeb = 6; +} + +enum EDACAIType { + k_EDACAIType_Invalid = 0; + k_EDACAIType_Lvl1 = 1; + k_EDACAIType_Lvl2 = 2; + k_EDACAIType_Lvl3 = 3; + k_EDACAIType_Lvl4 = 4; + k_EDACAIType_Lvl5 = 5; + k_EDACAIType_Lvl6 = 6; + k_EDACAIType_Lvl7 = 7; + k_EDACAIType_Lvl8 = 8; + k_EDACAIType_ML = 19; + k_EDACAIType_PB0 = 20; + k_EDACAIType_PB1 = 21; + k_EDACAIType_PB2 = 22; + k_EDACAIType_PB3 = 23; + k_EDACAIType_PB4 = 24; + k_EDACAIType_PB5 = 25; + k_EDACAIType_PB6 = 26; + k_EDACAIType_PB7 = 27; + k_EDACAIType_PB8 = 28; + k_EDACAIType_PB9 = 29; + k_EDACAIType_PB10 = 30; + k_EDACAIType_PB11 = 31; + k_EDACAIType_PB12 = 32; + k_EDACAIType_PB13 = 33; + k_EDACAIType_PB14 = 34; + k_EDACAIType_PB15 = 35; + k_EDACAIType_PB16 = 36; + k_EDACAIType_PB17 = 37; + k_EDACAIType_PB18 = 38; + k_EDACAIType_PB19 = 39; + k_EDACAIType_PB20 = 40; + k_EDACAIType_PB21 = 41; + k_EDACAIType_PB22 = 42; + k_EDACAIType_PB23 = 43; + k_EDACAIType_PB24 = 44; + k_EDACAIType_PB25 = 45; + k_EDACAIType_PB26 = 46; + k_EDACAIType_PB27 = 47; + k_EDACAIType_PB28 = 48; + k_EDACAIType_PB29 = 49; + k_EDACAIType_PB30 = 50; + k_EDACAIType_PB31 = 51; + k_EDACAIType_PB32 = 52; + k_EDACAIType_PB33 = 53; + k_EDACAIType_PB34 = 54; + k_EDACAIType_PB35 = 55; +} + +enum EDACMatchState { + k_EMatchState_InProgress = 0; + k_EMatchState_Completed = 1; + k_EMatchState_Failed_NetworkIssues = 2; + k_EMatchState_Failed_ServerCrash = 3; +} + +enum EDACPlayerState { + k_EPlayerState_Playing = 0; + k_EPlayerState_Eliminated = 1; + k_EPlayerState_Abandoned = 2; + k_EPlayerState_Disconnected = 3; + k_EPlayerState_ServerCrashed = 4; +} + +enum ELobbyServerState { + k_eLobbyServerState_Assign = 0; + k_eLobbyServerState_InGame = 1; + k_eLobbyServerState_PostMatch = 2; + k_eLobbyServerState_SignedOut = 3; + k_eLobbyServerState_Abandoned = 4; +} + +message CMsgGameModifiers { +} + +message CMsgTeamInfo { + repeated uint32 member_account_ids = 1 [packed = true]; + optional string team_name = 2; + optional uint32 mmr_level_score = 3; + optional uint32 mmr_level = 4; + optional uint32 mmr_leaderboard_place = 5; +} + +message CServerLobbyData_PlayerInfo { + message LoadoutSlot { + optional uint32 loadout_slot = 1; + optional uint32 def_index = 2; + optional uint32 loadout_sub_slot = 3; + } + + message Currency { + optional uint32 currency_id = 1; + optional uint32 amount = 2; + } + + message Challenge { + optional uint32 challenge_id = 1; + optional uint32 progress = 2; + optional uint32 sequence_id = 3; + optional uint32 slot_id = 4; + optional uint32 config_id = 5; + optional uint32 claimed = 6; + } + + message VirtualItem { + optional uint32 def_index = 1; + optional uint32 equip_slot = 2; + optional uint32 equip_sub_slot = 3; + } + + message Event { + optional uint32 event_id = 1; + optional bool event_owned = 2; + repeated .CServerLobbyData_PlayerInfo.Challenge challenges = 3; + repeated .CServerLobbyData_PlayerInfo.Currency currencies = 4; + repeated .CServerLobbyData_PlayerInfo.VirtualItem virtual_items = 5; + } + + optional uint32 account_id = 1; + optional uint32 mmr_level = 2; + repeated .CServerLobbyData_PlayerInfo.LoadoutSlot loadout = 3; + repeated .CServerLobbyData_PlayerInfo.Event events = 4; + optional uint32 global_leaderboard_rank = 5; +} + +message CMsgRegionPingTimesClient { + repeated fixed32 data_center_codes = 1 [packed = true]; + repeated uint32 ping_times = 2 [packed = true]; +} + +message CSODACLobby { + optional uint32 server_version = 1; + optional uint32 compatibility_version = 2; + optional fixed64 server_steam_id = 3; + optional bool dev_ignore_staging_files = 4; + optional uint64 lobby_id = 5; + optional uint64 match_id = 6; + optional .ELobbyServerState server_state = 8 [default = k_eLobbyServerState_Assign]; + optional .EDACMatchMode match_mode = 10 [default = k_EDACMatchMode_Invalid]; + optional uint32 udp_connect_ip = 11; + optional uint32 udp_connect_port = 12; + optional .EDACGameMode game_mode = 13 [default = k_EDACGameMode_Invalid]; +} + +message CSODACParty { + message Member { + optional uint32 account_id = 1; + optional string persona_name = 2; + optional uint32 rights_flags = 3; + optional bool is_ready = 4; + optional .CSODACParty.EPlayerType player_type = 5 [default = k_ePlayerType_Player]; + optional uint32 compatibility_version = 6; + optional .EDACPlatform platform = 7 [default = k_eDACPlatform_None]; + optional uint32 team = 8; + } + + message LeftMember { + optional uint32 account_id = 1; + optional uint32 rights_flags = 2; + optional .CSODACParty.EPlayerType player_type = 3 [default = k_ePlayerType_Player]; + } + + message Invite { + optional uint32 account_id = 1; + optional string persona_name = 2; + optional uint32 invited_by = 3; + } + + message TeamInfo { + repeated uint32 account_ids = 1 [packed = true]; + optional string team_name = 2; + optional uint32 first_played = 3; + optional uint32 games_played = 4; + optional uint32 num_first_place = 6; + optional uint32 num_top_three = 7; + optional uint32 mmr_level = 8; + optional uint32 mmr_level_progress = 9; + optional uint32 mmr_level_score = 10; + optional uint32 flags = 11; + optional uint32 leaderboard_place = 12; + optional uint32 games_to_unlock_rename = 13; + } + + enum EMemberRights { + k_eMemberRights_Admin = 1; + k_eMemberRights_Creator = 2; + k_eMemberRights_RankedMM = 4; + k_eMemberRights_HighRankedMM = 8; + } + + enum EPlayerType { + k_ePlayerType_Player = 0; + k_ePlayerType_Spectator = 1; + } + + enum ETeamFlags { + k_eTeamFlags_CanRename = 1; + k_eTeamFlags_RenameCooldown = 2; + } + + optional uint64 party_id = 1; + repeated .CSODACParty.Member members = 2; + repeated .CSODACParty.Invite invites = 3; + optional bool in_match_making = 5; + optional string party_password = 6; + repeated .CSODACParty.LeftMember left_members = 10; + optional uint64 join_code = 11; + optional .EDACBotDifficulty bot_difficulty = 12 [default = k_EDACBotDifficulty_None]; + optional bool use_custom_modifier = 13; + optional .CMsgGameModifiers custom_modifier = 14; + repeated .CSODACParty.TeamInfo teams = 15; +} + +message CSOAccountSyncStorage { + optional uint32 account_id = 1; + optional uint32 id = 2; + optional uint32 value = 3; +} + +message CSOGameAccountClient { + optional uint32 account_id = 1 [(key_field) = true]; + optional uint32 mmr_level = 2; + optional uint32 mmr_leaderboard = 3; + optional uint64 flags = 4; + optional uint32 unlock_ranked_progress = 5; + optional float mmr_level_partial_progress = 6; + optional uint32 mmr_level_score = 8; + optional uint32 mm_ban_time_stamp = 9; + optional uint32 mm_ban_reason = 10; + optional uint32 mm_ranked_ban_time_stamp = 11; + optional uint32 mm_ranked_ban_reason = 12; + optional uint32 credits = 13; + optional uint32 turbo_mmr_level = 14; + optional uint32 turbo_mmr_leaderboard = 15; + optional float turbo_mmr_level_partial_progress = 16; + optional uint32 turbo_mmr_level_score = 17; + optional uint32 wins_1st = 18; + optional uint32 wins_2nd = 19; + optional uint32 wins_3rd = 20; +} + +message CMsgStreetfightSettings { + optional uint32 underlord_id = 1; + optional uint32 streetfight_id = 2; + repeated uint32 item_ids_for_player = 3; + optional uint32 prestige_level = 4; +} + +message CMsgGameModeSettings { + oneof settings { + uint32 puzzle_id = 1; + uint32 tutorial_phase = 2; + string sandbox_share_code = 3; + .CMsgStreetfightSettings streetfight_settings = 4; + } +} + +message CMsgStartFindingMatchInfo { + optional uint32 client_version = 2; + optional .EDACMatchMode match_mode = 3 [default = k_EDACMatchMode_Invalid]; + optional .EDACPlatform platform = 4 [default = k_eDACPlatform_None]; + optional .EDACBotDifficulty bot_difficulty = 5 [default = k_EDACBotDifficulty_None]; + optional .EDACGameMode game_mode = 6 [default = k_EDACGameMode_Invalid]; + optional .EDACRegionMode region_mode = 8 [default = k_EDACRegionMode_ROW]; + optional .CMsgGameModeSettings game_mode_settings = 9; +} + +message CMsgAnyToGCReportAsserts { + message TrackedAssert { + optional string filename = 1; + optional uint32 line_number = 2; + optional string sample_msg = 3; + optional string sample_stack = 4; + optional uint32 times_fired = 5; + optional string function_name = 6; + optional string condition = 7; + } + + optional uint32 version = 1; + repeated .CMsgAnyToGCReportAsserts.TrackedAssert asserts = 2; +} + +message CMsgAnyToGCReportAssertsResponse { + optional bool success = 1; +} + +message CMsgHistogram { + message HistogramBucket { + optional uint32 value = 1; + optional uint32 count = 2; + } + + repeated .CMsgHistogram.HistogramBucket histogram_buckets = 1; +} + +message CMsgPuzzleLeaderboardHistogram { + optional uint32 puzzle_id = 1; + optional uint32 leaderboard_type = 2; + optional .CMsgHistogram histogram = 3; +} + +message CMsgPuzzleLeaderboardHistogramList { + repeated .CMsgPuzzleLeaderboardHistogram leaderboard_histograms = 1; +} diff --git a/Protobufs/underlords/dac_gcmessages_server.proto b/Protobufs/underlords/dac_gcmessages_server.proto new file mode 100644 index 0000000..9b9d61f --- /dev/null +++ b/Protobufs/underlords/dac_gcmessages_server.proto @@ -0,0 +1,417 @@ +import "steammessages.proto"; +import "dac_gcmessages_common.proto"; +import "econ_gcmessages.proto"; + +option optimize_for = SPEED; +option cc_generic_services = false; + +enum EGCDACServerMessages { + k_EMsgServerToGCMatchSignoutPermission = 10001; + k_EMsgServerToGCMatchSignoutPermissionResponse = 10002; + k_EMsgServerToGCMatchSignout = 10003; + k_EMsgServerToGCMatchSignoutResponse = 10004; + k_EMsgServerToGCIdlePing = 10005; + k_EMsgGCToServerRequestPing = 10006; + k_EMsgGCToServerAllocateForMatch = 10007; + k_EMsgGCToServerAllocateForMatchResponse = 10008; + k_EMsgServerToGCEnterMatchmaking = 10009; + k_EMsgGCToServerCancelAllocateForMatch = 10010; + k_EMsgServerToGCUpdateLobbyServerState = 10011; + k_EMsgServerToGCAbandonMatch = 10012; + k_EMsgServerToGCAbandonMatchResponse = 10013; + k_EMsgServerToGCTestConnection = 10014; + k_EMsgServerToGCTestConnectionResponse = 10015; + k_EMsgGCToServerAddSpectator = 10016; + k_EMsgGCToServerAddSpectatorResponse = 10017; + k_EMsgGCToServerUpdateConsoleCommands = 10018; + k_EMsgServertoGCPuzzleResults = 10019; + k_EMsgServertoGCPuzzleResultsResponse = 10020; + k_EMsgServertoGCPuzzleBestRequest = 10021; + k_EMsgServertoGCPuzzleBestResponse = 10022; +} + +enum EGCServerLobbyData { + k_EServerLobbyData_PlayerInfo = 1; + k_EServerLobbyData_PlayerMMR = 2; + k_EServerLobbyData_GameModifiers = 3; +} + +enum EGCServerSignoutData { + k_EMatchSignoutData_Disconnections = 1; + k_EMatchSignoutData_PerformanceStats = 2; + k_EMatchSignoutData_CombatStats = 3; + k_EMatchSignoutData_PostMatchStats = 4; + k_EPlayerSignoutData_MMRUpdate = 10; + k_EPlayerSignoutData_EventGrantProgress = 11; + k_EPlayerSignoutData_ChatStats = 12; + k_EPlayerSignoutData_TeamUpdate = 13; + k_EPlayerSignoutData_MatchStats = 14; +} + +message CMsgServerCrashSentinelFile { + message GameInfo { + optional uint64 match_id = 1; + optional fixed64 lobby_id = 2; + optional uint32 server_state = 4; + repeated uint32 client_account_ids = 5; + } + + optional uint32 version = 1; + optional fixed64 server_steam_id = 2; + optional fixed32 server_public_ip_addr = 3; + optional uint32 server_port = 4; + optional uint32 server_cluster = 5; + optional uint32 pid = 6; + optional uint32 saved_time = 7; + optional uint32 server_version = 8; + optional .CMsgServerCrashSentinelFile.GameInfo game_info = 9; + optional uint32 server_private_ip_addr = 10; + optional uint32 instance_id = 11; +} + +message CServerLobbyData_PlayerMMR { + message Player { + optional uint32 account_id = 1; + optional uint32 mmr = 2; + optional uint32 uncertainty = 3; + optional uint32 mmr_level_score = 4; + optional uint32 party_index = 7; + optional uint32 lords_elo_ante = 8; + optional bool lords_elo_ignore = 9; + optional float level_score_change_mult = 10 [default = 1]; + } + + message Team { + optional uint32 lords_elo_ante = 3; + optional bool lords_elo_ignore = 4; + } + + repeated .CServerLobbyData_PlayerMMR.Player players = 1; + repeated .CServerLobbyData_PlayerMMR.Team teams = 2; + optional uint32 lords_elo_k = 8; + optional float duos_mmr_level_score_change_mult = 9; + optional uint32 lords_elo_k_duos = 10; +} + +message CServerLobbyData_GameModifiers { + optional .CMsgGameModifiers game_modifiers = 1; +} + +message CSODACServerDynamicLobby { + optional uint64 lobby_id = 1; + repeated uint32 left_account_ids = 2 [packed = true]; +} + +message CSODACServerStaticLobby { + message Member { + optional uint32 account_id = 1; + optional string persona_name = 2; + optional .EDACLobbyTeam team = 3 [default = k_EDACLobbyTeam_Team0]; + optional uint32 player_slot = 4; + optional .EDACAIType ai_type = 5 [default = k_EDACAIType_Invalid]; + optional uint32 party_index = 6; + optional .EDACPlatform platform = 7 [default = k_eDACPlatform_None]; + optional bool chat_muted = 8; + optional uint32 active_challenge_slot_id = 9; + } + + repeated .CExtraMsgBlock extra_messages = 1; + optional fixed64 server_steam_id = 2; + optional uint64 lobby_id = 3; + optional fixed32 replay_salt = 4; + optional uint32 active_event_id = 5; + repeated .CSODACServerStaticLobby.Member members = 6; + optional bool trusted_server = 7; + optional .EDACBotDifficulty bot_difficulty = 8 [default = k_EDACBotDifficulty_None]; + repeated .CMsgTeamInfo team_info = 9; + optional .CMsgGameModeSettings game_mode_settings = 10; + optional string feature_controls = 11; +} + +message CMsgMatchSignoutData_PerformanceStats { + optional uint32 start_memory_bytes = 1; + optional uint32 peak_memory_bytes = 2; + optional uint32 end_memory_bytes = 3; + optional uint32 total_update_time_ms = 4; + optional uint32 total_match_time_ms = 5; + optional uint32 sent_messages = 6; + optional uint32 received_messages = 7; + optional uint32 sent_bytes = 8; + optional uint32 received_bytes = 9; + optional uint32 max_update_time_micros = 10; + optional uint32 num_updates = 11; + optional uint32 replay_size_bytes = 12; +} + +message CMsgMatchDisconnection { + optional uint32 account_id = 1; + optional uint32 disconnect_time = 2; + optional uint32 connection_state = 3; + optional uint32 reason_code = 4; + optional uint32 reconnect_delay = 5; +} + +message CMsgMatchSignoutData_Disconnections { + repeated .CMsgMatchDisconnection disconnections = 1; +} + +message CMsgMatchSignoutData_CombatStats { + message CombatRound { + optional uint32 round_number = 1; + repeated uint32 player_elements = 2 [packed = true]; + repeated uint32 opponent_elements = 3 [packed = true]; + optional uint32 player_damage = 4; + optional uint32 combat_duration_s = 5; + optional bool player_won = 6; + optional uint32 player_slot = 7; + optional uint32 opponent_slot = 8; + optional uint32 player_starting_life = 9; + optional uint32 player_level = 10; + optional uint32 player_rerolls = 11; + optional uint32 player_gold = 12; + optional uint32 player_interest_gold = 14; + optional uint32 player_streak_gold = 15; + optional uint32 player_bonus_gold = 16; + } + + message FinalPlaces { + optional uint32 player_slot = 1; + optional uint32 final_place = 2; + optional uint32 elimination_time_s = 3; + optional uint32 elimination_round = 4; + optional uint32 underlord_id = 5; + } + + repeated .CMsgMatchSignoutData_CombatStats.CombatRound combat_rounds = 1; + optional uint32 match_mmr = 2; + repeated .CMsgMatchSignoutData_CombatStats.FinalPlaces final_places = 3; +} + +message CMsgPlayerSignoutData_MMRUpdate { + message Opponent { + optional uint32 place = 1; + optional uint32 mmr = 2; + optional uint32 uncertainty = 3; + optional uint32 account_id = 4; + optional uint32 mmr_level_score = 5; + } + + optional uint32 final_place = 1; + repeated .CMsgPlayerSignoutData_MMRUpdate.Opponent opponents = 2; +} + +message CMsgPlayerSignoutData_MatchStats { + message MatchStat { + optional uint32 stat_id = 1; + optional uint32 value = 2; + } + + repeated .CMsgPlayerSignoutData_MatchStats.MatchStat match_stats = 1; +} + +message CMsgPlayerSignoutData_EventGrantProgress { + message Challenge { + optional uint32 slot_id = 1; + optional uint32 sequence_id = 2; + optional uint32 progress = 3; + } + + message Currency { + optional uint32 currency_id = 1; + optional uint32 grant = 2; + } + + optional uint32 event_id = 1; + repeated .CMsgPlayerSignoutData_EventGrantProgress.Currency currencies = 2; + repeated .CMsgPlayerSignoutData_EventGrantProgress.Challenge challenges = 4; +} + +message CMsgPlayerSignoutData_ChatStats { + optional uint32 yo_count = 3; + optional uint32 chat_line_count = 4; + optional uint32 combat_line_count = 5; +} + +message CMsgPlayerSignoutData_TeamUpdate { + optional uint32 other_team_member = 1; + optional uint32 final_place = 2; +} + +message CMsgServerToGCMatchSignout { + message MatchSignout { + optional .EDACMatchState match_state = 1 [default = k_EMatchState_InProgress]; + repeated .CExtraMsgBlock additional_data = 2; + optional uint32 match_duration_s = 3; + optional uint32 match_rounds = 4; + } + + message PlayerSignout { + optional uint32 player_slot = 1; + optional uint32 account_id = 2; + optional .EDACPlayerState player_state = 3 [default = k_EPlayerState_Playing]; + repeated .CExtraMsgBlock additional_data = 4; + optional uint32 final_placement = 6; + optional uint32 survival_time_s = 7; + optional uint32 survival_round = 8; + optional uint32 underlord_id = 9; + } + + optional uint64 lobby_id = 1; + optional bool should_signout_match = 2; + optional .CMsgServerToGCMatchSignout.MatchSignout match_signout = 3; + repeated .CMsgServerToGCMatchSignout.PlayerSignout player_signouts = 4; + optional uint32 signout_start_time = 5; +} + +message CMsgServerToGCMatchSignoutResponse { + enum ESignoutResult { + k_ESignout_Failed_Retry = 1; + k_ESignout_Failed_NoRetry = 2; + k_ESignout_Failed_InFlight = 3; + k_ESignout_Success = 4; + k_ESignout_Success_AlreadySignedOut = 5; + } + + optional .CMsgServerToGCMatchSignoutResponse.ESignoutResult result = 1 [default = k_ESignout_Failed_Retry]; +} + +message CMsgServerWelcomeDAC { + repeated string console_commands = 1; +} + +message CMsgServerToGCIdlePing { + optional uint32 server_version = 1; +} + +message CMsgGCToServerRequestPing { +} + +message CMsgGCToServerAllocateForMatch { + optional uint64 match_id = 1; +} + +message CMsgGCToServerAllocateForMatchResponse { + optional bool success = 1; +} + +message CMsgServerToGCMatchSignoutPermission { + optional uint64 lobby_id = 1; + optional .EDACMatchMode match_mode = 2 [default = k_EDACMatchMode_Invalid]; + optional uint32 failed_signouts = 3; + optional uint32 permission_request = 4; + optional .EDACGameMode game_mode = 5 [default = k_EDACGameMode_Invalid]; +} + +message CMsgServerToGCMatchSignoutPermissionResponse { + optional bool can_sign_out = 1; + optional uint32 retry_time_s = 2; + repeated .EGCServerSignoutData requested_data = 3; +} + +message CMsgServerToGCEnterMatchmaking { + optional uint32 server_version = 1; + optional string search_key = 2; + optional uint32 region_id = 3; + optional uint32 cluster_id = 4; + optional uint32 server_public_ip = 5; + optional uint32 server_private_ip = 6; + optional uint32 server_port = 7; + optional bytes sdr_address = 9; +} + +message CMsgGCToServerCancelAllocateForMatch { + optional uint64 match_id = 1; +} + +message CMsgServerToGCUpdateLobbyServerState { + optional uint64 lobby_id = 1; + optional .ELobbyServerState server_state = 2 [default = k_eLobbyServerState_Assign]; +} + +message CMsgServerToGCAbandonMatch { + message Player { + optional uint32 account_id = 1; + optional uint64 additional_data = 2; + } + + enum EReason { + eReason_ServerCrash = 1; + eReason_ClientsFailedToConnect = 2; + } + + optional fixed64 server_steam_id = 1; + optional fixed64 lobby_id = 2; + optional uint32 cluster_id = 3; + optional .CMsgServerToGCAbandonMatch.EReason reason_code = 4 [default = eReason_ServerCrash]; + optional uint64 additional_data = 5; + optional uint64 match_id = 6; + repeated .CMsgServerToGCAbandonMatch.Player players = 8; + optional fixed32 public_ip_address = 9; + optional uint32 port = 10; + optional uint32 server_version = 11; + optional uint32 pid = 12; + optional uint32 instance_id = 13; + optional uint32 private_ip_address = 14; +} + +message CMsgServerToGCAbandonMatchResponse { +} + +message CMsgServerToGCTestConnection { + optional bytes test_payload = 1; +} + +message CMsgServerToGCTestConnectionResponse { + optional uint32 state = 1; + optional uint64 lobby_id = 2; +} + +message CMsgGCToServerAddSpectator { + optional uint64 lobby_id = 1; + optional uint32 account_id = 2; + optional uint32 account_to_spectate = 3; +} + +message CMsgGCToServerAddSpectatorResponse { + enum EResponse { + k_eInternalError = 0; + k_eSuccess = 1; + k_eServerFull = 2; + } + + optional .CMsgGCToServerAddSpectatorResponse.EResponse result = 1 [default = k_eInternalError]; + optional uint32 account_to_spectate = 2; +} + +message CMsgGCToServerUpdateConsoleCommands { + repeated string console_commands = 1; +} + +message CMsgServertoGCPuzzleResults { + optional uint32 account_id = 1; + optional uint32 puzzle_id = 2; + optional string board_code = 3; + optional uint32 gold = 4; + optional uint32 time = 5; + optional uint32 health_pct = 6; + optional uint32 units = 7; +} + +message CMsgServertoGCPuzzleResultsResponse { + optional .CMsgPuzzleLeaderboardHistogramList histogram_list = 1; +} + +message CMsgServertoGCPuzzleBestRequest { + optional uint32 account_id = 1; + optional uint32 puzzle_id = 2; +} + +message CMsgServertoGCPuzzleBestResponse { + message Leaderboard { + optional uint32 leaderboard_type = 1; + optional uint32 value = 2; + optional string board_code = 3; + } + + repeated .CMsgServertoGCPuzzleBestResponse.Leaderboard leaderboards = 1; +} diff --git a/Protobufs/underlords/demo.proto b/Protobufs/underlords/demo.proto new file mode 100644 index 0000000..8ffb275 --- /dev/null +++ b/Protobufs/underlords/demo.proto @@ -0,0 +1,149 @@ +option cc_generic_services = false; + +enum EDemoCommands { + DEM_Error = -1; + DEM_Stop = 0; + DEM_FileHeader = 1; + DEM_FileInfo = 2; + DEM_SyncTick = 3; + DEM_SendTables = 4; + DEM_ClassInfo = 5; + DEM_StringTables = 6; + DEM_Packet = 7; + DEM_SignonPacket = 8; + DEM_ConsoleCmd = 9; + DEM_CustomData = 10; + DEM_CustomDataCallbacks = 11; + DEM_UserCmd = 12; + DEM_FullPacket = 13; + DEM_SaveGame = 14; + DEM_SpawnGroups = 15; + DEM_Max = 16; + DEM_IsCompressed = 64; +} + +message CDemoFileHeader { + required string demo_file_stamp = 1; + optional int32 network_protocol = 2; + optional string server_name = 3; + optional string client_name = 4; + optional string map_name = 5; + optional string game_directory = 6; + optional int32 fullpackets_version = 7; + optional bool allow_clientside_entities = 8; + optional bool allow_clientside_particles = 9; + optional string addons = 10; +} + +message CGameInfo { + message CDotaGameInfo { + message CPlayerInfo { + optional string hero_name = 1; + optional string player_name = 2; + optional bool is_fake_client = 3; + optional uint64 steamid = 4; + optional int32 game_team = 5; + } + + message CHeroSelectEvent { + optional bool is_pick = 1; + optional uint32 team = 2; + optional uint32 hero_id = 3; + } + + optional uint64 match_id = 1; + optional int32 game_mode = 2; + optional int32 game_winner = 3; + repeated .CGameInfo.CDotaGameInfo.CPlayerInfo player_info = 4; + optional uint32 leagueid = 5; + repeated .CGameInfo.CDotaGameInfo.CHeroSelectEvent picks_bans = 6; + optional uint32 radiant_team_id = 7; + optional uint32 dire_team_id = 8; + optional string radiant_team_tag = 9; + optional string dire_team_tag = 10; + optional uint32 end_time = 11; + } + + optional .CGameInfo.CDotaGameInfo dota = 4; +} + +message CDemoFileInfo { + optional float playback_time = 1; + optional int32 playback_ticks = 2; + optional int32 playback_frames = 3; + optional .CGameInfo game_info = 4; +} + +message CDemoPacket { + optional bytes data = 3; +} + +message CDemoFullPacket { + optional .CDemoStringTables string_table = 1; + optional .CDemoPacket packet = 2; +} + +message CDemoSaveGame { + optional bytes data = 1; + optional fixed64 steam_id = 2; + optional fixed64 signature = 3; + optional int32 version = 4; +} + +message CDemoSyncTick { +} + +message CDemoConsoleCmd { + optional string cmdstring = 1; +} + +message CDemoSendTables { + optional bytes data = 1; +} + +message CDemoClassInfo { + message class_t { + optional int32 class_id = 1; + optional string network_name = 2; + optional string table_name = 3; + } + + repeated .CDemoClassInfo.class_t classes = 1; +} + +message CDemoCustomData { + optional int32 callback_index = 1; + optional bytes data = 2; +} + +message CDemoCustomDataCallbacks { + repeated string save_id = 1; +} + +message CDemoStringTables { + message items_t { + optional string str = 1; + optional bytes data = 2; + } + + message table_t { + optional string table_name = 1; + repeated .CDemoStringTables.items_t items = 2; + repeated .CDemoStringTables.items_t items_clientside = 3; + optional int32 table_flags = 4; + } + + repeated .CDemoStringTables.table_t tables = 1; +} + +message CDemoStop { +} + +message CDemoUserCmd { + optional int32 cmd_number = 1; + optional bytes data = 2; +} + +message CDemoSpawnGroups { + repeated bytes msgs = 3; +} diff --git a/Protobufs/underlords/econ_gcmessages.proto b/Protobufs/underlords/econ_gcmessages.proto new file mode 100644 index 0000000..c919931 --- /dev/null +++ b/Protobufs/underlords/econ_gcmessages.proto @@ -0,0 +1,1063 @@ +import "steammessages.proto"; +import "econ_shared_enums.proto"; + +option optimize_for = SPEED; +option cc_generic_services = false; + +enum EGCItemMsg { + k_EMsgGCBase = 1000; + k_EMsgGCSetItemPosition = 1001; + k_EMsgGCDelete = 1004; + k_EMsgGCVerifyCacheSubscription = 1005; + k_EMsgClientToGCNameItem = 1006; + k_EMsgGCPaintItem = 1009; + k_EMsgGCPaintItemResponse = 1010; + k_EMsgGCGoldenWrenchBroadcast = 1011; + k_EMsgGCMOTDRequest = 1012; + k_EMsgGCMOTDRequestResponse = 1013; + k_EMsgGCAddItemToSocket_DEPRECATED = 1014; + k_EMsgGCAddItemToSocketResponse_DEPRECATED = 1015; + k_EMsgGCAddSocketToBaseItem_DEPRECATED = 1016; + k_EMsgGCAddSocketToItem_DEPRECATED = 1017; + k_EMsgGCAddSocketToItemResponse_DEPRECATED = 1018; + k_EMsgGCNameBaseItem = 1019; + k_EMsgGCNameBaseItemResponse = 1020; + k_EMsgGCRemoveSocketItem_DEPRECATED = 1021; + k_EMsgGCRemoveSocketItemResponse_DEPRECATED = 1022; + k_EMsgGCCustomizeItemTexture = 1023; + k_EMsgGCCustomizeItemTextureResponse = 1024; + k_EMsgGCUseItemRequest = 1025; + k_EMsgGCUseItemResponse = 1026; + k_EMsgGCGiftedItems = 1027; + k_EMsgGCRemoveItemName = 1030; + k_EMsgGCRemoveItemPaint = 1031; + k_EMsgGCUnwrapGiftRequest = 1037; + k_EMsgGCUnwrapGiftResponse = 1038; + k_EMsgGCSetItemStyle_DEPRECATED = 1039; + k_EMsgGCUsedClaimCodeItem = 1040; + k_EMsgGCSortItems = 1041; + k_EMsgGC_RevolvingLootList_DEPRECATED = 1042; + k_EMsgGCUpdateItemSchema = 1049; + k_EMsgGCRemoveCustomTexture = 1051; + k_EMsgGCRemoveCustomTextureResponse = 1052; + k_EMsgGCRemoveMakersMark = 1053; + k_EMsgGCRemoveMakersMarkResponse = 1054; + k_EMsgGCRemoveUniqueCraftIndex = 1055; + k_EMsgGCRemoveUniqueCraftIndexResponse = 1056; + k_EMsgGCSaxxyBroadcast = 1057; + k_EMsgGCBackpackSortFinished = 1058; + k_EMsgGCAdjustItemEquippedState = 1059; + k_EMsgGCCollectItem = 1061; + k_EMsgGCItemAcknowledged = 1062; + k_EMsgGCPresets_SelectPresetForClass = 1063; + k_EMsgGCPresets_SetItemPosition = 1064; + k_EMsgGCPresets_SelectPresetForClassReply = 1067; + k_EMsgClientToGCNameItemResponse = 1068; + k_EMsgGCApplyConsumableEffects = 1069; + k_EMsgGCShowItemsPickedUp = 1071; + k_EMsgGCClientDisplayNotification = 1072; + k_EMsgGCApplyStrangePart = 1073; + k_EMsgGC_IncrementKillCountResponse = 1075; + k_EMsgGCApplyPennantUpgrade = 1076; + k_EMsgGCSetItemPositions = 1077; + k_EMsgGCSetItemPositions_RateLimited = 1096; + k_EMsgGCApplyEggEssence = 1078; + k_EMsgGCNameEggEssenceResponse = 1079; + k_EMsgGCFulfillDynamicRecipeComponent = 1082; + k_EMsgGCFulfillDynamicRecipeComponentResponse = 1083; + k_EMsgGCClientRequestMarketData = 1084; + k_EMsgGCClientRequestMarketDataResponse = 1085; + k_EMsgGCExtractGems = 1086; + k_EMsgGCAddSocket = 1087; + k_EMsgGCAddItemToSocket = 1088; + k_EMsgGCAddItemToSocketResponse = 1089; + k_EMsgGCAddSocketResponse = 1090; + k_EMsgGCResetStrangeGemCount = 1091; + k_EMsgGCRequestCrateItems = 1092; + k_EMsgGCRequestCrateItemsResponse = 1093; + k_EMsgGCExtractGemsResponse = 1094; + k_EMsgGCResetStrangeGemCountResponse = 1095; + k_EMsgGCServerUseItemRequest = 1103; + k_EMsgGCAddGiftItem = 1104; + k_EMsgGCRemoveItemGiftMessage = 1105; + k_EMsgGCRemoveItemGiftMessageResponse = 1106; + k_EMsgGCRemoveItemGifterAccountId = 1107; + k_EMsgGCRemoveItemGifterAccountIdResponse = 1108; + k_EMsgClientToGCRemoveItemGifterAttributes = 1109; + k_EMsgClientToGCRemoveItemName = 1110; + k_EMsgClientToGCRemoveItemDescription = 1111; + k_EMsgClientToGCRemoveItemAttributeResponse = 1112; + k_EMsgGCTradingBase = 1500; + k_EMsgGCTrading_InitiateTradeRequest = 1501; + k_EMsgGCTrading_InitiateTradeResponse = 1502; + k_EMsgGCTrading_StartSession = 1503; + k_EMsgGCTrading_SessionClosed = 1509; + k_EMsgGCTrading_InitiateTradeRequestResponse = 1514; + k_EMsgGCServerBrowser_FavoriteServer = 1601; + k_EMsgGCServerBrowser_BlacklistServer = 1602; + k_EMsgGCServerRentalsBase = 1700; + k_EMsgGCDev_NewItemRequest = 2001; + k_EMsgGCDev_NewItemRequestResponse = 2002; + k_EMsgGCDev_UnlockAllItemStylesRequest = 2003; + k_EMsgGCDev_UnlockAllItemStylesResponse = 2004; + k_EMsgGCStorePurchaseFinalize = 2504; + k_EMsgGCStorePurchaseFinalizeResponse = 2505; + k_EMsgGCStorePurchaseCancel = 2506; + k_EMsgGCStorePurchaseCancelResponse = 2507; + k_EMsgGCStorePurchaseInit = 2510; + k_EMsgGCStorePurchaseInitResponse = 2511; + k_EMsgGCToGCBannedWordListUpdated = 2515; + k_EMsgGCToGCDirtySDOCache = 2516; + k_EMsgGCToGCDirtyMultipleSDOCache = 2517; + k_EMsgGCToGCUpdateSQLKeyValue = 2518; + k_EMsgGCToGCBroadcastConsoleCommand = 2521; + k_EMsgGCServerVersionUpdated = 2522; + k_EMsgGCApplyAutograph = 2523; + k_EMsgGCToGCWebAPIAccountChanged = 2524; + k_EMsgGCClientVersionUpdated = 2528; + k_EMsgGCItemPurgatory_FinalizePurchase = 2531; + k_EMsgGCItemPurgatory_FinalizePurchaseResponse = 2532; + k_EMsgGCItemPurgatory_RefundPurchase = 2533; + k_EMsgGCItemPurgatory_RefundPurchaseResponse = 2534; + k_EMsgGCToGCPlayerStrangeCountAdjustments = 2535; + k_EMsgGCRequestStoreSalesData = 2536; + k_EMsgGCRequestStoreSalesDataResponse = 2537; + k_EMsgGCRequestStoreSalesDataUpToDateResponse = 2538; + k_EMsgGCToGCPingRequest = 2539; + k_EMsgGCToGCPingResponse = 2540; + k_EMsgGCToGCGetUserSessionServer = 2541; + k_EMsgGCToGCGetUserSessionServerResponse = 2542; + k_EMsgGCToGCGetUserServerMembers = 2543; + k_EMsgGCToGCGetUserServerMembersResponse = 2544; + k_EMsgGCToGCGetUserPCBangNo = 2545; + k_EMsgGCToGCGetUserPCBangNoResponse = 2546; + k_EMsgGCToGCCanUseDropRateBonus = 2547; + k_EMsgSQLAddDropRateBonus = 2548; + k_EMsgGCToGCRefreshSOCache = 2549; + k_EMsgGCToGCApplyLocalizationDiff = 2550; + k_EMsgGCToGCApplyLocalizationDiffResponse = 2551; + k_EMsgGCToGCCheckAccountTradeStatus = 2552; + k_EMsgGCToGCCheckAccountTradeStatusResponse = 2553; + k_EMsgGCToGCGrantAccountRolledItems = 2554; + k_EMsgGCToGCGrantSelfMadeItemToAccount = 2555; + k_EMsgGCPartnerBalanceRequest = 2557; + k_EMsgGCPartnerBalanceResponse = 2558; + k_EMsgGCPartnerRechargeRedirectURLRequest = 2559; + k_EMsgGCPartnerRechargeRedirectURLResponse = 2560; + k_EMsgGCStatueCraft = 2561; + k_EMsgGCRedeemCode = 2562; + k_EMsgGCRedeemCodeResponse = 2563; + k_EMsgGCToGCItemConsumptionRollback = 2564; + k_EMsgClientToGCWrapAndDeliverGift = 2565; + k_EMsgClientToGCWrapAndDeliverGiftResponse = 2566; + k_EMsgClientToGCUnpackBundleResponse = 2567; + k_EMsgGCToClientStoreTransactionCompleted = 2568; + k_EMsgClientToGCEquipItems = 2569; + k_EMsgClientToGCEquipItemsResponse = 2570; + k_EMsgClientToGCUnlockItemStyle = 2571; + k_EMsgClientToGCUnlockItemStyleResponse = 2572; + k_EMsgClientToGCSetItemInventoryCategory = 2573; + k_EMsgClientToGCUnlockCrate = 2574; + k_EMsgClientToGCUnlockCrateResponse = 2575; + k_EMsgClientToGCUnpackBundle = 2576; + k_EMsgClientToGCSetItemStyle = 2577; + k_EMsgClientToGCSetItemStyleResponse = 2578; + k_EMsgSQLGCToGCGrantBackpackSlots = 2580; + k_EMsgClientToGCLookupAccountName = 2581; + k_EMsgClientToGCLookupAccountNameResponse = 2582; + k_EMsgGCToGCDevRevokeUserItems = 2583; + k_EMsgClientToGCCreateStaticRecipe = 2584; + k_EMsgClientToGCCreateStaticRecipeResponse = 2585; + k_EMsgGCToGCStoreProcessCDKeyTransaction = 2586; + k_EMsgGCToGCStoreProcessCDKeyTransactionResponse = 2587; + k_EMsgGCToGCStoreProcessSettlement = 2588; + k_EMsgGCToGCStoreProcessSettlementResponse = 2589; + k_EMsgGCToGCConsoleOutput = 2590; + k_EMsgGCToClientItemAges = 2591; + k_EMsgGCToGCInternalTestMsg = 2592; + k_EMsgGCToGCClientServerVersionsUpdated = 2593; + k_EMsgGCUseMultipleItemsRequest = 2594; + k_EMsgGCGetAccountSubscriptionItem = 2595; + k_EMsgGCGetAccountSubscriptionItemResponse = 2596; + k_EMsgGCToGCBroadcastMessageFromSub = 2598; + k_EMsgGCToClientCurrencyPricePoints = 2599; + k_EMsgGCToGCAddSubscriptionTime = 2600; + k_EMsgGCToGCFlushSteamInventoryCache = 2601; + k_EMsgGCRequestCrateEscalationLevel = 2602; + k_EMsgGCRequestCrateEscalationLevelResponse = 2603; + k_EMsgGCToGCUpdateSubscriptionItems = 2604; + k_EMsgGCToGCSelfPing = 2605; + k_EMsgGCToGCGetInfuxIntervalStats = 2606; + k_EMsgGCToGCGetInfuxIntervalStatsResponse = 2607; + k_EMsgGCToGCPurchaseSucceeded = 2608; +} + +enum EItemPurgatoryResponse_Finalize { + k_ItemPurgatoryResponse_Finalize_Succeeded = 0; + k_ItemPurgatoryResponse_Finalize_Failed_Incomplete = 1; + k_ItemPurgatoryResponse_Finalize_Failed_ItemsNotInPurgatory = 2; + k_ItemPurgatoryResponse_Finalize_Failed_CouldNotFindItems = 3; + k_ItemPurgatoryResponse_Finalize_Failed_NoSOCache = 4; + k_ItemPurgatoryResponse_Finalize_BackpackFull = 5; +} + +enum EItemPurgatoryResponse_Refund { + k_ItemPurgatoryResponse_Refund_Succeeded = 0; + k_ItemPurgatoryResponse_Refund_Failed_ItemNotInPurgatory = 1; + k_ItemPurgatoryResponse_Refund_Failed_CouldNotFindItem = 2; + k_ItemPurgatoryResponse_Refund_Failed_NoSOCache = 3; + k_ItemPurgatoryResponse_Refund_Failed_NoDetail = 4; +} + +enum EGCMsgInitiateTradeResponse { + k_EGCMsgInitiateTradeResponse_Accepted = 0; + k_EGCMsgInitiateTradeResponse_Declined = 1; + k_EGCMsgInitiateTradeResponse_VAC_Banned_Initiator = 2; + k_EGCMsgInitiateTradeResponse_VAC_Banned_Target = 3; + k_EGCMsgInitiateTradeResponse_Target_Already_Trading = 4; + k_EGCMsgInitiateTradeResponse_Disabled = 5; + k_EGCMsgInitiateTradeResponse_NotLoggedIn = 6; + k_EGCMsgInitiateTradeResponse_Cancel = 7; + k_EGCMsgInitiateTradeResponse_TooSoon = 8; + k_EGCMsgInitiateTradeResponse_TooSoonPenalty = 9; + k_EGCMsgInitiateTradeResponse_Trade_Banned_Initiator = 10; + k_EGCMsgInitiateTradeResponse_Trade_Banned_Target = 11; + k_EGCMsgInitiateTradeResponse_Free_Account_Initiator_DEPRECATED = 12; + k_EGCMsgInitiateTradeResponse_Shared_Account_Initiator = 13; + k_EGCMsgInitiateTradeResponse_Service_Unavailable = 14; + k_EGCMsgInitiateTradeResponse_Target_Blocked = 15; + k_EGCMsgInitiateTradeResponse_NeedVerifiedEmail = 16; + k_EGCMsgInitiateTradeResponse_NeedSteamGuard = 17; + k_EGCMsgInitiateTradeResponse_SteamGuardDuration = 18; + k_EGCMsgInitiateTradeResponse_TheyCannotTrade = 19; + k_EGCMsgInitiateTradeResponse_Recent_Password_Reset = 20; + k_EGCMsgInitiateTradeResponse_Using_New_Device = 21; + k_EGCMsgInitiateTradeResponse_Sent_Invalid_Cookie = 22; + k_EGCMsgInitiateTradeResponse_TooRecentFriend = 23; + k_EGCMsgInitiateTradeResponse_WalledFundsNotTrusted = 24; +} + +message CMsgApplyAutograph { + optional uint64 autograph_item_id = 1; + optional uint64 item_item_id = 2; +} + +message CMsgAdjustItemEquippedState { + optional uint64 item_id = 1; + optional uint32 new_class = 2; + optional uint32 new_slot = 3; + optional uint32 style_index = 4; +} + +message CMsgEconPlayerStrangeCountAdjustment { + message CStrangeCountAdjustment { + optional uint32 event_type = 1; + optional uint64 item_id = 2; + optional uint32 adjustment = 3; + } + + optional uint32 account_id = 1; + repeated .CMsgEconPlayerStrangeCountAdjustment.CStrangeCountAdjustment strange_count_adjustments = 2; + optional bool turbo_mode = 3; +} + +message CMsgRequestItemPurgatory_FinalizePurchase { + repeated uint64 item_ids = 1; +} + +message CMsgRequestItemPurgatory_FinalizePurchaseResponse { + optional uint32 result = 1; + repeated uint64 item_ids = 2; +} + +message CMsgRequestItemPurgatory_RefundPurchase { + repeated uint64 item_ids = 1; +} + +message CMsgRequestItemPurgatory_RefundPurchaseResponse { + optional uint32 result = 1; +} + +message CMsgCraftingResponse { + repeated uint64 item_ids = 1; +} + +message CMsgGCRequestStoreSalesData { + optional uint32 version = 1; + optional uint32 currency = 2; +} + +message CMsgGCRequestStoreSalesDataResponse { + message Price { + optional uint32 item_def = 1; + optional uint32 price = 2; + } + + repeated .CMsgGCRequestStoreSalesDataResponse.Price sale_price = 1; + optional uint32 version = 2; + optional uint32 expiration_time = 3; +} + +message CMsgGCRequestStoreSalesDataUpToDateResponse { + optional uint32 version = 1; + optional uint32 expiration_time = 2; +} + +message CMsgGCToGCPingRequest { +} + +message CMsgGCToGCPingResponse { +} + +message CMsgGCToGCGetUserSessionServer { + optional uint32 account_id = 1; +} + +message CMsgGCToGCGetUserSessionServerResponse { + optional fixed64 server_steam_id = 1; + optional bool is_online = 2; +} + +message CMsgGCToGCGetUserServerMembers { + optional uint32 account_id = 1; + optional uint32 max_spectators = 2; +} + +message CMsgGCToGCGetUserServerMembersResponse { + repeated uint32 member_account_id = 1; +} + +message CMsgLookupMultipleAccountNames { + repeated uint32 accountids = 1 [packed = true]; +} + +message CMsgLookupMultipleAccountNamesResponse { + message Account { + optional uint32 accountid = 1; + optional string persona = 2; + } + + repeated .CMsgLookupMultipleAccountNamesResponse.Account accounts = 1; +} + +message CMsgRequestCrateItems { + optional uint32 crate_item_def = 1; +} + +message CMsgRequestCrateItemsResponse { + enum EResult { + k_Succeeded = 0; + k_Failed = 1; + } + + optional uint32 response = 1; + repeated uint32 item_defs = 2; + repeated uint32 peek_item_defs = 3; +} + +message CMsgRequestCrateEscalationLevel { + optional uint32 crate_item_def = 1; +} + +message CMsgRequestCrateEscalationLevelResponse { + enum EResult { + k_Succeeded = 0; + k_Failed = 1; + } + + optional uint32 response = 1; + optional uint32 escalation_level0 = 2; + optional uint32 escalation_level1 = 3; + optional uint32 escalation_level2 = 4; + optional uint32 escalation_level3 = 5; +} + +message CMsgGCToGCCanUseDropRateBonus { + optional uint32 account_id = 1; + optional float drop_rate_bonus = 2; + optional uint32 booster_type = 3; + optional uint32 exclusive_item_def = 4; + optional bool allow_equal_rate = 5; +} + +message CMsgSQLAddDropRateBonus { + optional uint32 account_id = 1; + optional uint64 item_id = 2; + optional uint32 item_def = 3; + optional float drop_rate_bonus = 4; + optional uint32 booster_type = 5; + optional uint32 seconds_duration = 6; + optional uint32 end_time_stamp = 7; +} + +message CMsgSQLUpgradeBattleBooster { + optional uint32 account_id = 1; + optional uint32 item_def = 2; + optional float bonus_to_add = 3; + optional uint32 booster_type = 4; +} + +message CMsgGCToGCRefreshSOCache { + optional uint32 account_id = 1; + optional bool reload = 2; +} + +message CMsgGCToGCCheckAccountTradeStatus { + optional uint32 account_id = 1; + optional bool initiator = 2; +} + +message CMsgGCToGCCheckAccountTradeStatusResponse { + optional bool can_trade = 1; + optional uint32 error_code = 2; +} + +message CMsgGCToGCAddSubscriptionTime { + optional uint32 account_id = 1; + repeated uint32 matching_subscription_def_indexes = 2; + optional uint32 additional_seconds = 3; +} + +message CMsgGCToGCGrantAccountRolledItems { + message Item { + message DynamicAttribute { + optional string name = 1; + optional uint32 value_uint32 = 2; + optional float value_float = 3; + optional string value_string = 4; + } + + message AdditionalAuditEntry { + optional uint32 owner_account_id = 1; + optional uint32 audit_action = 2; + optional uint64 audit_data = 3; + } + + optional uint32 item_def = 1; + repeated string loot_lists = 2; + optional bool ignore_limit = 3; + optional uint32 origin = 4; + repeated .CMsgGCToGCGrantAccountRolledItems.Item.DynamicAttribute dynamic_attributes = 5; + repeated .CMsgGCToGCGrantAccountRolledItems.Item.AdditionalAuditEntry additional_audit_entries = 6; + optional uint32 inventory_token = 7; + } + + optional uint32 account_id = 1; + repeated .CMsgGCToGCGrantAccountRolledItems.Item items = 2; + optional uint32 audit_action = 3; + optional uint64 audit_data = 4; +} + +message CMsgGCToGCGrantSelfMadeItemToAccount { + optional uint32 item_def_index = 1; + optional uint32 accountid = 2; +} + +message CMsgUseItem { + optional uint64 item_id = 1; + optional fixed64 target_steam_id = 2; + repeated uint32 gift__potential_targets = 3; + optional uint32 duel__class_lock = 4; + optional uint64 initiator_steam_id = 5; + optional bool itempack__ack_immediately = 6; +} + +message CMsgServerUseItem { + optional uint32 initiator_account_id = 1; + optional .CMsgUseItem use_item_msg = 2; +} + +message CMsgUseMultipleItems { + repeated uint64 item_ids = 1; +} + +message CMsgGCPartnerBalanceRequest { +} + +message CMsgGCPartnerBalanceResponse { + optional .EGCPartnerRequestResponse result = 1 [default = k_EPartnerRequestOK]; + optional uint32 balance = 2; +} + +message CGCStoreRechargeRedirect_LineItem { + optional uint32 item_def_id = 1; + optional uint32 quantity = 2; +} + +message CMsgGCPartnerRechargeRedirectURLRequest { + repeated .CGCStoreRechargeRedirect_LineItem line_items = 1; +} + +message CMsgGCPartnerRechargeRedirectURLResponse { + optional .EGCPartnerRequestResponse result = 1 [default = k_EPartnerRequestOK]; + optional string url = 2; +} + +message CMsgGCEconSQLWorkItemEmbeddedRollbackData { + optional uint32 account_id = 1; + optional uint64 deleted_item_id = 2; + optional uint32 old_audit_action = 3; + optional uint32 new_audit_action = 4; + optional uint32 expected_audit_action = 5; +} + +message CMsgCraftStatue { + optional uint32 heroid = 1; + optional string sequencename = 2; + optional float cycle = 3; + optional string description = 4; + optional uint32 pedestal_itemdef = 5; + optional uint64 toolid = 6; +} + +message CMsgRedeemCode { + optional string code = 1; +} + +message CMsgRedeemCodeResponse { + enum EResultCode { + k_Succeeded = 0; + k_Failed_CodeNotFound = 1; + k_Failed_CodeAlreadyUsed = 2; + k_Failed_OtherError = 3; + } + + optional uint32 response = 1; + optional uint64 item_id = 2; +} + +message CMsgDevNewItemRequest { + optional string item_def_name = 3; + optional string loot_list_name = 4; + repeated string attr_def_name = 5; + repeated string attr_value = 6; +} + +message CMsgDevNewItemRequestResponse { + optional bool success = 1; +} + +message CMsgDevUnlockAllItemStyles { + optional uint64 item_id = 1; +} + +message CMsgDevUnlockAllItemStylesResponse { + optional bool success = 1; +} + +message CMsgGCGetAccountSubscriptionItem { + optional uint32 account_id = 1; +} + +message CMsgGCGetAccountSubscriptionItemResponse { + optional uint32 def_index = 1; +} + +message CMsgGCAddGiftItem { + optional uint32 account_id = 1; + optional uint64 item_id = 2; +} + +message CMsgClientToGCWrapAndDeliverGift { + optional uint64 item_id = 1; + optional uint32 give_to_account_id = 2; + optional string gift_message = 3; +} + +message CMsgClientToGCWrapAndDeliverGiftResponse { + optional .EGCMsgResponse response = 1 [default = k_EGCMsgResponseOK]; + optional uint32 gifting_charge_uses = 2; + optional int32 gifting_charge_max = 3; + optional uint32 gifting_uses = 4; + optional int32 gifting_max = 5; + optional uint32 gifting_window_hours = 6; + optional .EGCMsgInitiateTradeResponse trade_restriction = 7 [default = k_EGCMsgInitiateTradeResponse_Accepted]; +} + +message CMsgClientToGCUnwrapGift { + optional uint64 item_id = 1; +} + +message CMsgClientToGCGetGiftPermissions { +} + +message CMsgClientToGCGetGiftPermissionsResponse { + message FriendPermission { + optional uint32 account_id = 1; + optional .EGCMsgInitiateTradeResponse permission = 2 [default = k_EGCMsgInitiateTradeResponse_Accepted]; + } + + optional bool is_unlimited = 1; + optional bool has_two_factor = 3; + optional .EGCMsgInitiateTradeResponse sender_permission = 6 [default = k_EGCMsgInitiateTradeResponse_Accepted]; + optional uint32 friendship_age_requirement = 7; + optional uint32 friendship_age_requirement_two_factor = 8; + repeated .CMsgClientToGCGetGiftPermissionsResponse.FriendPermission friend_permissions = 9; +} + +message CMsgClientToGCUnpackBundle { + optional uint64 item_id = 1; +} + +message CMsgClientToGCUnpackBundleResponse { + enum EUnpackBundle { + k_UnpackBundle_Succeeded = 0; + k_UnpackBundle_Failed_ItemIsNotBundle = 1; + k_UnpackBundle_Failed_UnableToCreateContainedItem = 2; + k_UnpackBundle_Failed_SOCacheError = 3; + k_UnpackBundle_Failed_ItemIsInvalid = 4; + k_UnpackBundle_Failed_BadItemQuantity = 5; + k_UnpackBundle_Failed_UnableToDeleteItem = 6; + } + + repeated uint64 unpacked_item_ids = 1; + optional .CMsgClientToGCUnpackBundleResponse.EUnpackBundle response = 2 [default = k_UnpackBundle_Succeeded]; + repeated uint32 unpacked_item_def_indexes = 3; +} + +message CMsgGCToClientStoreTransactionCompleted { + optional uint64 txn_id = 1; + repeated uint64 item_ids = 2; +} + +message CMsgClientToGCEquipItems { + repeated .CMsgAdjustItemEquippedState equips = 1; +} + +message CMsgClientToGCEquipItemsResponse { + optional fixed64 so_cache_version_id = 1; +} + +message CMsgClientToGCSetItemStyle { + optional uint64 item_id = 1; + optional uint32 style_index = 2; +} + +message CMsgClientToGCSetItemStyleResponse { + enum ESetStyle { + k_SetStyle_Succeeded = 0; + k_SetStyle_Failed = 1; + k_SetStyle_Failed_StyleIsLocked = 2; + } + + optional .CMsgClientToGCSetItemStyleResponse.ESetStyle response = 1 [default = k_SetStyle_Succeeded]; +} + +message CMsgClientToGCUnlockItemStyle { + optional uint64 item_to_unlock = 1; + optional uint32 style_index = 2; + repeated uint64 consumable_item_ids = 3; +} + +message CMsgClientToGCUnlockItemStyleResponse { + enum EUnlockStyle { + k_UnlockStyle_Succeeded = 0; + k_UnlockStyle_Failed_PreReq = 1; + k_UnlockStyle_Failed_CantAfford = 2; + k_UnlockStyle_Failed_CantCommit = 3; + k_UnlockStyle_Failed_CantLockCache = 4; + k_UnlockStyle_Failed_CantAffordAttrib = 5; + k_UnlockStyle_Failed_CantAffordGem = 6; + k_UnlockStyle_Failed_NoCompendiumLevel = 7; + k_UnlockStyle_Failed_AlreadyUnlocked = 8; + k_UnlockStyle_Failed_OtherError = 9; + k_UnlockStyle_Failed_ItemIsInvalid = 10; + k_UnlockStyle_Failed_ToolIsInvalid = 11; + } + + optional .CMsgClientToGCUnlockItemStyleResponse.EUnlockStyle response = 1 [default = k_UnlockStyle_Succeeded]; + optional uint64 item_id = 2; + optional uint32 style_index = 3; + optional uint32 style_prereq = 4; +} + +message CMsgClientToGCSetItemInventoryCategory { + repeated uint64 item_ids = 1; + optional uint32 set_to_value = 2; + optional uint32 remove_categories = 3; + optional uint32 add_categories = 4; +} + +message CMsgClientToGCUnlockCrate { + optional uint64 crate_item_id = 1; + optional uint64 key_item_id = 2; +} + +message CMsgClientToGCUnlockCrateResponse { + message Item { + optional uint64 item_id = 1; + optional uint32 def_index = 2; + } + + optional .EGCMsgResponse result = 1 [default = k_EGCMsgResponseOK]; + repeated .CMsgClientToGCUnlockCrateResponse.Item granted_items = 2; +} + +message CMsgClientToGCRemoveItemAttribute { + optional uint64 item_id = 1; +} + +message CMsgClientToGCRemoveItemAttributeResponse { + enum ERemoveItemAttribute { + k_RemoveItemAttribute_Succeeded = 0; + k_RemoveItemAttribute_Failed = 1; + k_RemoveItemAttribute_Failed_ItemIsInvalid = 2; + k_RemoveItemAttribute_Failed_AttributeCannotBeRemoved = 3; + k_RemoveItemAttribute_Failed_AttributeDoesntExist = 4; + } + + optional .CMsgClientToGCRemoveItemAttributeResponse.ERemoveItemAttribute response = 1 [default = k_RemoveItemAttribute_Succeeded]; + optional uint64 item_id = 2; +} + +message CMsgClientToGCNameItem { + optional uint64 subject_item_id = 1; + optional uint64 tool_item_id = 2; + optional string name = 3; +} + +message CMsgClientToGCNameItemResponse { + enum ENameItem { + k_NameItem_Succeeded = 0; + k_NameItem_Failed = 1; + k_NameItem_Failed_ToolIsInvalid = 2; + k_NameItem_Failed_ItemIsInvalid = 3; + k_NameItem_Failed_NameIsInvalid = 4; + } + + optional .CMsgClientToGCNameItemResponse.ENameItem response = 1 [default = k_NameItem_Succeeded]; + optional uint64 item_id = 2; +} + +message CMsgGCSetItemPosition { + optional uint64 item_id = 1; + optional uint32 new_position = 2; +} + +message CAttribute_ItemDynamicRecipeComponent { + optional uint32 item_def = 1; + optional uint32 item_quality = 2; + optional uint32 item_flags = 3; + optional string attributes_string = 4; + optional uint32 item_count = 5; + optional uint32 items_fulfilled = 6; + optional uint32 item_rarity = 7; + optional string lootlist = 8; + optional uint64 fulfilled_item_id = 9; +} + +message CProtoItemSocket { + optional uint64 item_id = 1; + optional uint32 attr_def_index = 2; + optional uint32 required_type = 3; + optional string required_hero = 4; + optional uint32 gem_def_index = 5; + optional bool not_tradable = 6; + optional string required_item_slot = 7; +} + +message CProtoItemSocket_Empty { + optional .CProtoItemSocket socket = 1; +} + +message CProtoItemSocket_Effect { + optional .CProtoItemSocket socket = 1; + optional uint32 effect = 2; +} + +message CProtoItemSocket_Color { + optional .CProtoItemSocket socket = 1; + optional uint32 red = 2; + optional uint32 green = 3; + optional uint32 blue = 4; +} + +message CProtoItemSocket_Strange { + optional .CProtoItemSocket socket = 1; + optional uint32 strange_type = 2; + optional uint32 strange_value = 3; +} + +message CProtoItemSocket_Spectator { + optional .CProtoItemSocket socket = 1; + optional uint32 games_viewed = 2; + optional uint32 corporation_id = 3; + optional uint32 league_id = 4; + optional uint32 team_id = 5; +} + +message CProtoItemSocket_AssetModifier { + optional .CProtoItemSocket socket = 1; + optional uint32 asset_modifier = 2; +} + +message CProtoItemSocket_AssetModifier_DESERIALIZE_FROM_STRING_ONLY { + optional .CProtoItemSocket socket = 1; + optional uint32 asset_modifier = 2; + optional uint32 anim_modifier = 3; + optional uint32 ability_effect = 4; +} + +message CProtoItemSocket_Autograph { + optional .CProtoItemSocket socket = 1; + optional string autograph = 2; + optional uint32 autograph_id = 3; + optional uint32 autograph_score = 4; +} + +message CProtoItemSocket_StaticVisuals { + optional .CProtoItemSocket socket = 1; +} + +message CAttribute_String { + optional string value = 1; +} + +message CWorkshop_GetItemDailyRevenue_Request { + optional uint32 appid = 1; + optional uint32 item_id = 2; + optional uint32 date_start = 3; + optional uint32 date_end = 4; +} + +message CWorkshop_GetItemDailyRevenue_Response { + message CountryDailyRevenue { + optional string country_code = 1; + optional uint32 date = 2; + optional int64 revenue_usd = 3; + optional int32 units = 4; + } + + repeated .CWorkshop_GetItemDailyRevenue_Response.CountryDailyRevenue country_revenue = 1; +} + +message CWorkshop_GetPackageDailyRevenue_Request { + optional uint32 packageid = 1; + optional uint32 date_start = 2; + optional uint32 date_end = 3; +} + +message CWorkshop_GetPackageDailyRevenue_Response { + message CountryDailyRevenue { + optional string country_code = 1; + optional uint32 date = 2; + optional int64 revenue_usd = 3; + optional int32 units = 4; + } + + repeated .CWorkshop_GetPackageDailyRevenue_Response.CountryDailyRevenue country_revenue = 1; +} + +message CMsgSQLGCToGCGrantBackpackSlots { + optional uint32 account_id = 1; + optional uint32 add_slots = 2; +} + +message CMsgClientToGCLookupAccountName { + optional uint32 account_id = 1; +} + +message CMsgClientToGCLookupAccountNameResponse { + optional uint32 account_id = 1; + optional string account_name = 2; +} + +message CMsgClientToGCCreateStaticRecipe { + message Item { + optional uint64 item_id = 1; + optional uint32 slot_id = 2; + } + + repeated .CMsgClientToGCCreateStaticRecipe.Item items = 1; + optional uint32 recipe_def_index = 2; +} + +message CMsgClientToGCCreateStaticRecipeResponse { + message OutputItem { + optional uint32 def_index = 1; + optional uint64 item_id = 2; + optional uint32 slot_id = 3; + } + + message InputError { + optional uint32 slot_id = 1; + optional .CMsgClientToGCCreateStaticRecipeResponse.EResponse error = 2 [default = eResponse_Success]; + } + + message AdditionalOutput { + optional uint32 slot_id = 1; + optional uint64 value = 2; + } + + enum EResponse { + eResponse_Success = 0; + eResponse_OfferingDisabled = 1; + eResponse_InvalidItems = 2; + eResponse_InternalError = 3; + eResponse_MissingLeague = 4; + eResponse_MissingEvent = 5; + } + + optional .CMsgClientToGCCreateStaticRecipeResponse.EResponse response = 1 [default = eResponse_Success]; + repeated .CMsgClientToGCCreateStaticRecipeResponse.OutputItem output_items = 2; + repeated .CMsgClientToGCCreateStaticRecipeResponse.InputError input_errors = 3; + repeated .CMsgClientToGCCreateStaticRecipeResponse.AdditionalOutput additional_outputs = 4; +} + +message CMsgProcessTransactionOrder { + message Item { + optional uint32 item_def_index = 1; + optional uint32 item_price = 2; + optional uint32 quantity = 3; + optional string category_desc = 4; + optional uint32 store_purchase_type = 5; + optional uint64 source_reference_id = 6; + optional int32 parent_stack_index = 7; + optional bool default_price = 8; + optional bool is_user_facing = 9; + } + + optional uint64 txn_id = 1; + optional uint64 steam_txn_id = 2; + optional uint64 partner_txn_id = 3; + optional fixed64 steam_id = 4; + optional uint32 time_stamp = 5; + optional uint64 watermark = 6; + optional int32 purchase_report_status = 7; + optional uint32 currency = 8; + repeated .CMsgProcessTransactionOrder.Item items = 9; +} + +message CMsgGCToGCStoreProcessCDKeyTransaction { + optional .CMsgProcessTransactionOrder order = 1; + optional uint32 reason_code = 2; +} + +message CMsgGCToGCStoreProcessCDKeyTransactionResponse { + optional bool success = 1; +} + +message CMsgGCToGCStoreProcessSettlement { + optional .CMsgProcessTransactionOrder order = 1; + optional uint32 partner = 2; +} + +message CMsgGCToGCStoreProcessSettlementResponse { + optional bool success = 1; +} + +message CMsgGCToGCBroadcastConsoleCommand { + optional string con_command = 1; + optional bool report_output = 2; + optional uint32 sending_gc = 3; + optional string output_initiator = 4; +} + +message CMsgGCToGCConsoleOutput { + message OutputLine { + optional string text = 1; + optional uint32 spew_level = 2; + } + + optional string initiator = 1; + optional uint32 sending_gc = 2; + repeated .CMsgGCToGCConsoleOutput.OutputLine msgs = 3; +} + +message CMsgItemAges { + message MaxItemIDTimestamp { + optional uint32 timestamp = 1; + optional uint64 max_item_id = 2; + } + + repeated .CMsgItemAges.MaxItemIDTimestamp max_item_id_timestamps = 1; +} + +message CMsgGCToGCInternalTestMsg { + optional uint32 sending_gc = 1; + optional fixed64 sender_id = 2; + optional uint32 context = 3; + optional uint32 message_id = 4; + optional bytes message_body = 5; + optional fixed64 job_id_source = 6; + optional fixed64 job_id_target = 7; +} + +message CMsgGCToGCClientServerVersionsUpdated { + optional uint32 client_min_allowed_version = 1; + optional uint32 client_active_version = 2; + optional uint32 server_active_version = 3; + optional uint32 server_deployed_version = 4; + optional uint32 what_changed = 5; +} + +message CMsgGCToGCBroadcastMessageFromSub { + optional uint32 msg_id = 1; + optional bytes serialized_msg = 2; + repeated uint32 account_id_list = 3 [packed = true]; + repeated fixed64 steam_id_list = 4 [packed = true]; +} + +message CMsgGCToClientCurrencyPricePoints { + message Currency { + optional uint32 currency_id = 1; + repeated uint64 currency_price = 2 [packed = true]; + } + + repeated uint64 price_key = 1 [packed = true]; + repeated .CMsgGCToClientCurrencyPricePoints.Currency currencies = 2; +} + +message CMsgBannedWordList { + optional uint32 version = 1; + repeated string banned_words = 2; +} + +message CEcon_FlushInventoryCache_Request { + optional uint64 steamid = 1; + optional uint32 appid = 2; + optional uint64 contextid = 3; +} + +message CEcon_FlushInventoryCache_Response { + optional bool success = 1; +} + +message CMsgGCToGCFlushSteamInventoryCache { + message Key { + optional uint64 steamid = 1; + optional uint64 contextid = 2; + } + + repeated .CMsgGCToGCFlushSteamInventoryCache.Key keys = 1; +} + +message CMsgGCToGCUpdateSubscriptionItems { + optional uint32 account_id = 1; + optional bool always_notify = 2; +} + +message CMsgGCToGCSelfPing { + optional uint32 sample_id = 1; +} + +message CMsgGCToGCGetInfuxIntervalStats { +} + +message CMsgGCToGCGetInfuxIntervalStatsResponse { + repeated fixed32 stat_ids = 1 [packed = true]; + repeated uint64 stat_total = 2 [packed = true]; + repeated uint32 stat_samples = 3 [packed = true]; + repeated uint32 stat_max = 4 [packed = true]; + optional uint32 sample_duration_ms = 5; +} + +message CMsgGCToGCPurchaseSucceeded { +} + +message CExtraMsgBlock { + optional uint32 msg_type = 1; + optional bytes contents = 2; + optional uint64 msg_key = 3; + optional bool is_compressed = 4; +} diff --git a/Protobufs/underlords/econ_shared_enums.proto b/Protobufs/underlords/econ_shared_enums.proto new file mode 100644 index 0000000..69254ae --- /dev/null +++ b/Protobufs/underlords/econ_shared_enums.proto @@ -0,0 +1,47 @@ +option optimize_for = SPEED; +option cc_generic_services = false; + +enum EGCEconBaseMsg { + k_EMsgGCGenericResult = 2579; +} + +enum EGCMsgResponse { + k_EGCMsgResponseOK = 0; + k_EGCMsgResponseDenied = 1; + k_EGCMsgResponseServerError = 2; + k_EGCMsgResponseTimeout = 3; + k_EGCMsgResponseInvalid = 4; + k_EGCMsgResponseNoMatch = 5; + k_EGCMsgResponseUnknownError = 6; + k_EGCMsgResponseNotLoggedOn = 7; + k_EGCMsgFailedToCreate = 8; +} + +enum EGCPartnerRequestResponse { + k_EPartnerRequestOK = 1; + k_EPartnerRequestBadAccount = 2; + k_EPartnerRequestNotLinked = 3; + k_EPartnerRequestUnsupportedPartnerType = 4; +} + +enum EGCMsgUseItemResponse { + k_EGCMsgUseItemResponse_ItemUsed = 0; + k_EGCMsgUseItemResponse_GiftNoOtherPlayers = 1; + k_EGCMsgUseItemResponse_ServerError = 2; + k_EGCMsgUseItemResponse_MiniGameAlreadyStarted = 3; + k_EGCMsgUseItemResponse_ItemUsed_ItemsGranted = 4; + k_EGCMsgUseItemResponse_DropRateBonusAlreadyGranted = 5; + k_EGCMsgUseItemResponse_NotInLowPriorityPool = 6; + k_EGCMsgUseItemResponse_NotHighEnoughLevel = 7; + k_EGCMsgUseItemResponse_EventNotActive = 8; + k_EGCMsgUseItemResponse_ItemUsed_EventPointsGranted = 9; + k_EGCMsgUseItemResponse_MissingRequirement = 10; + k_EGCMsgUseItemResponse_EmoticonUnlock_NoNew = 11; + k_EGCMsgUseItemResponse_EmoticonUnlock_Complete = 12; + k_EGCMsgUseItemResponse_ItemUsed_Compendium = 13; +} + +message CMsgGenericResult { + optional uint32 eresult = 1 [default = 2]; + optional string debug_message = 2; +} diff --git a/Protobufs/underlords/enums_clientserver.proto b/Protobufs/underlords/enums_clientserver.proto new file mode 100644 index 0000000..1c7081d --- /dev/null +++ b/Protobufs/underlords/enums_clientserver.proto @@ -0,0 +1,1538 @@ +option optimize_for = SPEED; +option cc_generic_services = false; + +enum EMsg { + option allow_alias = true; + k_EMsgInvalid = 0; + k_EMsgMulti = 1; + k_EMsgProtobufWrapped = 2; + k_EMsgBaseGeneral = 100; + k_EMsgGenericReply = 100; + k_EMsgDestJobFailed = 113; + k_EMsgAlert = 115; + k_EMsgSCIDRequest = 120; + k_EMsgSCIDResponse = 121; + k_EMsgJobHeartbeat = 123; + k_EMsgHubConnect = 124; + k_EMsgSubscribe = 126; + k_EMRouteMessage = 127; + k_EMsgWGRequest = 130; + k_EMsgWGResponse = 131; + k_EMsgKeepAlive = 132; + k_EMsgWebAPIJobRequest = 133; + k_EMsgWebAPIJobResponse = 134; + k_EMsgClientSessionStart = 135; + k_EMsgClientSessionEnd = 136; + k_EMsgClientSessionUpdate = 137; + k_EMsgStatsDeprecated = 138; + k_EMsgPing = 139; + k_EMsgPingResponse = 140; + k_EMsgStats = 141; + k_EMsgRequestFullStatsBlock = 142; + k_EMsgLoadDBOCacheItem = 143; + k_EMsgLoadDBOCacheItemResponse = 144; + k_EMsgInvalidateDBOCacheItems = 145; + k_EMsgServiceMethod = 146; + k_EMsgServiceMethodResponse = 147; + k_EMsgClientPackageVersions = 148; + k_EMsgTimestampRequest = 149; + k_EMsgTimestampResponse = 150; + k_EMsgServiceMethodCallFromClient = 151; + k_EMsgServiceMethodSendToClient = 152; + k_EMsgBaseShell = 200; + k_EMsgAssignSysID = 200; + k_EMsgExit = 201; + k_EMsgDirRequest = 202; + k_EMsgDirResponse = 203; + k_EMsgZipRequest = 204; + k_EMsgZipResponse = 205; + k_EMsgUpdateRecordResponse = 215; + k_EMsgUpdateCreditCardRequest = 221; + k_EMsgUpdateUserBanResponse = 225; + k_EMsgPrepareToExit = 226; + k_EMsgContentDescriptionUpdate = 227; + k_EMsgTestResetServer = 228; + k_EMsgUniverseChanged = 229; + k_EMsgShellConfigInfoUpdate = 230; + k_EMsgRequestWindowsEventLogEntries = 233; + k_EMsgProvideWindowsEventLogEntries = 234; + k_EMsgShellSearchLogs = 235; + k_EMsgShellSearchLogsResponse = 236; + k_EMsgShellCheckWindowsUpdates = 237; + k_EMsgShellCheckWindowsUpdatesResponse = 238; + k_EMsgTestFlushDelayedSQL = 240; + k_EMsgTestFlushDelayedSQLResponse = 241; + k_EMsgEnsureExecuteScheduledTask_TEST = 242; + k_EMsgEnsureExecuteScheduledTaskResponse_TEST = 243; + k_EMsgUpdateScheduledTaskEnableState_TEST = 244; + k_EMsgUpdateScheduledTaskEnableStateResponse_TEST = 245; + k_EMsgContentDescriptionDeltaUpdate = 246; + k_EMsgBaseGM = 300; + k_EMsgHeartbeat = 300; + k_EMsgShellFailed = 301; + k_EMsgExitShells = 307; + k_EMsgExitShell = 308; + k_EMsgGracefulExitShell = 309; + k_EMsgLicenseProcessingComplete = 316; + k_EMsgSetTestFlag = 317; + k_EMsgQueuedEmailsComplete = 318; + k_EMsgGMReportPHPError = 319; + k_EMsgGMDRMSync = 320; + k_EMsgPhysicalBoxInventory = 321; + k_EMsgUpdateConfigFile = 322; + k_EMsgTestInitDB = 323; + k_EMsgGMWriteConfigToSQL = 324; + k_EMsgGMLoadActivationCodes = 325; + k_EMsgGMQueueForFBS = 326; + k_EMsgGMSchemaConversionResults = 327; + k_EMsgGMWriteShellFailureToSQL = 329; + k_EMsgGMWriteStatsToSOS = 330; + k_EMsgGMGetServiceMethodRouting = 331; + k_EMsgGMGetServiceMethodRoutingResponse = 332; + k_EMsgGMTestNextBuildSchemaConversion = 334; + k_EMsgGMTestNextBuildSchemaConversionResponse = 335; + k_EMsgExpectShellRestart = 336; + k_EMsgHotFixProgress = 337; + k_EMsgBaseAIS = 400; + k_EMsgAISRequestContentDescription = 402; + k_EMsgAISUpdateAppInfo = 403; + k_EMsgAISGetPackageChangeNumber = 405; + k_EMsgAISGetPackageChangeNumberResponse = 406; + k_EMsgAIGetAppGCFlags = 423; + k_EMsgAIGetAppGCFlagsResponse = 424; + k_EMsgAIGetAppList = 425; + k_EMsgAIGetAppListResponse = 426; + k_EMsgAISGetCouponDefinition = 429; + k_EMsgAISGetCouponDefinitionResponse = 430; + k_EMsgAISUpdateSlaveContentDescription = 431; + k_EMsgAISUpdateSlaveContentDescriptionResponse = 432; + k_EMsgAISTestEnableGC = 433; + k_EMsgBaseAM = 500; + k_EMsgAMUpdateUserBanRequest = 504; + k_EMsgAMAddLicense = 505; + k_EMsgAMSendSystemIMToUser = 508; + k_EMsgAMExtendLicense = 509; + k_EMsgAMAddMinutesToLicense = 510; + k_EMsgAMCancelLicense = 511; + k_EMsgAMInitPurchase = 512; + k_EMsgAMPurchaseResponse = 513; + k_EMsgAMGetFinalPrice = 514; + k_EMsgAMGetFinalPriceResponse = 515; + k_EMsgAMGetLegacyGameKey = 516; + k_EMsgAMGetLegacyGameKeyResponse = 517; + k_EMsgAMFindHungTransactions = 518; + k_EMsgAMSetAccountTrustedRequest = 519; + k_EMsgAMCancelPurchase = 522; + k_EMsgAMNewChallenge = 523; + k_EMsgAMLoadOEMTickets = 524; + k_EMsgAMFixPendingPurchase = 525; + k_EMsgAMFixPendingPurchaseResponse = 526; + k_EMsgAMIsUserBanned = 527; + k_EMsgAMRegisterKey = 528; + k_EMsgAMLoadActivationCodes = 529; + k_EMsgAMLoadActivationCodesResponse = 530; + k_EMsgAMLookupKeyResponse = 531; + k_EMsgAMLookupKey = 532; + k_EMsgAMChatCleanup = 533; + k_EMsgAMClanCleanup = 534; + k_EMsgAMFixPendingRefund = 535; + k_EMsgAMReverseChargeback = 536; + k_EMsgAMReverseChargebackResponse = 537; + k_EMsgAMClanCleanupList = 538; + k_EMsgAMGetLicenses = 539; + k_EMsgAMGetLicensesResponse = 540; + k_EMsgAMSendCartRepurchase = 541; + k_EMsgAMSendCartRepurchaseResponse = 542; + k_EMsgAllowUserToPlayQuery = 550; + k_EMsgAllowUserToPlayResponse = 551; + k_EMsgAMVerfiyUser = 552; + k_EMsgAMClientNotPlaying = 553; + k_EMsgAMClientRequestFriendship = 554; + k_EMsgAMRelayPublishStatus = 555; + k_EMsgAMInitPurchaseResponse = 560; + k_EMsgAMRevokePurchaseResponse = 561; + k_EMsgAMRefreshGuestPasses = 563; + k_EMsgAMGrantGuestPasses = 566; + k_EMsgAMClanDataUpdated = 567; + k_EMsgAMReloadAccount = 568; + k_EMsgAMClientChatMsgRelay = 569; + k_EMsgAMChatMulti = 570; + k_EMsgAMClientChatInviteRelay = 571; + k_EMsgAMChatInvite = 572; + k_EMsgAMClientJoinChatRelay = 573; + k_EMsgAMClientChatMemberInfoRelay = 574; + k_EMsgAMPublishChatMemberInfo = 575; + k_EMsgAMClientAcceptFriendInvite = 576; + k_EMsgAMChatEnter = 577; + k_EMsgAMClientPublishRemovalFromSource = 578; + k_EMsgAMChatActionResult = 579; + k_EMsgAMFindAccounts = 580; + k_EMsgAMFindAccountsResponse = 581; + k_EMsgAMRequestAccountData = 582; + k_EMsgAMRequestAccountDataResponse = 583; + k_EMsgAMSetAccountFlags = 584; + k_EMsgAMCreateClan = 586; + k_EMsgAMCreateClanResponse = 587; + k_EMsgAMGetClanDetails = 588; + k_EMsgAMGetClanDetailsResponse = 589; + k_EMsgAMSetPersonaName = 590; + k_EMsgAMSetAvatar = 591; + k_EMsgAMAuthenticateUser = 592; + k_EMsgAMAuthenticateUserResponse = 593; + k_EMsgAMP2PIntroducerMessage = 596; + k_EMsgClientChatAction = 597; + k_EMsgAMClientChatActionRelay = 598; + k_EMsgBaseVS = 600; + k_EMsgReqChallenge = 600; + k_EMsgVACResponse = 601; + k_EMsgReqChallengeTest = 602; + k_EMsgVSMarkCheat = 604; + k_EMsgVSAddCheat = 605; + k_EMsgVSPurgeCodeModDB = 606; + k_EMsgVSGetChallengeResults = 607; + k_EMsgVSChallengeResultText = 608; + k_EMsgVSReportLingerer = 609; + k_EMsgVSRequestManagedChallenge = 610; + k_EMsgVSLoadDBFinished = 611; + k_EMsgBaseDRMS = 625; + k_EMsgDRMBuildBlobRequest = 628; + k_EMsgDRMBuildBlobResponse = 629; + k_EMsgDRMResolveGuidRequest = 630; + k_EMsgDRMResolveGuidResponse = 631; + k_EMsgDRMVariabilityReport = 633; + k_EMsgDRMVariabilityReportResponse = 634; + k_EMsgDRMStabilityReport = 635; + k_EMsgDRMStabilityReportResponse = 636; + k_EMsgDRMDetailsReportRequest = 637; + k_EMsgDRMDetailsReportResponse = 638; + k_EMsgDRMProcessFile = 639; + k_EMsgDRMAdminUpdate = 640; + k_EMsgDRMAdminUpdateResponse = 641; + k_EMsgDRMSync = 642; + k_EMsgDRMSyncResponse = 643; + k_EMsgDRMProcessFileResponse = 644; + k_EMsgDRMEmptyGuidCache = 645; + k_EMsgDRMEmptyGuidCacheResponse = 646; + k_EMsgBaseCS = 650; + k_EMsgBaseClient = 700; + k_EMsgClientLogOn_Deprecated = 701; + k_EMsgClientAnonLogOn_Deprecated = 702; + k_EMsgClientHeartBeat = 703; + k_EMsgClientVACResponse = 704; + k_EMsgClientGamesPlayed_obsolete = 705; + k_EMsgClientLogOff = 706; + k_EMsgClientNoUDPConnectivity = 707; + k_EMsgClientConnectionStats = 710; + k_EMsgClientPingResponse = 712; + k_EMsgClientRemoveFriend = 714; + k_EMsgClientGamesPlayedNoDataBlob = 715; + k_EMsgClientChangeStatus = 716; + k_EMsgClientVacStatusResponse = 717; + k_EMsgClientFriendMsg = 718; + k_EMsgClientGameConnect_obsolete = 719; + k_EMsgClientGamesPlayed2_obsolete = 720; + k_EMsgClientGameEnded_obsolete = 721; + k_EMsgClientSystemIM = 726; + k_EMsgClientSystemIMAck = 727; + k_EMsgClientGetLicenses = 728; + k_EMsgClientGetLegacyGameKey = 730; + k_EMsgClientContentServerLogOn_Deprecated = 731; + k_EMsgClientAckVACBan2 = 732; + k_EMsgClientGetPurchaseReceipts = 736; + k_EMsgClientGamesPlayed3_obsolete = 738; + k_EMsgClientAckGuestPass = 740; + k_EMsgClientRedeemGuestPass = 741; + k_EMsgClientGamesPlayed = 742; + k_EMsgClientRegisterKey = 743; + k_EMsgClientInviteUserToClan = 744; + k_EMsgClientAcknowledgeClanInvite = 745; + k_EMsgClientPurchaseWithMachineID = 746; + k_EMsgClientAppUsageEvent = 747; + k_EMsgClientLogOnResponse = 751; + k_EMsgClientSetHeartbeatRate = 755; + k_EMsgClientNotLoggedOnDeprecated = 756; + k_EMsgClientLoggedOff = 757; + k_EMsgGSApprove = 758; + k_EMsgGSDeny = 759; + k_EMsgGSKick = 760; + k_EMsgClientCreateAcctResponse = 761; + k_EMsgClientPurchaseResponse = 763; + k_EMsgClientPing = 764; + k_EMsgClientNOP = 765; + k_EMsgClientPersonaState = 766; + k_EMsgClientFriendsList = 767; + k_EMsgClientAccountInfo = 768; + k_EMsgClientNewsUpdate = 771; + k_EMsgClientGameConnectDeny = 773; + k_EMsgGSStatusReply = 774; + k_EMsgClientGameConnectTokens = 779; + k_EMsgClientLicenseList = 780; + k_EMsgClientVACBanStatus = 782; + k_EMsgClientCMList = 783; + k_EMsgClientEncryptPct = 784; + k_EMsgClientGetLegacyGameKeyResponse = 785; + k_EMsgClientAddFriend = 791; + k_EMsgClientAddFriendResponse = 792; + k_EMsgClientAckGuestPassResponse = 796; + k_EMsgClientRedeemGuestPassResponse = 797; + k_EMsgClientUpdateGuestPassesList = 798; + k_EMsgClientChatMsg = 799; + k_EMsgClientChatInvite = 800; + k_EMsgClientJoinChat = 801; + k_EMsgClientChatMemberInfo = 802; + k_EMsgClientLogOnWithCredentials_Deprecated = 803; + k_EMsgClientPasswordChangeResponse = 805; + k_EMsgClientChatEnter = 807; + k_EMsgClientFriendRemovedFromSource = 808; + k_EMsgClientCreateChat = 809; + k_EMsgClientCreateChatResponse = 810; + k_EMsgClientP2PIntroducerMessage = 813; + k_EMsgClientChatActionResult = 814; + k_EMsgClientRequestFriendData = 815; + k_EMsgClientGetUserStats = 818; + k_EMsgClientGetUserStatsResponse = 819; + k_EMsgClientStoreUserStats = 820; + k_EMsgClientStoreUserStatsResponse = 821; + k_EMsgClientClanState = 822; + k_EMsgClientServiceModule = 830; + k_EMsgClientServiceCall = 831; + k_EMsgClientServiceCallResponse = 832; + k_EMsgClientNatTraversalStatEvent = 839; + k_EMsgClientSteamUsageEvent = 842; + k_EMsgClientCheckPassword = 845; + k_EMsgClientResetPassword = 846; + k_EMsgClientCheckPasswordResponse = 848; + k_EMsgClientResetPasswordResponse = 849; + k_EMsgClientSessionToken = 850; + k_EMsgClientDRMProblemReport = 851; + k_EMsgClientSetIgnoreFriend = 855; + k_EMsgClientSetIgnoreFriendResponse = 856; + k_EMsgClientGetAppOwnershipTicket = 857; + k_EMsgClientGetAppOwnershipTicketResponse = 858; + k_EMsgClientGetLobbyListResponse = 860; + k_EMsgClientServerList = 880; + k_EMsgClientDRMBlobRequest = 896; + k_EMsgClientDRMBlobResponse = 897; + k_EMsgBaseGameServer = 900; + k_EMsgGSDisconnectNotice = 901; + k_EMsgGSStatus = 903; + k_EMsgGSUserPlaying = 905; + k_EMsgGSStatus2 = 906; + k_EMsgGSStatusUpdate_Unused = 907; + k_EMsgGSServerType = 908; + k_EMsgGSPlayerList = 909; + k_EMsgGSGetUserAchievementStatus = 910; + k_EMsgGSGetUserAchievementStatusResponse = 911; + k_EMsgGSGetPlayStats = 918; + k_EMsgGSGetPlayStatsResponse = 919; + k_EMsgGSGetUserGroupStatus = 920; + k_EMsgAMGetUserGroupStatus = 921; + k_EMsgAMGetUserGroupStatusResponse = 922; + k_EMsgGSGetUserGroupStatusResponse = 923; + k_EMsgGSGetReputation = 936; + k_EMsgGSGetReputationResponse = 937; + k_EMsgGSAssociateWithClan = 938; + k_EMsgGSAssociateWithClanResponse = 939; + k_EMsgGSComputeNewPlayerCompatibility = 940; + k_EMsgGSComputeNewPlayerCompatibilityResponse = 941; + k_EMsgBaseAdmin = 1000; + k_EMsgAdminCmd = 1000; + k_EMsgAdminCmdResponse = 1004; + k_EMsgAdminLogListenRequest = 1005; + k_EMsgAdminLogEvent = 1006; + k_EMsgUniverseData = 1010; + k_EMsgAdminSpew = 1019; + k_EMsgAdminConsoleTitle = 1020; + k_EMsgAdminGCSpew = 1023; + k_EMsgAdminGCCommand = 1024; + k_EMsgAdminGCGetCommandList = 1025; + k_EMsgAdminGCGetCommandListResponse = 1026; + k_EMsgFBSConnectionData = 1027; + k_EMsgAdminMsgSpew = 1028; + k_EMsgBaseFBS = 1100; + k_EMsgFBSReqVersion = 1100; + k_EMsgFBSVersionInfo = 1101; + k_EMsgFBSForceRefresh = 1102; + k_EMsgFBSForceBounce = 1103; + k_EMsgFBSDeployPackage = 1104; + k_EMsgFBSDeployResponse = 1105; + k_EMsgFBSUpdateBootstrapper = 1106; + k_EMsgFBSSetState = 1107; + k_EMsgFBSApplyOSUpdates = 1108; + k_EMsgFBSRunCMDScript = 1109; + k_EMsgFBSRebootBox = 1110; + k_EMsgFBSSetBigBrotherMode = 1111; + k_EMsgFBSMinidumpServer = 1112; + k_EMsgFBSDeployHotFixPackage = 1114; + k_EMsgFBSDeployHotFixResponse = 1115; + k_EMsgFBSDownloadHotFix = 1116; + k_EMsgFBSDownloadHotFixResponse = 1117; + k_EMsgFBSUpdateTargetConfigFile = 1118; + k_EMsgFBSApplyAccountCred = 1119; + k_EMsgFBSApplyAccountCredResponse = 1120; + k_EMsgFBSSetShellCount = 1121; + k_EMsgFBSTerminateShell = 1122; + k_EMsgFBSQueryGMForRequest = 1123; + k_EMsgFBSQueryGMResponse = 1124; + k_EMsgFBSTerminateZombies = 1125; + k_EMsgFBSInfoFromBootstrapper = 1126; + k_EMsgFBSRebootBoxResponse = 1127; + k_EMsgFBSBootstrapperPackageRequest = 1128; + k_EMsgFBSBootstrapperPackageResponse = 1129; + k_EMsgFBSBootstrapperGetPackageChunk = 1130; + k_EMsgFBSBootstrapperGetPackageChunkResponse = 1131; + k_EMsgFBSBootstrapperPackageTransferProgress = 1132; + k_EMsgFBSRestartBootstrapper = 1133; + k_EMsgFBSPauseFrozenDumps = 1134; + k_EMsgBaseFileXfer = 1200; + k_EMsgFileXferRequest = 1200; + k_EMsgFileXferResponse = 1201; + k_EMsgFileXferData = 1202; + k_EMsgFileXferEnd = 1203; + k_EMsgFileXferDataAck = 1204; + k_EMsgBaseChannelAuth = 1300; + k_EMsgChannelAuthChallenge = 1300; + k_EMsgChannelAuthResponse = 1301; + k_EMsgChannelAuthResult = 1302; + k_EMsgChannelEncryptRequest = 1303; + k_EMsgChannelEncryptResponse = 1304; + k_EMsgChannelEncryptResult = 1305; + k_EMsgBaseBS = 1400; + k_EMsgBSPurchaseStart = 1401; + k_EMsgBSPurchaseResponse = 1402; + k_EMsgBSAuthenticateCCTrans = 1403; + k_EMsgBSAuthenticateCCTransResponse = 1404; + k_EMsgBSSettleComplete = 1406; + k_EMsgBSInitPayPalTxn = 1408; + k_EMsgBSInitPayPalTxnResponse = 1409; + k_EMsgBSGetPayPalUserInfo = 1410; + k_EMsgBSGetPayPalUserInfoResponse = 1411; + k_EMsgBSPaymentInstrBan = 1417; + k_EMsgBSPaymentInstrBanResponse = 1418; + k_EMsgBSInitGCBankXferTxn = 1421; + k_EMsgBSInitGCBankXferTxnResponse = 1422; + k_EMsgBSCommitGCTxn = 1425; + k_EMsgBSQueryTransactionStatus = 1426; + k_EMsgBSQueryTransactionStatusResponse = 1427; + k_EMsgBSQueryPaymentInstUsage = 1431; + k_EMsgBSQueryPaymentInstResponse = 1432; + k_EMsgBSQueryTxnExtendedInfo = 1433; + k_EMsgBSQueryTxnExtendedInfoResponse = 1434; + k_EMsgBSUpdateConversionRates = 1435; + k_EMsgBSPurchaseRunFraudChecks = 1437; + k_EMsgBSPurchaseRunFraudChecksResponse = 1438; + k_EMsgBSQueryBankInformation = 1440; + k_EMsgBSQueryBankInformationResponse = 1441; + k_EMsgBSValidateXsollaSignature = 1445; + k_EMsgBSValidateXsollaSignatureResponse = 1446; + k_EMsgBSQiwiWalletInvoice = 1448; + k_EMsgBSQiwiWalletInvoiceResponse = 1449; + k_EMsgBSUpdateInventoryFromProPack = 1450; + k_EMsgBSUpdateInventoryFromProPackResponse = 1451; + k_EMsgBSSendShippingRequest = 1452; + k_EMsgBSSendShippingRequestResponse = 1453; + k_EMsgBSGetProPackOrderStatus = 1454; + k_EMsgBSGetProPackOrderStatusResponse = 1455; + k_EMsgBSCheckJobRunning = 1456; + k_EMsgBSCheckJobRunningResponse = 1457; + k_EMsgBSResetPackagePurchaseRateLimit = 1458; + k_EMsgBSResetPackagePurchaseRateLimitResponse = 1459; + k_EMsgBSUpdatePaymentData = 1460; + k_EMsgBSUpdatePaymentDataResponse = 1461; + k_EMsgBSGetBillingAddress = 1462; + k_EMsgBSGetBillingAddressResponse = 1463; + k_EMsgBSGetCreditCardInfo = 1464; + k_EMsgBSGetCreditCardInfoResponse = 1465; + k_EMsgBSRemoveExpiredPaymentData = 1468; + k_EMsgBSRemoveExpiredPaymentDataResponse = 1469; + k_EMsgBSConvertToCurrentKeys = 1470; + k_EMsgBSConvertToCurrentKeysResponse = 1471; + k_EMsgBSInitPurchase = 1472; + k_EMsgBSInitPurchaseResponse = 1473; + k_EMsgBSCompletePurchase = 1474; + k_EMsgBSCompletePurchaseResponse = 1475; + k_EMsgBSPruneCardUsageStats = 1476; + k_EMsgBSPruneCardUsageStatsResponse = 1477; + k_EMsgBSStoreBankInformation = 1478; + k_EMsgBSStoreBankInformationResponse = 1479; + k_EMsgBSVerifyPOSAKey = 1480; + k_EMsgBSVerifyPOSAKeyResponse = 1481; + k_EMsgBSReverseRedeemPOSAKey = 1482; + k_EMsgBSReverseRedeemPOSAKeyResponse = 1483; + k_EMsgBSQueryFindCreditCard = 1484; + k_EMsgBSQueryFindCreditCardResponse = 1485; + k_EMsgBSStatusInquiryPOSAKey = 1486; + k_EMsgBSStatusInquiryPOSAKeyResponse = 1487; + k_EMsgBSBoaCompraConfirmProductDelivery = 1494; + k_EMsgBSBoaCompraConfirmProductDeliveryResponse = 1495; + k_EMsgBSGenerateBoaCompraMD5 = 1496; + k_EMsgBSGenerateBoaCompraMD5Response = 1497; + k_EMsgBSCommitWPTxn = 1498; + k_EMsgBSCommitAdyenTxn = 1499; + k_EMsgBaseATS = 1500; + k_EMsgATSStartStressTest = 1501; + k_EMsgATSStopStressTest = 1502; + k_EMsgATSRunFailServerTest = 1503; + k_EMsgATSUFSPerfTestTask = 1504; + k_EMsgATSUFSPerfTestResponse = 1505; + k_EMsgATSCycleTCM = 1506; + k_EMsgATSInitDRMSStressTest = 1507; + k_EMsgATSCallTest = 1508; + k_EMsgATSCallTestReply = 1509; + k_EMsgATSStartExternalStress = 1510; + k_EMsgATSExternalStressJobStart = 1511; + k_EMsgATSExternalStressJobQueued = 1512; + k_EMsgATSExternalStressJobRunning = 1513; + k_EMsgATSExternalStressJobStopped = 1514; + k_EMsgATSExternalStressJobStopAll = 1515; + k_EMsgATSExternalStressActionResult = 1516; + k_EMsgATSStarted = 1517; + k_EMsgATSCSPerfTestTask = 1518; + k_EMsgATSCSPerfTestResponse = 1519; + k_EMsgBaseDP = 1600; + k_EMsgDPSetPublishingState = 1601; + k_EMsgDPUniquePlayersStat = 1603; + k_EMsgDPStreamingUniquePlayersStat = 1604; + k_EMsgDPBlockingStats = 1607; + k_EMsgDPNatTraversalStats = 1608; + k_EMsgDPCloudStats = 1612; + k_EMsgDPAchievementStats = 1613; + k_EMsgDPGetPlayerCount = 1615; + k_EMsgDPGetPlayerCountResponse = 1616; + k_EMsgDPGameServersPlayersStats = 1617; + k_EMsgClientDPCheckSpecialSurvey = 1620; + k_EMsgClientDPCheckSpecialSurveyResponse = 1621; + k_EMsgClientDPSendSpecialSurveyResponse = 1622; + k_EMsgClientDPSendSpecialSurveyResponseReply = 1623; + k_EMsgDPStoreSaleStatistics = 1624; + k_EMsgClientDPUpdateAppJobReport = 1625; + k_EMsgDPUpdateContentEvent = 1626; + k_EMsgClientDPUnsignedInstallScript = 1627; + k_EMsgDPPartnerMicroTxns = 1628; + k_EMsgDPPartnerMicroTxnsResponse = 1629; + k_EMsgClientDPContentStatsReport = 1630; + k_EMsgDPVRUniquePlayersStat = 1631; + k_EMsgBaseCM = 1700; + k_EMsgCMSetAllowState = 1701; + k_EMsgCMSpewAllowState = 1702; + k_EMsgCMSessionRejected = 1703; + k_EMsgCMSetSecrets = 1704; + k_EMsgCMGetSecrets = 1705; + k_EMsgBaseGC = 2200; + k_EMsgGCCmdRevive = 2203; + k_EMsgGCCmdDown = 2206; + k_EMsgGCCmdDeploy = 2207; + k_EMsgGCCmdDeployResponse = 2208; + k_EMsgGCCmdSwitch = 2209; + k_EMsgAMRefreshSessions = 2210; + k_EMsgGCAchievementAwarded = 2212; + k_EMsgGCSystemMessage = 2213; + k_EMsgGCCmdStatus = 2216; + k_EMsgGCRegisterWebInterfaces_Deprecated = 2217; + k_EMsgGCGetAccountDetails_DEPRECATED = 2218; + k_EMsgGCInterAppMessage = 2219; + k_EMsgGCGetEmailTemplate = 2220; + k_EMsgGCGetEmailTemplateResponse = 2221; + k_EMsgGCHRelay = 2222; + k_EMsgGCHRelayToClient = 2223; + k_EMsgGCHUpdateSession = 2224; + k_EMsgGCHRequestUpdateSession = 2225; + k_EMsgGCHRequestStatus = 2226; + k_EMsgGCHRequestStatusResponse = 2227; + k_EMsgGCHAccountVacStatusChange = 2228; + k_EMsgGCHSpawnGC = 2229; + k_EMsgGCHSpawnGCResponse = 2230; + k_EMsgGCHKillGC = 2231; + k_EMsgGCHKillGCResponse = 2232; + k_EMsgGCHAccountTradeBanStatusChange = 2233; + k_EMsgGCHAccountLockStatusChange = 2234; + k_EMsgGCHVacVerificationChange = 2235; + k_EMsgGCHAccountPhoneNumberChange = 2236; + k_EMsgGCHAccountTwoFactorChange = 2237; + k_EMsgGCHInviteUserToLobby = 2238; + k_EMsgBaseP2P = 2500; + k_EMsgP2PIntroducerMessage = 2502; + k_EMsgBaseSM = 2900; + k_EMsgSMExpensiveReport = 2902; + k_EMsgSMHourlyReport = 2903; + k_EMsgSMPartitionRenames = 2905; + k_EMsgSMMonitorSpace = 2906; + k_EMsgSMTestNextBuildSchemaConversion = 2907; + k_EMsgSMTestNextBuildSchemaConversionResponse = 2908; + k_EMsgBaseTest = 3000; + k_EMsgFailServer = 3000; + k_EMsgJobHeartbeatTest = 3001; + k_EMsgJobHeartbeatTestResponse = 3002; + k_EMsgBaseFTSRange = 3100; + k_EMsgBaseCCSRange = 3150; + k_EMsgCCSDeleteAllCommentsByAuthor = 3161; + k_EMsgCCSDeleteAllCommentsByAuthorResponse = 3162; + k_EMsgBaseLBSRange = 3200; + k_EMsgLBSSetScore = 3201; + k_EMsgLBSSetScoreResponse = 3202; + k_EMsgLBSFindOrCreateLB = 3203; + k_EMsgLBSFindOrCreateLBResponse = 3204; + k_EMsgLBSGetLBEntries = 3205; + k_EMsgLBSGetLBEntriesResponse = 3206; + k_EMsgLBSGetLBList = 3207; + k_EMsgLBSGetLBListResponse = 3208; + k_EMsgLBSSetLBDetails = 3209; + k_EMsgLBSDeleteLB = 3210; + k_EMsgLBSDeleteLBEntry = 3211; + k_EMsgLBSResetLB = 3212; + k_EMsgLBSResetLBResponse = 3213; + k_EMsgLBSDeleteLBResponse = 3214; + k_EMsgBaseOGS = 3400; + k_EMsgOGSBeginSession = 3401; + k_EMsgOGSBeginSessionResponse = 3402; + k_EMsgOGSEndSession = 3403; + k_EMsgOGSEndSessionResponse = 3404; + k_EMsgOGSWriteAppSessionRow = 3406; + k_EMsgBaseBRP = 3600; + k_EMsgBRPPostTransactionTax = 3629; + k_EMsgBRPPostTransactionTaxResponse = 3630; + k_EMsgBaseAMRange2 = 4000; + k_EMsgAMCreateChat = 4001; + k_EMsgAMCreateChatResponse = 4002; + k_EMsgAMSetProfileURL = 4005; + k_EMsgAMGetAccountEmailAddress = 4006; + k_EMsgAMGetAccountEmailAddressResponse = 4007; + k_EMsgAMRequestClanData = 4008; + k_EMsgAMRouteToClients = 4009; + k_EMsgAMLeaveClan = 4010; + k_EMsgAMClanPermissions = 4011; + k_EMsgAMClanPermissionsResponse = 4012; + k_EMsgAMCreateClanEventDummyForRateLimiting = 4013; + k_EMsgAMUpdateClanEventDummyForRateLimiting = 4015; + k_EMsgAMSetClanPermissionSettings = 4021; + k_EMsgAMSetClanPermissionSettingsResponse = 4022; + k_EMsgAMGetClanPermissionSettings = 4023; + k_EMsgAMGetClanPermissionSettingsResponse = 4024; + k_EMsgAMPublishChatRoomInfo = 4025; + k_EMsgClientChatRoomInfo = 4026; + k_EMsgAMGetClanHistory = 4039; + k_EMsgAMGetClanHistoryResponse = 4040; + k_EMsgAMGetClanPermissionBits = 4041; + k_EMsgAMGetClanPermissionBitsResponse = 4042; + k_EMsgAMSetClanPermissionBits = 4043; + k_EMsgAMSetClanPermissionBitsResponse = 4044; + k_EMsgAMSessionInfoRequest = 4045; + k_EMsgAMSessionInfoResponse = 4046; + k_EMsgAMValidateWGToken = 4047; + k_EMsgAMGetClanRank = 4050; + k_EMsgAMGetClanRankResponse = 4051; + k_EMsgAMSetClanRank = 4052; + k_EMsgAMSetClanRankResponse = 4053; + k_EMsgAMGetClanPOTW = 4054; + k_EMsgAMGetClanPOTWResponse = 4055; + k_EMsgAMSetClanPOTW = 4056; + k_EMsgAMSetClanPOTWResponse = 4057; + k_EMsgAMDumpUser = 4059; + k_EMsgAMKickUserFromClan = 4060; + k_EMsgAMAddFounderToClan = 4061; + k_EMsgAMValidateWGTokenResponse = 4062; + k_EMsgAMSetAccountDetails = 4064; + k_EMsgAMGetChatBanList = 4065; + k_EMsgAMGetChatBanListResponse = 4066; + k_EMsgAMUnBanFromChat = 4067; + k_EMsgAMSetClanDetails = 4068; + k_EMsgAMGetAccountLinks = 4069; + k_EMsgAMGetAccountLinksResponse = 4070; + k_EMsgAMSetAccountLinks = 4071; + k_EMsgAMSetAccountLinksResponse = 4072; + k_EMsgUGSGetUserGameStats = 4073; + k_EMsgUGSGetUserGameStatsResponse = 4074; + k_EMsgAMCheckClanMembership = 4075; + k_EMsgAMGetClanMembers = 4076; + k_EMsgAMGetClanMembersResponse = 4077; + k_EMsgAMNotifyChatOfClanChange = 4079; + k_EMsgAMResubmitPurchase = 4080; + k_EMsgAMAddFriend = 4081; + k_EMsgAMAddFriendResponse = 4082; + k_EMsgAMRemoveFriend = 4083; + k_EMsgAMDumpClan = 4084; + k_EMsgAMChangeClanOwner = 4085; + k_EMsgAMCancelEasyCollect = 4086; + k_EMsgAMCancelEasyCollectResponse = 4087; + k_EMsgAMClansInCommon = 4090; + k_EMsgAMClansInCommonResponse = 4091; + k_EMsgAMIsValidAccountID = 4092; + k_EMsgAMWipeFriendsList = 4095; + k_EMsgAMSetIgnored = 4096; + k_EMsgAMClansInCommonCountResponse = 4097; + k_EMsgAMFriendsList = 4098; + k_EMsgAMFriendsListResponse = 4099; + k_EMsgAMFriendsInCommon = 4100; + k_EMsgAMFriendsInCommonResponse = 4101; + k_EMsgAMFriendsInCommonCountResponse = 4102; + k_EMsgAMClansInCommonCount = 4103; + k_EMsgAMChallengeVerdict = 4104; + k_EMsgAMChallengeNotification = 4105; + k_EMsgAMFindGSByIP = 4106; + k_EMsgAMFoundGSByIP = 4107; + k_EMsgAMGiftRevoked = 4108; + k_EMsgAMUserClanList = 4110; + k_EMsgAMUserClanListResponse = 4111; + k_EMsgAMGetAccountDetails2 = 4112; + k_EMsgAMGetAccountDetailsResponse2 = 4113; + k_EMsgAMSetCommunityProfileSettings = 4114; + k_EMsgAMSetCommunityProfileSettingsResponse = 4115; + k_EMsgAMGetCommunityPrivacyState = 4116; + k_EMsgAMGetCommunityPrivacyStateResponse = 4117; + k_EMsgAMCheckClanInviteRateLimiting = 4118; + k_EMsgUGSGetUserAchievementStatus = 4119; + k_EMsgAMGetIgnored = 4120; + k_EMsgAMGetIgnoredResponse = 4121; + k_EMsgAMSetIgnoredResponse = 4122; + k_EMsgAMSetFriendRelationshipNone = 4123; + k_EMsgAMGetFriendRelationship = 4124; + k_EMsgAMGetFriendRelationshipResponse = 4125; + k_EMsgAMServiceModulesCache = 4126; + k_EMsgAMServiceModulesCall = 4127; + k_EMsgAMServiceModulesCallResponse = 4128; + k_EMsgCommunityAddFriendNews = 4140; + k_EMsgAMFindClanUser = 4143; + k_EMsgAMFindClanUserResponse = 4144; + k_EMsgAMBanFromChat = 4145; + k_EMsgAMGetUserNewsSubscriptions = 4147; + k_EMsgAMGetUserNewsSubscriptionsResponse = 4148; + k_EMsgAMSetUserNewsSubscriptions = 4149; + k_EMsgAMSendQueuedEmails = 4152; + k_EMsgAMSetLicenseFlags = 4153; + k_EMsgCommunityDeleteUserNews = 4155; + k_EMsgAMAllowUserFilesRequest = 4156; + k_EMsgAMAllowUserFilesResponse = 4157; + k_EMsgAMGetAccountStatus = 4158; + k_EMsgAMGetAccountStatusResponse = 4159; + k_EMsgAMEditBanReason = 4160; + k_EMsgAMCheckClanMembershipResponse = 4161; + k_EMsgAMProbeClanMembershipList = 4162; + k_EMsgAMProbeClanMembershipListResponse = 4163; + k_EMsgUGSGetUserAchievementStatusResponse = 4164; + k_EMsgAMGetFriendsLobbies = 4165; + k_EMsgAMGetFriendsLobbiesResponse = 4166; + k_EMsgAMGetUserFriendNewsResponse = 4172; + k_EMsgCommunityGetUserFriendNews = 4173; + k_EMsgAMGetUserClansNewsResponse = 4174; + k_EMsgAMGetUserClansNews = 4175; + k_EMsgAMGetPreviousCBAccount = 4184; + k_EMsgAMGetPreviousCBAccountResponse = 4185; + k_EMsgAMGetUserLicenseHistory = 4190; + k_EMsgAMGetUserLicenseHistoryResponse = 4191; + k_EMsgAMSupportChangePassword = 4194; + k_EMsgAMSupportChangeEmail = 4195; + k_EMsgAMResetUserVerificationGSByIP = 4197; + k_EMsgAMUpdateGSPlayStats = 4198; + k_EMsgAMSupportEnableOrDisable = 4199; + k_EMsgAMGetPurchaseStatus = 4206; + k_EMsgAMSupportIsAccountEnabled = 4209; + k_EMsgAMSupportIsAccountEnabledResponse = 4210; + k_EMsgUGSGetUserStats = 4211; + k_EMsgAMSupportKickSession = 4212; + k_EMsgAMGSSearch = 4213; + k_EMsgMarketingMessageUpdate = 4216; + k_EMsgChatServerRouteFriendMsg = 4219; + k_EMsgAMTicketAuthRequestOrResponse = 4220; + k_EMsgAMVerifyDepotManagementRights = 4222; + k_EMsgAMVerifyDepotManagementRightsResponse = 4223; + k_EMsgAMAddFreeLicense = 4224; + k_EMsgAMValidateEmailLink = 4231; + k_EMsgAMValidateEmailLinkResponse = 4232; + k_EMsgUGSStoreUserStats = 4236; + k_EMsgAMDeleteStoredCard = 4241; + k_EMsgAMRevokeLegacyGameKeys = 4242; + k_EMsgAMGetWalletDetails = 4244; + k_EMsgAMGetWalletDetailsResponse = 4245; + k_EMsgAMDeleteStoredPaymentInfo = 4246; + k_EMsgAMGetStoredPaymentSummary = 4247; + k_EMsgAMGetStoredPaymentSummaryResponse = 4248; + k_EMsgAMGetWalletConversionRate = 4249; + k_EMsgAMGetWalletConversionRateResponse = 4250; + k_EMsgAMConvertWallet = 4251; + k_EMsgAMConvertWalletResponse = 4252; + k_EMsgAMSetPreApproval = 4255; + k_EMsgAMSetPreApprovalResponse = 4256; + k_EMsgAMCreateRefund = 4258; + k_EMsgAMCreateChargeback = 4260; + k_EMsgAMCreateDispute = 4262; + k_EMsgAMClearDispute = 4264; + k_EMsgAMCreateFinancialAdjustment = 4265; + k_EMsgAMPlayerNicknameList = 4266; + k_EMsgAMPlayerNicknameListResponse = 4267; + k_EMsgAMSetDRMTestConfig = 4268; + k_EMsgAMGetUserCurrentGameInfo = 4269; + k_EMsgAMGetUserCurrentGameInfoResponse = 4270; + k_EMsgAMGetGSPlayerList = 4271; + k_EMsgAMGetGSPlayerListResponse = 4272; + k_EMsgAMGetGameMembers = 4276; + k_EMsgAMGetGameMembersResponse = 4277; + k_EMsgAMGetSteamIDForMicroTxn = 4278; + k_EMsgAMGetSteamIDForMicroTxnResponse = 4279; + k_EMsgAMSetPartnerMember = 4280; + k_EMsgAMRemovePublisherUser = 4281; + k_EMsgAMGetUserLicenseList = 4282; + k_EMsgAMGetUserLicenseListResponse = 4283; + k_EMsgAMReloadGameGroupPolicy = 4284; + k_EMsgAMAddFreeLicenseResponse = 4285; + k_EMsgAMVACStatusUpdate = 4286; + k_EMsgAMGetAccountDetails = 4287; + k_EMsgAMGetAccountDetailsResponse = 4288; + k_EMsgAMGetPlayerLinkDetails = 4289; + k_EMsgAMGetPlayerLinkDetailsResponse = 4290; + k_EMsgAMGetAccountFlagsForWGSpoofing = 4294; + k_EMsgAMGetAccountFlagsForWGSpoofingResponse = 4295; + k_EMsgAMGetClanOfficers = 4298; + k_EMsgAMGetClanOfficersResponse = 4299; + k_EMsgAMNameChange = 4300; + k_EMsgAMGetNameHistory = 4301; + k_EMsgAMGetNameHistoryResponse = 4302; + k_EMsgAMUpdateProviderStatus = 4305; + k_EMsgAMSupportRemoveAccountSecurity = 4307; + k_EMsgAMIsAccountInCaptchaGracePeriod = 4308; + k_EMsgAMIsAccountInCaptchaGracePeriodResponse = 4309; + k_EMsgAMAccountPS3Unlink = 4310; + k_EMsgAMAccountPS3UnlinkResponse = 4311; + k_EMsgUGSStoreUserStatsResponse = 4312; + k_EMsgAMGetAccountPSNInfo = 4313; + k_EMsgAMGetAccountPSNInfoResponse = 4314; + k_EMsgAMAuthenticatedPlayerList = 4315; + k_EMsgAMGetUserGifts = 4316; + k_EMsgAMGetUserGiftsResponse = 4317; + k_EMsgAMTransferLockedGifts = 4320; + k_EMsgAMTransferLockedGiftsResponse = 4321; + k_EMsgAMPlayerHostedOnGameServer = 4322; + k_EMsgAMGetAccountBanInfo = 4323; + k_EMsgAMGetAccountBanInfoResponse = 4324; + k_EMsgAMRecordBanEnforcement = 4325; + k_EMsgAMRollbackGiftTransfer = 4326; + k_EMsgAMRollbackGiftTransferResponse = 4327; + k_EMsgAMHandlePendingTransaction = 4328; + k_EMsgAMRequestClanDetails = 4329; + k_EMsgAMDeleteStoredPaypalAgreement = 4330; + k_EMsgAMGameServerUpdate = 4331; + k_EMsgAMGameServerRemove = 4332; + k_EMsgAMGetPaypalAgreements = 4333; + k_EMsgAMGetPaypalAgreementsResponse = 4334; + k_EMsgAMGameServerPlayerCompatibilityCheck = 4335; + k_EMsgAMGameServerPlayerCompatibilityCheckResponse = 4336; + k_EMsgAMRenewLicense = 4337; + k_EMsgAMGetAccountCommunityBanInfo = 4338; + k_EMsgAMGetAccountCommunityBanInfoResponse = 4339; + k_EMsgAMGameServerAccountChangePassword = 4340; + k_EMsgAMGameServerAccountDeleteAccount = 4341; + k_EMsgAMRenewAgreement = 4342; + k_EMsgAMXsollaPayment = 4344; + k_EMsgAMXsollaPaymentResponse = 4345; + k_EMsgAMAcctAllowedToPurchase = 4346; + k_EMsgAMAcctAllowedToPurchaseResponse = 4347; + k_EMsgAMSwapKioskDeposit = 4348; + k_EMsgAMSwapKioskDepositResponse = 4349; + k_EMsgAMSetUserGiftUnowned = 4350; + k_EMsgAMSetUserGiftUnownedResponse = 4351; + k_EMsgAMClaimUnownedUserGift = 4352; + k_EMsgAMClaimUnownedUserGiftResponse = 4353; + k_EMsgAMSetClanName = 4354; + k_EMsgAMSetClanNameResponse = 4355; + k_EMsgAMGrantCoupon = 4356; + k_EMsgAMGrantCouponResponse = 4357; + k_EMsgAMIsPackageRestrictedInUserCountry = 4358; + k_EMsgAMIsPackageRestrictedInUserCountryResponse = 4359; + k_EMsgAMHandlePendingTransactionResponse = 4360; + k_EMsgAMGrantGuestPasses2 = 4361; + k_EMsgAMGrantGuestPasses2Response = 4362; + k_EMsgAMGetPlayerBanDetails = 4365; + k_EMsgAMGetPlayerBanDetailsResponse = 4366; + k_EMsgAMFinalizePurchase = 4367; + k_EMsgAMFinalizePurchaseResponse = 4368; + k_EMsgAMPersonaChangeResponse = 4372; + k_EMsgAMGetClanDetailsForForumCreation = 4373; + k_EMsgAMGetClanDetailsForForumCreationResponse = 4374; + k_EMsgAMGetPendingNotificationCount = 4375; + k_EMsgAMGetPendingNotificationCountResponse = 4376; + k_EMsgAMPasswordHashUpgrade = 4377; + k_EMsgAMBoaCompraPayment = 4380; + k_EMsgAMBoaCompraPaymentResponse = 4381; + k_EMsgAMCompleteExternalPurchase = 4383; + k_EMsgAMCompleteExternalPurchaseResponse = 4384; + k_EMsgAMResolveNegativeWalletCredits = 4385; + k_EMsgAMResolveNegativeWalletCreditsResponse = 4386; + k_EMsgAMPlayerGetClanBasicDetails = 4389; + k_EMsgAMPlayerGetClanBasicDetailsResponse = 4390; + k_EMsgAMMOLPayment = 4391; + k_EMsgAMMOLPaymentResponse = 4392; + k_EMsgGetUserIPCountry = 4393; + k_EMsgGetUserIPCountryResponse = 4394; + k_EMsgNotificationOfSuspiciousActivity = 4395; + k_EMsgAMDegicaPayment = 4396; + k_EMsgAMDegicaPaymentResponse = 4397; + k_EMsgAMEClubPayment = 4398; + k_EMsgAMEClubPaymentResponse = 4399; + k_EMsgAMPayPalPaymentsHubPayment = 4400; + k_EMsgAMPayPalPaymentsHubPaymentResponse = 4401; + k_EMsgAMTwoFactorRecoverAuthenticatorRequest = 4402; + k_EMsgAMTwoFactorRecoverAuthenticatorResponse = 4403; + k_EMsgAMSmart2PayPayment = 4404; + k_EMsgAMSmart2PayPaymentResponse = 4405; + k_EMsgAMValidatePasswordResetCodeAndSendSmsRequest = 4406; + k_EMsgAMValidatePasswordResetCodeAndSendSmsResponse = 4407; + k_EMsgAMGetAccountResetDetailsRequest = 4408; + k_EMsgAMGetAccountResetDetailsResponse = 4409; + k_EMsgAMBitPayPayment = 4410; + k_EMsgAMBitPayPaymentResponse = 4411; + k_EMsgAMSendAccountInfoUpdate = 4412; + k_EMsgAMSendScheduledGift = 4413; + k_EMsgAMNodwinPayment = 4414; + k_EMsgAMNodwinPaymentResponse = 4415; + k_EMsgAMResolveWalletRevoke = 4416; + k_EMsgAMResolveWalletReverseRevoke = 4417; + k_EMsgAMFundedPayment = 4418; + k_EMsgAMFundedPaymentResponse = 4419; + k_EMsgAMRequestPersonaUpdateForChatServer = 4420; + k_EMsgAMPerfectWorldPayment = 4421; + k_EMsgAMPerfectWorldPaymentResponse = 4422; + k_EMsgBasePSRange = 5000; + k_EMsgPSCreateShoppingCart = 5001; + k_EMsgPSCreateShoppingCartResponse = 5002; + k_EMsgPSIsValidShoppingCart = 5003; + k_EMsgPSIsValidShoppingCartResponse = 5004; + k_EMsgPSAddPackageToShoppingCart = 5005; + k_EMsgPSAddPackageToShoppingCartResponse = 5006; + k_EMsgPSRemoveLineItemFromShoppingCart = 5007; + k_EMsgPSRemoveLineItemFromShoppingCartResponse = 5008; + k_EMsgPSGetShoppingCartContents = 5009; + k_EMsgPSGetShoppingCartContentsResponse = 5010; + k_EMsgPSAddWalletCreditToShoppingCart = 5011; + k_EMsgPSAddWalletCreditToShoppingCartResponse = 5012; + k_EMsgBaseUFSRange = 5200; + k_EMsgClientUFSUploadFileRequest = 5202; + k_EMsgClientUFSUploadFileResponse = 5203; + k_EMsgClientUFSUploadFileChunk = 5204; + k_EMsgClientUFSUploadFileFinished = 5205; + k_EMsgClientUFSGetFileListForApp = 5206; + k_EMsgClientUFSGetFileListForAppResponse = 5207; + k_EMsgClientUFSDownloadRequest = 5210; + k_EMsgClientUFSDownloadResponse = 5211; + k_EMsgClientUFSDownloadChunk = 5212; + k_EMsgClientUFSLoginRequest = 5213; + k_EMsgClientUFSLoginResponse = 5214; + k_EMsgUFSReloadPartitionInfo = 5215; + k_EMsgClientUFSTransferHeartbeat = 5216; + k_EMsgUFSSynchronizeFile = 5217; + k_EMsgUFSSynchronizeFileResponse = 5218; + k_EMsgClientUFSDeleteFileRequest = 5219; + k_EMsgClientUFSDeleteFileResponse = 5220; + k_EMsgClientUFSGetUGCDetails = 5226; + k_EMsgClientUFSGetUGCDetailsResponse = 5227; + k_EMsgUFSUpdateFileFlags = 5228; + k_EMsgUFSUpdateFileFlagsResponse = 5229; + k_EMsgClientUFSGetSingleFileInfo = 5230; + k_EMsgClientUFSGetSingleFileInfoResponse = 5231; + k_EMsgClientUFSShareFile = 5232; + k_EMsgClientUFSShareFileResponse = 5233; + k_EMsgUFSReloadAccount = 5234; + k_EMsgUFSReloadAccountResponse = 5235; + k_EMsgUFSUpdateRecordBatched = 5236; + k_EMsgUFSUpdateRecordBatchedResponse = 5237; + k_EMsgUFSMigrateFile = 5238; + k_EMsgUFSMigrateFileResponse = 5239; + k_EMsgUFSGetUGCURLs = 5240; + k_EMsgUFSGetUGCURLsResponse = 5241; + k_EMsgUFSHttpUploadFileFinishRequest = 5242; + k_EMsgUFSHttpUploadFileFinishResponse = 5243; + k_EMsgUFSDownloadStartRequest = 5244; + k_EMsgUFSDownloadStartResponse = 5245; + k_EMsgUFSDownloadChunkRequest = 5246; + k_EMsgUFSDownloadChunkResponse = 5247; + k_EMsgUFSDownloadFinishRequest = 5248; + k_EMsgUFSDownloadFinishResponse = 5249; + k_EMsgUFSFlushURLCache = 5250; + k_EMsgClientUFSUploadCommit = 5251; + k_EMsgClientUFSUploadCommitResponse = 5252; + k_EMsgUFSMigrateFileAppID = 5253; + k_EMsgUFSMigrateFileAppIDResponse = 5254; + k_EMsgBaseClient2 = 5400; + k_EMsgClientRequestForgottenPasswordEmail = 5401; + k_EMsgClientRequestForgottenPasswordEmailResponse = 5402; + k_EMsgClientCreateAccountResponse = 5403; + k_EMsgClientResetForgottenPassword = 5404; + k_EMsgClientResetForgottenPasswordResponse = 5405; + k_EMsgClientInformOfResetForgottenPassword = 5407; + k_EMsgClientInformOfResetForgottenPasswordResponse = 5408; + k_EMsgClientAnonUserLogOn_Deprecated = 5409; + k_EMsgClientGamesPlayedWithDataBlob = 5410; + k_EMsgClientUpdateUserGameInfo = 5411; + k_EMsgClientFileToDownload = 5412; + k_EMsgClientFileToDownloadResponse = 5413; + k_EMsgClientLBSSetScore = 5414; + k_EMsgClientLBSSetScoreResponse = 5415; + k_EMsgClientLBSFindOrCreateLB = 5416; + k_EMsgClientLBSFindOrCreateLBResponse = 5417; + k_EMsgClientLBSGetLBEntries = 5418; + k_EMsgClientLBSGetLBEntriesResponse = 5419; + k_EMsgClientChatDeclined = 5426; + k_EMsgClientFriendMsgIncoming = 5427; + k_EMsgClientAuthList_Deprecated = 5428; + k_EMsgClientTicketAuthComplete = 5429; + k_EMsgClientIsLimitedAccount = 5430; + k_EMsgClientRequestAuthList = 5431; + k_EMsgClientAuthList = 5432; + k_EMsgClientStat = 5433; + k_EMsgClientP2PConnectionInfo = 5434; + k_EMsgClientP2PConnectionFailInfo = 5435; + k_EMsgClientGetDepotDecryptionKey = 5438; + k_EMsgClientGetDepotDecryptionKeyResponse = 5439; + k_EMsgGSPerformHardwareSurvey = 5440; + k_EMsgClientEnableTestLicense = 5443; + k_EMsgClientEnableTestLicenseResponse = 5444; + k_EMsgClientDisableTestLicense = 5445; + k_EMsgClientDisableTestLicenseResponse = 5446; + k_EMsgClientRequestValidationMail = 5448; + k_EMsgClientRequestValidationMailResponse = 5449; + k_EMsgClientCheckAppBetaPassword = 5450; + k_EMsgClientCheckAppBetaPasswordResponse = 5451; + k_EMsgClientToGC = 5452; + k_EMsgClientFromGC = 5453; + k_EMsgClientRequestChangeMail = 5454; + k_EMsgClientRequestChangeMailResponse = 5455; + k_EMsgClientEmailAddrInfo = 5456; + k_EMsgClientPasswordChange3 = 5457; + k_EMsgClientEmailChange3 = 5458; + k_EMsgClientPersonalQAChange3 = 5459; + k_EMsgClientResetForgottenPassword3 = 5460; + k_EMsgClientRequestForgottenPasswordEmail3 = 5461; + k_EMsgClientNewLoginKey = 5463; + k_EMsgClientNewLoginKeyAccepted = 5464; + k_EMsgClientLogOnWithHash_Deprecated = 5465; + k_EMsgClientStoreUserStats2 = 5466; + k_EMsgClientStatsUpdated = 5467; + k_EMsgClientActivateOEMLicense = 5468; + k_EMsgClientRegisterOEMMachine = 5469; + k_EMsgClientRegisterOEMMachineResponse = 5470; + k_EMsgClientRequestedClientStats = 5480; + k_EMsgClientStat2Int32 = 5481; + k_EMsgClientStat2 = 5482; + k_EMsgClientVerifyPassword = 5483; + k_EMsgClientVerifyPasswordResponse = 5484; + k_EMsgClientDRMDownloadRequest = 5485; + k_EMsgClientDRMDownloadResponse = 5486; + k_EMsgClientDRMFinalResult = 5487; + k_EMsgClientGetFriendsWhoPlayGame = 5488; + k_EMsgClientGetFriendsWhoPlayGameResponse = 5489; + k_EMsgClientOGSBeginSession = 5490; + k_EMsgClientOGSBeginSessionResponse = 5491; + k_EMsgClientOGSEndSession = 5492; + k_EMsgClientOGSEndSessionResponse = 5493; + k_EMsgClientOGSWriteRow = 5494; + k_EMsgClientDRMTest = 5495; + k_EMsgClientDRMTestResult = 5496; + k_EMsgClientServerUnavailable = 5500; + k_EMsgClientServersAvailable = 5501; + k_EMsgClientRegisterAuthTicketWithCM = 5502; + k_EMsgClientGCMsgFailed = 5503; + k_EMsgClientMicroTxnAuthRequest = 5504; + k_EMsgClientMicroTxnAuthorize = 5505; + k_EMsgClientMicroTxnAuthorizeResponse = 5506; + k_EMsgClientAppMinutesPlayedData = 5507; + k_EMsgClientGetMicroTxnInfo = 5508; + k_EMsgClientGetMicroTxnInfoResponse = 5509; + k_EMsgClientMarketingMessageUpdate2 = 5510; + k_EMsgClientDeregisterWithServer = 5511; + k_EMsgClientSubscribeToPersonaFeed = 5512; + k_EMsgClientLogon = 5514; + k_EMsgClientGetClientDetails = 5515; + k_EMsgClientGetClientDetailsResponse = 5516; + k_EMsgClientReportOverlayDetourFailure = 5517; + k_EMsgClientGetClientAppList = 5518; + k_EMsgClientGetClientAppListResponse = 5519; + k_EMsgClientInstallClientApp = 5520; + k_EMsgClientInstallClientAppResponse = 5521; + k_EMsgClientUninstallClientApp = 5522; + k_EMsgClientUninstallClientAppResponse = 5523; + k_EMsgClientSetClientAppUpdateState = 5524; + k_EMsgClientSetClientAppUpdateStateResponse = 5525; + k_EMsgClientRequestEncryptedAppTicket = 5526; + k_EMsgClientRequestEncryptedAppTicketResponse = 5527; + k_EMsgClientWalletInfoUpdate = 5528; + k_EMsgClientLBSSetUGC = 5529; + k_EMsgClientLBSSetUGCResponse = 5530; + k_EMsgClientAMGetClanOfficers = 5531; + k_EMsgClientAMGetClanOfficersResponse = 5532; + k_EMsgClientFriendProfileInfo = 5535; + k_EMsgClientFriendProfileInfoResponse = 5536; + k_EMsgClientUpdateMachineAuth = 5537; + k_EMsgClientUpdateMachineAuthResponse = 5538; + k_EMsgClientReadMachineAuth = 5539; + k_EMsgClientReadMachineAuthResponse = 5540; + k_EMsgClientRequestMachineAuth = 5541; + k_EMsgClientRequestMachineAuthResponse = 5542; + k_EMsgClientScreenshotsChanged = 5543; + k_EMsgClientGetCDNAuthToken = 5546; + k_EMsgClientGetCDNAuthTokenResponse = 5547; + k_EMsgClientDownloadRateStatistics = 5548; + k_EMsgClientRequestAccountData = 5549; + k_EMsgClientRequestAccountDataResponse = 5550; + k_EMsgClientResetForgottenPassword4 = 5551; + k_EMsgClientHideFriend = 5552; + k_EMsgClientFriendsGroupsList = 5553; + k_EMsgClientGetClanActivityCounts = 5554; + k_EMsgClientGetClanActivityCountsResponse = 5555; + k_EMsgClientOGSReportString = 5556; + k_EMsgClientOGSReportBug = 5557; + k_EMsgClientSentLogs = 5558; + k_EMsgClientLogonGameServer = 5559; + k_EMsgAMClientCreateFriendsGroup = 5560; + k_EMsgAMClientCreateFriendsGroupResponse = 5561; + k_EMsgAMClientDeleteFriendsGroup = 5562; + k_EMsgAMClientDeleteFriendsGroupResponse = 5563; + k_EMsgAMClientManageFriendsGroup = 5564; + k_EMsgAMClientManageFriendsGroupResponse = 5565; + k_EMsgAMClientAddFriendToGroup = 5566; + k_EMsgAMClientAddFriendToGroupResponse = 5567; + k_EMsgAMClientRemoveFriendFromGroup = 5568; + k_EMsgAMClientRemoveFriendFromGroupResponse = 5569; + k_EMsgClientAMGetPersonaNameHistory = 5570; + k_EMsgClientAMGetPersonaNameHistoryResponse = 5571; + k_EMsgClientRequestFreeLicense = 5572; + k_EMsgClientRequestFreeLicenseResponse = 5573; + k_EMsgClientDRMDownloadRequestWithCrashData = 5574; + k_EMsgClientAuthListAck = 5575; + k_EMsgClientItemAnnouncements = 5576; + k_EMsgClientRequestItemAnnouncements = 5577; + k_EMsgClientFriendMsgEchoToSender = 5578; + k_EMsgClientOGSGameServerPingSample = 5581; + k_EMsgClientCommentNotifications = 5582; + k_EMsgClientRequestCommentNotifications = 5583; + k_EMsgClientPersonaChangeResponse = 5584; + k_EMsgClientRequestWebAPIAuthenticateUserNonce = 5585; + k_EMsgClientRequestWebAPIAuthenticateUserNonceResponse = 5586; + k_EMsgClientPlayerNicknameList = 5587; + k_EMsgAMClientSetPlayerNickname = 5588; + k_EMsgAMClientSetPlayerNicknameResponse = 5589; + k_EMsgClientGetNumberOfCurrentPlayersDP = 5592; + k_EMsgClientGetNumberOfCurrentPlayersDPResponse = 5593; + k_EMsgClientServiceMethodLegacy = 5594; + k_EMsgClientServiceMethodLegacyResponse = 5595; + k_EMsgClientFriendUserStatusPublished = 5596; + k_EMsgClientCurrentUIMode = 5597; + k_EMsgClientVanityURLChangedNotification = 5598; + k_EMsgClientUserNotifications = 5599; + k_EMsgBaseDFS = 5600; + k_EMsgDFSGetFile = 5601; + k_EMsgDFSInstallLocalFile = 5602; + k_EMsgDFSConnection = 5603; + k_EMsgDFSConnectionReply = 5604; + k_EMsgClientDFSAuthenticateRequest = 5605; + k_EMsgClientDFSAuthenticateResponse = 5606; + k_EMsgClientDFSEndSession = 5607; + k_EMsgDFSPurgeFile = 5608; + k_EMsgDFSRouteFile = 5609; + k_EMsgDFSGetFileFromServer = 5610; + k_EMsgDFSAcceptedResponse = 5611; + k_EMsgDFSRequestPingback = 5612; + k_EMsgDFSRecvTransmitFile = 5613; + k_EMsgDFSSendTransmitFile = 5614; + k_EMsgDFSRequestPingback2 = 5615; + k_EMsgDFSResponsePingback2 = 5616; + k_EMsgClientDFSDownloadStatus = 5617; + k_EMsgDFSStartTransfer = 5618; + k_EMsgDFSTransferComplete = 5619; + k_EMsgDFSRouteFileResponse = 5620; + k_EMsgClientNetworkingCertRequest = 5621; + k_EMsgClientNetworkingCertRequestResponse = 5622; + k_EMsgClientChallengeRequest = 5623; + k_EMsgClientChallengeResponse = 5624; + k_EMsgBadgeCraftedNotification = 5625; + k_EMsgClientNetworkingMobileCertRequest = 5626; + k_EMsgClientNetworkingMobileCertRequestResponse = 5627; + k_EMsgBaseMDS = 5800; + k_EMsgAMToMDSGetDepotDecryptionKey = 5812; + k_EMsgMDSToAMGetDepotDecryptionKeyResponse = 5813; + k_EMsgMDSContentServerConfigRequest = 5827; + k_EMsgMDSContentServerConfig = 5828; + k_EMsgMDSGetDepotManifest = 5829; + k_EMsgMDSGetDepotManifestResponse = 5830; + k_EMsgMDSGetDepotManifestChunk = 5831; + k_EMsgMDSGetDepotChunk = 5832; + k_EMsgMDSGetDepotChunkResponse = 5833; + k_EMsgMDSGetDepotChunkChunk = 5834; + k_EMsgMDSToCSFlushChunk = 5844; + k_EMsgMDSMigrateChunk = 5847; + k_EMsgMDSMigrateChunkResponse = 5848; + k_EMsgMDSToCSFlushManifest = 5849; + k_EMsgCSBase = 6200; + k_EMsgCSPing = 6201; + k_EMsgCSPingResponse = 6202; + k_EMsgGMSBase = 6400; + k_EMsgGMSGameServerReplicate = 6401; + k_EMsgClientGMSServerQuery = 6403; + k_EMsgGMSClientServerQueryResponse = 6404; + k_EMsgAMGMSGameServerUpdate = 6405; + k_EMsgAMGMSGameServerRemove = 6406; + k_EMsgGameServerOutOfDate = 6407; + k_EMsgDeviceAuthorizationBase = 6500; + k_EMsgClientAuthorizeLocalDeviceRequest = 6501; + k_EMsgClientAuthorizeLocalDeviceResponse = 6502; + k_EMsgClientDeauthorizeDeviceRequest = 6503; + k_EMsgClientDeauthorizeDevice = 6504; + k_EMsgClientUseLocalDeviceAuthorizations = 6505; + k_EMsgClientGetAuthorizedDevices = 6506; + k_EMsgClientGetAuthorizedDevicesResponse = 6507; + k_EMsgAMNotifySessionDeviceAuthorized = 6508; + k_EMsgClientAuthorizeLocalDeviceNotification = 6509; + k_EMsgMMSBase = 6600; + k_EMsgClientMMSCreateLobby = 6601; + k_EMsgClientMMSCreateLobbyResponse = 6602; + k_EMsgClientMMSJoinLobby = 6603; + k_EMsgClientMMSJoinLobbyResponse = 6604; + k_EMsgClientMMSLeaveLobby = 6605; + k_EMsgClientMMSLeaveLobbyResponse = 6606; + k_EMsgClientMMSGetLobbyList = 6607; + k_EMsgClientMMSGetLobbyListResponse = 6608; + k_EMsgClientMMSSetLobbyData = 6609; + k_EMsgClientMMSSetLobbyDataResponse = 6610; + k_EMsgClientMMSGetLobbyData = 6611; + k_EMsgClientMMSLobbyData = 6612; + k_EMsgClientMMSSendLobbyChatMsg = 6613; + k_EMsgClientMMSLobbyChatMsg = 6614; + k_EMsgClientMMSSetLobbyOwner = 6615; + k_EMsgClientMMSSetLobbyOwnerResponse = 6616; + k_EMsgClientMMSSetLobbyGameServer = 6617; + k_EMsgClientMMSLobbyGameServerSet = 6618; + k_EMsgClientMMSUserJoinedLobby = 6619; + k_EMsgClientMMSUserLeftLobby = 6620; + k_EMsgClientMMSInviteToLobby = 6621; + k_EMsgClientMMSFlushFrenemyListCache = 6622; + k_EMsgClientMMSFlushFrenemyListCacheResponse = 6623; + k_EMsgClientMMSSetLobbyLinked = 6624; + k_EMsgClientMMSSetRatelimitPolicyOnClient = 6625; + k_EMsgClientMMSGetLobbyStatus = 6626; + k_EMsgClientMMSGetLobbyStatusResponse = 6627; + k_EMsgMMSGetLobbyList = 6628; + k_EMsgMMSGetLobbyListResponse = 6629; + k_EMsgNonStdMsgBase = 6800; + k_EMsgNonStdMsgMemcached = 6801; + k_EMsgNonStdMsgHTTPServer = 6802; + k_EMsgNonStdMsgHTTPClient = 6803; + k_EMsgNonStdMsgWGResponse = 6804; + k_EMsgNonStdMsgPHPSimulator = 6805; + k_EMsgNonStdMsgChase = 6806; + k_EMsgNonStdMsgDFSTransfer = 6807; + k_EMsgNonStdMsgTests = 6808; + k_EMsgNonStdMsgUMQpipeAAPL = 6809; + k_EMSgNonStdMsgSyslog = 6810; + k_EMsgNonStdMsgLogsink = 6811; + k_EMsgNonStdMsgSteam2Emulator = 6812; + k_EMsgNonStdMsgRTMPServer = 6813; + k_EMsgNonStdMsgWebSocket = 6814; + k_EMsgNonStdMsgRedis = 6815; + k_EMsgUDSBase = 7000; + k_EMsgClientUDSP2PSessionStarted = 7001; + k_EMsgClientUDSP2PSessionEnded = 7002; + k_EMsgUDSRenderUserAuth = 7003; + k_EMsgUDSRenderUserAuthResponse = 7004; + k_EMsgClientInviteToGame = 7005; + k_EMsgUDSHasSession = 7006; + k_EMsgUDSHasSessionResponse = 7007; + k_EMsgMPASBase = 7100; + k_EMsgMPASVacBanReset = 7101; + k_EMsgKGSBase = 7200; + k_EMsgUCMBase = 7300; + k_EMsgClientUCMAddScreenshot = 7301; + k_EMsgClientUCMAddScreenshotResponse = 7302; + k_EMsgUCMResetCommunityContent = 7307; + k_EMsgUCMResetCommunityContentResponse = 7308; + k_EMsgClientUCMDeleteScreenshot = 7309; + k_EMsgClientUCMDeleteScreenshotResponse = 7310; + k_EMsgClientUCMPublishFile = 7311; + k_EMsgClientUCMPublishFileResponse = 7312; + k_EMsgClientUCMDeletePublishedFile = 7315; + k_EMsgClientUCMDeletePublishedFileResponse = 7316; + k_EMsgClientUCMEnumerateUserPublishedFiles = 7317; + k_EMsgClientUCMEnumerateUserPublishedFilesResponse = 7318; + k_EMsgClientUCMEnumerateUserSubscribedFiles = 7321; + k_EMsgClientUCMEnumerateUserSubscribedFilesResponse = 7322; + k_EMsgClientUCMUpdatePublishedFile = 7325; + k_EMsgClientUCMUpdatePublishedFileResponse = 7326; + k_EMsgUCMUpdatePublishedFile = 7327; + k_EMsgUCMUpdatePublishedFileResponse = 7328; + k_EMsgUCMDeletePublishedFile = 7329; + k_EMsgUCMDeletePublishedFileResponse = 7330; + k_EMsgUCMUpdatePublishedFileStat = 7331; + k_EMsgUCMReloadPublishedFile = 7337; + k_EMsgUCMReloadUserFileListCaches = 7338; + k_EMsgUCMPublishedFileReported = 7339; + k_EMsgUCMPublishedFilePreviewAdd = 7341; + k_EMsgUCMPublishedFilePreviewAddResponse = 7342; + k_EMsgUCMPublishedFilePreviewRemove = 7343; + k_EMsgUCMPublishedFilePreviewRemoveResponse = 7344; + k_EMsgClientUCMPublishedFileSubscribed = 7347; + k_EMsgClientUCMPublishedFileUnsubscribed = 7348; + k_EMsgUCMPublishedFileSubscribed = 7349; + k_EMsgUCMPublishedFileUnsubscribed = 7350; + k_EMsgUCMPublishFile = 7351; + k_EMsgUCMPublishFileResponse = 7352; + k_EMsgUCMPublishedFileChildAdd = 7353; + k_EMsgUCMPublishedFileChildAddResponse = 7354; + k_EMsgUCMPublishedFileChildRemove = 7355; + k_EMsgUCMPublishedFileChildRemoveResponse = 7356; + k_EMsgUCMPublishedFileParentChanged = 7359; + k_EMsgClientUCMGetPublishedFilesForUser = 7360; + k_EMsgClientUCMGetPublishedFilesForUserResponse = 7361; + k_EMsgClientUCMSetUserPublishedFileAction = 7364; + k_EMsgClientUCMSetUserPublishedFileActionResponse = 7365; + k_EMsgClientUCMEnumeratePublishedFilesByUserAction = 7366; + k_EMsgClientUCMEnumeratePublishedFilesByUserActionResponse = 7367; + k_EMsgClientUCMPublishedFileDeleted = 7368; + k_EMsgUCMGetUserSubscribedFiles = 7369; + k_EMsgUCMGetUserSubscribedFilesResponse = 7370; + k_EMsgUCMFixStatsPublishedFile = 7371; + k_EMsgClientUCMEnumerateUserSubscribedFilesWithUpdates = 7378; + k_EMsgClientUCMEnumerateUserSubscribedFilesWithUpdatesResponse = 7379; + k_EMsgUCMPublishedFileContentUpdated = 7380; + k_EMsgClientUCMPublishedFileUpdated = 7381; + k_EMsgClientWorkshopItemChangesRequest = 7382; + k_EMsgClientWorkshopItemChangesResponse = 7383; + k_EMsgClientWorkshopItemInfoRequest = 7384; + k_EMsgClientWorkshopItemInfoResponse = 7385; + k_EMsgFSBase = 7500; + k_EMsgClientRichPresenceUpload = 7501; + k_EMsgClientRichPresenceRequest = 7502; + k_EMsgClientRichPresenceInfo = 7503; + k_EMsgFSRichPresenceRequest = 7504; + k_EMsgFSRichPresenceResponse = 7505; + k_EMsgFSComputeFrenematrix = 7506; + k_EMsgFSComputeFrenematrixResponse = 7507; + k_EMsgFSPlayStatusNotification = 7508; + k_EMsgFSAddOrRemoveFollower = 7510; + k_EMsgFSAddOrRemoveFollowerResponse = 7511; + k_EMsgFSUpdateFollowingList = 7512; + k_EMsgFSCommentNotification = 7513; + k_EMsgFSCommentNotificationViewed = 7514; + k_EMsgClientFSGetFollowerCount = 7515; + k_EMsgClientFSGetFollowerCountResponse = 7516; + k_EMsgClientFSGetIsFollowing = 7517; + k_EMsgClientFSGetIsFollowingResponse = 7518; + k_EMsgClientFSEnumerateFollowingList = 7519; + k_EMsgClientFSEnumerateFollowingListResponse = 7520; + k_EMsgFSGetPendingNotificationCount = 7521; + k_EMsgFSGetPendingNotificationCountResponse = 7522; + k_EMsgClientChatOfflineMessageNotification = 7523; + k_EMsgClientChatRequestOfflineMessageCount = 7524; + k_EMsgClientChatGetFriendMessageHistory = 7525; + k_EMsgClientChatGetFriendMessageHistoryResponse = 7526; + k_EMsgClientChatGetFriendMessageHistoryForOfflineMessages = 7527; + k_EMsgClientFSGetFriendsSteamLevels = 7528; + k_EMsgClientFSGetFriendsSteamLevelsResponse = 7529; + k_EMsgAMRequestFriendData = 7530; + k_EMsgDRMRange2 = 7600; + k_EMsgCEGVersionSetEnableDisableRequest = 7600; + k_EMsgCEGVersionSetEnableDisableResponse = 7601; + k_EMsgCEGPropStatusDRMSRequest = 7602; + k_EMsgCEGPropStatusDRMSResponse = 7603; + k_EMsgCEGWhackFailureReportRequest = 7604; + k_EMsgCEGWhackFailureReportResponse = 7605; + k_EMsgDRMSFetchVersionSet = 7606; + k_EMsgDRMSFetchVersionSetResponse = 7607; + k_EMsgEconBase = 7700; + k_EMsgEconTrading_InitiateTradeRequest = 7701; + k_EMsgEconTrading_InitiateTradeProposed = 7702; + k_EMsgEconTrading_InitiateTradeResponse = 7703; + k_EMsgEconTrading_InitiateTradeResult = 7704; + k_EMsgEconTrading_StartSession = 7705; + k_EMsgEconTrading_CancelTradeRequest = 7706; + k_EMsgEconFlushInventoryCache = 7707; + k_EMsgEconFlushInventoryCacheResponse = 7708; + k_EMsgEconCDKeyProcessTransaction = 7711; + k_EMsgEconCDKeyProcessTransactionResponse = 7712; + k_EMsgEconGetErrorLogs = 7713; + k_EMsgEconGetErrorLogsResponse = 7714; + k_EMsgRMRange = 7800; + k_EMsgRMTestVerisignOTP = 7800; + k_EMsgRMTestVerisignOTPResponse = 7801; + k_EMsgRMDeleteMemcachedKeys = 7803; + k_EMsgRMRemoteInvoke = 7804; + k_EMsgBadLoginIPList = 7805; + k_EMsgRMMsgTraceAddTrigger = 7806; + k_EMsgRMMsgTraceRemoveTrigger = 7807; + k_EMsgRMMsgTraceEvent = 7808; + k_EMsgUGSBase = 7900; + k_EMsgUGSUpdateGlobalStats = 7900; + k_EMsgClientUGSGetGlobalStats = 7901; + k_EMsgClientUGSGetGlobalStatsResponse = 7902; + k_EMsgStoreBase = 8000; + k_EMsgUMQBase = 8100; + k_EMsgUMQLogonRequest = 8100; + k_EMsgUMQLogonResponse = 8101; + k_EMsgUMQLogoffRequest = 8102; + k_EMsgUMQLogoffResponse = 8103; + k_EMsgUMQSendChatMessage = 8104; + k_EMsgUMQIncomingChatMessage = 8105; + k_EMsgUMQPoll = 8106; + k_EMsgUMQPollResults = 8107; + k_EMsgUMQ2AM_ClientMsgBatch = 8108; + k_EMsgWorkshopBase = 8200; + k_EMsgWebAPIBase = 8300; + k_EMsgWebAPIValidateOAuth2Token = 8300; + k_EMsgWebAPIValidateOAuth2TokenResponse = 8301; + k_EMsgWebAPIRegisterGCInterfaces = 8303; + k_EMsgWebAPIInvalidateOAuthClientCache = 8304; + k_EMsgWebAPIInvalidateOAuthTokenCache = 8305; + k_EMsgWebAPISetSecrets = 8306; + k_EMsgBackpackBase = 8400; + k_EMsgBackpackAddToCurrency = 8401; + k_EMsgBackpackAddToCurrencyResponse = 8402; + k_EMsgCREBase = 8500; + k_EMsgCREItemVoteSummary = 8503; + k_EMsgCREItemVoteSummaryResponse = 8504; + k_EMsgCREUpdateUserPublishedItemVote = 8507; + k_EMsgCREUpdateUserPublishedItemVoteResponse = 8508; + k_EMsgCREGetUserPublishedItemVoteDetails = 8509; + k_EMsgCREGetUserPublishedItemVoteDetailsResponse = 8510; + k_EMsgCREEnumeratePublishedFiles = 8511; + k_EMsgCREEnumeratePublishedFilesResponse = 8512; + k_EMsgCREPublishedFileVoteAdded = 8513; + k_EMsgSecretsBase = 8600; + k_EMsgSecretsRequestCredentialPair = 8600; + k_EMsgSecretsCredentialPairResponse = 8601; + k_EMsgBoxMonitorBase = 8700; + k_EMsgBoxMonitorReportRequest = 8700; + k_EMsgBoxMonitorReportResponse = 8701; + k_EMsgLogsinkBase = 8800; + k_EMsgLogsinkWriteReport = 8800; + k_EMsgPICSBase = 8900; + k_EMsgClientPICSChangesSinceRequest = 8901; + k_EMsgClientPICSChangesSinceResponse = 8902; + k_EMsgClientPICSProductInfoRequest = 8903; + k_EMsgClientPICSProductInfoResponse = 8904; + k_EMsgClientPICSAccessTokenRequest = 8905; + k_EMsgClientPICSAccessTokenResponse = 8906; + k_EMsgWorkerProcess = 9000; + k_EMsgWorkerProcessPingRequest = 9000; + k_EMsgWorkerProcessPingResponse = 9001; + k_EMsgWorkerProcessShutdown = 9002; + k_EMsgDRMWorkerProcess = 9100; + k_EMsgDRMWorkerProcessDRMAndSign = 9100; + k_EMsgDRMWorkerProcessDRMAndSignResponse = 9101; + k_EMsgDRMWorkerProcessSteamworksInfoRequest = 9102; + k_EMsgDRMWorkerProcessSteamworksInfoResponse = 9103; + k_EMsgDRMWorkerProcessInstallDRMDLLRequest = 9104; + k_EMsgDRMWorkerProcessInstallDRMDLLResponse = 9105; + k_EMsgDRMWorkerProcessSecretIdStringRequest = 9106; + k_EMsgDRMWorkerProcessSecretIdStringResponse = 9107; + k_EMsgDRMWorkerProcessInstallProcessedFilesRequest = 9110; + k_EMsgDRMWorkerProcessInstallProcessedFilesResponse = 9111; + k_EMsgDRMWorkerProcessExamineBlobRequest = 9112; + k_EMsgDRMWorkerProcessExamineBlobResponse = 9113; + k_EMsgDRMWorkerProcessDescribeSecretRequest = 9114; + k_EMsgDRMWorkerProcessDescribeSecretResponse = 9115; + k_EMsgDRMWorkerProcessBackfillOriginalRequest = 9116; + k_EMsgDRMWorkerProcessBackfillOriginalResponse = 9117; + k_EMsgDRMWorkerProcessValidateDRMDLLRequest = 9118; + k_EMsgDRMWorkerProcessValidateDRMDLLResponse = 9119; + k_EMsgDRMWorkerProcessValidateFileRequest = 9120; + k_EMsgDRMWorkerProcessValidateFileResponse = 9121; + k_EMsgDRMWorkerProcessSplitAndInstallRequest = 9122; + k_EMsgDRMWorkerProcessSplitAndInstallResponse = 9123; + k_EMsgDRMWorkerProcessGetBlobRequest = 9124; + k_EMsgDRMWorkerProcessGetBlobResponse = 9125; + k_EMsgDRMWorkerProcessEvaluateCrashRequest = 9126; + k_EMsgDRMWorkerProcessEvaluateCrashResponse = 9127; + k_EMsgDRMWorkerProcessAnalyzeFileRequest = 9128; + k_EMsgDRMWorkerProcessAnalyzeFileResponse = 9129; + k_EMsgDRMWorkerProcessUnpackBlobRequest = 9130; + k_EMsgDRMWorkerProcessUnpackBlobResponse = 9131; + k_EMsgDRMWorkerProcessInstallAllRequest = 9132; + k_EMsgDRMWorkerProcessInstallAllResponse = 9133; + k_EMsgTestWorkerProcess = 9200; + k_EMsgTestWorkerProcessLoadUnloadModuleRequest = 9200; + k_EMsgTestWorkerProcessLoadUnloadModuleResponse = 9201; + k_EMsgTestWorkerProcessServiceModuleCallRequest = 9202; + k_EMsgTestWorkerProcessServiceModuleCallResponse = 9203; + k_EMsgQuestServerBase = 9300; + k_EMsgClientGetEmoticonList = 9330; + k_EMsgClientEmoticonList = 9331; + k_EMsgSLCBase = 9400; + k_EMsgSLCUserSessionStatus = 9400; + k_EMsgSLCRequestUserSessionStatus = 9401; + k_EMsgSLCSharedLicensesLockStatus = 9402; + k_EMsgClientSharedLibraryLockStatus = 9405; + k_EMsgClientSharedLibraryStopPlaying = 9406; + k_EMsgSLCOwnerLibraryChanged = 9407; + k_EMsgSLCSharedLibraryChanged = 9408; + k_EMsgRemoteClientBase = 9500; + k_EMsgRemoteClientAuth_OBSOLETE = 9500; + k_EMsgRemoteClientAuthResponse_OBSOLETE = 9501; + k_EMsgRemoteClientAppStatus = 9502; + k_EMsgRemoteClientStartStream = 9503; + k_EMsgRemoteClientStartStreamResponse = 9504; + k_EMsgRemoteClientPing = 9505; + k_EMsgRemoteClientPingResponse = 9506; + k_EMsgClientUnlockStreaming = 9507; + k_EMsgClientUnlockStreamingResponse = 9508; + k_EMsgRemoteClientAcceptEULA = 9509; + k_EMsgRemoteClientGetControllerConfig = 9510; + k_EMsgRemoteClientGetControllerConfigResponse = 9511; + k_EMsgRemoteClientStreamingEnabled = 9512; + k_EMsgClientUnlockHEVC = 9513; + k_EMsgClientUnlockHEVCResponse = 9514; + k_EMsgRemoteClientStatusRequest = 9515; + k_EMsgRemoteClientStatusResponse = 9516; + k_EMsgClientConcurrentSessionsBase = 9600; + k_EMsgClientPlayingSessionState = 9600; + k_EMsgClientKickPlayingSession = 9601; + k_EMsgClientBroadcastBase = 9700; + k_EMsgClientBroadcastInit = 9700; + k_EMsgClientBroadcastFrames = 9701; + k_EMsgClientBroadcastDisconnect = 9702; + k_EMsgClientBroadcastScreenshot = 9703; + k_EMsgClientBroadcastUploadConfig = 9704; + k_EMsgBaseClient3 = 9800; + k_EMsgClientVoiceCallPreAuthorize = 9800; + k_EMsgClientVoiceCallPreAuthorizeResponse = 9801; + k_EMsgClientServerTimestampRequest = 9802; + k_EMsgClientServerTimestampResponse = 9803; + k_EMsgClientLANP2PBase = 9900; + k_EMsgClientLANP2PRequestChunk = 9900; + k_EMsgClientLANP2PRequestChunkResponse = 9901; + k_EMsgClientLANP2PMax = 9999; + k_EMsgBaseWatchdogServer = 10000; + k_EMsgNotifyWatchdog = 10000; + k_EMsgClientSiteLicenseBase = 10100; + k_EMsgClientSiteLicenseSiteInfoNotification = 10100; + k_EMsgClientSiteLicenseCheckout = 10101; + k_EMsgClientSiteLicenseCheckoutResponse = 10102; + k_EMsgClientSiteLicenseGetAvailableSeats = 10103; + k_EMsgClientSiteLicenseGetAvailableSeatsResponse = 10104; + k_EMsgClientSiteLicenseGetContentCacheInfo = 10105; + k_EMsgClientSiteLicenseGetContentCacheInfoResponse = 10106; + k_EMsgBaseChatServer = 12000; + k_EMsgChatServerGetPendingNotificationCount = 12000; + k_EMsgChatServerGetPendingNotificationCountResponse = 12001; + k_EMsgBaseSecretServer = 12100; + k_EMsgServerSecretChanged = 12100; +} + +enum EClientPersonaStateFlag { + k_EClientPersonaStateFlagStatus = 1; + k_EClientPersonaStateFlagPlayerName = 2; + k_EClientPersonaStateFlagQueryPort = 4; + k_EClientPersonaStateFlagSourceID = 8; + k_EClientPersonaStateFlagPresence = 16; + k_EClientPersonaStateFlagLastSeen = 64; + k_EClientPersonaStateFlagUserClanRank = 128; + k_EClientPersonaStateGameExtraInfo = 256; + k_EClientPersonaStateGameDataBlob = 512; + k_EClientPersonaStateFlagClanData = 1024; + k_EClientPersonaStateFlagFacebook = 2048; + k_EClientPersonaStateFlagRichPresence = 4096; + k_EClientPersonaStateFlagBroadcast = 8192; + k_EClientPersonaStateFlagWatching = 16384; +} + +enum EMsgClanAccountFlags { + k_EMsgClanAccountFlagPublic = 1; + k_EMsgClanAccountFlagLarge = 2; + k_EMsgClanAccountFlagLocked = 4; + k_EMsgClanAccountFlagDisabled = 8; + k_EMsgClanAccountFlagOGG = 16; +} diff --git a/Protobufs/underlords/gameevents.proto b/Protobufs/underlords/gameevents.proto new file mode 100644 index 0000000..7ed708d --- /dev/null +++ b/Protobufs/underlords/gameevents.proto @@ -0,0 +1,121 @@ +import "networkbasetypes.proto"; + +option optimize_for = SPEED; +option cc_generic_services = false; + +enum EBaseGameEvents { + GE_VDebugGameSessionIDEvent = 200; + GE_PlaceDecalEvent = 201; + GE_ClearWorldDecalsEvent = 202; + GE_ClearEntityDecalsEvent = 203; + GE_ClearDecalsForSkeletonInstanceEvent = 204; + GE_Source1LegacyGameEventList = 205; + GE_Source1LegacyListenEvents = 206; + GE_Source1LegacyGameEvent = 207; + GE_SosStartSoundEvent = 208; + GE_SosStopSoundEvent = 209; + GE_SosSetSoundEventParams = 210; + GE_SosSetLibraryStackFields = 211; + GE_SosStopSoundEventHash = 212; +} + +message CMsgVDebugGameSessionIDEvent { + optional int32 clientid = 1; + optional string gamesessionid = 2; +} + +message CMsgPlaceDecalEvent { + optional .CMsgVector position = 1; + optional .CMsgVector normal = 2; + optional .CMsgVector saxis = 3; + optional uint32 decalmaterialindex = 4; + optional uint32 flags = 5; + optional fixed32 color = 6; + optional float width = 7; + optional float height = 8; + optional float depth = 9; + optional uint32 entityhandleindex = 10; + optional fixed32 skeletoninstancehash = 11; + optional int32 boneindex = 12; + optional bool translucenthit = 13; + optional bool is_adjacent = 14; +} + +message CMsgClearWorldDecalsEvent { + optional uint32 flagstoclear = 1; +} + +message CMsgClearEntityDecalsEvent { + optional uint32 flagstoclear = 1; +} + +message CMsgClearDecalsForSkeletonInstanceEvent { + optional uint32 flagstoclear = 1; + optional uint32 entityhandleindex = 2; + optional uint32 skeletoninstancehash = 3; +} + +message CMsgSource1LegacyGameEventList { + message key_t { + optional int32 type = 1; + optional string name = 2; + } + + message descriptor_t { + optional int32 eventid = 1; + optional string name = 2; + repeated .CMsgSource1LegacyGameEventList.key_t keys = 3; + } + + repeated .CMsgSource1LegacyGameEventList.descriptor_t descriptors = 1; +} + +message CMsgSource1LegacyListenEvents { + optional int32 playerslot = 1; + repeated uint32 eventarraybits = 2; +} + +message CMsgSource1LegacyGameEvent { + message key_t { + optional int32 type = 1; + optional string val_string = 2; + optional float val_float = 3; + optional int32 val_long = 4; + optional int32 val_short = 5; + optional int32 val_byte = 6; + optional bool val_bool = 7; + optional uint64 val_uint64 = 8; + } + + optional string event_name = 1; + optional int32 eventid = 2; + repeated .CMsgSource1LegacyGameEvent.key_t keys = 3; +} + +message CMsgSosStartSoundEvent { + optional int32 soundevent_guid = 1; + optional fixed32 soundevent_hash = 2; + optional int32 source_entity_index = 3; + optional int32 seed = 4; + optional bytes packed_params = 5; + optional float start_time = 6; +} + +message CMsgSosStopSoundEvent { + optional int32 soundevent_guid = 1; +} + +message CMsgSosStopSoundEventHash { + optional fixed32 soundevent_hash = 1; + optional int32 source_entity_index = 2; +} + +message CMsgSosSetSoundEventParams { + optional int32 soundevent_guid = 1; + optional bytes packed_params = 5; +} + +message CMsgSosSetLibraryStackFields { + optional fixed32 stack_hash = 1; + optional bytes packed_fields = 5; +} diff --git a/Protobufs/underlords/gametoolevents.proto b/Protobufs/underlords/gametoolevents.proto new file mode 100644 index 0000000..b464e0d --- /dev/null +++ b/Protobufs/underlords/gametoolevents.proto @@ -0,0 +1,78 @@ +import "networkbasetypes.proto"; + +option cc_generic_services = false; + +message ChangeMapToolEvent { + optional string mapname = 1; +} + +message TraceRayServerToolEvent { + optional .CMsgVector start = 1; + optional .CMsgVector end = 2; +} + +message ToolTraceRayResult { + optional bool hit = 1; + optional .CMsgVector impact = 2; + optional .CMsgVector normal = 3; + optional float distance = 4; + optional float fraction = 5; + optional int32 ehandle = 6; +} + +message SpawnEntityToolEvent { + optional bytes entity_keyvalues = 1; + optional bool clientsideentity = 2; +} + +message SpawnEntityToolEventResult { + optional int32 ehandle = 1; +} + +message DestroyEntityToolEvent { + optional int32 ehandle = 1; +} + +message DestroyAllEntitiesToolEvent { +} + +message RestartMapToolEvent { +} + +message ToolEvent_GetEntityInfo { + optional int32 ehandle = 1; + optional bool clientsideentity = 2; +} + +message ToolEvent_GetEntityInfoResult { + optional string cppclass = 1 [default = "shithead"]; + optional string classname = 2; + optional string name = 3; + optional .CMsgVector origin = 4; + optional .CMsgVector mins = 5; + optional .CMsgVector maxs = 6; +} + +message ToolEvent_GetEntityInputs { + optional int32 ehandle = 1; + optional bool clientsideentity = 2; +} + +message ToolEvent_GetEntityInputsResult { + repeated string input_list = 1; +} + +message ToolEvent_FireEntityInput { + optional int32 ehandle = 1; + optional bool clientsideentity = 2; + optional string input_name = 3; + optional string input_param = 4; +} + +message ToolEvent_SFMRecordingStateChanged { + optional bool isrecording = 1; +} + +message ToolEvent_SFMToolActiveStateChanged { + optional bool isactive = 1; +} diff --git a/Protobufs/underlords/gcsdk_gcmessages.proto b/Protobufs/underlords/gcsdk_gcmessages.proto new file mode 100644 index 0000000..b4d8595 --- /dev/null +++ b/Protobufs/underlords/gcsdk_gcmessages.proto @@ -0,0 +1,448 @@ +import "steammessages.proto"; + +option optimize_for = SPEED; +option cc_generic_services = false; + +enum ESourceEngine { + k_ESE_Source1 = 0; + k_ESE_Source2 = 1; +} + +enum PartnerAccountType { + PARTNER_NONE = 0; + PARTNER_PERFECT_WORLD = 1; + PARTNER_INVALID = 3; +} + +enum GCConnectionStatus { + GCConnectionStatus_HAVE_SESSION = 0; + GCConnectionStatus_GC_GOING_DOWN = 1; + GCConnectionStatus_NO_SESSION = 2; + GCConnectionStatus_NO_SESSION_IN_LOGON_QUEUE = 3; + GCConnectionStatus_NO_STEAM = 4; + GCConnectionStatus_SUSPENDED = 5; + GCConnectionStatus_STEAM_GOING_DOWN = 6; +} + +message CMsgSHA1Digest { + required fixed64 block1 = 1; + required fixed64 block2 = 2; + required fixed32 block3 = 3; +} + +message CMsgSOIDOwner { + optional uint32 type = 1; + optional uint64 id = 2; +} + +message CMsgSOSingleObject { + optional int32 type_id = 2; + optional bytes object_data = 3; + optional fixed64 version = 4; + optional .CMsgSOIDOwner owner_soid = 5; + optional uint32 service_id = 6; +} + +message CMsgSOMultipleObjects { + message SingleObject { + option (msgpool_soft_limit) = 256; + option (msgpool_hard_limit) = 1024; + + optional int32 type_id = 1; + optional bytes object_data = 2; + } + + repeated .CMsgSOMultipleObjects.SingleObject objects_modified = 2; + optional fixed64 version = 3; + repeated .CMsgSOMultipleObjects.SingleObject objects_added = 4; + repeated .CMsgSOMultipleObjects.SingleObject objects_removed = 5; + optional .CMsgSOIDOwner owner_soid = 6; + optional uint32 service_id = 7; +} + +message CMsgSOCacheSubscribed { + message SubscribedType { + optional int32 type_id = 1; + repeated bytes object_data = 2; + } + + repeated .CMsgSOCacheSubscribed.SubscribedType objects = 2; + optional fixed64 version = 3; + optional .CMsgSOIDOwner owner_soid = 4; + optional uint32 service_id = 5; + repeated uint32 service_list = 6; + optional fixed64 sync_version = 7; +} + +message CMsgSOCacheSubscribedUpToDate { + optional fixed64 version = 1; + optional .CMsgSOIDOwner owner_soid = 2; + optional uint32 service_id = 3; + repeated uint32 service_list = 4; + optional fixed64 sync_version = 5; +} + +message CMsgSOCacheUnsubscribed { + optional .CMsgSOIDOwner owner_soid = 2; +} + +message CMsgSOCacheSubscriptionCheck { + optional fixed64 version = 2; + optional .CMsgSOIDOwner owner_soid = 3; + optional uint32 service_id = 4; + repeated uint32 service_list = 5; + optional fixed64 sync_version = 6; +} + +message CMsgSOCacheSubscriptionRefresh { + optional .CMsgSOIDOwner owner_soid = 2; +} + +message CMsgSOCacheVersion { + optional fixed64 version = 1; +} + +message CMsgGCMultiplexMessage { + optional uint32 msgtype = 1; + optional bytes payload = 2; + repeated fixed64 steamids = 3; +} + +message CMsgGCToGCSubGCStarting { + optional uint32 dir_index = 1; +} + +message CGCToGCMsgMasterAck { + message Process { + optional uint32 dir_index = 1; + repeated uint32 type_instances = 2; + } + + optional uint32 dir_index = 1; + optional string machine_name = 3; + optional string process_name = 4; + repeated .CGCToGCMsgMasterAck.Process directory = 6; +} + +message CGCToGCMsgMasterAck_Response { + optional int32 eresult = 1 [default = 2]; +} + +message CMsgGCToGCUniverseStartup { + optional bool is_initial_startup = 1; +} + +message CMsgGCToGCUniverseStartupResponse { + optional int32 eresult = 1; +} + +message CGCToGCMsgMasterStartupComplete { + message GCInfo { + optional uint32 dir_index = 1; + optional string machine_name = 2; + } + + repeated .CGCToGCMsgMasterStartupComplete.GCInfo gc_info = 1; +} + +message CGCToGCMsgRouted { + optional uint32 msg_type = 1; + optional fixed64 sender_id = 2; + optional bytes net_message = 3; +} + +message CGCToGCMsgRoutedReply { + optional uint32 msg_type = 1; + optional bytes net_message = 2; +} + +message CMsgGCUpdateSubGCSessionInfo { + message CMsgUpdate { + optional fixed64 steamid = 1; + optional fixed32 ip = 2; + optional bool trusted = 3; + } + + repeated .CMsgGCUpdateSubGCSessionInfo.CMsgUpdate updates = 1; +} + +message CMsgGCRequestSubGCSessionInfo { + optional fixed64 steamid = 1; +} + +message CMsgGCRequestSubGCSessionInfoResponse { + optional fixed32 ip = 1; + optional bool trusted = 2; + optional uint32 port = 3; + optional bool success = 4; +} + +message CMsgSOCacheHaveVersion { + optional .CMsgSOIDOwner soid = 1; + optional fixed64 version = 2; + optional uint32 service_id = 3; + optional uint32 cached_file_version = 4; +} + +message CMsgClientHello { + optional uint32 version = 1; + repeated .CMsgSOCacheHaveVersion socache_have_versions = 2; + optional uint32 client_session_need = 3; + optional .PartnerAccountType client_launcher = 4 [default = PARTNER_NONE]; + optional string secret_key = 5; + optional uint32 client_language = 6; + optional .ESourceEngine engine = 7 [default = k_ESE_Source1]; + optional bytes steamdatagram_login = 8; + optional uint32 platform_id = 9; + optional bytes game_msg = 10; + optional int32 os_type = 11; + optional uint32 render_system = 12; + optional uint32 render_system_req = 13; + optional uint32 screen_width = 14; + optional uint32 screen_height = 15; + optional uint32 screen_refresh = 16; + optional uint32 render_width = 17; + optional uint32 render_height = 18; + optional uint32 swap_width = 19; + optional uint32 swap_height = 20; +} + +message CMsgClientWelcome { + message Location { + optional float latitude = 1; + optional float longitude = 2; + optional string country = 3; + } + + optional uint32 version = 1; + optional bytes game_data = 2; + repeated .CMsgSOCacheSubscribed outofdate_subscribed_caches = 3; + repeated .CMsgSOCacheSubscriptionCheck uptodate_subscribed_caches = 4; + optional .CMsgClientWelcome.Location location = 5; + optional bytes save_game_key = 6; + optional fixed32 item_schema_crc = 7; + optional string items_game_url = 8; + optional uint32 gc_socache_file_version = 9; + optional string txn_country_code = 10; +} + +message CMsgConnectionStatus { + optional .GCConnectionStatus status = 1 [default = GCConnectionStatus_HAVE_SESSION]; + optional uint32 client_session_need = 2; + optional int32 queue_position = 3; + optional int32 queue_size = 4; + optional int32 wait_seconds = 5; + optional int32 estimated_wait_seconds_remaining = 6; +} + +message CMsgGCToGCSOCacheSubscribe { + message CMsgHaveVersions { + optional uint32 service_id = 1; + optional uint64 version = 2; + } + + optional fixed64 subscriber = 1; + optional fixed64 subscribe_to_id = 2; + optional fixed64 sync_version = 3; + repeated .CMsgGCToGCSOCacheSubscribe.CMsgHaveVersions have_versions = 4; + optional uint32 subscribe_to_type = 5; +} + +message CMsgGCToGCSOCacheUnsubscribe { + optional fixed64 subscriber = 1; + optional fixed64 unsubscribe_from_id = 2; + optional uint32 unsubscribe_from_type = 3; +} + +message CMsgGCClientPing { +} + +message CMsgGCToGCForwardAccountDetails { + optional fixed64 steamid = 1; + optional .CGCSystemMsg_GetAccountDetails_Response account_details = 2; + optional uint32 age_seconds = 3; +} + +message CMsgGCToGCLoadSessionSOCache { + optional uint32 account_id = 1; + optional .CMsgGCToGCForwardAccountDetails forward_account_details = 2; +} + +message CMsgGCToGCLoadSessionSOCacheResponse { +} + +message CMsgGCToGCUpdateSessionStats { + optional uint32 user_sessions = 1; + optional uint32 server_sessions = 2; + optional bool in_logon_surge = 3; +} + +message CMsgGCToClientRequestDropped { +} + +message CWorkshop_PopulateItemDescriptions_Request { + message SingleItemDescription { + optional uint32 gameitemid = 1; + optional string item_description = 2; + } + + message ItemDescriptionsLanguageBlock { + optional string language = 1; + repeated .CWorkshop_PopulateItemDescriptions_Request.SingleItemDescription descriptions = 2; + } + + optional uint32 appid = 1; + repeated .CWorkshop_PopulateItemDescriptions_Request.ItemDescriptionsLanguageBlock languages = 2; +} + +message CWorkshop_GetContributors_Request { + optional uint32 appid = 1; + optional uint32 gameitemid = 2; +} + +message CWorkshop_GetContributors_Response { + repeated fixed64 contributors = 1; +} + +message CWorkshop_SetItemPaymentRules_Request { + message WorkshopItemPaymentRule { + optional uint64 workshop_file_id = 1; + optional float revenue_percentage = 2; + optional string rule_description = 3; + optional uint32 rule_type = 4; + } + + message PartnerItemPaymentRule { + optional uint32 account_id = 1; + optional float revenue_percentage = 2; + optional string rule_description = 3; + } + + optional uint32 appid = 1; + optional uint32 gameitemid = 2; + repeated .CWorkshop_SetItemPaymentRules_Request.WorkshopItemPaymentRule associated_workshop_files = 3; + repeated .CWorkshop_SetItemPaymentRules_Request.PartnerItemPaymentRule partner_accounts = 4; + optional bool validate_only = 5; + optional bool make_workshop_files_subscribable = 6; +} + +message CWorkshop_SetItemPaymentRules_Response { + repeated string validation_errors = 1; +} + +message CCommunity_ClanAnnouncementInfo { + optional uint64 gid = 1; + optional uint64 clanid = 2; + optional uint64 posterid = 3; + optional string headline = 4; + optional uint32 posttime = 5; + optional uint32 updatetime = 6; + optional string body = 7; + optional int32 commentcount = 8; + repeated string tags = 9; + optional int32 language = 10; + optional bool hidden = 11; + optional fixed64 forum_topic_id = 12; +} + +message CCommunity_GetClanAnnouncements_Request { + optional uint64 steamid = 1; + optional uint32 offset = 2; + optional uint32 count = 3; + optional uint32 maxchars = 4; + optional bool strip_html = 5; + repeated string required_tags = 6; + optional bool require_no_tags = 7; + repeated uint32 language_preference = 8; + optional bool hidden_only = 9; + optional bool only_gid = 10; + optional uint32 rtime_oldest_date = 11; + optional bool include_hidden = 12; + optional bool include_partner_events = 13; +} + +message CCommunity_GetClanAnnouncements_Response { + optional uint32 maxchars = 1; + optional bool strip_html = 2; + repeated .CCommunity_ClanAnnouncementInfo announcements = 3; +} + +message CBroadcast_PostGameDataFrame_Request { + optional uint32 appid = 1; + optional fixed64 steamid = 2; + optional fixed64 broadcast_id = 3; + optional bytes frame_data = 4; +} + +message CMsgSerializedSOCache { + message TypeCache { + optional uint32 type = 1; + repeated bytes objects = 2; + optional uint32 service_id = 3; + } + + message Cache { + message Version { + optional uint32 service = 1; + optional uint64 version = 2; + } + + optional uint32 type = 1; + optional uint64 id = 2; + repeated .CMsgSerializedSOCache.Cache.Version versions = 3; + repeated .CMsgSerializedSOCache.TypeCache type_caches = 4; + } + + optional uint32 file_version = 1; + repeated .CMsgSerializedSOCache.Cache caches = 2; + optional uint32 gc_socache_file_version = 3; +} + +message CMsgGCToClientPollConvarRequest { + optional string convar_name = 1; + optional uint32 poll_id = 2; +} + +message CMsgGCToClientPollConvarResponse { + optional uint32 poll_id = 1; + optional string convar_value = 2; +} + +message CGCMsgCompressedMsgToClient { + optional uint32 msg_id = 1; + optional bytes compressed_msg = 2; +} + +message CMsgGCToGCMasterBroadcastMessage { + optional uint32 users_per_second = 1; + optional bool send_to_users = 2; + optional bool send_to_servers = 3; + optional uint32 msg_id = 4; + optional bytes msg_data = 5; +} + +message CMsgGCToGCMasterSubscribeToCache { + optional uint32 soid_type = 1; + optional fixed64 soid_id = 2; + repeated uint32 account_ids = 3; + repeated fixed64 steam_ids = 4; +} + +message CMsgGCToGCMasterSubscribeToCacheResponse { +} + +message CMsgGCToGCMasterSubscribeToCacheAsync { + optional .CMsgGCToGCMasterSubscribeToCache subscribe_msg = 1; +} + +message CMsgGCToGCMasterUnsubscribeFromCache { + optional uint32 soid_type = 1; + optional fixed64 soid_id = 2; + repeated uint32 account_ids = 3; + repeated fixed64 steam_ids = 4; +} + +message CMsgGCToGCMasterDestroyCache { + optional uint32 soid_type = 1; + optional fixed64 soid_id = 2; +} diff --git a/Protobufs/underlords/gcsystemmsgs.proto b/Protobufs/underlords/gcsystemmsgs.proto new file mode 100644 index 0000000..ca1070d --- /dev/null +++ b/Protobufs/underlords/gcsystemmsgs.proto @@ -0,0 +1,29 @@ +option optimize_for = SPEED; +option cc_generic_services = false; + +enum ESOMsg { + k_ESOMsg_Create = 21; + k_ESOMsg_Update = 22; + k_ESOMsg_Destroy = 23; + k_ESOMsg_CacheSubscribed = 24; + k_ESOMsg_CacheUnsubscribed = 25; + k_ESOMsg_UpdateMultiple = 26; + k_ESOMsg_CacheSubscriptionRefresh = 28; + k_ESOMsg_CacheSubscribedUpToDate = 29; +} + +enum EGCBaseClientMsg { + k_EMsgGCPingRequest = 3001; + k_EMsgGCPingResponse = 3002; + k_EMsgGCToClientPollConvarRequest = 3003; + k_EMsgGCToClientPollConvarResponse = 3004; + k_EMsgGCCompressedMsgToClient = 3005; + k_EMsgGCCompressedMsgToClient_Legacy = 523; + k_EMsgGCToClientRequestDropped = 3006; + k_EMsgGCClientWelcome = 4004; + k_EMsgGCServerWelcome = 4005; + k_EMsgGCClientHello = 4006; + k_EMsgGCServerHello = 4007; + k_EMsgGCClientConnectionStatus = 4009; + k_EMsgGCServerConnectionStatus = 4010; +} diff --git a/Protobufs/underlords/netmessages.proto b/Protobufs/underlords/netmessages.proto new file mode 100644 index 0000000..b47abce --- /dev/null +++ b/Protobufs/underlords/netmessages.proto @@ -0,0 +1,553 @@ +import "networkbasetypes.proto"; + +option cc_generic_services = false; + +enum CLC_Messages { + clc_ClientInfo = 20; + clc_Move = 21; + clc_VoiceData = 22; + clc_BaselineAck = 23; + clc_ListenEvents = 24; + clc_RespondCvarValue = 25; + clc_FileCRCCheck = 26; + clc_LoadingProgress = 27; + clc_SplitPlayerConnect = 28; + clc_ClientMessage = 29; + clc_SplitPlayerDisconnect = 30; + clc_ServerStatus = 31; + clc_ServerPing = 32; + clc_RequestPause = 33; + clc_CmdKeyValues = 34; +} + +enum SVC_Messages { + svc_ServerInfo = 40; + svc_FlattenedSerializer = 41; + svc_ClassInfo = 42; + svc_SetPause = 43; + svc_CreateStringTable = 44; + svc_UpdateStringTable = 45; + svc_VoiceInit = 46; + svc_VoiceData = 47; + svc_Print = 48; + svc_Sounds = 49; + svc_SetView = 50; + svc_ClearAllStringTables = 51; + svc_CmdKeyValues = 52; + svc_BSPDecal = 53; + svc_SplitScreen = 54; + svc_PacketEntities = 55; + svc_Prefetch = 56; + svc_Menu = 57; + svc_GetCvarValue = 58; + svc_StopSound = 59; + svc_PeerList = 60; + svc_PacketReliable = 61; + svc_HLTVStatus = 62; + svc_ServerSteamID = 63; + svc_FullFrameSplit = 70; +} + +enum VoiceDataFormat_t { + VOICEDATA_FORMAT_STEAM = 0; + VOICEDATA_FORMAT_ENGINE = 1; +} + +enum RequestPause_t { + RP_PAUSE = 0; + RP_UNPAUSE = 1; + RP_TOGGLEPAUSE = 2; +} + +enum PrefetchType { + PFT_SOUND = 0; +} + +enum ESplitScreenMessageType { + MSG_SPLITSCREEN_ADDUSER = 0; + MSG_SPLITSCREEN_REMOVEUSER = 1; +} + +enum EQueryCvarValueStatus { + eQueryCvarValueStatus_ValueIntact = 0; + eQueryCvarValueStatus_CvarNotFound = 1; + eQueryCvarValueStatus_NotACvar = 2; + eQueryCvarValueStatus_CvarProtected = 3; +} + +enum DIALOG_TYPE { + DIALOG_MSG = 0; + DIALOG_MENU = 1; + DIALOG_TEXT = 2; + DIALOG_ENTRY = 3; + DIALOG_ASKCONNECT = 4; +} + +enum SVC_Messages_LowFrequency { + svc_dummy = 600; +} + +enum Bidirectional_Messages { + bi_RebroadcastGameEvent = 16; + bi_RebroadcastSource = 17; + bi_GameEvent = 18; +} + +enum Bidirectional_Messages_LowFrequency { + bi_RelayInfo = 700; + bi_RelayPacket = 701; +} + +message CCLCMsg_ClientInfo { + optional fixed32 send_table_crc = 1; + optional uint32 server_count = 2; + optional bool is_hltv = 3; + optional bool is_replay = 4; + optional uint32 friends_id = 5; + optional string friends_name = 6; +} + +message CCLCMsg_Move { + optional bytes data = 3; + optional uint32 command_number = 4; + optional uint32 num_commands = 5; +} + +message CMsgVoiceAudio { + optional .VoiceDataFormat_t format = 1 [default = VOICEDATA_FORMAT_STEAM]; + optional bytes voice_data = 2; + optional int32 sequence_bytes = 3; + optional uint32 section_number = 4; + optional uint32 sample_rate = 5; + optional uint32 uncompressed_sample_offset = 6; +} + +message CCLCMsg_VoiceData { + optional .CMsgVoiceAudio audio = 1; + optional fixed64 xuid = 2; + optional uint32 tick = 3; +} + +message CCLCMsg_BaselineAck { + optional int32 baseline_tick = 1; + optional int32 baseline_nr = 2; +} + +message CCLCMsg_ListenEvents { + repeated fixed32 event_mask = 1; +} + +message CCLCMsg_RespondCvarValue { + optional int32 cookie = 1; + optional int32 status_code = 2; + optional string name = 3; + optional string value = 4; +} + +message CCLCMsg_FileCRCCheck { + optional int32 code_path = 1; + optional string path = 2; + optional int32 code_filename = 3; + optional string filename = 4; + optional fixed32 crc = 5; +} + +message CCLCMsg_LoadingProgress { + optional int32 progress = 1; +} + +message CCLCMsg_SplitPlayerConnect { + optional string playername = 1; +} + +message CCLCMsg_ClientMessage { + optional int32 msg_type = 1; + optional bytes data = 2; +} + +message CCLCMsg_SplitPlayerDisconnect { + optional int32 slot = 1; +} + +message CCLCMsg_ServerStatus { + optional bool simplified = 1; +} + +message CCLCMsg_ServerPing { +} + +message CCLCMsg_RequestPause { + optional .RequestPause_t pause_type = 1 [default = RP_PAUSE]; + optional int32 pause_group = 2; +} + +message CCLCMsg_CmdKeyValues { + optional bytes data = 1; +} + +message CSVCMsg_ServerInfo { + optional int32 protocol = 1; + optional int32 server_count = 2; + optional bool is_dedicated = 3; + optional bool is_hltv = 4; + optional bool is_replay = 5; + optional int32 c_os = 6; + optional int32 max_clients = 10; + optional int32 max_classes = 11; + optional int32 player_slot = 12; + optional float tick_interval = 13; + optional string game_dir = 14; + optional string map_name = 15; + optional string sky_name = 16; + optional string host_name = 17; + optional string addon_name = 18; + optional .CSVCMsg_GameSessionConfiguration game_session_config = 19; + optional bytes game_session_manifest = 20; +} + +message CSVCMsg_ClassInfo { + message class_t { + optional int32 class_id = 1; + optional string data_table_name = 2; + optional string class_name = 3; + } + + optional bool create_on_client = 1; + repeated .CSVCMsg_ClassInfo.class_t classes = 2; +} + +message CSVCMsg_SetPause { + optional bool paused = 1; +} + +message CSVCMsg_VoiceInit { + optional int32 quality = 1; + optional string codec = 2; + optional int32 version = 3 [default = 0]; +} + +message CSVCMsg_Print { + optional string text = 1; +} + +message CSVCMsg_Sounds { + message sounddata_t { + optional sint32 origin_x = 1; + optional sint32 origin_y = 2; + optional sint32 origin_z = 3; + optional uint32 volume = 4; + optional float delay_value = 5; + optional int32 sequence_number = 6; + optional int32 entity_index = 7; + optional int32 channel = 8; + optional int32 pitch = 9; + optional int32 flags = 10; + optional uint32 sound_num = 11; + optional fixed32 sound_num_handle = 12; + optional int32 speaker_entity = 13; + optional int32 random_seed = 14; + optional int32 sound_level = 15; + optional bool is_sentence = 16; + optional bool is_ambient = 17; + optional uint32 guid = 18; + optional fixed64 sound_resource_id = 19; + } + + optional bool reliable_sound = 1; + repeated .CSVCMsg_Sounds.sounddata_t sounds = 2; +} + +message CSVCMsg_Prefetch { + optional int32 sound_index = 1; + optional .PrefetchType resource_type = 2 [default = PFT_SOUND]; +} + +message CSVCMsg_SetView { + optional int32 entity_index = 1; + optional int32 slot = 2; +} + +message CSVCMsg_FixAngle { + optional bool relative = 1; + optional .CMsgQAngle angle = 2; +} + +message CSVCMsg_CrosshairAngle { + optional .CMsgQAngle angle = 1; +} + +message CSVCMsg_BSPDecal { + optional .CMsgVector pos = 1; + optional int32 decal_texture_index = 2; + optional int32 entity_index = 3; + optional int32 model_index = 4; + optional bool low_priority = 5; +} + +message CSVCMsg_SplitScreen { + optional .ESplitScreenMessageType type = 1 [default = MSG_SPLITSCREEN_ADDUSER]; + optional int32 slot = 2; + optional int32 player_index = 3; +} + +message CSVCMsg_GetCvarValue { + optional int32 cookie = 1; + optional string cvar_name = 2; +} + +message CSVCMsg_Menu { + optional int32 dialog_type = 1; + optional bytes menu_key_values = 2; +} + +message CSVCMsg_SendTable { + message sendprop_t { + optional int32 type = 1; + optional string var_name = 2; + optional int32 flags = 3; + optional int32 priority = 4; + optional string dt_name = 5; + optional int32 num_elements = 6; + optional float low_value = 7; + optional float high_value = 8; + optional int32 num_bits = 9; + } + + optional bool is_end = 1; + optional string net_table_name = 2; + optional bool needs_decoder = 3; + repeated .CSVCMsg_SendTable.sendprop_t props = 4; +} + +message CSVCMsg_GameEventList { + message key_t { + optional int32 type = 1; + optional string name = 2; + } + + message descriptor_t { + optional int32 eventid = 1; + optional string name = 2; + repeated .CSVCMsg_GameEventList.key_t keys = 3; + } + + repeated .CSVCMsg_GameEventList.descriptor_t descriptors = 1; +} + +message CSVCMsg_PacketEntities { + optional int32 max_entries = 1; + optional int32 updated_entries = 2; + optional bool is_delta = 3; + optional bool update_baseline = 4; + optional int32 baseline = 5; + optional int32 delta_from = 6; + optional bytes entity_data = 7; + optional bool pending_full_frame = 8; + optional uint32 active_spawngroup_handle = 9; + optional uint32 max_spawngroup_creationsequence = 10; + optional uint32 last_cmd_number = 11; + optional uint32 server_tick = 12; + optional bytes serialized_entities = 13; +} + +message CSVCMsg_TempEntities { + optional bool reliable = 1; + optional int32 num_entries = 2; + optional bytes entity_data = 3; +} + +message CSVCMsg_CreateStringTable { + optional string name = 1; + optional int32 num_entries = 2; + optional bool user_data_fixed_size = 3; + optional int32 user_data_size = 4; + optional int32 user_data_size_bits = 5; + optional int32 flags = 6; + optional bytes string_data = 7; + optional int32 uncompressed_size = 8; + optional bool data_compressed = 9; +} + +message CSVCMsg_UpdateStringTable { + optional int32 table_id = 1; + optional int32 num_changed_entries = 2; + optional bytes string_data = 3; +} + +message CSVCMsg_VoiceData { + optional .CMsgVoiceAudio audio = 1; + optional int32 client = 2; + optional bool proximity = 3; + optional fixed64 xuid = 4; + optional int32 audible_mask = 5; + optional uint32 tick = 6; +} + +message CSVCMsg_PacketReliable { + optional int32 tick = 1; + optional int32 messagessize = 2; + optional bool state = 3; +} + +message CSVCMsg_FullFrameSplit { + optional int32 tick = 1; + optional int32 section = 2; + optional int32 total = 3; + optional bytes data = 4; +} + +message CSVCMsg_HLTVStatus { + optional string master = 1; + optional int32 clients = 2; + optional int32 slots = 3; + optional int32 proxies = 4; +} + +message CSVCMsg_ServerSteamID { + optional uint64 steam_id = 1; +} + +message CSVCMsg_CmdKeyValues { + optional bytes data = 1; +} + +message CMsgIPCAddress { + optional fixed64 computer_guid = 1; + optional uint32 process_id = 2; +} + +message CMsgServerPeer { + optional int32 player_slot = 1; + optional fixed64 steamid = 2; + optional .CMsgIPCAddress ipc = 3; + optional bool they_hear_you = 4; + optional bool you_hear_them = 5; + optional bool is_listenserver_host = 6; +} + +message CSVCMsg_PeerList { + repeated .CMsgServerPeer peer = 1; +} + +message CSVCMsg_ClearAllStringTables { + optional string mapname = 1; +} + +message ProtoFlattenedSerializerField_t { + optional int32 var_type_sym = 1; + optional int32 var_name_sym = 2; + optional int32 bit_count = 3; + optional float low_value = 4; + optional float high_value = 5; + optional int32 encode_flags = 6; + optional int32 field_serializer_name_sym = 7; + optional int32 field_serializer_version = 8; + optional int32 send_node_sym = 9; + optional int32 var_encoder_sym = 10; +} + +message ProtoFlattenedSerializer_t { + optional int32 serializer_name_sym = 1; + optional int32 serializer_version = 2; + repeated int32 fields_index = 3; +} + +message CSVCMsg_FlattenedSerializer { + repeated .ProtoFlattenedSerializer_t serializers = 1; + repeated string symbols = 2; + repeated .ProtoFlattenedSerializerField_t fields = 3; +} + +message CSVCMsg_StopSound { + optional fixed32 guid = 1; +} + +message CBidirMsg_RebroadcastGameEvent { + optional bool posttoserver = 1; + optional int32 buftype = 2; + optional uint32 clientbitcount = 3; + optional uint64 receivingclients = 4; +} + +message CBidirMsg_RebroadcastSource { + optional int32 eventsource = 1; +} + +message SerializedNetAddress_t { + required bytes serializedAddress = 1; +} + +message CBidirMsg_RelayInfo { + enum Operation_t { + RIO_REQUEST_RELAY = 0; + RIO_WILL_RELAY = 1; + RIO_NO_ROUTE = 2; + RIO_REJECT_RELAY = 3; + RIO_ESTABLISH_CONNECTION = 4; + } + + required .CBidirMsg_RelayInfo.Operation_t operation = 1 [default = RIO_REQUEST_RELAY]; + optional .SerializedNetAddress_t serializedTargetAddress = 2; + optional uint32 additionalHops = 3; +} + +message SignedPayload_t { + required bytes payloadData = 1; + required uint32 signature = 2; + required bool bPayloadEncrypted = 3; +} + +message CBidirMsg_RelayPacket { + message SignedDestinationAddress_t { + required .SerializedNetAddress_t serializedAddr = 1; + required uint32 signature = 2; + optional bytes encryptedPayloadKey = 3; + } + + required uint32 prevhopcount = 1; + required .SerializedNetAddress_t originalSender = 2; + required .SignedPayload_t signedPayload = 3; + repeated .CBidirMsg_RelayPacket.SignedDestinationAddress_t recipientList = 4; +} + +message CMsgServerNetworkStats { + message Port { + optional int32 port = 1; + optional string name = 2; + } + + message Player { + optional uint64 steamid = 1; + optional string remote_addr = 2; + optional int32 ping_stddev_ms = 3; + optional int32 ping_avg_ms = 4; + optional float packet_loss_pct = 5; + optional bool is_bot = 6; + } + + optional bool dedicated = 1; + optional int32 cpu_usage = 2; + optional int32 memory_used_mb = 3; + optional int32 memory_free_mb = 4; + optional int32 uptime = 5; + optional int32 spawn_count = 6; + optional int32 num_clients = 8; + optional int32 num_bots = 9; + optional int32 num_spectators = 10; + optional int32 num_tv_relays = 11; + optional float fps = 12; + repeated .CMsgServerNetworkStats.Port ports = 17; + optional float avg_latency_out = 18; + optional float avg_latency_in = 19; + optional float avg_packets_out = 20; + optional float avg_packets_in = 21; + optional float avg_loss_out = 22; + optional float avg_loss_in = 23; + optional float avg_data_out = 24; + optional float avg_data_in = 25; + optional uint64 total_data_in = 26; + optional uint64 total_packets_in = 27; + optional uint64 total_data_out = 28; + optional uint64 total_packets_out = 29; + repeated .CMsgServerNetworkStats.Player players = 30; +} diff --git a/Protobufs/underlords/network_connection.proto b/Protobufs/underlords/network_connection.proto new file mode 100644 index 0000000..eaf5cd3 --- /dev/null +++ b/Protobufs/underlords/network_connection.proto @@ -0,0 +1,117 @@ +import "google/protobuf/descriptor.proto"; + +option cc_generic_services = false; + +extend .google.protobuf.EnumValueOptions { + optional string network_connection_token = 50500; +} + +enum ENetworkDisconnectionReason { + NETWORK_DISCONNECT_INVALID = 0; + NETWORK_DISCONNECT_SHUTDOWN = 1; + NETWORK_DISCONNECT_DISCONNECT_BY_USER = 2 [(network_connection_token) = "#GameUI_Disconnect_User"]; + NETWORK_DISCONNECT_DISCONNECT_BY_SERVER = 3 [(network_connection_token) = "#GameUI_Disconnect_Server"]; + NETWORK_DISCONNECT_LOST = 4 [(network_connection_token) = "#GameUI_Disconnect_ConnectionLost"]; + NETWORK_DISCONNECT_OVERFLOW = 5 [(network_connection_token) = "#GameUI_Disconnect_ConnectionOverflow"]; + NETWORK_DISCONNECT_STEAM_BANNED = 6 [(network_connection_token) = "#GameUI_Disconnect_SteamIDBanned"]; + NETWORK_DISCONNECT_STEAM_INUSE = 7 [(network_connection_token) = "#GameUI_Disconnect_SteamIDInUse"]; + NETWORK_DISCONNECT_STEAM_TICKET = 8 [(network_connection_token) = "#GameUI_Disconnect_SteamTicket"]; + NETWORK_DISCONNECT_STEAM_LOGON = 9 [(network_connection_token) = "#GameUI_Disconnect_SteamLogon"]; + NETWORK_DISCONNECT_STEAM_AUTHCANCELLED = 10 [(network_connection_token) = "#GameUI_Disconnect_SteamLogon"]; + NETWORK_DISCONNECT_STEAM_AUTHALREADYUSED = 11 [(network_connection_token) = "#GameUI_Disconnect_SteamLogon"]; + NETWORK_DISCONNECT_STEAM_AUTHINVALID = 12 [(network_connection_token) = "#GameUI_Disconnect_SteamLogon"]; + NETWORK_DISCONNECT_STEAM_VACBANSTATE = 13 [(network_connection_token) = "#GameUI_Disconnect_SteamVAC"]; + NETWORK_DISCONNECT_STEAM_LOGGED_IN_ELSEWHERE = 14 [(network_connection_token) = "#GameUI_Disconnect_SteamInUse"]; + NETWORK_DISCONNECT_STEAM_VAC_CHECK_TIMEDOUT = 15 [(network_connection_token) = "#GameUI_Disconnect_SteamTimeOut"]; + NETWORK_DISCONNECT_STEAM_DROPPED = 16 [(network_connection_token) = "#GameUI_Disconnect_SteamDropped"]; + NETWORK_DISCONNECT_STEAM_OWNERSHIP = 17 [(network_connection_token) = "#GameUI_Disconnect_SteamOwnership"]; + NETWORK_DISCONNECT_SERVERINFO_OVERFLOW = 18 [(network_connection_token) = "#GameUI_Disconnect_ServerInfoOverflow"]; + NETWORK_DISCONNECT_TICKMSG_OVERFLOW = 19 [(network_connection_token) = "#GameUI_Disconnect_TickMessage"]; + NETWORK_DISCONNECT_STRINGTABLEMSG_OVERFLOW = 20 [(network_connection_token) = "#GameUI_Disconnect_StringTableMessage"]; + NETWORK_DISCONNECT_DELTAENTMSG_OVERFLOW = 21 [(network_connection_token) = "#GameUI_Disconnect_DeltaEntMessage"]; + NETWORK_DISCONNECT_TEMPENTMSG_OVERFLOW = 22 [(network_connection_token) = "#GameUI_Disconnect_TempEntMessage"]; + NETWORK_DISCONNECT_SOUNDSMSG_OVERFLOW = 23 [(network_connection_token) = "#GameUI_Disconnect_SoundsMessage"]; + NETWORK_DISCONNECT_SNAPSHOTOVERFLOW = 24 [(network_connection_token) = "#GameUI_Disconnect_SnapshotOverflow"]; + NETWORK_DISCONNECT_SNAPSHOTERROR = 25 [(network_connection_token) = "#GameUI_Disconnect_SnapshotError"]; + NETWORK_DISCONNECT_RELIABLEOVERFLOW = 26 [(network_connection_token) = "#GameUI_Disconnect_ReliableOverflow"]; + NETWORK_DISCONNECT_BADDELTATICK = 27 [(network_connection_token) = "#GameUI_Disconnect_BadClientDeltaTick"]; + NETWORK_DISCONNECT_NOMORESPLITS = 28 [(network_connection_token) = "#GameUI_Disconnect_NoMoreSplits"]; + NETWORK_DISCONNECT_TIMEDOUT = 29 [(network_connection_token) = "#GameUI_Disconnect_TimedOut"]; + NETWORK_DISCONNECT_DISCONNECTED = 30 [(network_connection_token) = "#GameUI_Disconnect_Disconnected"]; + NETWORK_DISCONNECT_LEAVINGSPLIT = 31 [(network_connection_token) = "#GameUI_Disconnect_LeavingSplit"]; + NETWORK_DISCONNECT_DIFFERENTCLASSTABLES = 32 [(network_connection_token) = "#GameUI_Disconnect_DifferentClassTables"]; + NETWORK_DISCONNECT_BADRELAYPASSWORD = 33 [(network_connection_token) = "#GameUI_Disconnect_BadRelayPassword"]; + NETWORK_DISCONNECT_BADSPECTATORPASSWORD = 34 [(network_connection_token) = "#GameUI_Disconnect_BadSpectatorPassword"]; + NETWORK_DISCONNECT_HLTVRESTRICTED = 35 [(network_connection_token) = "#GameUI_Disconnect_HLTVRestricted"]; + NETWORK_DISCONNECT_NOSPECTATORS = 36 [(network_connection_token) = "#GameUI_Disconnect_NoSpectators"]; + NETWORK_DISCONNECT_HLTVUNAVAILABLE = 37 [(network_connection_token) = "#GameUI_Disconnect_HLTVUnavailable"]; + NETWORK_DISCONNECT_HLTVSTOP = 38 [(network_connection_token) = "#GameUI_Disconnect_HLTVStop"]; + NETWORK_DISCONNECT_KICKED = 39 [(network_connection_token) = "#GameUI_Disconnect_Kicked"]; + NETWORK_DISCONNECT_BANADDED = 40 [(network_connection_token) = "#GameUI_Disconnect_BanAdded"]; + NETWORK_DISCONNECT_KICKBANADDED = 41 [(network_connection_token) = "#GameUI_Disconnect_KickBanAdded"]; + NETWORK_DISCONNECT_HLTVDIRECT = 42 [(network_connection_token) = "#GameUI_Disconnect_HLTVDirect"]; + NETWORK_DISCONNECT_PURESERVER_CLIENTEXTRA = 43 [(network_connection_token) = "#GameUI_Disconnect_PureServer_ClientExtra"]; + NETWORK_DISCONNECT_PURESERVER_MISMATCH = 44 [(network_connection_token) = "#GameUI_Disconnect_PureServer_Mismatch"]; + NETWORK_DISCONNECT_USERCMD = 45 [(network_connection_token) = "#GameUI_Disconnect_UserCmd"]; + NETWORK_DISCONNECT_REJECTED_BY_GAME = 46 [(network_connection_token) = "#GameUI_Disconnect_RejectedByGame"]; + NETWORK_DISCONNECT_MESSAGE_PARSE_ERROR = 47 [(network_connection_token) = "#GameUI_Disconnect_MessageParseError"]; + NETWORK_DISCONNECT_INVALID_MESSAGE_ERROR = 48 [(network_connection_token) = "#GameUI_Disconnect_InvalidMessageError"]; + NETWORK_DISCONNECT_BAD_SERVER_PASSWORD = 49 [(network_connection_token) = "#GameUI_Disconnect_BadServerPassword"]; + NETWORK_DISCONNECT_DIRECT_CONNECT_RESERVATION = 50; + NETWORK_DISCONNECT_CONNECTION_FAILURE = 51 [(network_connection_token) = "#GameUI_Disconnect_ConnectionFailure"]; + NETWORK_DISCONNECT_NO_PEER_GROUP_HANDLERS = 52 [(network_connection_token) = "#GameUI_Disconnect_NoPeerGroupHandlers"]; + NETWORK_DISCONNECT_RECONNECTION = 53; + NETWORK_DISCONNECT_LOOPSHUTDOWN = 54 [(network_connection_token) = "#GameUI_Disconnect_LoopShutdown"]; + NETWORK_DISCONNECT_LOOPDEACTIVATE = 55 [(network_connection_token) = "#GameUI_Disconnect_LoopDeactivate"]; + NETWORK_DISCONNECT_HOST_ENDGAME = 56 [(network_connection_token) = "#GameUI_Disconnect_Host_EndGame"]; + NETWORK_DISCONNECT_LOOP_LEVELLOAD_ACTIVATE = 57 [(network_connection_token) = "#GameUI_Disconnect_LoopLevelLoadActivate"]; + NETWORK_DISCONNECT_CREATE_SERVER_FAILED = 58 [(network_connection_token) = "#GameUI_Disconnect_CreateServerFailed"]; + NETWORK_DISCONNECT_EXITING = 59 [(network_connection_token) = "#GameUI_Disconnect_ExitingEngine"]; + NETWORK_DISCONNECT_REQUEST_HOSTSTATE_IDLE = 60 [(network_connection_token) = "#GameUI_Disconnect_Request_HSIdle"]; + NETWORK_DISCONNECT_REQUEST_HOSTSTATE_HLTVRELAY = 61 [(network_connection_token) = "#GameUI_Disconnect_Request_HLTVRelay"]; + NETWORK_DISCONNECT_CLIENT_CONSISTENCY_FAIL = 62 [(network_connection_token) = "#GameUI_ClientConsistencyFail"]; + NETWORK_DISCONNECT_CLIENT_UNABLE_TO_CRC_MAP = 63 [(network_connection_token) = "#GameUI_ClientUnableToCRCMap"]; + NETWORK_DISCONNECT_CLIENT_NO_MAP = 64 [(network_connection_token) = "#GameUI_ClientNoMap"]; + NETWORK_DISCONNECT_CLIENT_DIFFERENT_MAP = 65 [(network_connection_token) = "#GameUI_ClientDifferentMap"]; + NETWORK_DISCONNECT_SERVER_REQUIRES_STEAM = 66 [(network_connection_token) = "#GameUI_ServerRequireSteams"]; + NETWORK_DISCONNECT_STEAM_DENY_MISC = 67 [(network_connection_token) = "#GameUI_Disconnect_SteamDeny_Misc"]; + NETWORK_DISCONNECT_STEAM_DENY_BAD_ANTI_CHEAT = 68 [(network_connection_token) = "#GameUI_Disconnect_SteamDeny_BadAntiCheat"]; + NETWORK_DISCONNECT_SERVER_SHUTDOWN = 69 [(network_connection_token) = "#GameUI_Disconnect_ServerShutdown"]; + NETWORK_DISCONNECT_SPLITPACKET_SEND_OVERFLOW = 70 [(network_connection_token) = "#GameUI_Disconnect_Splitpacket_Send_Overflow"]; + NETWORK_DISCONNECT_REPLAY_INCOMPATIBLE = 71 [(network_connection_token) = "#GameUI_Disconnect_ReplayIncompatible"]; + NETWORK_DISCONNECT_CONNECT_REQUEST_TIMEDOUT = 72 [(network_connection_token) = "#GameUI_Disconnect_ConnectionTimedout"]; + NETWORK_DISCONNECT_SERVER_INCOMPATIBLE = 73 [(network_connection_token) = "#GameUI_Disconnect_ServerIncompatible"]; + NETWORK_DISCONNECT_LOCALPROBLEM_MANYRELAYS = 74 [(network_connection_token) = "#GameUI_Disconnect_LocalProblem_ManyRelays"]; + NETWORK_DISCONNECT_LOCALPROBLEM_HOSTEDSERVERPRIMARYRELAY = 75 [(network_connection_token) = "#GameUI_Disconnect_LocalProblem_HostedServerPrimaryRelay"]; + NETWORK_DISCONNECT_LOCALPROBLEM_NETWORKCONFIG = 76 [(network_connection_token) = "#GameUI_Disconnect_LocalProblem_NetworkConfig"]; + NETWORK_DISCONNECT_LOCALPROBLEM_OTHER = 77 [(network_connection_token) = "#GameUI_Disconnect_LocalProblem_Other"]; + NETWORK_DISCONNECT_REMOTE_TIMEOUT = 79 [(network_connection_token) = "#GameUI_Disconnect_RemoteProblem_Timeout"]; + NETWORK_DISCONNECT_REMOTE_TIMEOUT_CONNECTING = 80 [(network_connection_token) = "#GameUI_Disconnect_RemoteProblem_TimeoutConnecting"]; + NETWORK_DISCONNECT_REMOTE_OTHER = 81 [(network_connection_token) = "#GameUI_Disconnect_RemoteProblem_Other"]; + NETWORK_DISCONNECT_REMOTE_BADCRYPT = 82 [(network_connection_token) = "#GameUI_Disconnect_RemoteProblem_BadCrypt"]; + NETWORK_DISCONNECT_REMOTE_CERTNOTTRUSTED = 83 [(network_connection_token) = "#GameUI_Disconnect_RemoteProblem_BadCert"]; + NETWORK_DISCONNECT_UNUSUAL = 84 [(network_connection_token) = "#GameUI_Disconnect_Unusual"]; + NETWORK_DISCONNECT_INTERNAL_ERROR = 85 [(network_connection_token) = "#GameUI_Disconnect_InternalError"]; + NETWORK_DISCONNECT_REJECT_BADCHALLENGE = 128 [(network_connection_token) = "#GameUI_ServerRejectBadChallenge"]; + NETWORK_DISCONNECT_REJECT_NOLOBBY = 129 [(network_connection_token) = "#GameUI_ServerNoLobby"]; + NETWORK_DISCONNECT_REJECT_BACKGROUND_MAP = 130 [(network_connection_token) = "#Valve_Reject_Background_Map"]; + NETWORK_DISCONNECT_REJECT_SINGLE_PLAYER = 131 [(network_connection_token) = "#Valve_Reject_Single_Player"]; + NETWORK_DISCONNECT_REJECT_HIDDEN_GAME = 132 [(network_connection_token) = "#Valve_Reject_Hidden_Game"]; + NETWORK_DISCONNECT_REJECT_LANRESTRICT = 133 [(network_connection_token) = "#GameUI_ServerRejectLANRestrict"]; + NETWORK_DISCONNECT_REJECT_BADPASSWORD = 134 [(network_connection_token) = "#GameUI_ServerRejectBadPassword"]; + NETWORK_DISCONNECT_REJECT_SERVERFULL = 135 [(network_connection_token) = "#GameUI_ServerRejectServerFull"]; + NETWORK_DISCONNECT_REJECT_INVALIDRESERVATION = 136 [(network_connection_token) = "#GameUI_ServerRejectInvalidReservation"]; + NETWORK_DISCONNECT_REJECT_FAILEDCHANNEL = 137 [(network_connection_token) = "#GameUI_ServerRejectFailedChannel"]; + NETWORK_DISCONNECT_REJECT_CONNECT_FROM_LOBBY = 138 [(network_connection_token) = "#Valve_Reject_Connect_From_Lobby"]; + NETWORK_DISCONNECT_REJECT_RESERVED_FOR_LOBBY = 139 [(network_connection_token) = "#Valve_Reject_Reserved_For_Lobby"]; + NETWORK_DISCONNECT_REJECT_INVALIDKEYLENGTH = 140 [(network_connection_token) = "#GameUI_ServerReject_InvalidKeyLength"]; + NETWORK_DISCONNECT_REJECT_OLDPROTOCOL = 141 [(network_connection_token) = "#GameUI_ServerRejectOldProtocol"]; + NETWORK_DISCONNECT_REJECT_NEWPROTOCOL = 142 [(network_connection_token) = "#GameUI_ServerRejectNewProtocol"]; + NETWORK_DISCONNECT_REJECT_INVALIDCONNECTION = 143 [(network_connection_token) = "#GameUI_ServerRejectInvalidConnection"]; + NETWORK_DISCONNECT_REJECT_INVALIDCERTLEN = 144 [(network_connection_token) = "#GameUI_ServerRejectInvalidCertLen"]; + NETWORK_DISCONNECT_REJECT_INVALIDSTEAMCERTLEN = 145 [(network_connection_token) = "#GameUI_ServerRejectInvalidSteamCertLen"]; + NETWORK_DISCONNECT_REJECT_STEAM = 146 [(network_connection_token) = "#GameUI_ServerRejectSteam"]; + NETWORK_DISCONNECT_REJECT_SERVERAUTHDISABLED = 147 [(network_connection_token) = "#GameUI_ServerAuthDisabled"]; + NETWORK_DISCONNECT_REJECT_SERVERCDKEYAUTHINVALID = 148 [(network_connection_token) = "#GameUI_ServerCDKeyAuthInvalid"]; + NETWORK_DISCONNECT_REJECT_BANNED = 149 [(network_connection_token) = "#GameUI_ServerRejectBanned"]; +} diff --git a/Protobufs/underlords/networkbasetypes.proto b/Protobufs/underlords/networkbasetypes.proto new file mode 100644 index 0000000..0a70bfd --- /dev/null +++ b/Protobufs/underlords/networkbasetypes.proto @@ -0,0 +1,219 @@ +import "network_connection.proto"; + +option cc_generic_services = false; + +enum NET_Messages { + net_NOP = 0; + net_Disconnect = 1; + net_SplitScreenUser = 3; + net_Tick = 4; + net_StringCmd = 5; + net_SetConVar = 6; + net_SignonState = 7; + net_SpawnGroup_Load = 8; + net_SpawnGroup_ManifestUpdate = 9; + net_SpawnGroup_SetCreationTick = 11; + net_SpawnGroup_Unload = 12; + net_SpawnGroup_LoadCompleted = 13; +} + +enum SpawnGroupFlags_t { + SPAWN_GROUP_LOAD_ENTITIES_FROM_SAVE = 1; + SPAWN_GROUP_DONT_SPAWN_ENTITIES = 2; + SPAWN_GROUP_SYNCHRONOUS_SPAWN = 4; + SPAWN_GROUP_IS_INITIAL_SPAWN_GROUP = 8; + SPAWN_GROUP_CREATE_CLIENT_ONLY_ENTITIES = 16; + SPAWN_GROUP_BLOCK_UNTIL_LOADED = 64; + SPAWN_GROUP_LOAD_STREAMING_DATA = 128; + SPAWN_GROUP_CREATE_NEW_SCENE_WORLD = 256; +} + +message CMsgVector { + optional float x = 1; + optional float y = 2; + optional float z = 3; +} + +message CMsgVector2D { + optional float x = 1; + optional float y = 2; +} + +message CMsgQAngle { + optional float x = 1; + optional float y = 2; + optional float z = 3; +} + +message CMsgRGBA { + optional int32 r = 1; + optional int32 g = 2; + optional int32 b = 3; + optional int32 a = 4; +} + +message CMsgPlayerInfo { + optional string name = 1; + optional fixed64 xuid = 2; + optional int32 userid = 3; + optional fixed64 steamid = 4; + optional bool fakeplayer = 5; + optional bool ishltv = 6; +} + +message CEntityMsg { + optional uint32 target_entity = 1; +} + +message CMsg_CVars { + message CVar { + optional string name = 1; + optional string value = 2; + } + + repeated .CMsg_CVars.CVar cvars = 1; +} + +message CNETMsg_NOP { +} + +message CNETMsg_SplitScreenUser { + optional int32 slot = 1; +} + +message CNETMsg_Disconnect { + optional .ENetworkDisconnectionReason reason = 2 [default = NETWORK_DISCONNECT_INVALID]; +} + +message CNETMsg_Tick { + optional uint32 tick = 1; + optional uint32 host_frametime = 2; + optional uint32 host_frametime_std_deviation = 3; + optional uint32 host_computationtime = 4; + optional uint32 host_computationtime_std_deviation = 5; + optional uint32 host_framestarttime_std_deviation = 6; + optional uint32 host_loss = 7; +} + +message CNETMsg_StringCmd { + optional string command = 1; +} + +message CNETMsg_SetConVar { + optional .CMsg_CVars convars = 1; +} + +message CNETMsg_SignonState { + optional uint32 signon_state = 1; + optional uint32 spawn_count = 2; + optional uint32 num_server_players = 3; + repeated string players_networkids = 4; + optional string map_name = 5; + optional string addons = 6; +} + +message CSVCMsg_GameEvent { + message key_t { + optional int32 type = 1; + optional string val_string = 2; + optional float val_float = 3; + optional int32 val_long = 4; + optional int32 val_short = 5; + optional int32 val_byte = 6; + optional bool val_bool = 7; + optional uint64 val_uint64 = 8; + } + + optional string event_name = 1; + optional int32 eventid = 2; + repeated .CSVCMsg_GameEvent.key_t keys = 3; +} + +message CSVCMsgList_GameEvents { + message event_t { + optional int32 tick = 1; + optional .CSVCMsg_GameEvent event = 2; + } + + repeated .CSVCMsgList_GameEvents.event_t events = 1; +} + +message CSVCMsg_UserMessage { + optional int32 msg_type = 1; + optional bytes msg_data = 2; +} + +message CSVCMsgList_UserMessages { + message usermsg_t { + optional int32 tick = 1; + optional .CSVCMsg_UserMessage msg = 2; + } + + repeated .CSVCMsgList_UserMessages.usermsg_t usermsgs = 1; +} + +message CNETMsg_SpawnGroup_Load { + optional string worldname = 1; + optional string entitylumpname = 2; + optional string entityfiltername = 3; + optional uint32 spawngrouphandle = 4; + optional uint32 spawngroupownerhandle = 5; + optional .CMsgVector world_offset_pos = 6; + optional .CMsgQAngle world_offset_angle = 7; + optional bytes spawngroupmanifest = 8; + optional uint32 flags = 9; + optional int32 tickcount = 10; + optional bool manifestincomplete = 11; + optional string localnamefixup = 12; + optional string parentnamefixup = 13; + optional int32 manifestloadpriority = 14; + optional uint32 worldgroupid = 15; + optional uint32 creationsequence = 16; + optional string savegamefilename = 17; + optional uint32 spawngroupparenthandle = 18; + optional bool leveltransition = 19; +} + +message CNETMsg_SpawnGroup_ManifestUpdate { + optional uint32 spawngrouphandle = 1; + optional bytes spawngroupmanifest = 2; + optional bool manifestincomplete = 3; +} + +message CNETMsg_SpawnGroup_SetCreationTick { + optional uint32 spawngrouphandle = 1; + optional int32 tickcount = 2; + optional uint32 creationsequence = 3; +} + +message CNETMsg_SpawnGroup_Unload { + optional uint32 spawngrouphandle = 1; + optional uint32 flags = 2; + optional int32 tickcount = 3; +} + +message CNETMsg_SpawnGroup_LoadCompleted { + optional uint32 spawngrouphandle = 1; +} + +message CSVCMsg_GameSessionConfiguration { + optional bool is_multiplayer = 1; + optional bool is_loadsavegame = 2; + optional bool is_background_map = 3; + optional bool is_headless = 4; + optional uint32 min_client_limit = 5; + optional uint32 max_client_limit = 6; + optional uint32 max_clients = 7; + optional fixed32 tick_interval = 8; + optional string hostname = 9; + optional string savegamename = 10; + optional string s1_mapname = 11; + optional string gamemode = 12; + optional string server_ip_address = 13; + optional bytes data = 14; + optional bool is_localonly = 15; + optional bool no_steam_server = 19; + optional bool is_transition = 16; + optional string previouslevel = 17; + optional string landmarkname = 18; +} diff --git a/Protobufs/underlords/networksystem_protomessages.proto b/Protobufs/underlords/networksystem_protomessages.proto new file mode 100644 index 0000000..cff50e9 --- /dev/null +++ b/Protobufs/underlords/networksystem_protomessages.proto @@ -0,0 +1,19 @@ +option cc_generic_services = false; + +message NetMessageSplitscreenUserChanged { + optional uint32 slot = 1; +} + +message NetMessageConnectionClosed { + optional uint32 reason = 1; +} + +message NetMessageConnectionCrashed { + optional uint32 reason = 1; +} + +message NetMessagePacketStart { +} + +message NetMessagePacketEnd { +} diff --git a/Protobufs/underlords/steamdatagram_messages_auth.proto b/Protobufs/underlords/steamdatagram_messages_auth.proto new file mode 100644 index 0000000..ca1da4c --- /dev/null +++ b/Protobufs/underlords/steamdatagram_messages_auth.proto @@ -0,0 +1,64 @@ +import "steamnetworkingsockets_messages_certs.proto"; + +option optimize_for = SPEED; +option cc_generic_services = false; + +message CMsgSteamDatagramRelayAuthTicket { + message ExtraField { + optional string name = 1; + optional string string_value = 2; + optional sint64 int64_value = 3; + optional fixed64 fixed64_value = 5; + } + + optional fixed32 time_expiry = 1; + optional string authorized_client_identity_string = 14; + optional string gameserver_identity_string = 15; + optional fixed32 authorized_public_ip = 3; + optional bytes gameserver_address = 11; + optional uint32 app_id = 7; + optional uint32 virtual_port = 10; + repeated .CMsgSteamDatagramRelayAuthTicket.ExtraField extra_fields = 8; + optional fixed64 legacy_authorized_steam_id = 2; + optional fixed64 legacy_gameserver_steam_id = 4; + optional fixed64 legacy_gameserver_net_id = 5; + optional fixed32 legacy_gameserver_pop_id = 9; + optional bytes legacy_authorized_client_identity_binary = 12; + optional bytes legacy_gameserver_identity_binary = 13; +} + +message CMsgSteamDatagramSignedRelayAuthTicket { + optional fixed64 reserved_do_not_use = 1; + optional fixed64 key_id = 2; + optional bytes ticket = 3; + optional bytes signature = 4; +} + +message CMsgSteamDatagramCachedCredentialsForApp { + optional bytes private_key = 1; + optional bytes cert = 2; + repeated bytes relay_tickets = 3; +} + +message CMsgSteamDatagramGameCoordinatorServerLogin { + optional uint32 time_generated = 1; + optional uint32 appid = 2; + optional bytes routing = 3; + optional bytes appdata = 4; + optional bytes legacy_identity_binary = 5; + optional string identity_string = 6; + optional fixed64 dummy_steam_id = 99; +} + +message CMsgSteamDatagramSignedGameCoordinatorServerLogin { + optional .CMsgSteamDatagramCertificateSigned cert = 1; + optional bytes login = 2; + optional bytes signature = 3; +} + +message CMsgSteamDatagramHostedServerAddressPlaintext { + optional fixed32 ipv4 = 1; + optional bytes ipv6 = 2; + optional uint32 port = 3; + optional fixed64 routing_secret = 4; +} diff --git a/Protobufs/underlords/steamdatagram_messages_sdr.proto b/Protobufs/underlords/steamdatagram_messages_sdr.proto new file mode 100644 index 0000000..386de9b --- /dev/null +++ b/Protobufs/underlords/steamdatagram_messages_sdr.proto @@ -0,0 +1,482 @@ +import "steamnetworkingsockets_messages_certs.proto"; +import "steamnetworkingsockets_messages.proto"; + +option optimize_for = SPEED; +option cc_generic_services = false; + +enum ESteamDatagramMsgID { + k_ESteamDatagramMsg_Invalid = 0; + k_ESteamDatagramMsg_RouterPingRequest = 1; + k_ESteamDatagramMsg_RouterPingReply = 2; + k_ESteamDatagramMsg_GameserverPingRequest = 3; + k_ESteamDatagramMsg_LegacyGameserverPingReply = 4; + k_ESteamDatagramMsg_GameserverSessionRequest = 5; + k_ESteamDatagramMsg_GameserverSessionEstablished = 6; + k_ESteamDatagramMsg_NoSession = 7; + k_ESteamDatagramMsg_Diagnostic = 8; + k_ESteamDatagramMsg_DataClientToRouter = 9; + k_ESteamDatagramMsg_DataRouterToServer = 10; + k_ESteamDatagramMsg_DataServerToRouter = 11; + k_ESteamDatagramMsg_DataRouterToClient = 12; + k_ESteamDatagramMsg_Stats = 13; + k_ESteamDatagramMsg_ClientPingSampleRequest = 14; + k_ESteamDatagramMsg_ClientPingSampleReply = 15; + k_ESteamDatagramMsg_ClientToRouterSwitchedPrimary = 16; + k_ESteamDatagramMsg_RelayHealth = 17; + k_ESteamDatagramMsg_ConnectRequest = 18; + k_ESteamDatagramMsg_ConnectOK = 19; + k_ESteamDatagramMsg_ConnectionClosed = 20; + k_ESteamDatagramMsg_NoConnection = 21; + k_ESteamDatagramMsg_RelayToRelayPingRequest = 22; + k_ESteamDatagramMsg_RelayToRelayPingReply = 23; + k_ESteamDatagramMsg_P2PSessionRequest = 24; + k_ESteamDatagramMsg_P2PSessionEstablished = 25; + k_ESteamDatagramMsg_P2PStatsClient = 26; + k_ESteamDatagramMsg_P2PStatsRelay = 27; + k_ESteamDatagramMsg_P2PBadRoute = 28; + k_ESteamDatagramMsg_GameserverPingReply = 29; + k_ESteamDatagramMsg_GameserverRegistration = 30; +} + +message CMsgSteamDatagramRouterPingReply { + message RouteException { + optional fixed32 data_center_id = 1; + optional uint32 flags = 2; + optional uint32 penalty = 3; + } + + optional fixed32 client_timestamp = 1; + repeated fixed32 latency_datacenter_ids = 2 [packed = true]; + repeated uint32 latency_ping_ms = 3 [packed = true]; + optional fixed32 your_public_ip = 4; + optional fixed32 server_time = 5; + optional fixed64 challenge = 6; + optional uint32 seconds_until_shutdown = 7; + optional fixed32 client_cookie = 8; + optional uint32 scoring_penalty_relay_cluster = 9; + repeated .CMsgSteamDatagramRouterPingReply.RouteException route_exceptions = 10; +} + +message CMsgSteamDatagramGameserverPingRequest { + optional fixed32 your_public_ip = 1; + optional fixed32 server_time = 2; + optional fixed64 challenge = 3; + optional fixed32 router_timestamp = 4; +} + +message CMsgSteamDatagramLegacyGameserverPingReply { + optional fixed32 router_timestamp = 4; + optional fixed64 dummy_pad = 99; +} + +message CMsgSteamDatagramGameserverPingReply { + message SignedData { + optional fixed32 challenge_time = 2; + optional fixed64 challenge = 3; + optional fixed32 router_timestamp = 4; + optional fixed32 data_center_id = 5; + optional uint32 appid = 6; + } + + optional .CMsgSteamDatagramCertificateSigned cert = 1; + optional bytes signed_data = 2; + optional bytes signature = 3; +} + +message CMsgSteamDatagramNoSessionRelayToClient { + optional fixed32 connection_id = 7; + optional fixed32 your_public_ip = 2; + optional fixed32 server_time = 3; + optional fixed64 challenge = 4; + optional uint32 seconds_until_shutdown = 5; +} + +message CMsgSteamDatagramNoSessionRelayToPeer { + optional uint32 legacy_relay_session_id = 1; + optional fixed32 from_relay_session_id = 2; + optional fixed32 from_connection_id = 7; + optional fixed64 kludge_pad = 99; +} + +message CMsgSteamDatagramClientPingSampleRequest { + optional fixed32 connection_id = 1; +} + +message CMsgSteamDatagramClientPingSampleReply { + message RoutingCluster { + optional fixed32 id = 1; + optional uint32 front_ping_ms = 2; + optional uint32 e2e_ping_ms = 3; + } + + message DataCenter { + optional fixed32 data_center_id = 1; + optional fixed32 via_relay_id = 2; + optional uint32 e2e_ping_ms = 3; + } + + optional fixed32 connection_id = 1; + repeated .CMsgSteamDatagramClientPingSampleReply.RoutingCluster routing_clusters = 2; + repeated .CMsgSteamDatagramClientPingSampleReply.DataCenter data_centers = 3; +} + +message CMsgSteamDatagramClientSwitchedPrimary { + message RouterQuality { + optional uint32 score = 1; + optional uint32 front_ping = 2; + optional uint32 back_ping = 3; + optional uint32 seconds_until_down = 4; + } + + optional fixed32 connection_id = 1; + optional fixed32 from_ip = 2; + optional uint32 from_port = 3; + optional fixed32 from_router_cluster = 4; + optional uint32 from_active_time = 5; + optional uint32 from_active_packets_recv = 6; + optional string from_dropped_reason = 7; + optional uint32 gap_ms = 8; + optional .CMsgSteamDatagramClientSwitchedPrimary.RouterQuality from_quality_now = 9; + optional .CMsgSteamDatagramClientSwitchedPrimary.RouterQuality to_quality_now = 10; + optional .CMsgSteamDatagramClientSwitchedPrimary.RouterQuality from_quality_then = 11; + optional .CMsgSteamDatagramClientSwitchedPrimary.RouterQuality to_quality_then = 12; +} + +message CMsgSteamDatagramConnectRequest { + optional fixed32 connection_id = 1; + optional fixed64 my_timestamp = 4; + optional uint32 ping_est_ms = 5; + optional uint32 virtual_port = 9; + optional uint32 gameserver_relay_session_id = 2; + optional .CMsgSteamDatagramSessionCryptInfoSigned crypt = 6; + optional .CMsgSteamDatagramCertificateSigned cert = 7; + optional fixed64 routing_secret = 10; + optional fixed64 legacy_client_steam_id = 3; +} + +message CMsgSteamDatagramConnectOK { + optional fixed32 client_connection_id = 1; + optional fixed32 server_connection_id = 7; + optional fixed64 your_timestamp = 3; + optional uint32 delay_time_usec = 4; + optional uint32 gameserver_relay_session_id = 2; + optional .CMsgSteamDatagramSessionCryptInfoSigned crypt = 5; + optional .CMsgSteamDatagramCertificateSigned cert = 6; +} + +message CMsgSteamDatagramConnectionClosed { + enum ERelayMode { + None = 0; + EndToEnd = 1; + ClosedByPeer = 2; + } + + optional fixed32 to_connection_id = 7; + optional fixed32 from_connection_id = 8; + optional string from_identity_string = 15; + optional .CMsgSteamNetworkingIdentityLegacyBinary legacy_from_identity_binary = 13; + optional fixed64 legacy_from_steam_id = 3; + optional uint32 legacy_gameserver_relay_session_id = 2; + optional fixed32 to_relay_session_id = 9; + optional fixed32 from_relay_session_id = 10; + optional bytes forward_target_relay_routing_token = 11; + optional uint32 forward_target_revision = 12; + optional .CMsgSteamDatagramConnectionClosed.ERelayMode relay_mode = 4 [default = None]; + optional string debug = 5; + optional uint32 reason_code = 6; + optional fixed64 routing_secret = 14; + optional uint32 not_primary_session = 16; + optional .CMsgSteamDatagramConnectionQuality quality_relay = 17; + optional .CMsgSteamDatagramConnectionQuality quality_e2e = 18; +} + +message CMsgSteamDatagramNoConnection { + optional fixed32 to_connection_id = 5; + optional fixed32 from_connection_id = 6; + optional uint32 legacy_gameserver_relay_session_id = 2; + optional fixed32 to_relay_session_id = 9; + optional fixed32 from_relay_session_id = 10; + optional string from_identity_string = 7; + optional fixed64 legacy_from_steam_id = 3; + optional bool end_to_end = 4; + optional uint32 not_primary_session = 12; + optional .CMsgSteamDatagramConnectionQuality quality_relay = 13; + optional .CMsgSteamDatagramConnectionQuality quality_e2e = 14; + optional fixed64 routing_secret = 11; + optional fixed32 dummy_pad = 1023; +} + +message CMsgSteamDatagramGameserverSessionRequest { + optional bytes ticket = 1; + optional fixed32 challenge_time = 3; + optional fixed64 challenge = 4; + optional fixed32 client_connection_id = 5; + optional fixed32 server_connection_id = 8; + optional uint32 network_config_version = 6; + optional uint32 protocol_version = 7; +} + +message CMsgSteamDatagramGameserverSessionEstablished { + optional fixed32 connection_id = 1; + optional string gameserver_identity_string = 2; + optional uint32 seconds_until_shutdown = 4; + optional uint32 seq_num_r2c = 6; + optional bytes dummy_legacy_identity_binary = 7; + optional fixed64 legacy_gameserver_steamid = 3; +} + +message CMsgSteamDatagramConnectionStatsClientToRouter { + enum Flags { + ACK_REQUEST_RELAY = 1; + ACK_REQUEST_E2E = 2; + ACK_REQUEST_IMMEDIATE = 4; + NOT_PRIMARY_SESSION = 8; + } + + optional .CMsgSteamDatagramConnectionQuality quality_relay = 1; + optional .CMsgSteamDatagramConnectionQuality quality_e2e = 2; + repeated fixed32 ack_relay = 4; + repeated fixed32 legacy_ack_e2e = 5; + optional uint32 flags = 6; + optional fixed32 client_connection_id = 8; + optional uint32 seq_num_c2r = 9; + optional uint32 seq_num_e2e = 10; +} + +message CMsgSteamDatagramConnectionStatsRouterToClient { + enum Flags { + ACK_REQUEST_RELAY = 1; + ACK_REQUEST_E2E = 2; + ACK_REQUEST_IMMEDIATE = 4; + } + + optional .CMsgSteamDatagramConnectionQuality quality_relay = 1; + optional .CMsgSteamDatagramConnectionQuality quality_e2e = 2; + optional uint32 seconds_until_shutdown = 6; + optional fixed32 migrate_request_ip = 10; + optional uint32 migrate_request_port = 11; + optional uint32 scoring_penalty_relay_cluster = 12; + repeated fixed32 ack_relay = 13; + repeated fixed32 legacy_ack_e2e = 14; + optional uint32 flags = 15; + optional fixed32 client_connection_id = 7; + optional uint32 seq_num_r2c = 8; + optional uint32 seq_num_e2e = 9; +} + +message CMsgSteamDatagramConnectionStatsRouterToServer { + enum Flags { + ACK_REQUEST_RELAY = 1; + ACK_REQUEST_E2E = 2; + ACK_REQUEST_IMMEDIATE = 4; + } + + optional .CMsgSteamDatagramConnectionQuality quality_relay = 1; + optional .CMsgSteamDatagramConnectionQuality quality_e2e = 2; + repeated fixed32 ack_relay = 10; + repeated fixed32 legacy_ack_e2e = 11; + optional uint32 flags = 12; + optional uint32 seq_num_r2s = 5; + optional uint32 seq_num_e2e = 6; + optional string client_identity_string = 15; + optional fixed64 legacy_client_steam_id = 7; + optional uint32 relay_session_id = 8; + optional fixed32 client_connection_id = 9; + optional fixed32 server_connection_id = 13; + optional fixed64 routing_secret = 14; +} + +message CMsgSteamDatagramConnectionStatsServerToRouter { + enum Flags { + ACK_REQUEST_RELAY = 1; + ACK_REQUEST_E2E = 2; + ACK_REQUEST_IMMEDIATE = 4; + } + + optional .CMsgSteamDatagramConnectionQuality quality_relay = 1; + optional .CMsgSteamDatagramConnectionQuality quality_e2e = 2; + repeated fixed32 ack_relay = 8; + repeated fixed32 legacy_ack_e2e = 9; + optional uint32 flags = 10; + optional uint32 seq_num_s2r = 3; + optional uint32 seq_num_e2e = 4; + optional uint32 relay_session_id = 6; + optional fixed32 client_connection_id = 7; + optional fixed32 server_connection_id = 11; +} + +message CMsgSteamDatagramP2PSessionRequestBody { + optional fixed32 challenge_time = 1; + optional fixed64 challenge = 2; + optional fixed32 client_connection_id = 3; + optional fixed64 legacy_peer_steam_id = 4; + optional string peer_identity_string = 11; + optional fixed32 peer_connection_id = 5; + optional uint32 protocol_version = 8; + optional uint32 network_config_version = 9; + optional fixed32 public_ip = 10; +} + +message CMsgSteamDatagramP2PSessionRequest { + optional .CMsgSteamDatagramCertificateSigned cert = 1; + optional bytes body = 2; + optional bytes signature = 3; +} + +message CMsgSteamDatagramP2PSessionEstablished { + optional fixed32 connection_id = 1; + optional uint32 seconds_until_shutdown = 3; + optional bytes relay_routing_token = 4; + optional uint32 seq_num_r2c = 5; +} + +message CMsgSteamDatagramConnectionStatsP2PClientToRouter { + enum Flags { + ACK_REQUEST_RELAY = 1; + ACK_REQUEST_E2E = 2; + ACK_REQUEST_IMMEDIATE = 4; + NOT_PRIMARY_SESSION = 8; + } + + optional .CMsgSteamDatagramConnectionQuality quality_relay = 1; + optional .CMsgSteamDatagramConnectionQuality quality_e2e = 2; + repeated fixed32 ack_relay = 3; + repeated fixed32 legacy_ack_e2e = 4; + optional uint32 flags = 5; + optional bytes forward_target_relay_routing_token = 6; + optional uint32 forward_target_revision = 7; + optional bytes routes = 8; + optional uint32 ack_peer_routes_revision = 9; + optional fixed32 connection_id = 10; + optional uint32 seq_num_c2r = 11; + optional uint32 seq_num_e2e = 12; +} + +message CMsgSteamDatagramConnectionStatsP2PRouterToClient { + enum Flags { + ACK_REQUEST_RELAY = 1; + ACK_REQUEST_E2E = 2; + ACK_REQUEST_IMMEDIATE = 4; + } + + optional .CMsgSteamDatagramConnectionQuality quality_relay = 1; + optional .CMsgSteamDatagramConnectionQuality quality_e2e = 2; + optional uint32 seconds_until_shutdown = 3; + optional fixed32 migrate_request_ip = 4; + optional uint32 migrate_request_port = 5; + optional uint32 scoring_penalty_relay_cluster = 6; + repeated fixed32 ack_relay = 7; + repeated fixed32 legacy_ack_e2e = 8; + optional uint32 flags = 9; + optional uint32 ack_forward_target_revision = 10; + optional bytes routes = 11; + optional uint32 ack_peer_routes_revision = 12; + optional fixed32 connection_id = 13; + optional uint32 seq_num_r2c = 14; + optional uint32 seq_num_e2e = 15; +} + +message CMsgSteamDatagramP2PBadRouteRouterToClient { + optional fixed32 connection_id = 1; + optional bytes failed_relay_routing_token = 2; + optional uint32 ack_forward_target_revision = 3; + optional fixed64 kludge_pad = 99; +} + +message CMsgSteamDatagramP2PRoutes { + message RelayCluster { + optional fixed32 pop_id = 1; + optional uint32 ping_ms = 2; + optional uint32 score_penalty = 3; + optional bytes session_relay_routing_token = 4; + } + + message Route { + optional fixed32 my_pop_id = 1; + optional fixed32 your_pop_id = 2; + optional uint32 score = 3; + } + + repeated .CMsgSteamDatagramP2PRoutes.RelayCluster relay_clusters = 1; + repeated .CMsgSteamDatagramP2PRoutes.Route routes = 2; + optional uint32 revision = 3; +} + +message CMsgSteamDatagramGameServerSample { + optional fixed32 ipv4 = 1; + optional uint32 port = 2; +} + +message CMsgSteamDatagramGameServerSampleDataCenter { + optional fixed32 datacenter_id = 1; + repeated .CMsgSteamDatagramGameServerSample servers = 3; +} + +message CMsgSteamDatagramRelayToRelayPing { + optional fixed32 request_timestamp = 1; + optional fixed32 request_date = 2; + optional fixed32 my_pop_id = 3; + optional fixed32 your_pop_id = 4; + optional fixed32 checksum = 5; + repeated .CMsgSteamDatagramGameServerSampleDataCenter data_centers = 6; +} + +message CMsgSteamDatagramDataCenterState { + message Server { + optional string address = 1; + optional uint32 ping_ms = 2; + } + + message DataCenter { + optional string code = 1; + repeated .CMsgSteamDatagramDataCenterState.Server server_sample = 2; + repeated .CMsgSteamDatagramDataCenterState.Server relay_sample = 3; + } + + repeated .CMsgSteamDatagramDataCenterState.DataCenter data_centers = 1; +} + +message CMsgSteamDatagramRouterHealth { + message DataCenter { + optional fixed32 datacenter_id = 1; + optional uint32 state = 2; + repeated .CMsgSteamDatagramGameServerSample servers = 3; + } + + optional float cpu_load = 1; + optional float cpu_load_raw = 10; + optional uint32 active_sessions = 2; + optional uint32 data_pkts_sec = 3; + optional uint32 other_pkts_sec = 4; + optional uint32 seconds_until_shutdown = 5; + optional float cpu_cost_per_user = 8; + optional float cpu_cost_per_packet = 9; + repeated .CMsgSteamDatagramRouterHealth.DataCenter data_centers = 6; + optional fixed64 magic = 7; +} + +message CMsgSteamDatagramConnectionStatsP2PRouterToRouter { + enum Flags { + ACK_REQUEST_RELAY = 1; + ACK_REQUEST_E2E = 2; + ACK_REQUEST_IMMEDIATE = 4; + } + + optional .CMsgSteamDatagramConnectionQuality quality_relay = 1; + optional .CMsgSteamDatagramConnectionQuality quality_e2e = 2; + repeated fixed32 ack_relay = 3; + repeated fixed32 legacy_ack_e2e = 4; + optional uint32 flags = 5; + optional uint32 ack_forward_target_revision = 6; + optional bytes routes = 7; + optional uint32 ack_peer_routes_revision = 8; + optional uint32 seq_num_r2r = 26; + optional uint32 seq_num_e2e = 27; + optional fixed32 from_relay_session_id = 22; + optional fixed32 to_relay_session_id = 25; +} + +message CMsgSteamDatagramP2PBadRouteRouterToRouter { + optional fixed32 from_relay_session_id = 1; + optional fixed64 kludge_pad = 99; +} diff --git a/Protobufs/underlords/steammessages.proto b/Protobufs/underlords/steammessages.proto new file mode 100644 index 0000000..30d667f --- /dev/null +++ b/Protobufs/underlords/steammessages.proto @@ -0,0 +1,701 @@ +import "google/protobuf/descriptor.proto"; + +option optimize_for = SPEED; +option cc_generic_services = false; + +extend .google.protobuf.FieldOptions { + optional bool key_field = 60000 [default = false]; +} + +extend .google.protobuf.MessageOptions { + optional int32 msgpool_soft_limit = 60000 [default = 32]; + optional int32 msgpool_hard_limit = 60001 [default = 384]; +} + +enum GCProtoBufMsgSrc { + GCProtoBufMsgSrc_Unspecified = 0; + GCProtoBufMsgSrc_FromSystem = 1; + GCProtoBufMsgSrc_FromSteamID = 2; + GCProtoBufMsgSrc_FromGC = 3; + GCProtoBufMsgSrc_ReplySystem = 4; + GCProtoBufMsgSrc_SpoofedSteamID = 5; +} + +enum EMobilePaymentProvider { + k_EMobilePaymentProvider_Invalid = 0; + k_EMobilePaymentProvider_GooglePlay = 1; + k_EMobilePaymentProvider_AppleAppStore = 2; +} + +enum EDACPlatform { + k_eDACPlatform_None = 0; + k_eDACPlatform_PC = 1; + k_eDACPlatform_Mac = 2; + k_eDACPlatform_Linux = 3; + k_eDACPlatform_Android = 4; + k_eDACPlatform_iOS = 5; +} + +message CMsgProtoBufHeader { + option (msgpool_soft_limit) = 256; + option (msgpool_hard_limit) = 1024; + + optional fixed64 client_steam_id = 1; + optional int32 client_session_id = 2; + optional uint32 source_app_id = 3; + optional fixed64 job_id_source = 10 [default = 18446744073709551615]; + optional fixed64 job_id_target = 11 [default = 18446744073709551615]; + optional string target_job_name = 12; + optional int32 eresult = 13 [default = 2]; + optional string error_message = 14; + optional .GCProtoBufMsgSrc gc_msg_src = 200 [default = GCProtoBufMsgSrc_Unspecified]; + optional uint32 gc_dir_index_source = 201; +} + +message CMsgWebAPIKey { + optional uint32 status = 1 [default = 255]; + optional uint32 account_id = 2 [default = 0]; + optional uint32 publisher_group_id = 3 [default = 0]; + optional uint32 key_id = 4; + optional string domain = 5; +} + +message CMsgHttpRequest { + message RequestHeader { + optional string name = 1; + optional string value = 2; + } + + message QueryParam { + optional string name = 1; + optional bytes value = 2; + } + + optional uint32 request_method = 1; + optional string hostname = 2; + optional string url = 3; + repeated .CMsgHttpRequest.RequestHeader headers = 4; + repeated .CMsgHttpRequest.QueryParam get_params = 5; + repeated .CMsgHttpRequest.QueryParam post_params = 6; + optional bytes body = 7; + optional uint32 absolute_timeout = 8; +} + +message CMsgWebAPIRequest { + optional string UNUSED_job_name = 1; + optional string interface_name = 2; + optional string method_name = 3; + optional uint32 version = 4; + optional .CMsgWebAPIKey api_key = 5; + optional .CMsgHttpRequest request = 6; + optional uint32 routing_app_id = 7; +} + +message CMsgHttpResponse { + message ResponseHeader { + optional string name = 1; + optional string value = 2; + } + + optional uint32 status_code = 1; + repeated .CMsgHttpResponse.ResponseHeader headers = 2; + optional bytes body = 3; +} + +message CMsgAMFindAccounts { + optional uint32 search_type = 1; + optional string search_string = 2; +} + +message CMsgAMFindAccountsResponse { + repeated fixed64 steam_id = 1; +} + +message CMsgNotifyWatchdog { + optional uint32 source = 1; + optional uint32 alert_type = 2; + optional bool critical = 4; + optional uint32 time = 5; + optional uint32 appid = 6; + optional string text = 7; + optional string recipient = 12; +} + +message CMsgAMGetLicenses { + optional fixed64 steamid = 1; +} + +message CMsgPackageLicense { + optional uint32 package_id = 1; + optional uint32 time_created = 2; + optional uint32 owner_id = 3; +} + +message CMsgAMGetLicensesResponse { + repeated .CMsgPackageLicense license = 1; + optional uint32 result = 2; +} + +message CMsgAMGetUserGameStats { + optional fixed64 steam_id = 1; + optional fixed64 game_id = 2; + repeated uint32 stats = 3; +} + +message CMsgAMGetUserGameStatsResponse { + message Stats { + optional uint32 stat_id = 1; + optional uint32 stat_value = 2; + } + + message Achievement_Blocks { + optional uint32 achievement_id = 1; + optional uint32 achievement_bit_id = 2; + optional fixed32 unlock_time = 3; + } + + optional fixed64 steam_id = 1; + optional fixed64 game_id = 2; + optional int32 eresult = 3 [default = 2]; + repeated .CMsgAMGetUserGameStatsResponse.Stats stats = 4; + repeated .CMsgAMGetUserGameStatsResponse.Achievement_Blocks achievement_blocks = 5; +} + +message CMsgGCGetCommandList { + optional uint32 app_id = 1; + optional string command_prefix = 2; +} + +message CMsgGCGetCommandListResponse { + repeated string command_name = 1; +} + +message CGCMsgMemCachedGet { + repeated string keys = 1; +} + +message CGCMsgMemCachedGetResponse { + message ValueTag { + optional bool found = 1; + optional bytes value = 2; + } + + repeated .CGCMsgMemCachedGetResponse.ValueTag values = 1; +} + +message CGCMsgMemCachedSet { + message KeyPair { + optional string name = 1; + optional bytes value = 2; + } + + repeated .CGCMsgMemCachedSet.KeyPair keys = 1; +} + +message CGCMsgMemCachedDelete { + repeated string keys = 1; +} + +message CGCMsgMemCachedStats { +} + +message CGCMsgMemCachedStatsResponse { + optional uint64 curr_connections = 1; + optional uint64 cmd_get = 2; + optional uint64 cmd_set = 3; + optional uint64 cmd_flush = 4; + optional uint64 get_hits = 5; + optional uint64 get_misses = 6; + optional uint64 delete_hits = 7; + optional uint64 delete_misses = 8; + optional uint64 bytes_read = 9; + optional uint64 bytes_written = 10; + optional uint64 limit_maxbytes = 11; + optional uint64 curr_items = 12; + optional uint64 evictions = 13; + optional uint64 bytes = 14; +} + +message CGCMsgSQLStats { + optional uint32 schema_catalog = 1; +} + +message CGCMsgSQLStatsResponse { + optional uint32 threads = 1; + optional uint32 threads_connected = 2; + optional uint32 threads_active = 3; + optional uint32 operations_submitted = 4; + optional uint32 prepared_statements_executed = 5; + optional uint32 non_prepared_statements_executed = 6; + optional uint32 deadlock_retries = 7; + optional uint32 operations_timed_out_in_queue = 8; + optional uint32 errors = 9; +} + +message CMsgAMAddFreeLicense { + optional fixed64 steamid = 1; + optional uint32 ip_public = 2; + optional uint32 packageid = 3; + optional string store_country_code = 4; +} + +message CMsgAMAddFreeLicenseResponse { + optional int32 eresult = 1 [default = 2]; + optional int32 purchase_result_detail = 2; + optional fixed64 transid = 3; +} + +message CGCMsgGetIPLocation { + repeated fixed32 ips = 1; +} + +message CIPLocationInfo { + optional uint32 ip = 1; + optional float latitude = 2; + optional float longitude = 3; + optional string country = 4; + optional string state = 5; + optional string city = 6; +} + +message CGCMsgGetIPLocationResponse { + repeated .CIPLocationInfo infos = 1; +} + +message CGCMsgGetIPASN { + repeated fixed32 ips = 1; +} + +message CIPASNInfo { + optional fixed32 ip = 1; + optional uint32 asn = 2; +} + +message CGCMsgGetIPASNResponse { + repeated .CIPASNInfo infos = 1; +} + +message CGCMsgSystemStatsSchema { + optional uint32 gc_app_id = 1; + optional bytes schema_kv = 2; +} + +message CGCMsgGetSystemStats { +} + +message CGCMsgGetSystemStatsResponse { + optional uint32 gc_app_id = 1; + optional bytes stats_kv = 2; + optional uint32 active_jobs = 3; + optional uint32 yielding_jobs = 4; + optional uint32 user_sessions = 5; + optional uint32 game_server_sessions = 6; + optional uint32 socaches = 7; + optional uint32 socaches_to_unload = 8; + optional uint32 socaches_loading = 9; + optional uint32 writeback_queue = 10; + optional uint32 steamid_locks = 11; + optional uint32 logon_queue = 12; + optional uint32 logon_jobs = 13; +} + +message CMsgAMSendEmail { + message ReplacementToken { + optional string token_name = 1; + optional string token_value = 2; + } + + message PersonaNameReplacementToken { + optional fixed64 steamid = 1; + optional string token_name = 2; + } + + optional fixed64 steamid = 1; + optional uint32 email_msg_type = 2; + optional uint32 email_format = 3; + repeated .CMsgAMSendEmail.PersonaNameReplacementToken persona_name_tokens = 5; + optional uint32 source_gc = 6; + repeated .CMsgAMSendEmail.ReplacementToken tokens = 7; +} + +message CMsgAMSendEmailResponse { + optional uint32 eresult = 1 [default = 2]; +} + +message CMsgGCGetEmailTemplate { + optional uint32 app_id = 1; + optional uint32 email_msg_type = 2; + optional int32 email_lang = 3; + optional int32 email_format = 4; +} + +message CMsgGCGetEmailTemplateResponse { + optional uint32 eresult = 1 [default = 2]; + optional bool template_exists = 2; + optional string template = 3; +} + +message CMsgAMGrantGuestPasses2 { + optional fixed64 steam_id = 1; + optional uint32 package_id = 2; + optional int32 passes_to_grant = 3; + optional int32 days_to_expiration = 4; + optional int32 action = 5; +} + +message CMsgAMGrantGuestPasses2Response { + optional int32 eresult = 1 [default = 2]; + optional int32 passes_granted = 2 [default = 0]; +} + +message CGCSystemMsg_GetAccountDetails { + option (msgpool_soft_limit) = 128; + option (msgpool_hard_limit) = 512; + + optional fixed64 steamid = 1; + optional uint32 appid = 2; +} + +message CGCSystemMsg_GetAccountDetails_Response { + option (msgpool_soft_limit) = 128; + option (msgpool_hard_limit) = 512; + + optional uint32 eresult_deprecated = 1 [default = 2]; + optional string account_name = 2; + optional string persona_name = 3; + optional bool is_profile_created = 26; + optional bool is_profile_public = 4; + optional bool is_inventory_public = 5; + optional bool is_vac_banned = 7; + optional bool is_cyber_cafe = 8; + optional bool is_school_account = 9; + optional bool is_limited = 10; + optional bool is_subscribed = 11; + optional uint32 package = 12; + optional bool is_free_trial_account = 13; + optional uint32 free_trial_expiration = 14; + optional bool is_low_violence = 15; + optional bool is_account_locked_down = 16; + optional bool is_community_banned = 17; + optional bool is_trade_banned = 18; + optional uint32 trade_ban_expiration = 19; + optional uint32 accountid = 20; + optional uint32 suspension_end_time = 21; + optional string currency = 22; + optional uint32 steam_level = 23; + optional uint32 friend_count = 24; + optional uint32 account_creation_time = 25; + optional bool is_steamguard_enabled = 27; + optional bool is_phone_verified = 28; + optional bool is_two_factor_auth_enabled = 29; + optional uint32 two_factor_enabled_time = 30; + optional uint32 phone_verification_time = 31; + optional uint64 phone_id = 33; + optional bool is_phone_identifying = 34; + optional uint32 rt_identity_linked = 35; + optional uint32 rt_birth_date = 36; + optional string txn_country_code = 37; +} + +message CMsgGCGetPersonaNames { + repeated fixed64 steamids = 1; +} + +message CMsgGCGetPersonaNames_Response { + message PersonaName { + optional fixed64 steamid = 1; + optional string persona_name = 2; + } + + repeated .CMsgGCGetPersonaNames_Response.PersonaName succeeded_lookups = 1; + repeated fixed64 failed_lookup_steamids = 2; +} + +message CMsgGCCheckFriendship { + optional fixed64 steamid_left = 1; + optional fixed64 steamid_right = 2; +} + +message CMsgGCCheckFriendship_Response { + optional bool success = 1; + optional bool found_friendship = 2; +} + +message CMsgGCGetAppFriendsList { + optional fixed64 steamid = 1; + optional bool include_friendship_timestamps = 2; +} + +message CMsgGCGetAppFriendsList_Response { + optional bool success = 1; + repeated fixed64 steamids = 2; + repeated fixed32 friendship_timestamps = 3; + repeated fixed32 last_playtimes = 4; +} + +message CMsgGCMsgMasterSetDirectory { + message SubGC { + optional uint32 dir_index = 1; + optional string name = 2; + optional string box = 3; + optional string command_line = 4; + optional string gc_binary = 5; + } + + optional uint32 master_dir_index = 1; + repeated .CMsgGCMsgMasterSetDirectory.SubGC dir = 2; +} + +message CMsgGCMsgMasterSetDirectory_Response { + optional int32 eresult = 1 [default = 2]; + optional string message = 2; +} + +message CMsgGCMsgWebAPIJobRequestForwardResponse { + optional uint32 dir_index = 1; +} + +message CGCSystemMsg_GetPurchaseTrust_Request { + optional fixed64 steamid = 1; +} + +message CGCSystemMsg_GetPurchaseTrust_Response { + optional bool has_prior_purchase_history = 1; + optional bool has_no_recent_password_resets = 2; + optional bool is_wallet_cash_trusted = 3; + optional uint32 time_all_trusted = 4; +} + +message CMsgGCHAccountVacStatusChange { + optional fixed64 steam_id = 1; + optional uint32 app_id = 2; + optional uint32 rtime_vacban_starts = 3; + optional bool is_banned_now = 4; + optional bool is_banned_future = 5; +} + +message CMsgGCGetPartnerAccountLink { + optional fixed64 steamid = 1; +} + +message CMsgGCGetPartnerAccountLink_Response { + optional uint32 pwid = 1; + optional uint32 nexonid = 2; +} + +message CMsgGCRoutingInfo { + enum RoutingMethod { + RANDOM = 0; + DISCARD = 1; + CLIENT_STEAMID = 2; + PROTOBUF_FIELD_UINT64 = 3; + WEBAPI_PARAM = 4; + WEBAPI_PARAM_STEAMID_ACCOUNTID = 5; + } + + repeated uint32 dir_index = 1; + optional .CMsgGCRoutingInfo.RoutingMethod method = 2 [default = RANDOM]; + optional .CMsgGCRoutingInfo.RoutingMethod fallback = 3 [default = DISCARD]; + optional uint32 protobuf_field = 4; + optional string webapi_param = 5; +} + +message CMsgGCMsgMasterSetWebAPIRouting { + message Entry { + optional string interface_name = 1; + optional string method_name = 2; + optional .CMsgGCRoutingInfo routing = 3; + } + + repeated .CMsgGCMsgMasterSetWebAPIRouting.Entry entries = 1; +} + +message CMsgGCMsgMasterSetClientMsgRouting { + message Entry { + optional uint32 msg_type = 1; + optional .CMsgGCRoutingInfo routing = 2; + } + + repeated .CMsgGCMsgMasterSetClientMsgRouting.Entry entries = 1; +} + +message CMsgGCMsgMasterSetWebAPIRouting_Response { + optional int32 eresult = 1 [default = 2]; +} + +message CMsgGCMsgMasterSetClientMsgRouting_Response { + optional int32 eresult = 1 [default = 2]; +} + +message CMsgGCMsgSetOptions { + message MessageRange { + required uint32 low = 1; + required uint32 high = 2; + } + + enum Option { + NOTIFY_USER_SESSIONS = 0; + NOTIFY_SERVER_SESSIONS = 1; + NOTIFY_ACHIEVEMENTS = 2; + NOTIFY_VAC_ACTION = 3; + } + + enum GCSQLVersion { + GCSQL_VERSION_BASELINE = 1; + GCSQL_VERSION_BOOLTYPE = 2; + } + + repeated .CMsgGCMsgSetOptions.Option options = 1; + repeated .CMsgGCMsgSetOptions.MessageRange client_msg_ranges = 2; + optional .CMsgGCMsgSetOptions.GCSQLVersion gcsql_version = 3 [default = GCSQL_VERSION_BASELINE]; +} + +message CMsgGCHUpdateSession { + message ExtraField { + optional string name = 1; + optional string value = 2; + } + + optional fixed64 steam_id = 1; + optional uint32 app_id = 2; + optional bool online = 3; + optional fixed64 server_steam_id = 4; + optional uint32 server_addr = 5; + optional uint32 server_port = 6; + optional uint32 os_type = 7; + optional uint32 client_addr = 8; + repeated .CMsgGCHUpdateSession.ExtraField extra_fields = 9; +} + +message CMsgNotificationOfSuspiciousActivity { + message MultipleGameInstances { + optional uint32 app_instance_count = 1; + repeated fixed64 other_steamids = 2; + } + + optional fixed64 steamid = 1; + optional uint32 appid = 2; + optional .CMsgNotificationOfSuspiciousActivity.MultipleGameInstances multiple_instances = 3; +} + +message CMsgDPPartnerMicroTxns { + message PartnerMicroTxn { + optional uint32 init_time = 1; + optional uint32 last_update_time = 2; + optional uint64 txn_id = 3; + optional uint32 account_id = 4; + optional uint32 line_item = 5; + optional uint64 item_id = 6; + optional uint32 def_index = 7; + optional uint64 price = 8; + optional uint64 tax = 9; + optional uint64 price_usd = 10; + optional uint64 tax_usd = 11; + optional uint32 purchase_type = 12; + optional uint32 steam_txn_type = 13; + optional string country_code = 14; + optional string region_code = 15; + optional int32 quantity = 16; + optional uint64 ref_trans_id = 17; + } + + message PartnerInfo { + optional uint32 partner_id = 1; + optional string partner_name = 2; + optional string currency_code = 3; + optional string currency_name = 4; + } + + optional uint32 appid = 1; + optional string gc_name = 2; + optional .CMsgDPPartnerMicroTxns.PartnerInfo partner = 3; + repeated .CMsgDPPartnerMicroTxns.PartnerMicroTxn transactions = 4; +} + +message CMsgDPPartnerMicroTxnsResponse { + enum EErrorCode { + k_MsgValid = 0; + k_MsgInvalidAppID = 1; + k_MsgInvalidPartnerInfo = 2; + k_MsgNoTransactions = 3; + k_MsgSQLFailure = 4; + k_MsgPartnerInfoDiscrepancy = 5; + k_MsgTransactionInsertFailed = 7; + k_MsgAlreadyRunning = 8; + k_MsgInvalidTransactionData = 9; + } + + optional uint32 eresult = 1 [default = 2]; + optional .CMsgDPPartnerMicroTxnsResponse.EErrorCode eerrorcode = 2 [default = k_MsgValid]; +} + +message CMsgGCHVacVerificationChange { + optional fixed64 steamid = 1; + optional uint32 appid = 2; + optional bool is_verified = 3; +} + +message CMsgGCHAccountTwoFactorChange { + optional fixed64 steamid = 1; + optional uint32 appid = 2; + optional bool twofactor_enabled = 3; +} + +message CMsgGCCheckClanMembership { + optional fixed64 steamid = 1; + optional uint32 clanid = 2; +} + +message CMsgGCCheckClanMembership_Response { + optional bool ismember = 1; +} + +message CGCSystemMsg_ReportExternalPurchase_Request { + optional uint32 appid = 1; + optional fixed64 steamid = 2; + optional .EMobilePaymentProvider provider = 3 [default = k_EMobilePaymentProvider_Invalid]; + optional uint64 orderid = 4; + optional string provider_orderid = 5; + optional int64 amount = 6; + optional string currency = 7; + optional uint32 quantity = 8; + optional uint32 itemid = 9; + optional string item_description = 10; + optional string language = 11; + optional string category = 12; + optional uint32 time_created = 13; +} + +message CGCSystemMsg_ReportExternalPurchase_Response { + optional fixed64 transid = 1; + optional uint64 orderid = 2; +} + +message CWorkshop_AddSpecialPayment_Request { + optional uint32 appid = 1; + optional uint32 gameitemid = 2; + optional string date = 3; + optional uint64 payment_us_usd = 4; + optional uint64 payment_row_usd = 5; +} + +message CWorkshop_AddSpecialPayment_Response { +} + +message CWorkshop_GetSpecialPayments_Request { + optional uint32 appid = 1; + optional uint32 gameitemid = 2; + optional string date = 3; +} + +message CWorkshop_GetSpecialPayments_Response { + message SpecialPayment { + optional uint32 appid = 1; + optional uint32 gameitemid = 2; + optional string date = 3; + optional uint64 net_payment_us_usd = 4; + optional uint64 net_payment_row_usd = 5; + } + + repeated .CWorkshop_GetSpecialPayments_Response.SpecialPayment special_payments = 1; +} diff --git a/Protobufs/underlords/steammessages_base.proto b/Protobufs/underlords/steammessages_base.proto new file mode 100644 index 0000000..2d8ddfe --- /dev/null +++ b/Protobufs/underlords/steammessages_base.proto @@ -0,0 +1,243 @@ +import "google/protobuf/descriptor.proto"; + +option optimize_for = SPEED; +option cc_generic_services = true; +option (force_php_generation) = true; + +extend .google.protobuf.MessageOptions { + optional int32 msgpool_soft_limit = 50000 [default = 32]; + optional int32 msgpool_hard_limit = 50001 [default = 384]; +} + +extend .google.protobuf.FileOptions { + optional bool force_php_generation = 50000 [default = false]; +} + +extend .google.protobuf.FieldOptions { + optional bool php_output_always_number = 50020 [default = false]; +} + +enum EProtoClanEventType { + k_EClanOtherEvent = 1; + k_EClanGameEvent = 2; + k_EClanPartyEvent = 3; + k_EClanMeetingEvent = 4; + k_EClanSpecialCauseEvent = 5; + k_EClanMusicAndArtsEvent = 6; + k_EClanSportsEvent = 7; + k_EClanTripEvent = 8; + k_EClanChatEvent = 9; + k_EClanGameReleaseEvent = 10; + k_EClanBroadcastEvent = 11; + k_EClanSmallUpdateEvent = 12; + k_EClanPreAnnounceMajorUpdateEvent = 13; + k_EClanMajorUpdateEvent = 14; + k_EClanDLCReleaseEvent = 15; + k_EClanFutureReleaseEvent = 16; + k_EClanESportTournamentStreamEvent = 17; + k_EClanDevStreamEvent = 18; + k_EClanFamousStreamEvent = 19; + k_EClanGameSalesEvent = 20; + k_EClanGameItemSalesEvent = 21; + k_EClanInGameBonusXPEvent = 22; + k_EClanInGameLootEvent = 23; + k_EClanInGamePerksEvent = 24; + k_EClanInGameChallengeEvent = 25; + k_EClanInGameContestEvent = 26; + k_EClanIRLEvent = 27; + k_EClanNewsEvent = 28; + k_EClanBetaReleaseEvent = 29; + k_EClanInGameContentReleaseEvent = 30; + k_EClanFreeTrial = 31; + k_EClanSeasonRelease = 32; + k_EClanSeasonUpdate = 33; + k_EClanCrosspostEvent = 34; + k_EClanInGameEventGeneral = 35; +} + +enum PartnerEventNotificationType { + k_EEventStart = 0; + k_EEventBroadcastStart = 1; + k_EEventMatchStart = 2; + k_EEventPartnerMaxType = 3; +} + +message CMsgIPAddress { + oneof ip { + fixed32 v4 = 1; + bytes v6 = 2; + } +} + +message CMsgIPAddressBucket { + optional .CMsgIPAddress original_ip_address = 1; + optional fixed64 bucket = 2; +} + +message CMsgProtoBufHeader { + optional fixed64 steamid = 1; + optional int32 client_sessionid = 2; + optional uint32 routing_appid = 3; + optional fixed64 jobid_source = 10 [default = 18446744073709551615]; + optional fixed64 jobid_target = 11 [default = 18446744073709551615]; + optional string target_job_name = 12; + optional int32 seq_num = 24; + optional int32 eresult = 13 [default = 2]; + optional string error_message = 14; + optional uint32 auth_account_flags = 16; + optional uint32 token_source = 22; + optional bool admin_spoofing_user = 23; + optional int32 transport_error = 17 [default = 1]; + optional uint64 messageid = 18 [default = 18446744073709551615]; + optional uint32 publisher_group_id = 19; + optional uint32 sysid = 20; + optional uint64 trace_tag = 21; + optional uint32 webapi_key_id = 25; + optional bool is_from_external_source = 26; + repeated uint32 forward_to_sysid = 27; + optional uint32 cm_sysid = 28; + optional string wg_token = 30; + optional uint32 launcher_type = 31 [default = 0]; + + oneof ip_addr { + uint32 ip = 15; + bytes ip_v6 = 29; + } +} + +message CMsgMulti { + optional uint32 size_unzipped = 1; + optional bytes message_body = 2; +} + +message CMsgProtobufWrapped { + optional bytes message_body = 1; +} + +message CMsgAuthTicket { + optional uint32 estate = 1; + optional uint32 eresult = 2 [default = 2]; + optional fixed64 steamid = 3; + optional fixed64 gameid = 4; + optional uint32 h_steam_pipe = 5; + optional uint32 ticket_crc = 6; + optional bytes ticket = 7; +} + +message CCDDBAppDetailCommon { + optional uint32 appid = 1; + optional string name = 2; + optional string icon = 3; + optional string logo = 4; + optional string logo_small = 5; + optional bool tool = 6; + optional bool demo = 7; + optional bool media = 8; + optional bool community_visible_stats = 9; + optional string friendly_name = 10; + optional string propagation = 11; + optional bool has_adult_content = 12; +} + +message CMsgAppRights { + optional bool edit_info = 1; + optional bool publish = 2; + optional bool view_error_data = 3; + optional bool download = 4; + optional bool upload_cdkeys = 5; + optional bool generate_cdkeys = 6; + optional bool view_financials = 7; + optional bool manage_ceg = 8; + optional bool manage_signing = 9; + optional bool manage_cdkeys = 10; + optional bool edit_marketing = 11; + optional bool economy_support = 12; + optional bool economy_support_supervisor = 13; + optional bool manage_pricing = 14; + optional bool broadcast_live = 15; +} + +message CCuratorPreferences { + optional uint32 supported_languages = 1; + optional bool platform_windows = 2; + optional bool platform_mac = 3; + optional bool platform_linux = 4; + optional bool vr_content = 5; + optional bool adult_content_violence = 6; + optional bool adult_content_sex = 7; + optional uint32 timestamp_updated = 8; + repeated uint32 tagids_curated = 9; + repeated uint32 tagids_filtered = 10; + optional string website_title = 11; + optional string website_url = 12; + optional string discussion_url = 13; + optional bool show_broadcast = 14; +} + +message CLocalizationToken { + optional uint32 language = 1; + optional string localized_string = 2; +} + +message CClanEventUserNewsTuple { + optional uint32 clanid = 1; + optional fixed64 event_gid = 2; + optional fixed64 announcement_gid = 3; + optional uint32 rtime_start = 4; + optional uint32 rtime_end = 5; + optional uint32 priority_score = 6; + optional uint32 type = 7; + optional uint32 clamp_range_slot = 8; + optional uint32 appid = 9; + optional uint32 rtime32_last_modified = 10; +} + +message CClanMatchEventByRange { + optional uint32 rtime_before = 1; + optional uint32 rtime_after = 2; + optional uint32 qualified = 3; + repeated .CClanEventUserNewsTuple events = 4; +} + +message CCommunity_ClanAnnouncementInfo { + optional uint64 gid = 1; + optional uint64 clanid = 2; + optional uint64 posterid = 3; + optional string headline = 4; + optional uint32 posttime = 5; + optional uint32 updatetime = 6; + optional string body = 7; + optional int32 commentcount = 8; + repeated string tags = 9; + optional int32 language = 10; + optional bool hidden = 11; + optional fixed64 forum_topic_id = 12; + optional fixed64 event_gid = 13; +} + +message CClanEventData { + optional fixed64 gid = 1; + optional fixed64 clan_steamid = 2; + optional string event_name = 3; + optional .EProtoClanEventType event_type = 4 [default = k_EClanOtherEvent]; + optional uint32 appid = 5; + optional string server_address = 6; + optional string server_password = 7; + optional uint32 rtime32_start_time = 8; + optional uint32 rtime32_end_time = 9; + optional int32 comment_count = 10; + optional fixed64 creator_steamid = 11; + optional fixed64 last_update_steamid = 12; + optional string event_notes = 13; + optional string jsondata = 14; + optional .CCommunity_ClanAnnouncementInfo announcement_body = 15; + optional bool published = 16; + optional bool hidden = 17; + optional uint32 rtime32_visibility_start = 18; + optional uint32 rtime32_visibility_end = 19; + optional uint32 broadcaster_accountid = 20; + optional uint32 follower_count = 21; + optional uint32 ignore_count = 22; + optional fixed64 forum_topic_id = 23; + optional uint32 rtime32_last_modified = 24; +} diff --git a/Protobufs/underlords/steammessages_clientserver_login.proto b/Protobufs/underlords/steammessages_clientserver_login.proto new file mode 100644 index 0000000..3d57d22 --- /dev/null +++ b/Protobufs/underlords/steammessages_clientserver_login.proto @@ -0,0 +1,155 @@ +import "steammessages_base.proto"; + +option optimize_for = SPEED; +option cc_generic_services = false; + +message CMsgClientHeartBeat { +} + +message CMsgClientServerTimestampRequest { + optional uint64 client_request_timestamp = 1; +} + +message CMsgClientServerTimestampResponse { + optional uint64 client_request_timestamp = 1; + optional uint64 server_timestamp_ms = 2; +} + +message CMsgClientSecret { + optional uint32 version = 1; + optional uint32 appid = 2; + optional uint32 deviceid = 3; + optional fixed64 nonce = 4; + optional bytes hmac = 5; +} + +message CMsgClientLogon { + optional uint32 protocol_version = 1; + optional uint32 deprecated_obfustucated_private_ip = 2; + optional uint32 cell_id = 3; + optional uint32 last_session_id = 4; + optional uint32 client_package_version = 5; + optional string client_language = 6; + optional uint32 client_os_type = 7; + optional bool should_remember_password = 8 [default = false]; + optional string wine_version = 9; + optional uint32 deprecated_10 = 10; + optional .CMsgIPAddress obfuscated_private_ip = 11; + optional uint32 deprecated_public_ip = 20; + optional uint32 qos_level = 21; + optional fixed64 client_supplied_steam_id = 22; + optional .CMsgIPAddress public_ip = 23; + optional bytes machine_id = 30; + optional uint32 launcher_type = 31 [default = 0]; + optional uint32 ui_mode = 32 [default = 0]; + optional uint32 chat_mode = 33 [default = 0]; + optional bytes steam2_auth_ticket = 41; + optional string email_address = 42; + optional fixed32 rtime32_account_creation = 43; + optional string account_name = 50; + optional string password = 51; + optional string game_server_token = 52; + optional string login_key = 60; + optional bool was_converted_deprecated_msg = 70 [default = false]; + optional string anon_user_target_account_name = 80; + optional fixed64 resolved_user_steam_id = 81; + optional int32 eresult_sentryfile = 82; + optional bytes sha_sentryfile = 83; + optional string auth_code = 84; + optional int32 otp_type = 85; + optional uint32 otp_value = 86; + optional string otp_identifier = 87; + optional bool steam2_ticket_request = 88; + optional bytes sony_psn_ticket = 90; + optional string sony_psn_service_id = 91; + optional bool create_new_psn_linked_account_if_needed = 92 [default = false]; + optional string sony_psn_name = 93; + optional int32 game_server_app_id = 94; + optional bool steamguard_dont_remember_computer = 95; + optional string machine_name = 96; + optional string machine_name_userchosen = 97; + optional string country_override = 98; + optional bool is_steam_box = 99; + optional uint64 client_instance_id = 100; + optional string two_factor_code = 101; + optional bool supports_rate_limit_response = 102; + optional string web_logon_nonce = 103; + optional int32 priority_reason = 104; + optional .CMsgClientSecret embedded_client_secret = 105; +} + +message CMsgClientLogonResponse { + optional int32 eresult = 1 [default = 2]; + optional int32 out_of_game_heartbeat_seconds = 2; + optional int32 in_game_heartbeat_seconds = 3; + optional uint32 deprecated_public_ip = 4; + optional fixed32 rtime32_server_time = 5; + optional uint32 account_flags = 6; + optional uint32 cell_id = 7; + optional string email_domain = 8; + optional bytes steam2_ticket = 9; + optional int32 eresult_extended = 10; + optional string webapi_authenticate_user_nonce = 11; + optional uint32 cell_id_ping_threshold = 12; + optional bool use_pics = 13; + optional string vanity_url = 14; + optional .CMsgIPAddress public_ip = 15; + optional fixed64 client_supplied_steamid = 20; + optional string ip_country_code = 21; + optional bytes parental_settings = 22; + optional bytes parental_setting_signature = 23; + optional int32 count_loginfailures_to_migrate = 24; + optional int32 count_disconnects_to_migrate = 25; + optional int32 ogs_data_report_time_window = 26; + optional uint64 client_instance_id = 27; + optional bool force_client_update_check = 28; +} + +message CMsgClientRequestWebAPIAuthenticateUserNonce { + optional int32 token_type = 1 [default = -1]; +} + +message CMsgClientRequestWebAPIAuthenticateUserNonceResponse { + optional int32 eresult = 1 [default = 2]; + optional string webapi_authenticate_user_nonce = 11; + optional int32 token_type = 3 [default = -1]; +} + +message CMsgClientLogOff { +} + +message CMsgClientLoggedOff { + optional int32 eresult = 1 [default = 2]; +} + +message CMsgClientNewLoginKey { + optional uint32 unique_id = 1; + optional string login_key = 2; +} + +message CMsgClientNewLoginKeyAccepted { + optional uint32 unique_id = 1; +} + +message CMsgClientAccountInfo { + optional string persona_name = 1; + optional string ip_country = 2; + optional int32 count_authed_computers = 5; + optional uint32 account_flags = 7; + optional uint64 facebook_id = 8; + optional string facebook_name = 9; + optional bool steamguard_notify_newmachines = 14; + optional string steamguard_machine_name_user_chosen = 15; + optional bool is_phone_verified = 16; + optional uint32 two_factor_state = 17; + optional bool is_phone_identifying = 18; + optional bool is_phone_needing_reverify = 19; +} + +message CMsgClientChallengeRequest { + optional fixed64 steamid = 1; +} + +message CMsgClientChallengeResponse { + optional fixed64 challenge = 1; +} diff --git a/Protobufs/underlords/steammessages_cloud.steamworkssdk.proto b/Protobufs/underlords/steammessages_cloud.steamworkssdk.proto new file mode 100644 index 0000000..7e4e759 --- /dev/null +++ b/Protobufs/underlords/steammessages_cloud.steamworkssdk.proto @@ -0,0 +1,68 @@ +import "steammessages_unified_base.steamworkssdk.proto"; + +message CCloud_GetUploadServerInfo_Request { + optional uint32 appid = 1 [(description) = "App ID to which a file will be uploaded to."]; +} + +message CCloud_GetUploadServerInfo_Response { + optional string server_url = 1; +} + +message CCloud_GetFileDetails_Request { + optional uint64 ugcid = 1 [(description) = "ID of the Cloud file to get details for."]; + optional uint32 appid = 2 [(description) = "App ID the file belongs to."]; +} + +message CCloud_UserFile { + optional uint32 appid = 1; + optional uint64 ugcid = 2; + optional string filename = 3; + optional uint64 timestamp = 4; + optional uint32 file_size = 5; + optional string url = 6; + optional fixed64 steamid_creator = 7; +} + +message CCloud_GetFileDetails_Response { + optional .CCloud_UserFile details = 1; +} + +message CCloud_EnumerateUserFiles_Request { + optional uint32 appid = 1 [(description) = "App ID to enumerate the files of."]; + optional bool extended_details = 2 [(description) = "(Optional) Get extended details back on the files found. Defaults to only returned the app Id and UGC Id of the files found."]; + optional uint32 count = 3 [(description) = "(Optional) Maximum number of results to return on this call. Defaults to a maximum of 500 files returned."]; + optional uint32 start_index = 4 [(description) = "(Optional) Starting index to begin enumeration at. Defaults to the beginning of the list."]; +} + +message CCloud_EnumerateUserFiles_Response { + repeated .CCloud_UserFile files = 1; + optional uint32 total_files = 2; +} + +message CCloud_Delete_Request { + optional string filename = 1; + optional uint32 appid = 2 [(description) = "App ID the file belongs to."]; +} + +message CCloud_Delete_Response { +} + +service Cloud { + option (service_description) = "A service for Steam Cloud operations."; + + rpc GetUploadServerInfo (.CCloud_GetUploadServerInfo_Request) returns (.CCloud_GetUploadServerInfo_Response) { + option (method_description) = "Returns the URL of the proper cloud server for a user."; + } + + rpc GetFileDetails (.CCloud_GetFileDetails_Request) returns (.CCloud_GetFileDetails_Response) { + option (method_description) = "Returns details on a Cloud file."; + } + + rpc EnumerateUserFiles (.CCloud_EnumerateUserFiles_Request) returns (.CCloud_EnumerateUserFiles_Response) { + option (method_description) = "Enumerates Cloud files for a user of a given app ID. Returns up to 500 files at a time."; + } + + rpc Delete (.CCloud_Delete_Request) returns (.CCloud_Delete_Response) { + option (method_description) = "Deletes a file from the user's cloud."; + } +} diff --git a/Protobufs/underlords/steammessages_helprequest.steamworkssdk.proto b/Protobufs/underlords/steammessages_helprequest.steamworkssdk.proto new file mode 100644 index 0000000..bc9ec35 --- /dev/null +++ b/Protobufs/underlords/steammessages_helprequest.steamworkssdk.proto @@ -0,0 +1,22 @@ +import "steammessages_unified_base.steamworkssdk.proto"; + +option cc_generic_services = true; + +message CHelpRequestLogs_UploadUserApplicationLog_Request { + optional uint32 appid = 1; + optional string log_type = 2; + optional string version_string = 3; + optional string log_contents = 4; +} + +message CHelpRequestLogs_UploadUserApplicationLog_Response { + optional uint64 id = 1; +} + +service HelpRequestLogs { + option (service_description) = "Service for dealing with user-submitted logs"; + + rpc UploadUserApplicationLog (.CHelpRequestLogs_UploadUserApplicationLog_Request) returns (.CHelpRequestLogs_UploadUserApplicationLog_Response) { + option (method_description) = "User uploading application logs"; + } +} diff --git a/Protobufs/underlords/steammessages_oauth.steamworkssdk.proto b/Protobufs/underlords/steammessages_oauth.steamworkssdk.proto new file mode 100644 index 0000000..ee6449d --- /dev/null +++ b/Protobufs/underlords/steammessages_oauth.steamworkssdk.proto @@ -0,0 +1,18 @@ +import "steammessages_unified_base.steamworkssdk.proto"; + +message COAuthToken_ImplicitGrantNoPrompt_Request { + optional string clientid = 1 [(description) = "Client ID for which to count the number of issued tokens"]; +} + +message COAuthToken_ImplicitGrantNoPrompt_Response { + optional string access_token = 1 [(description) = "OAuth Token, granted on success"]; + optional string redirect_uri = 2 [(description) = "Redirection URI provided during client registration."]; +} + +service OAuthToken { + option (service_description) = "Service containing methods to manage OAuth tokens"; + + rpc ImplicitGrantNoPrompt (.COAuthToken_ImplicitGrantNoPrompt_Request) returns (.COAuthToken_ImplicitGrantNoPrompt_Response) { + option (method_description) = "Grants an implicit OAuth token (grant type 'token') for the specified client ID on behalf of a user without prompting"; + } +} diff --git a/Protobufs/underlords/steammessages_player.steamworkssdk.proto b/Protobufs/underlords/steammessages_player.steamworkssdk.proto new file mode 100644 index 0000000..298c5dd --- /dev/null +++ b/Protobufs/underlords/steammessages_player.steamworkssdk.proto @@ -0,0 +1,254 @@ +import "steammessages_unified_base.steamworkssdk.proto"; + +option cc_generic_services = true; + +enum ENotificationSetting { + k_ENotificationSettingNotifyUseDefault = 0; + k_ENotificationSettingAlways = 1; + k_ENotificationSettingNever = 2; +} + +message CPlayer_GetMutualFriendsForIncomingInvites_Request { +} + +message CPlayer_IncomingInviteMutualFriendList { + optional fixed64 steamid = 1; + repeated uint32 mutual_friend_account_ids = 2; +} + +message CPlayer_GetMutualFriendsForIncomingInvites_Response { + repeated .CPlayer_IncomingInviteMutualFriendList incoming_invite_mutual_friends_lists = 1; +} + +message CPlayer_GetFriendsGameplayInfo_Request { + optional uint32 appid = 1; +} + +message CPlayer_GetFriendsGameplayInfo_Response { + message FriendsGameplayInfo { + optional fixed64 steamid = 1; + optional uint32 minutes_played = 2; + optional uint32 minutes_played_forever = 3; + } + + message OwnGameplayInfo { + optional fixed64 steamid = 1; + optional uint32 minutes_played = 2; + optional uint32 minutes_played_forever = 3; + optional bool in_wishlist = 4; + optional bool owned = 5; + } + + optional .CPlayer_GetFriendsGameplayInfo_Response.OwnGameplayInfo your_info = 1; + repeated .CPlayer_GetFriendsGameplayInfo_Response.FriendsGameplayInfo in_game = 2; + repeated .CPlayer_GetFriendsGameplayInfo_Response.FriendsGameplayInfo played_recently = 3; + repeated .CPlayer_GetFriendsGameplayInfo_Response.FriendsGameplayInfo played_ever = 4; + repeated .CPlayer_GetFriendsGameplayInfo_Response.FriendsGameplayInfo owns = 5; + repeated .CPlayer_GetFriendsGameplayInfo_Response.FriendsGameplayInfo in_wishlist = 6; +} + +message CPlayer_GetGameBadgeLevels_Request { + optional uint32 appid = 1; +} + +message CPlayer_GetGameBadgeLevels_Response { + message Badge { + optional int32 level = 1; + optional int32 series = 2; + optional uint32 border_color = 3; + } + + optional uint32 player_level = 1; + repeated .CPlayer_GetGameBadgeLevels_Response.Badge badges = 2; +} + +message CPlayer_GetLastPlayedTimes_Request { + optional uint32 min_last_played = 1 [(description) = "The most recent last-played time the client already knows about"]; +} + +message CPlayer_GetLastPlayedTimes_Response { + message Game { + optional int32 appid = 1; + optional uint32 last_playtime = 2; + optional int32 playtime_2weeks = 3; + optional int32 playtime_forever = 4; + optional uint32 first_playtime = 5; + } + + repeated .CPlayer_GetLastPlayedTimes_Response.Game games = 1; +} + +message CPlayer_AcceptSSA_Request { +} + +message CPlayer_AcceptSSA_Response { +} + +message CPlayer_GetNicknameList_Request { +} + +message CPlayer_GetNicknameList_Response { + message PlayerNickname { + optional fixed32 accountid = 1; + optional string nickname = 2; + } + + repeated .CPlayer_GetNicknameList_Response.PlayerNickname nicknames = 1; +} + +message CPlayer_GetPerFriendPreferences_Request { +} + +message PerFriendPreferences { + optional fixed32 accountid = 1; + optional string nickname = 2; + optional .ENotificationSetting notifications_showingame = 3 [default = k_ENotificationSettingNotifyUseDefault]; + optional .ENotificationSetting notifications_showonline = 4 [default = k_ENotificationSettingNotifyUseDefault]; + optional .ENotificationSetting notifications_showmessages = 5 [default = k_ENotificationSettingNotifyUseDefault]; + optional .ENotificationSetting sounds_showingame = 6 [default = k_ENotificationSettingNotifyUseDefault]; + optional .ENotificationSetting sounds_showonline = 7 [default = k_ENotificationSettingNotifyUseDefault]; + optional .ENotificationSetting sounds_showmessages = 8 [default = k_ENotificationSettingNotifyUseDefault]; + optional .ENotificationSetting notifications_sendmobile = 9 [default = k_ENotificationSettingNotifyUseDefault]; +} + +message CPlayer_GetPerFriendPreferences_Response { + repeated .PerFriendPreferences preferences = 1; +} + +message CPlayer_SetPerFriendPreferences_Request { + optional .PerFriendPreferences preferences = 1; +} + +message CPlayer_SetPerFriendPreferences_Response { +} + +message CPlayer_AddFriend_Request { + optional fixed64 steamid = 1 [(description) = "Steam ID of user to whom to send a friend invite."]; +} + +message CPlayer_AddFriend_Response { + optional bool invite_sent = 1 [(description) = "True if the operation was successful, false otherwise."]; + optional uint32 friend_relationship = 2 [(description) = "the resulting relationship. Depending on state, may move directly to friends rather than invite sent"]; +} + +message CPlayer_RemoveFriend_Request { + optional fixed64 steamid = 1 [(description) = "Steam ID of friend to remove."]; +} + +message CPlayer_RemoveFriend_Response { + optional uint32 friend_relationship = 1 [(description) = "the resulting relationship"]; +} + +message CPlayer_IgnoreFriend_Request { + optional fixed64 steamid = 1; + optional bool unignore = 2 [(description) = "If set, remove from ignore/block list instead of adding "]; +} + +message CPlayer_IgnoreFriend_Response { + optional uint32 friend_relationship = 1 [(description) = "the resulting relationship"]; +} + +message CPlayer_GetCommunityPreferences_Request { +} + +message CPlayer_CommunityPreferences { + optional bool hide_adult_content_violence = 1 [default = true]; + optional bool hide_adult_content_sex = 2 [default = true]; + optional bool parenthesize_nicknames = 4 [default = false]; + optional uint32 timestamp_updated = 3; +} + +message CPlayer_GetCommunityPreferences_Response { + optional .CPlayer_CommunityPreferences preferences = 1; +} + +message CPlayer_SetCommunityPreferences_Request { + optional .CPlayer_CommunityPreferences preferences = 1; +} + +message CPlayer_SetCommunityPreferences_Response { +} + +message CPlayer_GetNewSteamAnnouncementState_Request { + optional int32 language = 1; +} + +message CPlayer_GetNewSteamAnnouncementState_Response { + optional int32 state = 1; + optional string announcement_headline = 2; + optional string announcement_url = 3; + optional uint32 time_posted = 4; + optional uint64 announcement_gid = 5; +} + +message CPlayer_UpdateSteamAnnouncementLastRead_Request { + optional uint64 announcement_gid = 1; + optional uint32 time_posted = 2; +} + +message CPlayer_UpdateSteamAnnouncementLastRead_Response { +} + +service Player { + option (service_description) = "A service for accessing Steam player data"; + + rpc GetMutualFriendsForIncomingInvites (.CPlayer_GetMutualFriendsForIncomingInvites_Request) returns (.CPlayer_GetMutualFriendsForIncomingInvites_Response) { + option (method_description) = "Get me the mutual friends for each of my pending incoming invites (individuals and clans)."; + } + + rpc GetFriendsGameplayInfo (.CPlayer_GetFriendsGameplayInfo_Request) returns (.CPlayer_GetFriendsGameplayInfo_Response) { + option (method_description) = "Get a list of friends who are playing, have played, own, or want a game"; + } + + rpc GetGameBadgeLevels (.CPlayer_GetGameBadgeLevels_Request) returns (.CPlayer_GetGameBadgeLevels_Response) { + option (method_description) = "Returns the Steam Level of a user, the Badge level for the game, and if it's foil"; + } + + rpc ClientGetLastPlayedTimes (.CPlayer_GetLastPlayedTimes_Request) returns (.CPlayer_GetLastPlayedTimes_Response) { + option (method_description) = "Gets the last-played times for the account"; + } + + rpc AcceptSSA (.CPlayer_AcceptSSA_Request) returns (.CPlayer_AcceptSSA_Response) { + option (method_description) = "User is accepting the SSA"; + } + + rpc GetNicknameList (.CPlayer_GetNicknameList_Request) returns (.CPlayer_GetNicknameList_Response) { + option (method_description) = "Gets the list of nicknames this user has for other users"; + } + + rpc GetPerFriendPreferences (.CPlayer_GetPerFriendPreferences_Request) returns (.CPlayer_GetPerFriendPreferences_Response) { + option (method_description) = "Gets the list of per-friend preferences this user has set for other users"; + } + + rpc SetPerFriendPreferences (.CPlayer_SetPerFriendPreferences_Request) returns (.CPlayer_SetPerFriendPreferences_Response) { + option (method_description) = "Sets the logged in user's per-friend preferences for the given user"; + } + + rpc AddFriend (.CPlayer_AddFriend_Request) returns (.CPlayer_AddFriend_Response) { + option (method_description) = "Invites another Steam user to be a friend"; + } + + rpc RemoveFriend (.CPlayer_RemoveFriend_Request) returns (.CPlayer_RemoveFriend_Response) { + option (method_description) = "Removes a friend or ignores a friend suggestion"; + } + + rpc IgnoreFriend (.CPlayer_IgnoreFriend_Request) returns (.CPlayer_IgnoreFriend_Response) { + option (method_description) = "Blocks or unblocks communication with the user. Despite name, can be a non-friend."; + } + + rpc GetCommunityPreferences (.CPlayer_GetCommunityPreferences_Request) returns (.CPlayer_GetCommunityPreferences_Response) { + option (method_description) = "Returns the player's community preferences"; + } + + rpc SetCommunityPreferences (.CPlayer_SetCommunityPreferences_Request) returns (.CPlayer_SetCommunityPreferences_Response) { + option (method_description) = "Sets the player's community preferences"; + } + + rpc GetNewSteamAnnouncementState (.CPlayer_GetNewSteamAnnouncementState_Request) returns (.CPlayer_GetNewSteamAnnouncementState_Response) { + option (method_description) = "Calculates and returns what to display for UI that renders new steam announcement available"; + } + + rpc UpdateSteamAnnouncementLastRead (.CPlayer_UpdateSteamAnnouncementLastRead_Request) returns (.CPlayer_UpdateSteamAnnouncementLastRead_Response) { + option (method_description) = "Marks latest announcement timestamp read by user"; + } +} diff --git a/Protobufs/underlords/steammessages_publishedfile.steamworkssdk.proto b/Protobufs/underlords/steammessages_publishedfile.steamworkssdk.proto new file mode 100644 index 0000000..96d60af --- /dev/null +++ b/Protobufs/underlords/steammessages_publishedfile.steamworkssdk.proto @@ -0,0 +1,233 @@ +import "steammessages_unified_base.steamworkssdk.proto"; + +message CPublishedFile_Subscribe_Request { + optional uint64 publishedfileid = 1; + optional uint32 list_type = 2; + optional int32 appid = 3; + optional bool notify_client = 4; +} + +message CPublishedFile_Subscribe_Response { +} + +message CPublishedFile_Unsubscribe_Request { + optional uint64 publishedfileid = 1; + optional uint32 list_type = 2; + optional int32 appid = 3; + optional bool notify_client = 4; +} + +message CPublishedFile_Unsubscribe_Response { +} + +message CPublishedFile_Publish_Request { + optional uint32 appid = 1 [(description) = "App Id this file is being published FROM."]; + optional uint32 consumer_appid = 2 [(description) = "App Id this file is being published TO."]; + optional string cloudfilename = 3 [(description) = "Name of the file to publish in the user's cloud."]; + optional string preview_cloudfilename = 4 [(description) = "Name of the file to use as the published file's preview."]; + optional string title = 5 [(description) = "Text title for the published file."]; + optional string file_description = 6 [(description) = "Text description for the published file."]; + optional uint32 file_type = 7 [(description) = "(EWorkshopFileType) Type of Workshop file to publish."]; + optional string consumer_shortcut_name = 8 [(description) = "Shortcut name for the published file."]; + optional string youtube_username = 9 [(description) = "(Optional) User's YouTube account username."]; + optional string youtube_videoid = 10 [(description) = "(Optional) Video Id of a YouTube video for this published file."]; + optional uint32 visibility = 11 [(description) = "(ERemoteStoragePublishedFileVisibility) Visibility of the published file (private, friends, public, etc.)"]; + optional string redirect_uri = 12 [(description) = "(Optional) If supplied, the resulting published file's Id is appended to the URI."]; + repeated string tags = 13 [(description) = "Array of text tags to apply to the published file."]; + optional string collection_type = 14 [(description) = "(Optional) Type of collection the published file represents."]; + optional string game_type = 15 [(description) = "(Optional) Type of game the published file represents."]; + optional string url = 16 [(description) = "(Optional) If this represents a game, this is the URL to that game's page."]; +} + +message CPublishedFile_Publish_Response { + optional uint64 publishedfileid = 1; + optional string redirect_uri = 2; +} + +message CPublishedFile_GetDetails_Request { + repeated fixed64 publishedfileids = 1 [(description) = "Set of published file Ids to retrieve details for."]; + optional bool includetags = 2 [(description) = "If true, return tag information in the returned details."]; + optional bool includeadditionalpreviews = 3 [(description) = "If true, return preview information in the returned details."]; + optional bool includechildren = 4 [(description) = "If true, return children in the returned details."]; + optional bool includekvtags = 5 [(description) = "If true, return key value tags in the returned details."]; + optional bool includevotes = 6 [(description) = "If true, return vote data in the returned details."]; + optional bool short_description = 8 [(description) = "If true, return a short description instead of the full description."]; +} + +message PublishedFileDetails { + message Tag { + optional string tag = 1; + optional bool adminonly = 2; + } + + message Preview { + optional uint64 previewid = 1; + optional uint32 sortorder = 2; + optional string url = 3; + optional uint32 size = 4; + optional string filename = 5; + optional string youtubevideoid = 6; + } + + message Child { + optional uint64 publishedfileid = 1; + optional uint32 sortorder = 2; + optional uint32 file_type = 3; + } + + message KVTag { + optional string key = 1; + optional string value = 2; + } + + message VoteData { + optional float score = 1; + optional uint32 votes_up = 2; + optional uint32 votes_down = 3; + } + + optional uint32 result = 1; + optional uint64 publishedfileid = 2; + optional fixed64 creator = 3; + optional uint32 creator_appid = 4; + optional uint32 consumer_appid = 5; + optional uint32 consumer_shortcutid = 6; + optional string filename = 7; + optional uint64 file_size = 8; + optional uint64 preview_file_size = 9; + optional string file_url = 10; + optional string preview_url = 11; + optional string youtubevideoid = 12; + optional string url = 13; + optional fixed64 hcontent_file = 14; + optional fixed64 hcontent_preview = 15; + optional string title = 16; + optional string file_description = 17; + optional string short_description = 18; + optional uint32 time_created = 19; + optional uint32 time_updated = 20; + optional uint32 visibility = 21; + optional uint32 flags = 22; + optional bool workshop_file = 23; + optional bool workshop_accepted = 24; + optional bool show_subscribe_all = 25; + optional int32 num_comments_developer = 26; + optional int32 num_comments_public = 27; + optional bool banned = 28; + optional string ban_reason = 29; + optional fixed64 banner = 30; + optional bool can_be_deleted = 31; + optional bool incompatible = 32; + optional string app_name = 33; + optional uint32 file_type = 34; + optional bool can_subscribe = 35; + optional uint32 subscriptions = 36; + optional uint32 favorited = 37; + optional uint32 followers = 38; + optional uint32 lifetime_subscriptions = 39; + optional uint32 lifetime_favorited = 40; + optional uint32 lifetime_followers = 41; + optional uint32 views = 42; + optional uint32 image_width = 43; + optional uint32 image_height = 44; + optional string image_url = 45; + optional bool spoiler_tag = 46; + optional uint32 shortcutid = 47; + optional string shortcutname = 48; + optional uint32 num_children = 49; + optional uint32 num_reports = 50; + repeated .PublishedFileDetails.Preview previews = 51; + repeated .PublishedFileDetails.Tag tags = 52; + repeated .PublishedFileDetails.Child children = 53; + repeated .PublishedFileDetails.KVTag kvtags = 54; + optional .PublishedFileDetails.VoteData vote_data = 55; + optional uint32 time_subscribed = 56 [(description) = "Only valid in PublishedFile.GetUserFiles and not normal PublishedFile.GetDetail calls"]; +} + +message CPublishedFile_GetDetails_Response { + repeated .PublishedFileDetails publishedfiledetails = 1; +} + +message CPublishedFile_GetUserFiles_Request { + optional uint32 appid = 1 [(description) = "App Id to retrieve published files from."]; + optional uint32 page = 3 [default = 1, (description) = "(Optional) Starting page for results."]; + optional uint32 numperpage = 4 [default = 1, (description) = "(Optional) The number of results, per page to return."]; + optional string sortmethod = 6 [default = "lastupdated", (description) = "(Optional) Sorting method to use on returned values."]; + optional bool totalonly = 7 [(description) = "(Optional) If true, only return the total number of files that satisfy this query."]; + optional uint32 privacy = 9 [(description) = "(optional) Filter by privacy settings."]; + optional bool ids_only = 10 [(description) = "(Optional) If true, only return the published file ids of files that satisfy this query."]; + repeated string requiredtags = 11 [(description) = "(Optional) Tags that must be present on a published file to satisfy the query."]; + repeated string excludedtags = 12 [(description) = "(Optional) Tags that must NOT be present on a published file to satisfy the query."]; +} + +message CPublishedFile_GetUserFiles_Response { + message App { + optional uint32 appid = 1; + optional string name = 2; + optional uint32 shortcutid = 3; + optional bool private = 4; + } + + optional uint32 total = 1; + optional uint32 startindex = 2; + repeated .PublishedFileDetails publishedfiledetails = 3; + repeated .CPublishedFile_GetUserFiles_Response.App apps = 4; +} + +message CPublishedFile_Update_Request { + optional uint32 appid = 1 [(description) = "App Id this published file belongs to."]; + optional fixed64 publishedfileid = 2 [(description) = "Published file id of the file we'd like update."]; + optional string title = 3 [(description) = "(Optional) Title of the published file."]; + optional string file_description = 4 [(description) = "(Optional) Description of the published file."]; + optional uint32 visibility = 5 [(description) = "(Optional) Visibility of the published file."]; + repeated string tags = 6 [(description) = "(Optional) Set of tags for the published file."]; + optional string filename = 7 [(description) = "(Optional) Filename for the published file."]; + optional string preview_filename = 8 [(description) = "(Optional) Preview filename for the published file."]; +} + +message CPublishedFile_Update_Response { +} + +message CPublishedFile_RefreshVotingQueue_Request { + optional uint32 appid = 1; + optional uint32 matching_file_type = 2 [(description) = "EPublishedFileInfoMatchingFileType"]; + repeated string tags = 3 [(description) = "Include files that have all the tags or any of the tags if match_all_tags is set to false."]; + optional bool match_all_tags = 4 [default = true, (description) = "If true, then files must have all the tags specified. If false, then must have at least one of the tags specified."]; + repeated string excluded_tags = 5 [(description) = "Exclude any files that have any of these tags."]; + optional uint32 desired_queue_size = 6 [(description) = "Desired number of items in the voting queue. May be clamped by the server"]; +} + +message CPublishedFile_RefreshVotingQueue_Response { +} + +service PublishedFile { + option (service_description) = "A service to access published file data"; + + rpc Subscribe (.CPublishedFile_Subscribe_Request) returns (.CPublishedFile_Subscribe_Response) { + option (method_description) = "Subscribes the user to the published file"; + } + + rpc Unsubscribe (.CPublishedFile_Unsubscribe_Request) returns (.CPublishedFile_Unsubscribe_Response) { + option (method_description) = "Unsubscribes the user from the published file"; + } + + rpc Publish (.CPublishedFile_Publish_Request) returns (.CPublishedFile_Publish_Response) { + option (method_description) = "Publishes a clouded user file to the Workshop."; + } + + rpc GetDetails (.CPublishedFile_GetDetails_Request) returns (.CPublishedFile_GetDetails_Response) { + option (method_description) = "Retrieves information about a set of published files."; + } + + rpc GetUserFiles (.CPublishedFile_GetUserFiles_Request) returns (.CPublishedFile_GetUserFiles_Response) { + option (method_description) = "Retrieves files published by a user."; + } + + rpc Update (.CPublishedFile_Update_Request) returns (.CPublishedFile_Update_Response) { + option (method_description) = "Updates information about a published file."; + } + + rpc RefreshVotingQueue (.CPublishedFile_RefreshVotingQueue_Request) returns (.CPublishedFile_RefreshVotingQueue_Response) { + option (method_description) = "Refresh the voting queue for the user"; + } +} diff --git a/Protobufs/underlords/steammessages_unified_base.steamworkssdk.proto b/Protobufs/underlords/steammessages_unified_base.steamworkssdk.proto new file mode 100644 index 0000000..84ab32a --- /dev/null +++ b/Protobufs/underlords/steammessages_unified_base.steamworkssdk.proto @@ -0,0 +1,30 @@ +import "google/protobuf/descriptor.proto"; + +option optimize_for = SPEED; +option cc_generic_services = false; + +extend .google.protobuf.FieldOptions { + optional string description = 50000; +} + +extend .google.protobuf.ServiceOptions { + optional string service_description = 50000; + optional .EProtoExecutionSite service_execution_site = 50008 [default = k_EProtoExecutionSiteUnknown]; +} + +extend .google.protobuf.MethodOptions { + optional string method_description = 50000; +} + +extend .google.protobuf.EnumOptions { + optional string enum_description = 50000; +} + +extend .google.protobuf.EnumValueOptions { + optional string enum_value_description = 50000; +} + +enum EProtoExecutionSite { + k_EProtoExecutionSiteUnknown = 0; + k_EProtoExecutionSiteSteamClient = 3; +} diff --git a/Protobufs/underlords/steamnetworkingsockets_messages.proto b/Protobufs/underlords/steamnetworkingsockets_messages.proto new file mode 100644 index 0000000..438c355 --- /dev/null +++ b/Protobufs/underlords/steamnetworkingsockets_messages.proto @@ -0,0 +1,165 @@ +import "steamnetworkingsockets_messages_certs.proto"; + +option optimize_for = SPEED; +option cc_generic_services = false; + +enum ESteamNetworkingSocketsCipher { + k_ESteamNetworkingSocketsCipher_INVALID = 0; + k_ESteamNetworkingSocketsCipher_NULL = 1; + k_ESteamNetworkingSocketsCipher_AES_256_GCM = 2; +} + +message CMsgSteamDatagramSessionCryptInfo { + enum EKeyType { + INVALID = 0; + CURVE25519 = 1; + } + + optional .CMsgSteamDatagramSessionCryptInfo.EKeyType key_type = 1 [default = INVALID]; + optional bytes key_data = 2; + optional fixed64 nonce = 3; + optional uint32 protocol_version = 4; + repeated .ESteamNetworkingSocketsCipher ciphers = 5; +} + +message CMsgSteamDatagramSessionCryptInfoSigned { + optional bytes info = 1; + optional bytes signature = 2; +} + +message CMsgSteamDatagramDiagnostic { + optional uint32 severity = 1; + optional string text = 2; +} + +message CMsgSteamDatagramLinkInstantaneousStats { + optional uint32 out_packets_per_sec_x10 = 1; + optional uint32 out_bytes_per_sec = 2; + optional uint32 in_packets_per_sec_x10 = 3; + optional uint32 in_bytes_per_sec = 4; + optional uint32 ping_ms = 5; + optional uint32 packets_dropped_pct = 6; + optional uint32 packets_weird_sequence_pct = 7; + optional uint32 peak_jitter_usec = 8; +} + +message CMsgSteamDatagramLinkLifetimeStats { + optional uint64 packets_sent = 3; + optional uint64 kb_sent = 4; + optional uint64 packets_recv = 5; + optional uint64 kb_recv = 6; + optional uint64 packets_recv_sequenced = 7; + optional uint64 packets_recv_dropped = 8; + optional uint64 packets_recv_out_of_order = 9; + optional uint64 packets_recv_duplicate = 10; + optional uint64 packets_recv_lurch = 11; + optional uint32 quality_histogram_100 = 21; + optional uint32 quality_histogram_99 = 22; + optional uint32 quality_histogram_97 = 23; + optional uint32 quality_histogram_95 = 24; + optional uint32 quality_histogram_90 = 25; + optional uint32 quality_histogram_75 = 26; + optional uint32 quality_histogram_50 = 27; + optional uint32 quality_histogram_1 = 28; + optional uint32 quality_histogram_dead = 29; + optional uint32 quality_ntile_2nd = 30; + optional uint32 quality_ntile_5th = 31; + optional uint32 quality_ntile_25th = 32; + optional uint32 quality_ntile_50th = 33; + optional uint32 ping_histogram_25 = 41; + optional uint32 ping_histogram_50 = 42; + optional uint32 ping_histogram_75 = 43; + optional uint32 ping_histogram_100 = 44; + optional uint32 ping_histogram_125 = 45; + optional uint32 ping_histogram_150 = 46; + optional uint32 ping_histogram_200 = 47; + optional uint32 ping_histogram_300 = 48; + optional uint32 ping_histogram_max = 49; + optional uint32 ping_ntile_5th = 50; + optional uint32 ping_ntile_50th = 51; + optional uint32 ping_ntile_75th = 52; + optional uint32 ping_ntile_95th = 53; + optional uint32 ping_ntile_98th = 54; + optional uint32 jitter_histogram_negligible = 61; + optional uint32 jitter_histogram_1 = 62; + optional uint32 jitter_histogram_2 = 63; + optional uint32 jitter_histogram_5 = 64; + optional uint32 jitter_histogram_10 = 65; + optional uint32 jitter_histogram_20 = 66; + optional uint32 txspeed_max = 67; + optional uint32 txspeed_histogram_16 = 68; + optional uint32 txspeed_histogram_32 = 69; + optional uint32 txspeed_histogram_64 = 70; + optional uint32 txspeed_histogram_128 = 71; + optional uint32 txspeed_histogram_256 = 72; + optional uint32 txspeed_histogram_512 = 73; + optional uint32 txspeed_histogram_1024 = 74; + optional uint32 txspeed_histogram_max = 75; + optional uint32 txspeed_ntile_5th = 76; + optional uint32 txspeed_ntile_50th = 77; + optional uint32 txspeed_ntile_75th = 78; + optional uint32 txspeed_ntile_95th = 79; + optional uint32 txspeed_ntile_98th = 80; + optional uint32 rxspeed_max = 81; + optional uint32 rxspeed_histogram_16 = 82; + optional uint32 rxspeed_histogram_32 = 83; + optional uint32 rxspeed_histogram_64 = 84; + optional uint32 rxspeed_histogram_128 = 85; + optional uint32 rxspeed_histogram_256 = 86; + optional uint32 rxspeed_histogram_512 = 87; + optional uint32 rxspeed_histogram_1024 = 88; + optional uint32 rxspeed_histogram_max = 89; + optional uint32 rxspeed_ntile_5th = 90; + optional uint32 rxspeed_ntile_50th = 91; + optional uint32 rxspeed_ntile_75th = 92; + optional uint32 rxspeed_ntile_95th = 93; + optional uint32 rxspeed_ntile_98th = 94; +} + +message CMsgSteamDatagramConnectionQuality { + optional .CMsgSteamDatagramLinkInstantaneousStats instantaneous = 1; + optional .CMsgSteamDatagramLinkLifetimeStats lifetime = 2; +} + +message CMsgWebRTCRendezvous { + message Candidate { + optional string sdpm_id = 1; + optional uint32 sdpm_line_index = 2; + optional string candidate = 3; + } + + optional string offer = 1; + optional string answer = 2; + repeated .CMsgWebRTCRendezvous.Candidate candidates = 3; + optional uint32 first_candidate_revision = 4; + optional uint32 ack_candidates_revision = 5; +} + +message CMsgSteamNetworkingP2PRendezvous { + message ConnectRequest { + optional .CMsgSteamDatagramSessionCryptInfoSigned crypt = 6; + optional .CMsgSteamDatagramCertificateSigned cert = 7; + optional uint32 virtual_port = 9; + } + + message ConnectOK { + optional .CMsgSteamDatagramSessionCryptInfoSigned crypt = 5; + optional .CMsgSteamDatagramCertificateSigned cert = 6; + } + + message ConnectionClosed { + optional string debug = 5; + optional uint32 reason_code = 6; + } + + optional string from_identity = 8; + optional fixed32 from_connection_id = 9; + optional string to_identity = 10; + optional fixed32 to_connection_id = 1; + optional bytes sdr_routes = 2; + optional uint32 ack_peer_routes_revision = 3; + optional .CMsgWebRTCRendezvous webrtc = 7; + optional .CMsgSteamNetworkingP2PRendezvous.ConnectRequest connect_request = 4; + optional .CMsgSteamNetworkingP2PRendezvous.ConnectOK connect_ok = 5; + optional .CMsgSteamNetworkingP2PRendezvous.ConnectionClosed connection_closed = 6; +} diff --git a/Protobufs/underlords/steamnetworkingsockets_messages_certs.proto b/Protobufs/underlords/steamnetworkingsockets_messages_certs.proto new file mode 100644 index 0000000..4c59f35 --- /dev/null +++ b/Protobufs/underlords/steamnetworkingsockets_messages_certs.proto @@ -0,0 +1,38 @@ +option optimize_for = SPEED; +option cc_generic_services = false; + +message CMsgSteamNetworkingIdentityLegacyBinary { + optional fixed64 steam_id = 16; + optional string xbox_pairwise_id = 17; + optional bytes generic_bytes = 2; + optional string generic_string = 3; + optional bytes ipv6_and_port = 4; +} + +message CMsgSteamDatagramCertificate { + enum EKeyType { + INVALID = 0; + ED25519 = 1; + } + + optional .CMsgSteamDatagramCertificate.EKeyType key_type = 1 [default = INVALID]; + optional bytes key_data = 2; + optional fixed64 legacy_steam_id = 4; + optional .CMsgSteamNetworkingIdentityLegacyBinary legacy_identity_binary = 11; + optional string identity_string = 12; + repeated fixed32 gameserver_datacenter_ids = 5; + optional fixed32 time_created = 8; + optional fixed32 time_expiry = 9; + repeated uint32 app_ids = 10; +} + +message CMsgSteamDatagramCertificateSigned { + optional bytes cert = 4; + optional fixed64 ca_key_id = 5; + optional bytes ca_signature = 6; + optional bytes private_key_data = 1; +} + +message CMsgSteamDatagramCertificateRequest { + optional .CMsgSteamDatagramCertificate cert = 1; +} diff --git a/Protobufs/underlords/steamnetworkingsockets_messages_udp.proto b/Protobufs/underlords/steamnetworkingsockets_messages_udp.proto new file mode 100644 index 0000000..d09e1cb --- /dev/null +++ b/Protobufs/underlords/steamnetworkingsockets_messages_udp.proto @@ -0,0 +1,74 @@ +import "steamnetworkingsockets_messages_certs.proto"; +import "steamnetworkingsockets_messages.proto"; + +option optimize_for = SPEED; +option cc_generic_services = false; + +enum ESteamNetworkingUDPMsgID { + k_ESteamNetworkingUDPMsg_ChallengeRequest = 32; + k_ESteamNetworkingUDPMsg_ChallengeReply = 33; + k_ESteamNetworkingUDPMsg_ConnectRequest = 34; + k_ESteamNetworkingUDPMsg_ConnectOK = 35; + k_ESteamNetworkingUDPMsg_ConnectionClosed = 36; + k_ESteamNetworkingUDPMsg_NoConnection = 37; +} + +message CMsgSteamSockets_UDP_ChallengeRequest { + optional fixed32 connection_id = 1; + optional fixed64 my_timestamp = 3; + optional uint32 protocol_version = 4; +} + +message CMsgSteamSockets_UDP_ChallengeReply { + optional fixed32 connection_id = 1; + optional fixed64 challenge = 2; + optional fixed64 your_timestamp = 3; + optional uint32 protocol_version = 4; +} + +message CMsgSteamSockets_UDP_ConnectRequest { + optional fixed32 client_connection_id = 1; + optional fixed64 challenge = 2; + optional fixed64 my_timestamp = 5; + optional uint32 ping_est_ms = 6; + optional .CMsgSteamDatagramSessionCryptInfoSigned crypt = 7; + optional .CMsgSteamDatagramCertificateSigned cert = 4; + optional uint32 legacy_protocol_version = 8; + optional string identity_string = 10; + optional fixed64 legacy_client_steam_id = 3; + optional .CMsgSteamNetworkingIdentityLegacyBinary legacy_identity_binary = 9; +} + +message CMsgSteamSockets_UDP_ConnectOK { + optional fixed32 client_connection_id = 1; + optional fixed32 server_connection_id = 5; + optional fixed64 your_timestamp = 3; + optional uint32 delay_time_usec = 4; + optional .CMsgSteamDatagramSessionCryptInfoSigned crypt = 7; + optional .CMsgSteamDatagramCertificateSigned cert = 8; + optional string identity_string = 11; + optional fixed64 legacy_server_steam_id = 2; + optional .CMsgSteamNetworkingIdentityLegacyBinary legacy_identity_binary = 10; +} + +message CMsgSteamSockets_UDP_ConnectionClosed { + optional fixed32 to_connection_id = 4; + optional fixed32 from_connection_id = 5; + optional string debug = 2; + optional uint32 reason_code = 3; +} + +message CMsgSteamSockets_UDP_NoConnection { + optional fixed32 from_connection_id = 2; + optional fixed32 to_connection_id = 3; +} + +message CMsgSteamSockets_UDP_Stats { + enum Flags { + ACK_REQUEST_E2E = 2; + ACK_REQUEST_IMMEDIATE = 4; + } + + optional .CMsgSteamDatagramConnectionQuality stats = 1; + optional uint32 flags = 3; +} diff --git a/Protobufs/underlords/te.proto b/Protobufs/underlords/te.proto new file mode 100644 index 0000000..5028623 --- /dev/null +++ b/Protobufs/underlords/te.proto @@ -0,0 +1,259 @@ +import "networkbasetypes.proto"; + +option optimize_for = SPEED; +option cc_generic_services = false; + +enum ETEProtobufIds { + TE_EffectDispatchId = 400; + TE_ArmorRicochetId = 401; + TE_BeamEntPointId = 402; + TE_BeamEntsId = 403; + TE_BeamPointsId = 404; + TE_BeamRingId = 405; + TE_BSPDecalId = 407; + TE_BubblesId = 408; + TE_BubbleTrailId = 409; + TE_DecalId = 410; + TE_WorldDecalId = 411; + TE_EnergySplashId = 412; + TE_FizzId = 413; + TE_ShatterSurfaceId = 414; + TE_GlowSpriteId = 415; + TE_ImpactId = 416; + TE_MuzzleFlashId = 417; + TE_BloodStreamId = 418; + TE_ExplosionId = 419; + TE_DustId = 420; + TE_LargeFunnelId = 421; + TE_SparksId = 422; + TE_PhysicsPropId = 423; + TE_PlayerDecalId = 424; + TE_ProjectedDecalId = 425; + TE_SmokeId = 426; +} + +message CMsgTEArmorRicochet { + optional .CMsgVector pos = 1; + optional .CMsgVector dir = 2; +} + +message CMsgTEBaseBeam { + optional fixed64 modelindex = 1; + optional fixed64 haloindex = 2; + optional uint32 startframe = 3; + optional uint32 framerate = 4; + optional float life = 5; + optional float width = 6; + optional float endwidth = 7; + optional uint32 fadelength = 8; + optional float amplitude = 9; + optional fixed32 color = 10; + optional uint32 speed = 11; + optional uint32 flags = 12; +} + +message CMsgTEBeamEntPoint { + optional .CMsgTEBaseBeam base = 1; + optional uint32 startentity = 2; + optional uint32 endentity = 3; + optional .CMsgVector start = 4; + optional .CMsgVector end = 5; +} + +message CMsgTEBeamEnts { + optional .CMsgTEBaseBeam base = 1; + optional uint32 startentity = 2; + optional uint32 endentity = 3; +} + +message CMsgTEBeamPoints { + optional .CMsgTEBaseBeam base = 1; + optional .CMsgVector start = 2; + optional .CMsgVector end = 3; +} + +message CMsgTEBeamRing { + optional .CMsgTEBaseBeam base = 1; + optional uint32 startentity = 2; + optional uint32 endentity = 3; +} + +message CMsgTEBSPDecal { + optional .CMsgVector origin = 1; + optional .CMsgVector normal = 2; + optional .CMsgVector saxis = 3; + optional uint32 entity = 4; + optional uint32 index = 5; +} + +message CMsgTEBubbles { + optional .CMsgVector mins = 1; + optional .CMsgVector maxs = 2; + optional float height = 3; + optional uint32 count = 4; + optional float speed = 5; +} + +message CMsgTEBubbleTrail { + optional .CMsgVector mins = 1; + optional .CMsgVector maxs = 2; + optional float waterz = 3; + optional uint32 count = 4; + optional float speed = 5; +} + +message CMsgTEDecal { + optional .CMsgVector origin = 1; + optional .CMsgVector start = 2; + optional uint32 entity = 3; + optional uint32 hitbox = 4; + optional uint32 index = 5; +} + +message CMsgEffectData { + optional .CMsgVector origin = 1; + optional .CMsgVector start = 2; + optional .CMsgVector normal = 3; + optional .CMsgQAngle angles = 4; + optional fixed32 entity = 5; + optional fixed32 otherentity = 6; + optional float scale = 7; + optional float magnitude = 8; + optional float radius = 9; + optional fixed32 surfaceprop = 10; + optional fixed64 effectindex = 11; + optional uint32 damagetype = 12; + optional uint32 material = 13; + optional uint32 hitbox = 14; + optional uint32 color = 15; + optional uint32 flags = 16; + optional int32 attachmentindex = 17; + optional uint32 effectname = 18; + optional uint32 attachmentname = 19; +} + +message CMsgTEEffectDispatch { + optional .CMsgEffectData effectdata = 1; +} + +message CMsgTEEnergySplash { + optional .CMsgVector pos = 1; + optional .CMsgVector dir = 2; + optional bool explosive = 3; +} + +message CMsgTEFizz { + optional uint32 entity = 1; + optional uint32 density = 2; + optional int32 current = 3; +} + +message CMsgTEShatterSurface { + optional .CMsgVector origin = 1; + optional .CMsgQAngle angles = 2; + optional .CMsgVector force = 3; + optional .CMsgVector forcepos = 4; + optional float width = 5; + optional float height = 6; + optional float shardsize = 7; + optional uint32 surfacetype = 8; + optional fixed32 frontcolor = 9; + optional fixed32 backcolor = 10; +} + +message CMsgTEGlowSprite { + optional .CMsgVector origin = 1; + optional float scale = 2; + optional float life = 3; + optional uint32 brightness = 4; +} + +message CMsgTEImpact { + optional .CMsgVector origin = 1; + optional .CMsgVector normal = 2; + optional uint32 type = 3; +} + +message CMsgTEMuzzleFlash { + optional .CMsgVector origin = 1; + optional .CMsgQAngle angles = 2; + optional float scale = 3; + optional uint32 type = 4; +} + +message CMsgTEBloodStream { + optional .CMsgVector origin = 1; + optional .CMsgVector direction = 2; + optional fixed32 color = 3; + optional uint32 amount = 4; +} + +message CMsgTEExplosion { + optional .CMsgVector origin = 1; + optional uint32 framerate = 2; + optional uint32 flags = 3; + optional .CMsgVector normal = 4; + optional uint32 materialtype = 5; + optional uint32 radius = 6; + optional uint32 magnitude = 7; + optional float scale = 8; + optional bool affect_ragdolls = 9; + optional string effect_name = 10; + optional uint32 explosion_type = 11; +} + +message CMsgTEDust { + optional .CMsgVector origin = 1; + optional float size = 2; + optional float speed = 3; + optional .CMsgVector direction = 4; +} + +message CMsgTELargeFunnel { + optional .CMsgVector origin = 1; + optional uint32 reversed = 2; +} + +message CMsgTESparks { + optional .CMsgVector origin = 1; + optional uint32 magnitude = 2; + optional uint32 length = 3; + optional .CMsgVector direction = 4; +} + +message CMsgTEPhysicsProp { + optional .CMsgVector origin = 1; + optional .CMsgVector velocity = 2; + optional .CMsgQAngle angles = 3; + optional fixed32 skin = 4; + optional uint32 flags = 5; + optional uint32 effects = 6; + optional fixed32 color = 7; + optional fixed64 modelindex = 8; + optional uint32 unused_breakmodelsnottomake = 9; + optional float scale = 10; +} + +message CMsgTEPlayerDecal { + optional .CMsgVector origin = 1; + optional uint32 player = 2; + optional uint32 entity = 3; +} + +message CMsgTEProjectedDecal { + optional .CMsgVector origin = 1; + optional .CMsgQAngle angles = 2; + optional uint32 index = 3; + optional float distance = 4; +} + +message CMsgTESmoke { + optional .CMsgVector origin = 1; + optional float scale = 2; +} + +message CMsgTEWorldDecal { + optional .CMsgVector origin = 1; + optional .CMsgVector normal = 2; + optional uint32 index = 3; +} diff --git a/Protobufs/underlords/uifontfile_format.proto b/Protobufs/underlords/uifontfile_format.proto new file mode 100644 index 0000000..e9c11ea --- /dev/null +++ b/Protobufs/underlords/uifontfile_format.proto @@ -0,0 +1,16 @@ +option optimize_for = SPEED; +option cc_generic_services = false; + +message CUIFontFilePB { + optional string font_file_name = 1; + optional bytes opentype_font_data = 2; +} + +message CUIFontFilePackagePB { + message CUIEncryptedFontFilePB { + optional bytes encrypted_contents = 1; + } + + required uint32 package_version = 1; + repeated .CUIFontFilePackagePB.CUIEncryptedFontFilePB encrypted_font_files = 2; +} diff --git a/Protobufs/underlords/usermessages.proto b/Protobufs/underlords/usermessages.proto new file mode 100644 index 0000000..8f99816 --- /dev/null +++ b/Protobufs/underlords/usermessages.proto @@ -0,0 +1,511 @@ +import "networkbasetypes.proto"; + +option optimize_for = SPEED; +option cc_generic_services = false; + +enum EBaseUserMessages { + UM_AchievementEvent = 101; + UM_CloseCaption = 102; + UM_CloseCaptionDirect = 103; + UM_CurrentTimescale = 104; + UM_DesiredTimescale = 105; + UM_Fade = 106; + UM_GameTitle = 107; + UM_HintText = 109; + UM_HudMsg = 110; + UM_HudText = 111; + UM_KeyHintText = 112; + UM_ColoredText = 113; + UM_RequestState = 114; + UM_ResetHUD = 115; + UM_Rumble = 116; + UM_SayText = 117; + UM_SayText2 = 118; + UM_SayTextChannel = 119; + UM_Shake = 120; + UM_ShakeDir = 121; + UM_TextMsg = 124; + UM_ScreenTilt = 125; + UM_Train = 126; + UM_VGUIMenu = 127; + UM_VoiceMask = 128; + UM_VoiceSubtitle = 129; + UM_SendAudio = 130; + UM_ItemPickup = 131; + UM_AmmoDenied = 132; + UM_CrosshairAngle = 133; + UM_ShowMenu = 134; + UM_CreditsMsg = 135; + UM_CloseCaptionPlaceholder = 142; + UM_CameraTransition = 143; + UM_AudioParameter = 144; + UM_ParticleManager = 145; + UM_HudError = 146; + UM_CustomGameEvent = 148; + UM_AnimGraphUpdate = 149; + UM_HapticsManagerPulse = 150; + UM_HapticsManagerEffect = 151; + UM_MAX_BASE = 200; +} + +enum EBaseEntityMessages { + EM_PlayJingle = 136; + EM_ScreenOverlay = 137; + EM_RemoveAllDecals = 138; + EM_PropagateForce = 139; + EM_DoSpark = 140; + EM_FixAngle = 141; +} + +enum eRollType { + ROLL_NONE = -1; + ROLL_STATS = 0; + ROLL_CREDITS = 1; + ROLL_LATE_JOIN_LOGO = 2; + ROLL_OUTTRO = 3; +} + +enum PARTICLE_MESSAGE { + GAME_PARTICLE_MANAGER_EVENT_CREATE = 0; + GAME_PARTICLE_MANAGER_EVENT_UPDATE = 1; + GAME_PARTICLE_MANAGER_EVENT_UPDATE_FORWARD = 2; + GAME_PARTICLE_MANAGER_EVENT_UPDATE_ORIENTATION = 3; + GAME_PARTICLE_MANAGER_EVENT_UPDATE_FALLBACK = 4; + GAME_PARTICLE_MANAGER_EVENT_UPDATE_ENT = 5; + GAME_PARTICLE_MANAGER_EVENT_UPDATE_OFFSET = 6; + GAME_PARTICLE_MANAGER_EVENT_DESTROY = 7; + GAME_PARTICLE_MANAGER_EVENT_DESTROY_INVOLVING = 8; + GAME_PARTICLE_MANAGER_EVENT_RELEASE = 9; + GAME_PARTICLE_MANAGER_EVENT_LATENCY = 10; + GAME_PARTICLE_MANAGER_EVENT_SHOULD_DRAW = 11; + GAME_PARTICLE_MANAGER_EVENT_FROZEN = 12; + GAME_PARTICLE_MANAGER_EVENT_CHANGE_CONTROL_POINT_ATTACHMENT = 13; + GAME_PARTICLE_MANAGER_EVENT_UPDATE_ENTITY_POSITION = 14; + GAME_PARTICLE_MANAGER_EVENT_SET_FOW_PROPERTIES = 15; + GAME_PARTICLE_MANAGER_EVENT_SET_TEXT = 16; + GAME_PARTICLE_MANAGER_EVENT_SET_SHOULD_CHECK_FOW = 17; + GAME_PARTICLE_MANAGER_EVENT_SET_CONTROL_POINT_MODEL = 18; + GAME_PARTICLE_MANAGER_EVENT_SET_CONTROL_POINT_SNAPSHOT = 19; + GAME_PARTICLE_MANAGER_EVENT_SET_TEXTURE_ATTRIBUTE = 20; + GAME_PARTICLE_MANAGER_EVENT_SET_SCENE_OBJECT_GENERIC_FLAG = 21; +} + +enum EHapticPulseType { + VR_HAND_HAPTIC_PULSE_LIGHT = 0; + VR_HAND_HAPTIC_PULSE_MEDIUM = 1; + VR_HAND_HAPTIC_PULSE_STRONG = 2; +} + +message CUserMessageAchievementEvent { + optional uint32 achievement = 1; +} + +message CUserMessageCloseCaption { + optional fixed32 hash = 1; + optional float duration = 2; + optional bool from_player = 3; + optional int32 ent_index = 4; +} + +message CUserMessageCloseCaptionDirect { + optional fixed32 hash = 1; + optional float duration = 2; + optional bool from_player = 3; + optional int32 ent_index = 4; +} + +message CUserMessageCloseCaptionPlaceholder { + optional string string = 1; + optional float duration = 2; + optional bool from_player = 3; + optional int32 ent_index = 4; +} + +message CUserMessageCurrentTimescale { + optional float current = 1; +} + +message CUserMessageDesiredTimescale { + optional float desired = 1; + optional float acceleration = 2; + optional float minblendrate = 3; + optional float blenddeltamultiplier = 4; +} + +message CUserMessageFade { + optional uint32 duration = 1; + optional uint32 hold_time = 2; + optional uint32 flags = 3; + optional fixed32 color = 4; +} + +message CUserMessageShake { + optional uint32 command = 1; + optional float amplitude = 2; + optional float frequency = 3; + optional float duration = 4; +} + +message CUserMessageShakeDir { + optional .CUserMessageShake shake = 1; + optional .CMsgVector direction = 2; +} + +message CUserMessageScreenTilt { + optional uint32 command = 1; + optional bool ease_in_out = 2; + optional .CMsgVector angle = 3; + optional float duration = 4; + optional float time = 5; +} + +message CUserMessageSayText { + optional uint32 playerindex = 1; + optional string text = 2; + optional bool chat = 3; +} + +message CUserMessageSayText2 { + optional uint32 entityindex = 1; + optional bool chat = 2; + optional string messagename = 3; + optional string param1 = 4; + optional string param2 = 5; + optional string param3 = 6; + optional string param4 = 7; +} + +message CUserMessageHudMsg { + optional uint32 channel = 1; + optional float x = 2; + optional float y = 3; + optional fixed32 color1 = 4; + optional fixed32 color2 = 5; + optional uint32 effect = 6; + optional float fade_in_time = 7; + optional float fade_out_time = 8; + optional float hold_time = 9; + optional float fx_time = 10; + optional string message = 11; +} + +message CUserMessageHudText { + optional string message = 1; +} + +message CUserMessageTextMsg { + optional uint32 dest = 1; + repeated string param = 2; +} + +message CUserMessageGameTitle { +} + +message CUserMessageResetHUD { +} + +message CUserMessageSendAudio { + optional string soundname = 1; + optional bool stop = 2; +} + +message CUserMessageAudioParameter { + optional uint32 parameter_type = 1; + optional uint32 name_hash_code = 2; + optional float value = 3; + optional uint32 int_value = 4; +} + +message CUserMessageVoiceMask { + repeated uint32 gamerules_masks = 1; + repeated uint32 ban_masks = 2; + optional bool mod_enable = 3; +} + +message CUserMessageRequestState { +} + +message CUserMessageHintText { + optional string message = 1; +} + +message CUserMessageKeyHintText { + repeated string messages = 1; +} + +message CUserMessageVoiceSubtitle { + optional int32 player = 1; + optional int32 menu = 2; + optional int32 item = 3; +} + +message CUserMessageVGUIMenu { + message Keys { + optional string name = 1; + optional string value = 2; + } + + optional string name = 1; + optional bool show = 2; + repeated .CUserMessageVGUIMenu.Keys keys = 3; +} + +message CUserMessageRumble { + optional int32 index = 1; + optional int32 data = 2; + optional int32 flags = 3; +} + +message CUserMessageTrain { + optional uint32 position = 1; +} + +message CUserMessageSayTextChannel { + optional int32 player = 1; + optional int32 channel = 2; + optional string text = 3; +} + +message CUserMessageColoredText { + optional uint32 color = 1; + optional string text = 2; + optional bool reset = 3; + optional int32 context_player_id = 4; + optional int32 context_value = 5; + optional int32 context_team_id = 6; +} + +message CUserMessageItemPickup { + optional string itemname = 1; +} + +message CUserMessageAmmoDenied { + optional uint32 ammo_id = 1; +} + +message CUserMessageCrosshairAngle { + optional .CMsgQAngle angcrosshair = 1; +} + +message CUserMessageShowMenu { + optional uint32 validslots = 1; + optional uint32 displaytime = 2; + optional bool needmore = 3; + optional string menustring = 4; +} + +message CUserMessageCreditsMsg { + optional .eRollType rolltype = 1 [default = ROLL_NONE]; + optional float logo_length = 2; +} + +message CEntityMessagePlayJingle { + optional .CEntityMsg entity_msg = 1; +} + +message CEntityMessageScreenOverlay { + optional bool start_effect = 1; + optional .CEntityMsg entity_msg = 2; +} + +message CEntityMessageRemoveAllDecals { + optional bool remove_decals = 1; + optional .CEntityMsg entity_msg = 2; +} + +message CEntityMessagePropagateForce { + optional .CMsgVector impulse = 1; + optional .CEntityMsg entity_msg = 2; +} + +message CEntityMessageDoSpark { + optional .CMsgVector origin = 1; + optional uint32 entityindex = 2; + optional float radius = 3; + optional fixed32 color = 4; + optional uint32 beams = 5; + optional float thick = 6; + optional float duration = 7; + optional .CEntityMsg entity_msg = 8; +} + +message CEntityMessageFixAngle { + optional bool relative = 1; + optional .CMsgQAngle angle = 2; + optional .CEntityMsg entity_msg = 3; +} + +message CUserMessageCameraTransition { + message Transition_DataDriven { + optional string filename = 1; + optional int32 attach_ent_index = 2; + } + + optional uint32 camera_type = 1; + optional float duration = 2; + optional .CUserMessageCameraTransition.Transition_DataDriven params_data_driven = 3; +} + +message CUserMsg_ParticleManager { + message ReleaseParticleIndex { + } + + message CreateParticle { + optional fixed64 particle_name_index = 1; + optional int32 attach_type = 2; + optional int32 entity_handle = 3; + optional int32 entity_handle_for_modifiers = 4; + optional bool apply_voice_ban_rules = 5; + optional int32 team_behavior = 6; + } + + message DestroyParticle { + optional bool destroy_immediately = 1; + } + + message DestroyParticleInvolving { + optional bool destroy_immediately = 1; + optional int32 entity_handle = 3; + } + + message UpdateParticle { + optional int32 control_point = 1; + optional .CMsgVector position = 2; + } + + message UpdateParticleFwd { + optional int32 control_point = 1; + optional .CMsgVector forward = 2; + } + + message UpdateParticleOrient { + optional int32 control_point = 1; + optional .CMsgVector forward = 2; + optional .CMsgVector right = 3 [deprecated = true]; + optional .CMsgVector up = 4; + optional .CMsgVector left = 5; + } + + message UpdateParticleFallback { + optional int32 control_point = 1; + optional .CMsgVector position = 2; + } + + message UpdateParticleOffset { + optional int32 control_point = 1; + optional .CMsgVector origin_offset = 2; + optional .CMsgQAngle angle_offset = 3; + } + + message UpdateParticleEnt { + optional int32 control_point = 1; + optional int32 entity_handle = 2; + optional int32 attach_type = 3; + optional int32 attachment = 4; + optional .CMsgVector fallback_position = 5; + optional bool include_wearables = 6; + } + + message UpdateParticleSetFrozen { + optional bool set_frozen = 1; + } + + message UpdateParticleShouldDraw { + optional bool should_draw = 1; + } + + message ChangeControlPointAttachment { + optional int32 attachment_old = 1; + optional int32 attachment_new = 2; + optional int32 entity_handle = 3; + } + + message UpdateEntityPosition { + optional int32 entity_handle = 1; + optional .CMsgVector position = 2; + } + + message SetParticleFoWProperties { + optional int32 fow_control_point = 1; + optional int32 fow_control_point2 = 2; + optional float fow_radius = 3; + } + + message SetParticleShouldCheckFoW { + optional bool check_fow = 1; + } + + message SetControlPointModel { + optional int32 control_point = 1; + optional string model_name = 2; + } + + message SetControlPointSnapshot { + optional int32 control_point = 1; + optional string snapshot_name = 2; + } + + message SetParticleText { + optional string text = 1; + } + + message SetTextureAttribute { + optional string attribute_name = 1; + optional string texture_name = 2; + } + + message SetSceneObjectGenericFlag { + optional bool flag_value = 1; + } + + required .PARTICLE_MESSAGE type = 1 [default = GAME_PARTICLE_MANAGER_EVENT_CREATE]; + required uint32 index = 2; + optional .CUserMsg_ParticleManager.ReleaseParticleIndex release_particle_index = 3; + optional .CUserMsg_ParticleManager.CreateParticle create_particle = 4; + optional .CUserMsg_ParticleManager.DestroyParticle destroy_particle = 5; + optional .CUserMsg_ParticleManager.DestroyParticleInvolving destroy_particle_involving = 6; + optional .CUserMsg_ParticleManager.UpdateParticle update_particle = 7; + optional .CUserMsg_ParticleManager.UpdateParticleFwd update_particle_fwd = 8; + optional .CUserMsg_ParticleManager.UpdateParticleOrient update_particle_orient = 9; + optional .CUserMsg_ParticleManager.UpdateParticleFallback update_particle_fallback = 10; + optional .CUserMsg_ParticleManager.UpdateParticleOffset update_particle_offset = 11; + optional .CUserMsg_ParticleManager.UpdateParticleEnt update_particle_ent = 12; + optional .CUserMsg_ParticleManager.UpdateParticleShouldDraw update_particle_should_draw = 14; + optional .CUserMsg_ParticleManager.UpdateParticleSetFrozen update_particle_set_frozen = 15; + optional .CUserMsg_ParticleManager.ChangeControlPointAttachment change_control_point_attachment = 16; + optional .CUserMsg_ParticleManager.UpdateEntityPosition update_entity_position = 17; + optional .CUserMsg_ParticleManager.SetParticleFoWProperties set_particle_fow_properties = 18; + optional .CUserMsg_ParticleManager.SetParticleText set_particle_text = 19; + optional .CUserMsg_ParticleManager.SetParticleShouldCheckFoW set_particle_should_check_fow = 20; + optional .CUserMsg_ParticleManager.SetControlPointModel set_control_point_model = 21; + optional .CUserMsg_ParticleManager.SetControlPointSnapshot set_control_point_snapshot = 22; + optional .CUserMsg_ParticleManager.SetTextureAttribute set_texture_attribute = 23; + optional .CUserMsg_ParticleManager.SetSceneObjectGenericFlag set_scene_object_generic_flag = 24; +} + +message CUserMsg_HudError { + optional int32 order_id = 1; +} + +message CUserMsg_CustomGameEvent { + optional string event_name = 1; + optional bytes data = 2; +} + +message CUserMessageHapticsManagerPulse { + optional int32 hand_id = 1; + optional float effect_amplitude = 2; + optional float effect_frequency = 3; + optional float effect_duration = 4; +} + +message CUserMessageHapticsManagerEffect { + optional int32 hand_id = 1; + optional uint32 effect_name_hash_code = 2; + optional float effect_scale = 3; +} + +message CUserMessageAnimStateGraphState { + optional int32 entity_index = 1; + optional bytes data = 2; +} diff --git a/Protobufs/underlords/valveextensions.proto b/Protobufs/underlords/valveextensions.proto new file mode 100644 index 0000000..491e165 --- /dev/null +++ b/Protobufs/underlords/valveextensions.proto @@ -0,0 +1,11 @@ +import "google/protobuf/descriptor.proto"; + +option optimize_for = SPEED; +option cc_generic_services = false; + +extend .google.protobuf.FieldOptions { + optional bool map_field = 61000 [default = false]; + optional bool map_key = 61001 [default = false]; + optional int32 diff_encode_field = 61002 [default = 0]; + optional bool delta_ignore = 61003 [default = false]; +} diff --git a/Protobufs/update.sh b/Protobufs/update.sh new file mode 100755 index 0000000..608c1a1 --- /dev/null +++ b/Protobufs/update.sh @@ -0,0 +1,14 @@ +#!/bin/bash + +cd "$(dirname "$0")" + +rsync -arhv --delete ../steamtrack/Protobufs/ ./steam/ +rsync -arhv --delete ../backend/files/csgo/Protobufs/ ./csgo/ +rsync -arhv --delete ../backend/files/dota/Protobufs/ ./dota2/ +rsync -arhv --delete ../backend/files/deadlock/Protobufs/ ./deadlock/ +rsync -arhv --delete ../backend/files/tf/Protobufs/ ./tf2/ +cp -r ./steam/google ./ + +git add -A +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')" +git push diff --git a/Protobufs/webui/common.proto b/Protobufs/webui/common.proto new file mode 100644 index 0000000..572b70f --- /dev/null +++ b/Protobufs/webui/common.proto @@ -0,0 +1,5778 @@ +import "common_base.proto"; + +// Used by: common.proto +message CAppBootstrapData { + optional uint32 appid = 1; + optional bool hidden = 2; + repeated string user_tag = 3; +} + +// Used by: common.proto +message CAppOverview { + optional uint32 appid = 1; + optional string display_name = 2; + optional bool visible_in_game_list = 4; + optional bool subscribed_to = 5; + optional string sort_as = 6; + optional int32 app_type = 7 [(.description) = "enum"]; + optional uint32 mru_index = 13; + optional uint32 rt_recent_activity_time = 14 [default = 0]; + optional uint32 minutes_playtime_forever = 16 [default = 0]; + optional uint32 minutes_playtime_last_two_weeks = 17 [default = 0]; + optional uint32 rt_last_time_played = 18 [default = 0]; + repeated uint32 store_tag = 19; + repeated .CAppOverview_AppAssociation association = 20; + repeated uint32 store_category = 23; + optional uint32 rt_original_release_date = 25 [default = 0]; + optional uint32 rt_steam_release_date = 26 [default = 0]; + optional string icon_hash = 27; + optional string logo_hash = 30; + optional int32 controller_support = 31 [(.description) = "enum"]; + //optional int32 xbox_controller_support = 31 [(.description) = "enum"]; + optional bool vr_supported = 32; + optional uint32 metacritic_score = 36; + optional uint64 size_on_disk = 37; + optional bool third_party_mod = 38; + optional string icon_data = 39; + optional string icon_data_format = 40; + optional string gameid = 41; + optional string library_capsule_filename = 42; + repeated .CAppOverview_PerClientData per_client_data = 43; + optional uint64 most_available_clientid = 44 [default = 0]; + optional uint64 selected_clientid = 45 [default = 0]; + optional uint32 rt_store_asset_mtime = 46; + optional uint32 rt_custom_image_mtime = 47; + optional uint32 optional_parent_app_id = 48; + optional uint32 owner_account_id = 49; + optional bool compat_mapping_enabled = 50; + optional uint32 compat_mapping_priority = 51; + optional string compat_mapping_tool_name = 52; + optional uint32 review_score_with_bombs = 53 [default = 0]; + optional uint32 review_percentage_with_bombs = 54 [default = 0]; + optional uint32 review_score_without_bombs = 55 [default = 0]; + optional uint32 review_percentage_without_bombs = 56 [default = 0]; + optional string library_id = 57; + optional bool vr_only = 58; + optional uint32 mastersub_appid = 59; + optional string mastersub_includedwith_logo = 60; + optional uint32 compat_allowlist_setting = 61 [default = 0]; + optional string site_license_site_name = 62; + optional uint32 shortcut_override_appid = 63; + optional uint32 rt_last_time_locally_played = 65; + optional uint32 rt_purchased_time = 66; + optional string header_filename = 67; + optional uint32 local_cache_version = 68; + optional uint32 number_of_copies = 72 [default = 1]; + optional uint32 steam_hw_compat_category_packed = 73 [default = 0]; +} + +// Used by: common.proto +message CAppOverview_AppAssociation { + optional int32 type = 1 [(.description) = "enum"]; + optional string name = 2; +} + +message CAppOverview_Change { + repeated .CAppOverview app_overview = 1; + repeated uint32 removed_appid = 2; + optional bool full_update = 3; + optional bool update_complete = 4; +} + +// Used by: common.proto +message CAppOverview_PerClientData { + optional uint64 clientid = 1 [default = 0]; + optional string client_name = 2; + optional int32 display_status = 3 [(.description) = "enum"]; + optional uint32 status_percentage = 4 [default = 0]; + optional string active_beta = 5; + optional bool installed = 6; + optional uint64 bytes_downloaded = 7 [default = 0]; + optional uint64 bytes_total = 8 [default = 0]; + optional bool streaming_to_local_client = 9; + optional bool is_available_on_current_platform = 10; + optional bool is_invalid_os_type = 11; + optional uint32 playtime_left = 12; + optional bool update_available_but_disabled_by_app = 14; +} + +// Used by: AccountCart, Checkout +message CartAmount { + optional int64 amount_in_cents = 1; + optional int32 currency_code = 2; + optional string formatted_amount = 3; +} + +// Used by: AccountCart, Checkout +message CartCoupon { + optional uint32 couponid = 1; + optional uint64 gidcoupon = 2; + optional string title = 5; + optional string coupon_description = 6; + optional string large_icon_url = 7; + optional int32 discount_pct = 8; +} + +// Used by: AccountCart, Checkout +message CartGiftInfo { + optional int32 accountid_giftee = 1; + optional .CartGiftMessage gift_message = 2; + optional int32 time_scheduled_send = 3; +} + +// Used by: AccountCart, Checkout +message CartGiftMessage { + optional string gifteename = 1; + optional string message = 2; + optional string sentiment = 3; + optional string signature = 4; +} + +message CBilling_Address { + optional string first_name = 1; + optional string last_name = 2; + optional string address1 = 3; + optional string address2 = 4; + optional string city = 5; + optional string us_state = 6; + optional string country_code = 7; + optional string postcode = 8; + optional int32 zip_plus4 = 9; + optional string phone = 10; +} + +message CBroadcast_NotifyBroadcastSessionHeartbeat_Notification { + optional fixed64 broadcast_id = 1; +} + +message CBroadcast_NotifyBroadcastUploadStop_Notification { + optional fixed64 broadcast_upload_id = 1; + optional uint32 upload_result = 2; +} + +// Used by: ChatRoom, ChatRoomClient, ClanChatRooms +message CChatPartyBeacon { + optional uint32 app_id = 1; + optional fixed64 steamid_owner = 2; + optional fixed64 beacon_id = 3; + optional string game_metadata = 4; +} + +// Used by: ChatRoom, ChatRoomClient, ClanChatRooms +message CChatRoleActions { + optional uint64 role_id = 1; + optional bool can_create_rename_delete_channel = 2; + optional bool can_kick = 3; + optional bool can_ban = 4; + optional bool can_invite = 5; + optional bool can_change_tagline_avatar_name = 6; + optional bool can_chat = 7; + optional bool can_view_history = 8; + optional bool can_change_group_roles = 9; + optional bool can_change_user_roles = 10; + optional bool can_mention_all = 11; + optional bool can_set_watching_broadcast = 12; +} + +// Used by: ChatRoom, ChatRoomClient, ClanChatRooms +message CChatRoom_GetChatRoomGroupSummary_Response { + optional uint64 chat_group_id = 1; + optional string chat_group_name = 2; + optional uint32 active_member_count = 3; + optional uint32 active_voice_member_count = 4; + optional uint64 default_chat_id = 5; + repeated .CChatRoomState chat_rooms = 6; + optional uint32 clanid = 7; + optional string chat_group_tagline = 8; + optional uint32 accountid_owner = 9; + repeated uint32 top_members = 10; + optional bytes chat_group_avatar_sha = 11; + optional int32 rank = 12 [(.description) = "enum"]; + optional uint64 default_role_id = 13; + repeated uint64 role_ids = 14; + repeated .CChatRoleActions role_actions = 15; + optional uint32 watching_broadcast_accountid = 16; + optional uint32 appid = 17; + repeated .CChatPartyBeacon party_beacons = 18; + optional uint64 watching_broadcast_channel_id = 19; + optional uint64 active_minigame_id = 20; + optional string avatar_ugc_url = 21; + optional bool disabled = 22; +} + +// Used by: ChatRoom, ChatRoomClient, ClanChatRooms +message CChatRoomState { + optional uint64 chat_id = 1; + optional string chat_name = 2; + optional bool voice_allowed = 3; + repeated uint32 members_in_voice = 4; + optional uint32 time_last_message = 5; + optional uint32 sort_order = 6; + optional string last_message = 7; + optional uint32 accountid_last_message = 8; +} + +message CClanEventData { + optional fixed64 gid = 1; + optional fixed64 clan_steamid = 2; + optional string event_name = 3; + optional int32 event_type = 4 [(.description) = "enum"]; + optional uint32 appid = 5; + optional string server_address = 6; + optional string server_password = 7; + optional uint32 rtime32_start_time = 8; + optional uint32 rtime32_end_time = 9; + optional int32 comment_count = 10; + optional fixed64 creator_steamid = 11; + optional fixed64 last_update_steamid = 12; + optional string event_notes = 13; + optional string jsondata = 14; + optional .CCommunity_ClanAnnouncementInfo announcement_body = 15; + optional bool published = 16; + optional bool hidden = 17; + optional uint32 rtime32_visibility_start = 18; + optional uint32 rtime32_visibility_end = 19; + optional uint32 broadcaster_accountid = 20; + optional uint32 follower_count = 21; + optional uint32 ignore_count = 22; + optional fixed64 forum_topic_id = 23; + optional uint32 rtime32_last_modified = 24; + optional fixed64 news_post_gid = 25; + optional uint32 rtime_mod_reviewed = 26; + optional uint32 featured_app_tagid = 27; + repeated uint32 referenced_appids = 28; +} + +// Used by: common.proto +message CClientMetrics_AppInterfaceCreation { + optional string raw_version = 1; + optional string requested_interface_type = 2; +} + +// Used by: common.proto +message CClientMetrics_AppInterfaceMethodCounts { + optional string interface_name = 1; + optional string method_name = 2; + optional uint32 call_count = 3; +} + +message CClientMetrics_AppInterfaceStats_Notification { + optional uint64 game_id = 1; + repeated .CClientMetrics_AppInterfaceCreation interfaces_created = 2; + repeated .CClientMetrics_AppInterfaceMethodCounts methods_called = 3; + optional uint32 session_length_seconds = 4; +} + +message CClientMetrics_ClientBootstrap_Notification { + optional .CClientMetrics_ClientBootstrap_Summary summary = 1; +} + +// Used by: common.proto +message CClientMetrics_ClientBootstrap_RequestInfo { + optional string original_hostname = 1; + optional string actual_hostname = 2; + optional string path = 3; + optional string base_name = 4; + optional bool success = 5; + optional uint32 status_code = 6; + optional string address_of_request_url = 7; + optional uint32 response_time_ms = 8; + optional uint64 bytes_received = 9; + optional uint32 num_retries = 10; +} + +// Used by: common.proto +message CClientMetrics_ClientBootstrap_Summary { + optional uint32 launcher_type = 1; + optional uint32 steam_realm = 2; + optional string beta_name = 3; + optional bool download_completed = 4; + optional uint32 total_time_ms = 6; + repeated .CClientMetrics_ClientBootstrap_RequestInfo manifest_requests = 7; + repeated .CClientMetrics_ClientBootstrap_RequestInfo package_requests = 8; +} + +message CClientMetrics_ClipRange_Notification { + optional int32 original_range_method = 1 [(.description) = "enum"]; + optional .CClientMetrics_ClipRange_Notification_RelativeRangeEdge start = 2; + optional .CClientMetrics_ClipRange_Notification_RelativeRangeEdge end = 3; + optional float seconds = 4; + optional fixed64 gameid = 5; +} + +// Used by: common.proto +message CClientMetrics_ClipRange_Notification_RelativeRangeEdge { + optional int32 original_range_method = 1 [(.description) = "enum"]; + optional int32 latest_range_method = 2 [(.description) = "enum"]; + optional int32 delta_ms = 3; +} + +message CClientMetrics_ClipShare_Notification { + optional uint32 eresult = 1 [default = 2]; + optional int32 share_method = 2 [(.description) = "enum"]; + optional float seconds = 3; + optional uint64 bytes = 4; + optional fixed64 gameid = 5; +} + +message CClientMetrics_CloudAppSyncStats_Notification { + optional uint32 app_id = 1; + optional uint32 platform_type = 2; + optional bool preload = 3; + optional bool blocking_app_launch = 4; + optional uint32 files_uploaded = 5; + optional uint32 files_downloaded = 6; + optional uint32 files_deleted = 7; + optional uint64 bytes_uploaded = 8; + optional uint64 bytes_downloaded = 9; + optional uint64 microsec_total = 10; + optional uint64 microsec_init_caches = 11; + optional uint64 microsec_validate_state = 12; + optional uint64 microsec_ac_launch = 13; + optional uint64 microsec_ac_prep_user_files = 14; + optional uint64 microsec_ac_exit = 15; + optional uint64 microsec_build_sync_list = 16; + optional uint64 microsec_delete_files = 17; + optional uint64 microsec_download_files = 18; + optional uint64 microsec_upload_files = 19; + optional uint32 hardware_type = 20; + optional uint32 files_managed = 21; +} + +// Used by: common.proto +message CClientMetrics_ContentDownloadResponse_Counts { + optional uint32 class_100 = 1; + optional uint32 class_200 = 2; + optional uint32 class_300 = 3; + optional uint32 class_400 = 4; + optional uint32 class_500 = 5; + optional uint32 no_response = 6; + optional uint32 class_unknown = 7; +} + +message CClientMetrics_ContentDownloadResponse_Counts_Notification { + optional uint32 cell_id = 1; + optional .CClientMetrics_ContentDownloadResponse_Hosts data = 2; +} + +// Used by: common.proto +message CClientMetrics_ContentDownloadResponse_HostCounts { + optional string hostname = 1; + optional uint32 source_type = 2; + optional .CClientMetrics_ContentDownloadResponse_Counts counts = 3; +} + +// Used by: common.proto +message CClientMetrics_ContentDownloadResponse_Hosts { + repeated .CClientMetrics_ContentDownloadResponse_HostCounts hosts = 1; +} + +message CClientMetrics_ContentValidation_Notification { + optional int32 validation_result = 1; + optional uint32 app_id = 2; + optional bool staged_files = 3; + optional bool user_initiated = 4; + optional bool early_out = 5; + optional uint32 chunks_scanned = 6; + optional uint32 chunks_corrupt = 7; + optional uint64 bytes_scanned = 8; + optional uint64 chunk_bytes_corrupt = 9; + optional uint64 total_file_size_corrupt = 10; +} + +message CClientMetrics_DownloadRates_Notification { + optional uint32 cell_id = 1; + repeated .CClientMetrics_DownloadRates_Notification_StatsInfo stats = 2; + optional uint32 throttling_kbps = 3; + optional uint32 os_type = 4; + optional uint32 device_type = 5; +} + +// Used by: common.proto +message CClientMetrics_DownloadRates_Notification_StatsInfo { + optional uint32 source_type = 1; + optional uint32 source_id = 2; + optional uint64 bytes = 3; + optional string host_name = 4; + optional uint64 microseconds = 5; + optional bool used_ipv6 = 6; + optional bool proxied = 7; + optional bool used_http2 = 8; + optional uint32 cache_hits = 9; + optional uint32 cache_misses = 10; + optional uint64 hit_bytes = 11; + optional uint64 miss_bytes = 12; +} + +message CClientMetrics_EndGameRecording_Notification { + optional int32 recording_type = 1 [(.description) = "enum"]; + optional float seconds = 2; + optional uint64 bytes = 3; + optional fixed64 gameid = 4; + optional bool instant_clip = 5; +} + +message CClientMetrics_IPv6Connectivity_Notification { + optional uint32 cell_id = 1; + repeated .CClientMetrics_IPv6Connectivity_Result results = 2; + optional bool private_ip_is_rfc6598 = 3; +} + +// Used by: common.proto +message CClientMetrics_IPv6Connectivity_Result { + optional uint32 protocol_tested = 1; + optional uint32 connectivity_state = 2; +} + +message CClientMetrics_ReportClientArgs_Notification { + repeated string client_args = 1; + optional bool gpu_webview_regkey_disabled = 2; + optional bool suppress_gpu_chrome = 3; + optional bool browser_not_supported = 4; + optional bool hw_accel_video_regkey_disabled = 5; + optional bool mini_mode_enabled = 6; + optional bool fps_counter_enabled = 7; + optional bool library_low_bandwidth_mode_enabled = 8; + optional bool library_low_perf_mode_enabled = 9; + optional int32 gr_mode = 10; +} + +message CClientMetrics_ReportReactUsage_Notification { + optional string product = 1; + optional string version = 2; + repeated .CClientMetrics_ReportReactUsage_Notification_RouteData routes = 3; + repeated .CClientMetrics_ReportReactUsage_Notification_ComponentData components = 4; + repeated .CClientMetrics_ReportReactUsage_Notification_ActionData actions = 5; +} + +// Used by: common.proto +message CClientMetrics_ReportReactUsage_Notification_ActionData { + optional string action = 1; + optional uint32 count = 2; +} + +// Used by: common.proto +message CClientMetrics_ReportReactUsage_Notification_ComponentData { + optional string component = 1; + optional uint32 count = 2; +} + +// Used by: common.proto +message CClientMetrics_ReportReactUsage_Notification_RouteData { + optional string route = 1; + optional uint32 count = 2; +} + +message CClientMetrics_SteamPipeWorkStats_Notification { + optional uint32 appid = 1; + optional uint32 depotid = 2; + optional int32 work_type = 3 [(.description) = "enum"]; + repeated .CClientMetrics_SteamPipeWorkStats_Operation operations = 4; + optional uint32 hardware_type = 5; +} + +// Used by: common.proto +message CClientMetrics_SteamPipeWorkStats_Operation { + optional int32 type = 1 [(.description) = "enum"]; + optional uint32 num_ops = 2; + optional uint64 num_bytes = 3; + optional uint64 busy_time_ms = 4; + optional uint64 idle_time_ms = 5; + optional uint64 sum_run_time_ms = 6; + optional uint64 sum_wait_time_ms = 7; +} + +message CClientNotificationAchievement { + optional string achievement_id = 1; + optional uint32 appid = 2; + optional string name = 3; + optional string description = 4; + optional string image_url = 5; + optional bool achieved = 6; + optional uint32 rtime_unlocked = 7; + optional float min_progress = 8; + optional float current_progress = 9; + optional float max_progress = 10; + optional float global_achieved_pct = 11; +} + +message CClientNotificationBatteryTemperature { + optional uint32 temperature = 1; + optional string notification_type = 2; +} + +message CClientNotificationBroadcastAvailableToWatch { + optional int32 broadcast_permission = 1; +} + +message CClientNotificationCannotReadControllerGuideButton { + optional int32 controller_index = 1; +} + +message CClientNotificationClaimSteamDeckRewards { +} + +message CClientNotificationCloudSyncConflict { + optional uint32 appid = 1; +} + +message CClientNotificationCloudSyncFailure { + optional uint32 appid = 1; +} + +message CClientNotificationDockUnsupportedFirmware { +} + +message CClientNotificationDownloadCompleted { + optional uint32 appid = 1; + optional uint32 dlc_appid = 2; +} + +message CClientNotificationFamilySharingDeviceAuthorizationChanged { + optional uint32 accountid_owner = 1; + optional bool authorized = 2; +} + +message CClientNotificationFamilySharingLibraryAvailable { + optional uint32 accountid_owner = 1; +} + +message CClientNotificationFamilySharingStopPlaying { + optional uint32 accountid_owner = 1; + optional uint32 seconds_remaining = 2; + optional uint32 appid = 3; +} + +message CClientNotificationFriendInGame { + optional fixed64 steamid = 1; + optional string game_name = 2; +} + +message CClientNotificationFriendInviteRollup { + optional uint32 new_invite_count = 1; +} + +message CClientNotificationFriendMessage { + optional string tag = 1; + optional string steamid = 2; + optional string title = 3; + optional string body = 4; + optional string icon = 5; + optional uint32 notificationid = 6; + optional string response_steamurl = 7; +} + +message CClientNotificationFriendOnline { + optional fixed64 steamid = 1; +} + +message CClientNotificationGameRecordingError { + optional fixed64 game_id = 1; + optional int32 error_type = 2 [(.description) = "enum"]; +} + +message CClientNotificationGameRecordingInstantClip { + optional fixed64 game_id = 1; + optional string clip_id = 2; +} + +message CClientNotificationGameRecordingStart { + optional fixed64 game_id = 1; +} + +message CClientNotificationGameRecordingStop { + optional fixed64 game_id = 1; + optional string clip_id = 2; +} + +message CClientNotificationGameRecordingUserMarkerAdded { + optional fixed64 game_id = 1; +} + +message CClientNotificationGroupChatMessage { + optional string tag = 1; + optional string steamid_sender = 2; + optional string chat_group_id = 3; + optional string chat_id = 4; + optional string title = 5; + optional string body = 6; + optional string rawbody = 7; + optional string icon = 8; + optional uint32 notificationid = 9; +} + +message CClientNotificationHardwareSurveyPending { +} + +message CClientNotificationIncomingVoiceChat { + optional fixed64 steamid = 1; +} + +message CClientNotificationItemAnnouncement { + optional uint32 new_item_count = 1; + optional bool new_backpack_items = 2; +} + +message CClientNotificationLoginRefresh { +} + +message CClientNotificationLowBattery { + optional float pct_remaining = 1; +} + +message CClientNotificationLowDiskSpace { + optional uint32 folder_index = 1; +} + +message CClientNotificationOverlaySplashScreen { +} + +message CClientNotificationPlaytimeWarning { + optional string type = 1; + optional uint32 playtime_remaining = 2; +} + +message CClientNotificationRemoteClientConnection { + optional string machine = 1; + optional bool connected = 2; +} + +message CClientNotificationRemoteClientStartStream { + optional string machine = 1; + optional string game_name = 2; +} + +message CClientNotificationScreenshot { + optional string screenshot_handle = 1; + optional string description = 2; + optional string local_url = 3; +} + +message CClientNotificationSteamInputActionSetChanged { + optional int32 controller_index = 1; + optional string action_set_name = 2; +} + +message CClientNotificationStreamingClientConnection { + optional string hostname = 1; + optional string machine = 2; + optional bool connected = 3; +} + +message CClientNotificationSystemUpdate { + optional int32 type = 1 [(.description) = "enum"]; +} + +message CClientNotificationTimedTrialRemaining { + optional uint32 appid = 1; + optional string icon = 2; + optional bool offline = 3; + optional uint32 allowed_seconds = 4; + optional uint32 played_seconds = 5; +} + +message CClientNotificationTimerExpired { +} + +// Used by: common.proto +message CCloud_PendingRemoteOperation { + optional int32 operation = 1 [(.description) = "enum"]; + optional string machine_name = 2; + optional uint64 client_id = 3; + optional uint32 time_last_updated = 4; + optional int32 os_type = 5; + optional int32 device_type = 6; +} + +// Used by: common.proto +message CCommunity_ClanAnnouncementInfo { + optional uint64 gid = 1; + optional uint64 clanid = 2; + optional uint64 posterid = 3; + optional string headline = 4; + optional uint32 posttime = 5; + optional uint32 updatetime = 6; + optional string body = 7; + optional int32 commentcount = 8; + repeated string tags = 9; + optional int32 language = 10; + optional bool hidden = 11; + optional fixed64 forum_topic_id = 12; + optional fixed64 event_gid = 13; + optional int32 voteupcount = 14; + optional int32 votedowncount = 15; +} + +message CCuratorPreferences { + optional uint32 supported_languages = 1; + optional bool platform_windows = 2; + optional bool platform_mac = 3; + optional bool platform_linux = 4; + optional bool vr_content = 5; + optional bool adult_content_violence = 6; + optional bool adult_content_sex = 7; + optional uint32 timestamp_updated = 8; + repeated uint32 tagids_curated = 9; + repeated uint32 tagids_filtered = 10; + optional string website_title = 11; + optional string website_url = 12; + optional string discussion_url = 13; + optional bool show_broadcast = 14; +} + +message CGameNetworkingUI_AppSummary { + optional uint32 appid = 1; + optional bool ip_was_shared_with_friend = 10; + optional bool ip_was_shared_with_nonfriend = 11; + optional uint32 active_connections = 20; + optional .CGameNetworkingUI_ConnectionSummary main_cxn = 30; +} + +message CGameNetworkingUI_ConnectionState { + optional string connection_key = 1; + optional uint32 appid = 2; + optional fixed32 connection_id_local = 3; + optional string identity_local = 4; + optional string identity_remote = 5; + optional uint32 connection_state = 10; + optional uint32 start_time = 12; + optional uint32 close_time = 13; + optional uint32 close_reason = 14; + optional string close_message = 15; + optional string status_loc_token = 16; + optional uint32 transport_kind = 20; + optional string sdrpopid_local = 21; + optional string sdrpopid_remote = 22; + optional string address_remote = 23; + optional .CMsgSteamDatagramP2PRoutingSummary p2p_routing = 24; + optional uint32 ping_interior = 25; + optional uint32 ping_remote_front = 26; + optional uint32 ping_default_internet_route = 27; + optional .CMsgSteamDatagramConnectionQuality e2e_quality_local = 30; + optional .CMsgSteamDatagramConnectionQuality e2e_quality_remote = 31; + optional uint64 e2e_quality_remote_instantaneous_time = 32; + optional uint64 e2e_quality_remote_lifetime_time = 33; + optional .CMsgSteamDatagramConnectionQuality front_quality_local = 40; + optional .CMsgSteamDatagramConnectionQuality front_quality_remote = 41; + optional uint64 front_quality_remote_instantaneous_time = 42; + optional uint64 front_quality_remote_lifetime_time = 43; +} + +// Used by: common.proto +message CGameNetworkingUI_ConnectionSummary { + optional uint32 transport_kind = 1; + optional string sdrpop_local = 2; + optional string sdrpop_remote = 3; + optional uint32 ping_ms = 4; + optional float packet_loss = 5; + optional uint32 ping_default_internet_route = 6; + optional bool ip_was_shared = 7; + optional uint32 connection_state = 8; +} + +message CGameRecording_AudioSessionsChanged_Notification { + repeated .CGameRecording_AudioSessionsChanged_Notification_Session sessions = 1; +} + +// Used by: common.proto +message CGameRecording_AudioSessionsChanged_Notification_Session { + optional string id = 1; + optional string name = 2; + optional bool is_system = 3; + optional bool is_muted = 4; + optional bool is_active = 5; + optional bool is_captured = 6; + optional float recent_peak = 7; + optional bool is_game = 8; + optional bool is_steam = 9; + optional bool is_saved = 10; +} + +message CLibraryBootstrapData { + repeated .CAppBootstrapData app_data = 1; +} + +message CLocalizationToken { + optional uint32 language = 1; + optional string localized_string = 2; +} + +message CMarketingMessages_MarkMessageSeen_Notification { + optional fixed64 gid = 1; + optional uint32 display_index = 2 [default = 0]; + optional int32 template_type = 3 [default = 0, (.description) = "enum"]; +} + +message CMsgAchievementChange { + optional uint32 appid = 1; +} + +message CMsgAMUnlockHEVC { +} + +message CMsgAMUnlockHEVCResponse { + optional int32 eresult = 1 [default = 2]; +} + +message CMsgAMUnlockStreaming { +} + +message CMsgAMUnlockStreamingResponse { + optional int32 eresult = 1 [default = 2]; + optional bytes encryption_key = 2; +} + +message CMsgAppRights { + optional bool edit_info = 1; + optional bool publish = 2; + optional bool view_error_data = 3; + optional bool download = 4; + optional bool upload_cdkeys = 5; + optional bool generate_cdkeys = 6; + optional bool view_financials = 7; + optional bool manage_ceg = 8; + optional bool manage_signing = 9; + optional bool manage_cdkeys = 10; + optional bool edit_marketing = 11; + optional bool economy_support = 12; + optional bool economy_support_supervisor = 13; + optional bool manage_pricing = 14; + optional bool broadcast_live = 15; + optional bool view_marketing_traffic = 16; +} + +// Used by: common.proto +message CMsgAuthTicket { + optional uint32 estate = 1; + optional uint32 eresult = 2 [default = 2]; + optional fixed64 steamid = 3; + optional fixed64 gameid = 4; + optional uint32 h_steam_pipe = 5; + optional uint32 ticket_crc = 6; + optional bytes ticket = 7; + optional bytes server_secret = 8; + optional uint32 ticket_type = 9; +} + +message CMsgBadgeCraftedNotification { + optional uint32 appid = 1; + optional uint32 badge_level = 2; +} + +message CMsgClientAccountInfo { + optional string persona_name = 1; + optional string ip_country = 2; + optional int32 count_authed_computers = 5; + optional uint32 account_flags = 7; + optional uint64 facebook_id = 8; + optional string facebook_name = 9; + optional bool steamguard_notify_newmachines = 14; + optional string steamguard_machine_name_user_chosen = 15; + optional bool is_phone_verified = 16; + optional uint32 two_factor_state = 17; + optional bool is_phone_identifying = 18; + optional bool is_phone_needing_reverify = 19; +} + +message CMsgClientActivateOEMLicense { + optional string bios_manufacturer = 1; + optional string bios_serialnumber = 2; + optional bytes license_file = 3; + optional string mainboard_manufacturer = 4; + optional string mainboard_product = 5; + optional string mainboard_serialnumber = 6; +} + +message CMsgClientAddFriend { + optional fixed64 steamid_to_add = 1; + optional string accountname_or_email_to_add = 2; +} + +message CMsgClientAddFriendResponse { + optional int32 eresult = 1 [default = 2]; + optional fixed64 steam_id_added = 2; + optional string persona_name_added = 3; +} + +message CMsgClientAddFriendToGroup { + optional int32 groupid = 1; + optional fixed64 steamiduser = 2; +} + +message CMsgClientAddFriendToGroupResponse { + optional uint32 eresult = 1; +} + +message CMsgClientAMGetClanOfficers { + optional fixed64 steamid_clan = 1; +} + +message CMsgClientAMGetClanOfficersResponse { + optional int32 eresult = 1 [default = 2]; + optional fixed64 steamid_clan = 2; + optional int32 officer_count = 3; +} + +message CMsgClientAMGetPersonaNameHistory { + optional int32 id_count = 1; + repeated .CMsgClientAMGetPersonaNameHistory_IdInstance Ids = 2; +} + +// Used by: common.proto +message CMsgClientAMGetPersonaNameHistory_IdInstance { + optional fixed64 steamid = 1; +} + +message CMsgClientAMGetPersonaNameHistoryResponse { + repeated .CMsgClientAMGetPersonaNameHistoryResponse_NameTableInstance responses = 2; +} + +// Used by: common.proto +message CMsgClientAMGetPersonaNameHistoryResponse_NameTableInstance { + optional int32 eresult = 1 [default = 2]; + optional fixed64 steamid = 2; + repeated .CMsgClientAMGetPersonaNameHistoryResponse_NameTableInstance_NameInstance names = 3; +} + +// Used by: common.proto +message CMsgClientAMGetPersonaNameHistoryResponse_NameTableInstance_NameInstance { + optional fixed32 name_since = 1; + optional string name = 2; +} + +message CMsgClientAppInfoChanges { + optional uint32 current_change_number = 1; + optional bool force_full_update = 2; + repeated uint32 appIDs = 3; +} + +message CMsgClientAppInfoRequest { + repeated .CMsgClientAppInfoRequest_App apps = 1; + optional bool supports_batches = 2 [default = false]; +} + +// Used by: common.proto +message CMsgClientAppInfoRequest_App { + optional uint32 app_id = 1; + optional uint32 section_flags = 2; + repeated uint32 section_CRC = 3; +} + +message CMsgClientAppInfoResponse { + repeated .CMsgClientAppInfoResponse_App apps = 1; + repeated uint32 apps_unknown = 2; + optional uint32 apps_pending = 3; +} + +// Used by: common.proto +message CMsgClientAppInfoResponse_App { + optional uint32 app_id = 1; + optional uint32 change_number = 2; + repeated .CMsgClientAppInfoResponse_App_Section sections = 3; +} + +// Used by: common.proto +message CMsgClientAppInfoResponse_App_Section { + optional uint32 section_id = 1; + optional bytes section_kv = 2; +} + +message CMsgClientAppInfoUpdate { + optional uint32 last_changenumber = 1; + optional bool send_changelist = 2; +} + +message CMsgClientAuthList { + optional uint32 tokens_left = 1; + optional uint32 last_request_seq = 2; + optional uint32 last_request_seq_from_server = 3; + repeated .CMsgAuthTicket tickets = 4; + repeated uint32 app_ids = 5; + optional uint32 message_sequence = 6; +} + +message CMsgClientAuthListAck { + repeated uint32 ticket_crc = 1; + repeated uint32 app_ids = 2; + optional uint32 message_sequence = 3; +} + +message CMsgClientAuthorizeLocalDevice { + optional int32 eresult = 1 [default = 2]; + optional uint32 owner_account_id = 2; + optional uint64 authed_device_token = 3; +} + +message CMsgClientAuthorizeLocalDeviceNotification { + optional int32 eresult = 1 [default = 2]; + optional uint32 owner_account_id = 2; + optional uint64 local_device_token = 3; +} + +message CMsgClientAuthorizeLocalDeviceRequest { + optional string device_description = 1; + optional uint32 owner_account_id = 2; + optional uint64 local_device_token = 3; +} + +message CMsgClientChallengeRequest { + optional fixed64 steamid = 1; +} + +message CMsgClientChallengeResponse { + optional fixed64 challenge = 1; +} + +message CMsgClientChangeStatus { + optional uint32 persona_state = 1; + optional string player_name = 2; + optional bool is_auto_generated_name = 3; + optional bool high_priority = 4; + optional bool persona_set_by_user = 5; + optional uint32 persona_state_flags = 6 [default = 0]; + optional bool need_persona_response = 7; + optional bool is_client_idle = 8; +} + +message CMsgClientChatGetFriendMessageHistory { + optional fixed64 steamid = 1; +} + +message CMsgClientChatGetFriendMessageHistoryForOfflineMessages { +} + +message CMsgClientChatGetFriendMessageHistoryResponse { + optional fixed64 steamid = 1; + optional uint32 success = 2; + repeated .CMsgClientChatGetFriendMessageHistoryResponse_FriendMessage messages = 3; +} + +// Used by: common.proto +message CMsgClientChatGetFriendMessageHistoryResponse_FriendMessage { + optional uint32 accountid = 1; + optional uint32 timestamp = 2; + optional string message = 3; + optional bool unread = 4; +} + +message CMsgClientChatInvite { + optional fixed64 steam_id_invited = 1; + optional fixed64 steam_id_chat = 2; + optional fixed64 steam_id_patron = 3; + optional int32 chatroom_type = 4; + optional fixed64 steam_id_friend_chat = 5; + optional string chat_name = 6; + optional fixed64 game_id = 7; +} + +message CMsgClientCheckAppBetaPassword { + optional uint32 app_id = 1; + optional string betapassword = 2; +} + +message CMsgClientCheckAppBetaPasswordResponse { + optional int32 eresult = 1 [default = 2]; + repeated .CMsgClientCheckAppBetaPasswordResponse_BetaPassword betapasswords = 4; +} + +// Used by: common.proto +message CMsgClientCheckAppBetaPasswordResponse_BetaPassword { + optional string betaname = 1; + optional string betapassword = 2; +} + +message CMsgClientCheckFileSignature { + optional uint32 app_id = 1; +} + +message CMsgClientCheckFileSignatureResponse { + optional uint32 app_id = 1; + optional uint32 pid = 2; + optional uint32 eresult = 3; + optional string filename = 4; + optional uint32 esignatureresult = 5; + optional bytes sha_file = 6; + optional bytes signatureheader = 7; + optional uint32 filesize = 8; + optional uint32 getlasterror = 9; + optional uint32 evalvesignaturecheckdetail = 10; +} + +message CMsgClientClanState { + optional fixed64 steamid_clan = 1; + optional uint32 clan_account_flags = 3; + optional .CMsgClientClanState_NameInfo name_info = 4; + optional .CMsgClientClanState_UserCounts user_counts = 5; + repeated .CMsgClientClanState_Event events = 6; + repeated .CMsgClientClanState_Event announcements = 7; + optional bool chat_room_private = 8; +} + +// Used by: common.proto +message CMsgClientClanState_Event { + optional fixed64 gid = 1; + optional uint32 event_time = 2; + optional string headline = 3; + optional fixed64 game_id = 4; + optional bool just_posted = 5; +} + +// Used by: common.proto +message CMsgClientClanState_NameInfo { + optional string clan_name = 1; + optional bytes sha_avatar = 2; +} + +// Used by: common.proto +message CMsgClientClanState_UserCounts { + optional uint32 members = 1; + optional uint32 online = 2; + optional uint32 chatting = 3; + optional uint32 in_game = 4; + optional uint32 chat_room_members = 5; +} + +message CMsgClientCMList { + repeated uint32 cm_addresses = 1; + repeated uint32 cm_ports = 2; + repeated string cm_websocket_addresses = 3; + optional uint32 percent_default_to_websocket = 4; +} + +message CMsgClientCommentNotifications { + optional uint32 count_new_comments = 1; + optional uint32 count_new_comments_owner = 2; + optional uint32 count_new_comments_subscriptions = 3; +} + +message CMsgClientConnectionStats { + optional .CMsgClientConnectionStats_Stats_Logon stats_logon = 1; + optional .CMsgClientConnectionStats_Stats_VConn stats_vconn = 2; +} + +// Used by: common.proto +message CMsgClientConnectionStats_Stats_Logon { + optional int32 connect_attempts = 1; + optional int32 connect_successes = 2; + optional int32 connect_failures = 3; + optional int32 connections_dropped = 4; + optional uint32 seconds_running = 5; + optional uint32 msec_tologonthistime = 6; + optional uint32 count_bad_cms = 7; +} + +// Used by: common.proto +message CMsgClientConnectionStats_Stats_UDP { + optional uint64 pkts_sent = 1; + optional uint64 bytes_sent = 2; + optional uint64 pkts_recv = 3; + optional uint64 pkts_processed = 4; + optional uint64 bytes_recv = 5; +} + +// Used by: common.proto +message CMsgClientConnectionStats_Stats_VConn { + optional uint32 connections_udp = 1; + optional uint32 connections_tcp = 2; + optional .CMsgClientConnectionStats_Stats_UDP stats_udp = 3; + optional uint64 pkts_abandoned = 4; + optional uint64 conn_req_received = 5; + optional uint64 pkts_resent = 6; + optional uint64 msgs_sent = 7; + optional uint64 msgs_sent_failed = 8; + optional uint64 msgs_recv = 9; + optional uint64 datagrams_sent = 10; + optional uint64 datagrams_recv = 11; + optional uint64 bad_pkts_recv = 12; + optional uint64 unknown_conn_pkts_recv = 13; + optional uint64 missed_pkts_recv = 14; + optional uint64 dup_pkts_recv = 15; + optional uint64 failed_connect_challenges = 16; + optional uint32 micro_sec_avg_latency = 17; + optional uint32 micro_sec_min_latency = 18; + optional uint32 micro_sec_max_latency = 19; + optional uint32 mem_pool_msg_in_use = 20; +} + +message CMsgClientCreateFriendsGroup { + optional fixed64 steamid = 1; + optional string groupname = 2; + repeated fixed64 steamid_friends = 3; +} + +message CMsgClientCreateFriendsGroupResponse { + optional uint32 eresult = 1; + optional int32 groupid = 2; +} + +message CMsgClientDeauthorizeDevice { + optional int32 eresult = 1 [default = 2]; + optional uint32 deauthorization_account_id = 2; +} + +message CMsgClientDeauthorizeDeviceRequest { + optional uint32 deauthorization_account_id = 1; + optional uint64 deauthorization_device_token = 2; +} + +message CMsgClientDeleteFriendsGroup { + optional fixed64 steamid = 1; + optional int32 groupid = 2; +} + +message CMsgClientDeleteFriendsGroupResponse { + optional uint32 eresult = 1; +} + +message CMsgClientDeregisterWithServer { + optional uint32 eservertype = 1; + optional uint32 app_id = 2; +} + +message CMsgClientDPCheckSpecialSurvey { + optional uint32 survey_id = 1; +} + +message CMsgClientDPCheckSpecialSurveyResponse { + optional uint32 eResult = 1 [default = 2]; + optional uint32 state = 2; + optional string name = 3; + optional string custom_url = 4; + optional bool include_software = 5; + optional bytes token = 6; +} + +message CMsgClientDPContentStatsReport { + optional fixed64 stats_machine_id = 1; + optional string country_code = 2; + optional int32 os_type = 3; + optional int32 language = 4; + optional uint32 num_install_folders = 5; + optional uint32 num_installed_games = 6; + optional uint64 size_installed_games = 7; +} + +message CMsgClientDPSendSpecialSurveyResponse { + optional uint32 survey_id = 1; + optional bytes data = 2; +} + +message CMsgClientDPSendSpecialSurveyResponseReply { + optional uint32 eResult = 1 [default = 2]; + optional bytes token = 2; +} + +message CMsgClientEmailAddrInfo { + optional string email_address = 1; + optional bool email_is_validated = 2; + optional bool email_validation_changed = 3; + optional bool credential_change_requires_code = 4; + optional bool password_or_secretqa_change_requires_code = 5; + optional bool remind_user_about_email = 6; +} + +message CMsgClientEmoticonList { + repeated .CMsgClientEmoticonList_Emoticon emoticons = 1; + repeated .CMsgClientEmoticonList_Sticker stickers = 2; + repeated .CMsgClientEmoticonList_Effect effects = 3; +} + +// Used by: common.proto +message CMsgClientEmoticonList_Effect { + optional string name = 1; + optional int32 count = 2; + optional uint32 time_received = 3; + optional bool infinite_use = 4; + optional uint32 appid = 5; +} + +// Used by: common.proto +message CMsgClientEmoticonList_Emoticon { + optional string name = 1; + optional int32 count = 2; + optional uint32 time_last_used = 3; + optional uint32 use_count = 4; + optional uint32 time_received = 5; + optional uint32 appid = 6; +} + +// Used by: common.proto +message CMsgClientEmoticonList_Sticker { + optional string name = 1; + optional int32 count = 2; + optional uint32 time_received = 3; + optional uint32 appid = 4; + optional uint32 time_last_used = 5; + optional uint32 use_count = 6; +} + +message CMsgClientFriendMsg { + optional fixed64 steamid = 1; + optional int32 chat_entry_type = 2; + optional bytes message = 3; + optional fixed32 rtime32_server_timestamp = 4; + optional bool echo_to_sender = 5; +} + +message CMsgClientFriendMsgIncoming { + optional fixed64 steamid_from = 1; + optional int32 chat_entry_type = 2; + optional bool from_limited_account = 3; + optional bytes message = 4; + optional fixed32 rtime32_server_timestamp = 5; +} + +message CMsgClientFriendProfileInfo { + optional fixed64 steamid_friend = 1; +} + +message CMsgClientFriendProfileInfoResponse { + optional int32 eresult = 1 [default = 2]; + optional fixed64 steamid_friend = 2; + optional uint32 time_created = 3; + optional string real_name = 4; + optional string city_name = 5; + optional string state_name = 6; + optional string country_name = 7; + optional string headline = 8; + optional string summary = 9; +} + +message CMsgClientFriendsGroupsList { + optional bool bremoval = 1; + optional bool bincremental = 2; + repeated .CMsgClientFriendsGroupsList_FriendGroup friendGroups = 3; + repeated .CMsgClientFriendsGroupsList_FriendGroupsMembership memberships = 4; +} + +// Used by: common.proto +message CMsgClientFriendsGroupsList_FriendGroup { + optional int32 nGroupID = 1; + optional string strGroupName = 2; +} + +// Used by: common.proto +message CMsgClientFriendsGroupsList_FriendGroupsMembership { + optional fixed64 ulSteamID = 1; + optional int32 nGroupID = 2; +} + +message CMsgClientFriendUserStatusPublished { + optional fixed64 friend_steamid = 1; + optional uint32 appid = 2; + optional string status_text = 3; +} + +message CMsgClientFSGetFriendsSteamLevels { + repeated uint32 accountids = 1; +} + +message CMsgClientFSGetFriendsSteamLevelsResponse { + repeated .CMsgClientFSGetFriendsSteamLevelsResponse_Friend friends = 1; +} + +// Used by: common.proto +message CMsgClientFSGetFriendsSteamLevelsResponse_Friend { + optional uint32 accountid = 1; + optional uint32 level = 2; +} + +message CMsgClientGameConnectTokens { + optional uint32 max_tokens_to_keep = 1 [default = 10]; + repeated bytes tokens = 2; +} + +message CMsgClientGamesPlayed { + repeated .CMsgClientGamesPlayed_GamePlayed games_played = 1; + optional uint32 client_os_type = 2; + optional uint32 cloud_gaming_platform = 3; +} + +// Used by: common.proto +message CMsgClientGamesPlayed_GamePlayed { + optional uint64 steam_id_gs = 1; + optional fixed64 game_id = 2; + optional uint32 deprecated_game_ip_address = 3; + optional uint32 game_port = 4; + optional bool is_secure = 5; + optional bytes token = 6; + optional string game_extra_info = 7; + optional bytes game_data_blob = 8; + optional uint32 process_id = 9; + optional uint32 streaming_provider_id = 10; + optional uint32 game_flags = 11; + optional uint32 owner_id = 12; + optional string vr_hmd_vendor = 13; + optional string vr_hmd_model = 14; + optional uint32 launch_option_type = 15 [default = 0]; + optional int32 primary_controller_type = 16 [default = -1]; + optional string primary_steam_controller_serial = 17 [default = ""]; + optional uint32 total_steam_controller_count = 18 [default = 0]; + optional uint32 total_non_steam_controller_count = 19 [default = 0]; + optional uint64 controller_workshop_file_id = 20 [default = 0]; + optional uint32 launch_source = 21 [default = 0]; + optional uint32 vr_hmd_runtime = 22; + optional .CMsgIPAddress game_ip_address = 23; + optional uint32 controller_connection_type = 24 [default = 0]; +} + +message CMsgClientGetAppOwnershipTicket { + optional uint32 app_id = 1; +} + +message CMsgClientGetAppOwnershipTicketResponse { + optional uint32 eresult = 1 [default = 2]; + optional uint32 app_id = 2; + optional bytes ticket = 3; +} + +message CMsgClientGetAuthorizedDevices { +} + +message CMsgClientGetAuthorizedDevicesResponse { + optional int32 eresult = 1 [default = 2]; + repeated .CMsgClientGetAuthorizedDevicesResponse_AuthorizedDevice authorized_device = 2; +} + +// Used by: common.proto +message CMsgClientGetAuthorizedDevicesResponse_AuthorizedDevice { + optional uint64 auth_device_token = 1; + optional string device_name = 2; + optional uint32 last_access_time = 3; + optional uint32 borrower_id = 4; + optional bool is_pending = 5; + optional uint32 app_played = 6; +} + +message CMsgClientGetCDNAuthToken { + optional uint32 depot_id = 1; + optional string host_name = 2; + optional uint32 app_id = 3; +} + +message CMsgClientGetCDNAuthTokenResponse { + optional uint32 eresult = 1 [default = 2]; + optional string token = 2; + optional uint32 expiration_time = 3; +} + +message CMsgClientGetClanActivityCounts { + repeated uint64 steamid_clans = 1; +} + +message CMsgClientGetClanActivityCountsResponse { + optional uint32 eresult = 1 [default = 2]; +} + +message CMsgClientGetClientAppList { + optional bool media = 1; + optional bool tools = 2; + optional bool games = 3; + optional bool only_installed = 4; + optional bool only_changing = 5; + optional bool comics = 6; +} + +message CMsgClientGetClientAppListResponse { + repeated .CMsgClientGetClientAppListResponse_App apps = 1; + optional uint64 bytes_available = 2; +} + +// Used by: common.proto +message CMsgClientGetClientAppListResponse_App { + optional uint32 appid = 1; + optional string category = 2; + optional bool favorite = 3; + optional bool installed = 4; + optional bool auto_update = 5; + optional uint64 bytes_downloaded = 6; + optional uint64 bytes_needed = 7; + optional uint32 bytes_download_rate = 8; + repeated .CMsgClientGetClientAppListResponse_App_DLC dlcs = 9; + optional string app_type = 10; + optional bool download_paused = 11; + optional uint32 num_downloading = 12; + optional uint32 num_paused = 13; + optional bool changing = 14; + optional bool available_on_platform = 15; +} + +// Used by: common.proto +message CMsgClientGetClientAppListResponse_App_DLC { + optional uint32 appid = 1; + optional bool installed = 2; +} + +message CMsgClientGetClientDetails { +} + +message CMsgClientGetClientDetailsResponse { + optional uint32 package_version = 1; + optional string os = 2; + optional string machine_name = 3; + optional string ip_public = 4; + optional string ip_private = 5; + repeated .CMsgClientGetClientDetailsResponse_Game games_running = 6; + optional uint64 bytes_available = 7; + optional uint32 protocol_version = 8; +} + +// Used by: common.proto +message CMsgClientGetClientDetailsResponse_Game { + optional uint32 appid = 1; + optional string extra_info = 2; + optional uint32 time_running_sec = 3; +} + +message CMsgClientGetDepotDecryptionKey { + optional uint32 depot_id = 1; + optional uint32 app_id = 2; +} + +message CMsgClientGetDepotDecryptionKeyResponse { + optional int32 eresult = 1 [default = 2]; + optional uint32 depot_id = 2; + optional bytes depot_encryption_key = 3; +} + +message CMsgClientGetEmoticonList { +} + +message CMsgClientGetUserStats { + optional fixed64 game_id = 1; + optional uint32 crc_stats = 2; + optional int32 schema_local_version = 3; + optional fixed64 steam_id_for_user = 4; +} + +message CMsgClientGetUserStatsResponse { + optional fixed64 game_id = 1; + optional int32 eresult = 2 [default = 2]; + optional uint32 crc_stats = 3; + optional bytes schema = 4; + repeated .CMsgClientGetUserStatsResponse_Stats stats = 5; + repeated .CMsgClientGetUserStatsResponse_Achievement_Blocks achievement_blocks = 6; +} + +// Used by: common.proto +message CMsgClientGetUserStatsResponse_Achievement_Blocks { + optional uint32 achievement_id = 1; + repeated fixed32 unlock_time = 2; +} + +// Used by: common.proto +message CMsgClientGetUserStatsResponse_Stats { + optional uint32 stat_id = 1; + optional uint32 stat_value = 2; +} + +message CMsgClientGMSServerQuery { + optional uint32 app_id = 1; + optional uint32 geo_location_ip = 2; + optional uint32 region_code = 3; + optional string filter_text = 4; + optional uint32 max_servers = 5; +} + +message CMsgClientHeartBeat { + optional bool send_reply = 1; +} + +message CMsgClientHideFriend { + optional fixed64 friendid = 1; + optional bool hide = 2; +} + +message CMsgClientInstallClientApp { + optional uint32 appid = 1; +} + +message CMsgClientInstallClientAppResponse { + optional uint32 result = 1; +} + +message CMsgClientInviteToGame { + optional fixed64 steam_id_dest = 1; + optional fixed64 steam_id_src = 2; + optional string connect_string = 3; + optional string remote_play = 4; +} + +message CMsgClientIsLimitedAccount { + optional bool bis_limited_account = 1; + optional bool bis_community_banned = 2; + optional bool bis_locked_account = 3; + optional bool bis_limited_account_allowed_to_invite_friends = 4; +} + +message CMsgClientItemAnnouncements { + optional uint32 count_new_items = 1; + repeated .CMsgClientItemAnnouncements_UnseenItem unseen_items = 2; +} + +// Used by: common.proto +message CMsgClientItemAnnouncements_UnseenItem { + optional uint32 appid = 1; + optional uint64 context_id = 2; + optional uint64 asset_id = 3; + optional uint64 amount = 4; + optional fixed32 rtime32_gained = 5; + optional uint32 source_appid = 6; +} + +message CMsgClientKickPlayingSession { + optional bool only_stop_game = 1; +} + +message CMsgClientLBSFindOrCreateLB { + optional uint32 app_id = 1; + optional int32 leaderboard_sort_method = 2; + optional int32 leaderboard_display_type = 3; + optional bool create_if_not_found = 4; + optional string leaderboard_name = 5; +} + +message CMsgClientLBSFindOrCreateLBResponse { + optional int32 eresult = 1 [default = 2]; + optional int32 leaderboard_id = 2; + optional int32 leaderboard_entry_count = 3; + optional int32 leaderboard_sort_method = 4 [default = 0]; + optional int32 leaderboard_display_type = 5 [default = 0]; + optional string leaderboard_name = 6; +} + +message CMsgClientLBSGetLBEntries { + optional int32 app_id = 1; + optional int32 leaderboard_id = 2; + optional int32 range_start = 3; + optional int32 range_end = 4; + optional int32 leaderboard_data_request = 5; + repeated fixed64 steamids = 6; +} + +message CMsgClientLBSGetLBEntriesResponse { + optional int32 eresult = 1 [default = 2]; + optional int32 leaderboard_entry_count = 2; + repeated .CMsgClientLBSGetLBEntriesResponse_Entry entries = 3; +} + +// Used by: common.proto +message CMsgClientLBSGetLBEntriesResponse_Entry { + optional fixed64 steam_id_user = 1; + optional int32 global_rank = 2; + optional int32 score = 3; + optional bytes details = 4; + optional fixed64 ugc_id = 5; +} + +message CMsgClientLBSSetScore { + optional uint32 app_id = 1; + optional int32 leaderboard_id = 2; + optional int32 score = 3; + optional bytes details = 4; + optional int32 upload_score_method = 5; +} + +message CMsgClientLBSSetScoreResponse { + optional int32 eresult = 1 [default = 2]; + optional int32 leaderboard_entry_count = 2; + optional bool score_changed = 3; + optional int32 global_rank_previous = 4; + optional int32 global_rank_new = 5; +} + +message CMsgClientLBSSetUGC { + optional uint32 app_id = 1; + optional int32 leaderboard_id = 2; + optional fixed64 ugc_id = 3; +} + +message CMsgClientLBSSetUGCResponse { + optional int32 eresult = 1 [default = 2]; +} + +message CMsgClientLicenseList { + optional int32 eresult = 1 [default = 2]; + repeated .CMsgClientLicenseList_License licenses = 2; +} + +// Used by: common.proto +message CMsgClientLicenseList_License { + optional uint32 package_id = 1; + optional fixed32 time_created = 2; + optional fixed32 time_next_process = 3; + optional int32 minute_limit = 4; + optional int32 minutes_used = 5; + optional uint32 payment_method = 6; + optional uint32 flags = 7; + optional string purchase_country_code = 8; + optional uint32 license_type = 9; + optional int32 territory_code = 10; + optional int32 change_number = 11; + optional uint32 owner_id = 12; + optional uint32 initial_period = 13; + optional uint32 initial_time_unit = 14; + optional uint32 renewal_period = 15; + optional uint32 renewal_time_unit = 16; + optional uint64 access_token = 17; + optional uint32 master_package_id = 18; +} + +message CMsgClientLoggedOff { + optional int32 eresult = 1 [default = 2]; +} + +message CMsgClientLogOff { +} + +message CMsgClientLogon { + optional uint32 protocol_version = 1; + optional uint32 deprecated_obfustucated_private_ip = 2; + optional uint32 cell_id = 3; + optional uint32 last_session_id = 4; + optional uint32 client_package_version = 5; + optional string client_language = 6; + optional uint32 client_os_type = 7; + optional bool should_remember_password = 8 [default = false]; + optional string wine_version = 9; + optional uint32 deprecated_10 = 10; + optional .CMsgIPAddress obfuscated_private_ip = 11; + optional uint32 deprecated_public_ip = 20; + optional uint32 qos_level = 21; + optional fixed64 client_supplied_steam_id = 22; + optional .CMsgIPAddress public_ip = 23; + optional bytes machine_id = 30; + optional uint32 launcher_type = 31 [default = 0]; + optional uint32 ui_mode = 32 [default = 0]; + optional uint32 chat_mode = 33 [default = 0]; + optional bytes steam2_auth_ticket = 41; + optional string email_address = 42; + optional fixed32 rtime32_account_creation = 43; + optional string account_name = 50; + optional string password = 51; + optional string game_server_token = 52; + optional string login_key = 60; + optional bool was_converted_deprecated_msg = 70 [default = false]; + optional string anon_user_target_account_name = 80; + optional fixed64 resolved_user_steam_id = 81; + optional int32 eresult_sentryfile = 82; + optional bytes sha_sentryfile = 83; + optional string auth_code = 84; + optional int32 otp_type = 85; + optional uint32 otp_value = 86; + optional string otp_identifier = 87; + optional bool steam2_ticket_request = 88; + optional bytes sony_psn_ticket = 90; + optional string sony_psn_service_id = 91; + optional bool create_new_psn_linked_account_if_needed = 92 [default = false]; + optional string sony_psn_name = 93; + optional int32 game_server_app_id = 94; + optional bool steamguard_dont_remember_computer = 95; + optional string machine_name = 96; + optional string machine_name_userchosen = 97; + optional string country_override = 98; + optional bool is_steam_box = 99; + optional uint64 client_instance_id = 100; + optional string two_factor_code = 101; + optional bool supports_rate_limit_response = 102; + optional string web_logon_nonce = 103; + optional int32 priority_reason = 104; + optional .CMsgClientSecret embedded_client_secret = 105; + optional bool disable_partner_autogrants = 106; + optional bool is_steam_deck = 107; + optional string access_token = 108; + optional bool is_chrome_os = 109; + optional bool is_tesla = 110; +} + +message CMsgClientLogonResponse { + optional int32 eresult = 1 [default = 2]; + optional int32 legacy_out_of_game_heartbeat_seconds = 2; + //optional int32 out_of_game_heartbeat_seconds = 2; + optional int32 heartbeat_seconds = 3; + //optional int32 in_game_heartbeat_seconds = 3; + optional uint32 deprecated_public_ip = 4; + optional fixed32 rtime32_server_time = 5; + optional uint32 account_flags = 6; + optional uint32 cell_id = 7; + optional string email_domain = 8; + optional bytes steam2_ticket = 9; + optional int32 eresult_extended = 10; + optional string webapi_authenticate_user_nonce = 11; + optional uint32 cell_id_ping_threshold = 12; + optional bool deprecated_use_pics = 13; + optional string vanity_url = 14; + optional .CMsgIPAddress public_ip = 15; + optional string user_country = 16; + optional fixed64 client_supplied_steamid = 20; + optional string ip_country_code = 21; + optional bytes parental_settings = 22; + optional bytes parental_setting_signature = 23; + optional int32 count_loginfailures_to_migrate = 24; + optional int32 count_disconnects_to_migrate = 25; + optional int32 ogs_data_report_time_window = 26; + optional uint64 client_instance_id = 27; + optional bool force_client_update_check = 28; + optional string agreement_session_url = 29; + optional uint64 token_id = 30; + optional uint64 family_group_id = 31; +} + +message CMsgClientManageFriendsGroup { + optional int32 groupid = 1; + optional string groupname = 2; + repeated fixed64 steamid_friends_added = 3; + repeated fixed64 steamid_friends_removed = 4; +} + +message CMsgClientManageFriendsGroupResponse { + optional uint32 eresult = 1; +} + +message CMsgClientMMSCreateLobby { + optional uint32 app_id = 1; + optional int32 max_members = 2; + optional int32 lobby_type = 3; + optional int32 lobby_flags = 4; + optional uint32 cell_id = 5; + optional uint32 deprecated_public_ip = 6; + optional bytes metadata = 7; + optional string persona_name_owner = 8; + optional .CMsgIPAddress public_ip = 9; +} + +message CMsgClientMMSCreateLobbyResponse { + optional uint32 app_id = 1; + optional fixed64 steam_id_lobby = 2; + optional int32 eresult = 3 [default = 2]; +} + +message CMsgClientMMSGetLobbyData { + optional uint32 app_id = 1; + optional fixed64 steam_id_lobby = 2; +} + +message CMsgClientMMSGetLobbyList { + optional uint32 app_id = 1; + optional int32 num_lobbies_requested = 3; + optional uint32 cell_id = 4; + optional uint32 deprecated_public_ip = 5; + repeated .CMsgClientMMSGetLobbyList_Filter filters = 6; + optional .CMsgIPAddress public_ip = 7; +} + +// Used by: common.proto +message CMsgClientMMSGetLobbyList_Filter { + optional string key = 1; + optional string value = 2; + optional int32 comparision = 3; + optional int32 filter_type = 4; +} + +message CMsgClientMMSGetLobbyListResponse { + optional uint32 app_id = 1; + optional int32 eresult = 3 [default = 2]; + repeated .CMsgClientMMSGetLobbyListResponse_Lobby lobbies = 4; +} + +// Used by: common.proto +message CMsgClientMMSGetLobbyListResponse_Lobby { + optional fixed64 steam_id = 1; + optional int32 max_members = 2; + optional int32 lobby_type = 3; + optional int32 lobby_flags = 4; + optional bytes metadata = 5; + optional int32 num_members = 6; + optional float distance = 7; + optional int64 weight = 8; +} + +message CMsgClientMMSGetLobbyStatus { + optional uint32 app_id = 1; + optional fixed64 steam_id_lobby = 2; + optional bool claim_membership = 3; + optional bool claim_ownership = 4; +} + +message CMsgClientMMSGetLobbyStatusResponse { + optional uint32 app_id = 1; + optional fixed64 steam_id_lobby = 2; + optional int32 lobby_status = 3 [(.description) = "enum"]; +} + +message CMsgClientMMSInviteToLobby { + optional uint32 app_id = 1; + optional fixed64 steam_id_lobby = 2; + optional fixed64 steam_id_user_invited = 3; +} + +message CMsgClientMMSJoinLobby { + optional uint32 app_id = 1; + optional fixed64 steam_id_lobby = 2; + optional string persona_name = 3; +} + +message CMsgClientMMSJoinLobbyResponse { + optional uint32 app_id = 1; + optional fixed64 steam_id_lobby = 2; + optional int32 chat_room_enter_response = 3; + optional int32 max_members = 4; + optional int32 lobby_type = 5; + optional int32 lobby_flags = 6; + optional fixed64 steam_id_owner = 7; + optional bytes metadata = 8; + repeated .CMsgClientMMSJoinLobbyResponse_Member members = 9; +} + +// Used by: common.proto +message CMsgClientMMSJoinLobbyResponse_Member { + optional fixed64 steam_id = 1; + optional string persona_name = 2; + optional bytes metadata = 3; +} + +message CMsgClientMMSLeaveLobby { + optional uint32 app_id = 1; + optional fixed64 steam_id_lobby = 2; +} + +message CMsgClientMMSLeaveLobbyResponse { + optional uint32 app_id = 1; + optional fixed64 steam_id_lobby = 2; + optional int32 eresult = 3 [default = 2]; +} + +message CMsgClientMMSLobbyChatMsg { + optional uint32 app_id = 1; + optional fixed64 steam_id_lobby = 2; + optional fixed64 steam_id_sender = 3; + optional bytes lobby_message = 4; +} + +message CMsgClientMMSLobbyData { + optional uint32 app_id = 1; + optional fixed64 steam_id_lobby = 2; + optional int32 num_members = 3; + optional int32 max_members = 4; + optional int32 lobby_type = 5; + optional int32 lobby_flags = 6; + optional fixed64 steam_id_owner = 7; + optional bytes metadata = 8; + repeated .CMsgClientMMSLobbyData_Member members = 9; + optional uint32 lobby_cellid = 10; + optional bool owner_should_accept_changes = 11; +} + +// Used by: common.proto +message CMsgClientMMSLobbyData_Member { + optional fixed64 steam_id = 1; + optional string persona_name = 2; + optional bytes metadata = 3; +} + +message CMsgClientMMSLobbyGameServerSet { + optional uint32 app_id = 1; + optional fixed64 steam_id_lobby = 2; + optional uint32 deprecated_game_server_ip = 3; + optional uint32 game_server_port = 4; + optional fixed64 game_server_steam_id = 5; + optional .CMsgIPAddress game_server_ip = 6; +} + +message CMsgClientMMSSendLobbyChatMsg { + optional uint32 app_id = 1; + optional fixed64 steam_id_lobby = 2; + optional fixed64 steam_id_target = 3; + optional bytes lobby_message = 4; +} + +message CMsgClientMMSSetLobbyData { + optional uint32 app_id = 1; + optional fixed64 steam_id_lobby = 2; + optional fixed64 steam_id_member = 3; + optional int32 max_members = 4; + optional int32 lobby_type = 5; + optional int32 lobby_flags = 6; + optional bytes metadata = 7; +} + +message CMsgClientMMSSetLobbyDataResponse { + optional uint32 app_id = 1; + optional fixed64 steam_id_lobby = 2; + optional int32 eresult = 3 [default = 2]; +} + +message CMsgClientMMSSetLobbyGameServer { + optional uint32 app_id = 1; + optional fixed64 steam_id_lobby = 2; + optional uint32 deprecated_game_server_ip = 3; + optional uint32 game_server_port = 4; + optional fixed64 game_server_steam_id = 5; + optional .CMsgIPAddress game_server_ip = 6; +} + +message CMsgClientMMSSetLobbyLinked { + optional uint32 app_id = 1; + optional fixed64 steam_id_lobby = 2; + optional fixed64 steam_id_lobby2 = 3; +} + +message CMsgClientMMSSetLobbyOwner { + optional uint32 app_id = 1; + optional fixed64 steam_id_lobby = 2; + optional fixed64 steam_id_new_owner = 3; +} + +message CMsgClientMMSSetLobbyOwnerResponse { + optional uint32 app_id = 1; + optional fixed64 steam_id_lobby = 2; + optional int32 eresult = 3 [default = 2]; +} + +message CMsgClientMMSSetRatelimitPolicyOnClient { + optional uint32 app_id = 1; + optional bool enable_rate_limits = 2; + optional int32 seconds_per_message = 3; + optional int32 milliseconds_per_data_update = 4; +} + +message CMsgClientMMSUserJoinedLobby { + optional uint32 app_id = 1; + optional fixed64 steam_id_lobby = 2; + optional fixed64 steam_id_user = 3; + optional string persona_name = 4; +} + +message CMsgClientMMSUserLeftLobby { + optional uint32 app_id = 1; + optional fixed64 steam_id_lobby = 2; + optional fixed64 steam_id_user = 3; + optional string persona_name = 4; +} + +message CMsgClientNetworkingCertReply { + optional bytes cert = 4; + optional fixed64 ca_key_id = 5; + optional bytes ca_signature = 6; +} + +message CMsgClientNetworkingCertRequest { + optional bytes key_data = 2; + optional uint32 app_id = 3; +} + +message CMsgClientNetworkingMobileCertReply { + optional string encoded_cert = 1; +} + +message CMsgClientNetworkingMobileCertRequest { + optional uint32 app_id = 1; +} + +message CMsgClientNewLoginKey { + optional uint32 unique_id = 1; + optional string login_key = 2; +} + +message CMsgClientNewLoginKeyAccepted { + optional uint32 unique_id = 1; +} + +message CMsgClientOfflineMessageNotification { + optional uint32 offline_messages = 1; + repeated uint32 friends_with_offline_messages = 2; +} + +message CMsgClientOGSReportBug { + optional uint64 sessionid = 1; + optional string bugtext = 2; + optional bytes screenshot = 3; +} + +message CMsgClientOGSReportString { + optional bool accumulated = 1; + optional uint64 sessionid = 2; + optional int32 severity = 3; + optional string formatter = 4; + optional bytes varargs = 5; +} + +message CMsgClientP2PConnectionFailInfo { + optional fixed64 steam_id_dest = 1; + optional fixed64 steam_id_src = 2; + optional uint32 app_id = 3; + optional uint32 ep2p_session_error = 4; + optional fixed64 connection_id_dest = 5; + optional uint32 close_reason = 7; + optional string close_message = 8; +} + +message CMsgClientP2PConnectionInfo { + optional fixed64 steam_id_dest = 1; + optional fixed64 steam_id_src = 2; + optional uint32 app_id = 3; + optional bytes candidate = 4; + optional fixed64 connection_id_src = 5; + optional bytes rendezvous = 6; +} + +message CMsgClientPackageInfoRequest { + repeated uint32 package_ids = 1; + optional bool meta_data_only = 2; +} + +message CMsgClientPackageInfoResponse { + repeated .CMsgClientPackageInfoResponse_Package packages = 1; + repeated uint32 packages_unknown = 2; + optional uint32 packages_pending = 3; +} + +// Used by: common.proto +message CMsgClientPackageInfoResponse_Package { + optional uint32 package_id = 1; + optional uint32 change_number = 2; + optional bytes sha = 3; + optional bytes buffer = 4; +} + +message CMsgClientPersonaState { + optional uint32 status_flags = 1; + repeated .CMsgClientPersonaState_Friend friends = 2; +} + +// Used by: ChatRoom, ChatRoomClient, common.proto +message CMsgClientPersonaState_Friend { + optional fixed64 friendid = 1; + optional uint32 persona_state = 2; + optional uint32 game_played_app_id = 3; + optional uint32 game_server_ip = 4; + optional uint32 game_server_port = 5; + optional uint32 persona_state_flags = 6; + optional uint32 online_session_instances = 7; + optional bool persona_set_by_user = 10; + optional string player_name = 15; + optional uint32 query_port = 20; + optional fixed64 steamid_source = 25; + optional bytes avatar_hash = 31; + optional uint32 last_logoff = 45; + optional uint32 last_logon = 46; + optional uint32 last_seen_online = 47; + optional uint32 clan_rank = 50; + optional string game_name = 55; + optional fixed64 gameid = 56; + optional bytes game_data_blob = 60; + optional .CMsgClientPersonaState_Friend_ClanData clan_data = 64; + optional string clan_tag = 65; + repeated .CMsgClientPersonaState_Friend_KV rich_presence = 71; + optional fixed64 broadcast_id = 72; + optional fixed64 game_lobby_id = 73; + optional uint32 watching_broadcast_accountid = 74; + optional uint32 watching_broadcast_appid = 75; + optional uint32 watching_broadcast_viewers = 76; + optional string watching_broadcast_title = 77; + optional bool is_community_banned = 78; + optional bool player_name_pending_review = 79; + optional bool avatar_pending_review = 80; + optional bool on_steam_deck = 81; +} + +// Used by: ChatRoom, ChatRoomClient, common.proto +message CMsgClientPersonaState_Friend_ClanData { + optional uint32 ogg_app_id = 1; + optional uint64 chat_group_id = 2; +} + +// Used by: ChatRoom, ChatRoomClient, common.proto +message CMsgClientPersonaState_Friend_KV { + optional string key = 1; + optional string value = 2; +} + +message CMsgClientPICSAccessTokenRequest { + repeated uint32 packageids = 1; + repeated uint32 appids = 2; +} + +message CMsgClientPICSAccessTokenResponse { + repeated .CMsgClientPICSAccessTokenResponse_PackageToken package_access_tokens = 1; + repeated uint32 package_denied_tokens = 2; + repeated .CMsgClientPICSAccessTokenResponse_AppToken app_access_tokens = 3; + repeated uint32 app_denied_tokens = 4; +} + +// Used by: common.proto +message CMsgClientPICSAccessTokenResponse_AppToken { + optional uint32 appid = 1; + optional uint64 access_token = 2; +} + +// Used by: common.proto +message CMsgClientPICSAccessTokenResponse_PackageToken { + optional uint32 packageid = 1; + optional uint64 access_token = 2; +} + +message CMsgClientPICSChangesSinceRequest { + optional uint32 since_change_number = 1; + optional bool send_app_info_changes = 2; + optional bool send_package_info_changes = 3; + optional uint32 num_app_info_cached = 4; + optional uint32 num_package_info_cached = 5; +} + +message CMsgClientPICSChangesSinceResponse { + optional uint32 current_change_number = 1; + optional uint32 since_change_number = 2; + optional bool force_full_update = 3; + repeated .CMsgClientPICSChangesSinceResponse_PackageChange package_changes = 4; + repeated .CMsgClientPICSChangesSinceResponse_AppChange app_changes = 5; + optional bool force_full_app_update = 6; + optional bool force_full_package_update = 7; +} + +// Used by: common.proto +message CMsgClientPICSChangesSinceResponse_AppChange { + optional uint32 appid = 1; + optional uint32 change_number = 2; + optional bool needs_token = 3; +} + +// Used by: common.proto +message CMsgClientPICSChangesSinceResponse_PackageChange { + optional uint32 packageid = 1; + optional uint32 change_number = 2; + optional bool needs_token = 3; +} + +message CMsgClientPICSProductInfoRequest { + repeated .CMsgClientPICSProductInfoRequest_PackageInfo packages = 1; + repeated .CMsgClientPICSProductInfoRequest_AppInfo apps = 2; + optional bool meta_data_only = 3; + optional uint32 num_prev_failed = 4; + optional uint32 supports_package_tokens = 5; +} + +// Used by: common.proto +message CMsgClientPICSProductInfoRequest_AppInfo { + optional uint32 appid = 1; + optional uint64 access_token = 2; + optional bool only_public_obsolete = 3; +} + +// Used by: common.proto +message CMsgClientPICSProductInfoRequest_PackageInfo { + optional uint32 packageid = 1; + optional uint64 access_token = 2; +} + +message CMsgClientPICSProductInfoResponse { + repeated .CMsgClientPICSProductInfoResponse_AppInfo apps = 1; + repeated uint32 unknown_appids = 2; + repeated .CMsgClientPICSProductInfoResponse_PackageInfo packages = 3; + repeated uint32 unknown_packageids = 4; + optional bool meta_data_only = 5; + optional bool response_pending = 6; + optional uint32 http_min_size = 7; + optional string http_host = 8; +} + +// Used by: common.proto +message CMsgClientPICSProductInfoResponse_AppInfo { + optional uint32 appid = 1; + optional uint32 change_number = 2; + optional bool missing_token = 3; + optional bytes sha = 4; + optional bytes buffer = 5; + optional bool only_public = 6; + optional uint32 size = 7; +} + +// Used by: common.proto +message CMsgClientPICSProductInfoResponse_PackageInfo { + optional uint32 packageid = 1; + optional uint32 change_number = 2; + optional bool missing_token = 3; + optional bytes sha = 4; + optional bytes buffer = 5; + optional uint32 size = 6; +} + +message CMsgClientPlayerNicknameList { + optional bool removal = 1; + optional bool incremental = 2; + repeated .CMsgClientPlayerNicknameList_PlayerNickname nicknames = 3; +} + +// Used by: common.proto +message CMsgClientPlayerNicknameList_PlayerNickname { + optional fixed64 steamid = 1; + optional string nickname = 3; +} + +message CMsgClientPlayingSessionState { + optional bool playing_blocked = 2; + optional uint32 playing_app = 3; +} + +message CMsgClientPurchaseResponse { + optional int32 eresult = 1 [default = 2]; + optional int32 purchase_result_details = 2; + optional bytes purchase_receipt_info = 3; +} + +message CMsgClientPurchaseWithMachineID { + optional uint32 package_id = 1; + optional bytes machine_info = 2; +} + +message CMsgClientReadMachineAuth { + optional string filename = 1; + optional uint32 offset = 2; + optional uint32 cubtoread = 3; +} + +message CMsgClientReadMachineAuthResponse { + optional string filename = 1; + optional uint32 eresult = 2; + optional uint32 filesize = 3; + optional bytes sha_file = 4; + optional uint32 getlasterror = 5; + optional uint32 offset = 6; + optional uint32 cubread = 7; + optional bytes bytes_read = 8; + optional string filename_sentry = 9; +} + +message CMsgClientRedeemGuestPass { + optional fixed64 guest_pass_id = 1; +} + +message CMsgClientRedeemGuestPassResponse { + optional uint32 eresult = 1 [default = 2]; + optional uint32 package_id = 2; + optional uint32 must_own_appid = 3; +} + +message CMsgClientRegisterAuthTicketWithCM { + optional uint32 protocol_version = 1; + optional bytes ticket = 3; + optional uint64 client_instance_id = 4; +} + +message CMsgClientRegisterKey { + optional string key = 1; +} + +message CMsgClientRegisterOEMMachine { + optional bytes oem_register_file = 1; +} + +message CMsgClientRegisterOEMMachineResponse { + optional uint32 eresult = 1; +} + +message CMsgClientRemoveFriend { + optional fixed64 friendid = 1; +} + +message CMsgClientRemoveFriendFromGroup { + optional int32 groupid = 1; + optional fixed64 steamiduser = 2; +} + +message CMsgClientRemoveFriendFromGroupResponse { + optional uint32 eresult = 1; +} + +message CMsgClientReportOverlayDetourFailure { + repeated string failure_strings = 1; +} + +message CMsgClientRequestAccountData { + optional string account_or_email = 1; + optional uint32 action = 2; +} + +message CMsgClientRequestAccountDataResponse { + optional uint32 action = 1; + optional uint32 eresult = 2; + optional string account_name = 3; + optional uint32 ct_matches = 4; + optional string account_name_suggestion1 = 5; + optional string account_name_suggestion2 = 6; + optional string account_name_suggestion3 = 7; +} + +message CMsgClientRequestCommentNotifications { +} + +message CMsgClientRequestedClientStats { + repeated .CMsgClientRequestedClientStats_StatsToSend stats_to_send = 1; +} + +// Used by: common.proto +message CMsgClientRequestedClientStats_StatsToSend { + optional uint32 client_stat = 1; + optional uint32 stat_aggregate_method = 2; +} + +message CMsgClientRequestEncryptedAppTicket { + optional uint32 app_id = 1; + optional bytes userdata = 2; +} + +message CMsgClientRequestEncryptedAppTicketResponse { + optional uint32 app_id = 1; + optional int32 eresult = 2 [default = 2]; + optional .EncryptedAppTicket encrypted_app_ticket = 3; +} + +message CMsgClientRequestForgottenPasswordEmail { + optional string account_name = 1; + optional string password_tried = 2; +} + +message CMsgClientRequestForgottenPasswordEmailResponse { + optional uint32 eResult = 1; + optional bool use_secret_question = 2; +} + +message CMsgClientRequestFreeLicense { + repeated uint32 appids = 2; +} + +message CMsgClientRequestFreeLicenseResponse { + optional uint32 eresult = 1 [default = 2]; + repeated uint32 granted_packageids = 2; + repeated uint32 granted_appids = 3; +} + +message CMsgClientRequestFriendData { + optional uint32 persona_state_requested = 1; + repeated fixed64 friends = 2; +} + +message CMsgClientRequestItemAnnouncements { +} + +message CMsgClientRequestMachineAuth { + optional string filename = 1; + optional uint32 eresult_sentryfile = 2; + optional uint32 filesize = 3; + optional bytes sha_sentryfile = 4; + optional int32 lock_account_action = 6; + optional uint32 otp_type = 7; + optional string otp_identifier = 8; + optional bytes otp_sharedsecret = 9; + optional uint32 otp_value = 10; + optional string machine_name = 11; + optional string machine_name_userchosen = 12; +} + +message CMsgClientRequestMachineAuthResponse { + optional uint32 eresult = 1; +} + +message CMsgClientRequestOfflineMessageCount { +} + +message CMsgClientRequestWebAPIAuthenticateUserNonce { + optional int32 token_type = 1 [default = -1]; +} + +message CMsgClientRequestWebAPIAuthenticateUserNonceResponse { + optional int32 eresult = 1 [default = 2]; + optional int32 token_type = 3 [default = -1]; + optional string webapi_authenticate_user_nonce = 11; +} + +message CMsgClientRichPresenceInfo { + repeated .CMsgClientRichPresenceInfo_RichPresence rich_presence = 1; +} + +// Used by: common.proto +message CMsgClientRichPresenceInfo_RichPresence { + optional fixed64 steamid_user = 1; + optional bytes rich_presence_kv = 2; +} + +message CMsgClientRichPresenceRequest { + repeated fixed64 steamid_request = 1; +} + +message CMsgClientRichPresenceUpload { + optional bytes rich_presence_kv = 1; + repeated fixed64 steamid_broadcast = 2; +} + +message CMsgClientScreenshotsChanged { +} + +// Used by: common.proto +message CMsgClientSecret { + optional uint32 version = 1; + optional uint32 appid = 2; + optional uint32 deviceid = 3; + optional fixed64 nonce = 4; + optional bytes hmac = 5; +} + +message CMsgClientSentLogs { +} + +message CMsgClientServersAvailable { + repeated .CMsgClientServersAvailable_Server_Types_Available server_types_available = 1; + optional uint32 server_type_for_auth_services = 2; +} + +// Used by: common.proto +message CMsgClientServersAvailable_Server_Types_Available { + optional uint32 server = 1; + optional bool changed = 2; +} + +message CMsgClientServerTimestampRequest { + optional uint64 client_request_timestamp = 1; +} + +message CMsgClientServerTimestampResponse { + optional uint64 client_request_timestamp = 1; + optional uint64 server_timestamp_ms = 2; +} + +message CMsgClientServiceCall { + optional bytes sysid_routing = 1; + optional uint32 call_handle = 2; + optional uint32 module_crc = 3; + optional bytes module_hash = 4; + optional uint32 function_id = 5; + optional uint32 cub_output_max = 6; + optional uint32 flags = 7; + optional bytes callparameter = 8; + optional bool ping_only = 9; + optional uint32 max_outstanding_calls = 10; +} + +message CMsgClientServiceCallResponse { + optional bytes sysid_routing = 1; + optional uint32 call_handle = 2; + optional uint32 module_crc = 3; + optional bytes module_hash = 4; + optional uint32 ecallresult = 5; + optional bytes result_content = 6; + optional bytes os_version_info = 7; + optional bytes system_info = 8; + optional fixed64 load_address = 9; + optional bytes exception_record = 10; + optional bytes portable_os_version_info = 11; + optional bytes portable_system_info = 12; + optional bool was_converted = 13; + optional uint32 internal_result = 14; + optional uint32 current_count = 15; + optional uint32 last_call_handle = 16; + optional uint32 last_call_module_crc = 17; + optional bytes last_call_sysid_routing = 18; + optional uint32 last_ecallresult = 19; + optional uint32 last_callissue_delta = 20; + optional uint32 last_callcomplete_delta = 21; +} + +message CMsgClientServiceMethodLegacy { + optional string method_name = 1; + optional bytes serialized_method = 2; + optional bool is_notification = 3; +} + +message CMsgClientServiceMethodLegacyResponse { + optional string method_name = 1; + optional bytes serialized_method_response = 2; +} + +message CMsgClientServiceModule { + optional uint32 module_crc = 1; + optional bytes module_hash = 2; + optional bytes module_content = 3; +} + +message CMsgClientSessionToken { + optional uint64 token = 1; +} + +message CMsgClientSetClientAppUpdateState { + optional uint32 appid = 1; + optional bool update = 2; +} + +message CMsgClientSetClientAppUpdateStateResponse { + optional uint32 result = 1; +} + +message CMsgClientSetPlayerNickname { + optional fixed64 steamid = 1; + optional string nickname = 2; +} + +message CMsgClientSetPlayerNicknameResponse { + optional uint32 eresult = 1; +} + +message CMsgClientSettings { + optional bool no_save_personal_info = 1; + optional bool oobe_test_mode_enabled = 2; + optional bool in_client_beta = 3; + optional bool is_steam_sideloaded = 4; + optional string preferred_monitor = 5; + optional bool steam_cef_gpu_blocklist_disabled = 6; + optional bool bigpicture_windowed = 7; + optional string display_name = 8; + optional bool is_external_display = 9; + optional float steam_os_underscan_level = 10; + optional bool steam_os_underscan_enabled = 11; + optional float min_scale_factor = 12; + optional float max_scale_factor = 13; + optional float auto_scale_factor = 14; + optional bool small_mode = 16; + optional bool skip_steamvr_install_dialog = 19; + optional bool always_show_user_chooser = 20; + optional bool os_version_unsupported = 21; + optional bool show_family_sharing_notifications = 3000; + optional bool show_copy_count_in_library = 3001; + optional int32 overlay_fps_counter_corner = 4000; + optional bool overlay_fps_counter_high_contrast = 4001; + optional .CMsgHotkey overlay_key = 4002; + optional .CMsgHotkey screenshot_key = 4003; + optional bool enable_overlay = 4004; + optional bool enable_screenshot_notification = 4006; + optional bool enable_screenshot_sound = 4007; + optional bool save_uncompressed_screenshots = 4008; + optional string screenshots_path = 4009; + optional int32 default_ping_rate = 4010; + optional int32 server_ping_rate = 4011; + optional int32 steam_networking_share_ip = 4012; + optional string web_browser_home = 4013; + optional string voice_mic_device_name = 4014; + optional float voice_mic_input_gain = 4015; + optional float voice_speaker_output_gain = 4016; + optional int32 voice_push_to_talk_setting = 4017; + optional .CMsgHotkey voice_push_to_talk_key = 4018; + optional bool overlay_toolbar_list_view = 4019; + optional bool always_use_gamepadui_overlay = 4020; + optional string overlay_tabs = 4021; + optional bool overlay_scale_interface = 4022; + optional bool overlay_restore_browser_tabs = 4023; + optional bool enable_avif_screenshots = 4024; + optional bool smooth_scroll_webviews = 5000; + optional bool enable_gpu_accelerated_webviews = 5001; + optional bool enable_hardware_video_decoding = 5003; + optional bool run_at_startup = 5004; + optional bool enable_dpi_scaling = 5005; + optional bool enable_marketing_messages = 5006; + optional bool start_in_big_picture_mode = 5007; + optional uint32 jumplist_flags = 5008; + optional bool enable_ui_sounds = 5009; + optional bool disable_all_toasts = 6000; + optional bool disable_toasts_in_game = 6001; + optional bool play_sound_on_toast = 6002; + optional int32 library_display_size = 7000; + optional bool library_whats_new_show_only_product_updates = 7001; + optional bool show_store_content_on_home = 7002; + optional string start_page = 7003; + optional bool library_low_bandwidth_mode = 7004; + optional bool library_low_perf_mode = 7005; + optional bool library_disable_community_content = 7006; + optional bool library_display_icon_in_game_list = 7007; + optional bool ready_to_play_includes_streaming = 7008; + optional bool show_steam_deck_info = 7009; + optional bool enable_shader_precache = 8000; + optional bool enable_shader_background_processing = 8001; + optional uint64 shader_precached_size = 8002; + optional bool needs_steam_service_repair = 8003; + optional int32 download_peer_content = 8004; + optional bool download_rate_bits_per_s = 8005; + optional bool restrict_auto_updates = 8006; + optional int32 restrict_auto_updates_start = 8007; + optional int32 restrict_auto_updates_end = 8008; + optional int32 download_region = 8009; + optional bool download_while_app_running = 8010; + optional bool download_throttle_while_streaming = 8011; + optional int32 download_throttle_rate = 8012; + optional bool cloud_enabled = 10000; + optional bool show_screenshot_manager = 10001; + optional int32 music_volume = 11000; + optional bool music_pause_on_app_start = 11001; + optional bool music_pause_on_voice_chat = 11002; + optional bool music_download_high_quality = 11003; + optional bool music_playlist_notification = 11004; + optional int32 broadcast_permissions = 12000 [(.description) = "enum"]; + optional int32 broadcast_output_width = 12001; + optional int32 broadcast_output_height = 12002; + optional int32 broadcast_bitrate = 12003; + optional int32 broadcast_encoding_option = 12004 [(.description) = "enum"]; + optional bool broadcast_record_all_video = 12005; + optional bool broadcast_record_all_audio = 12006; + optional bool broadcast_record_microphone = 12007; + optional bool broadcast_show_upload_stats = 12008; + optional bool broadcast_show_live_reminder = 12009; + optional int32 broadcast_chat_corner = 12010; + optional bool gamestream_hardware_video_encode = 13000; + optional bool steam_input_configurator_error_msg_enable = 14001; + optional bool controller_guide_button_focus_steam = 14002; + optional int32 controller_ps_support = 14003; + optional bool controller_xbox_support = 14004; + optional bool controller_xbox_driver = 14005; + optional bool controller_switch_support = 14006; + optional bool controller_generic_support = 14007; + optional int32 controller_power_off_timeout = 14008; + optional bool turn_off_controller_on_exit = 14009; + optional bool controller_combine_nintendo_joycons = 14010; + optional uint64 startup_movie_id = 16000; + optional string startup_movie_local_path = 16001; + optional bool startup_movie_shuffle = 16002; + optional bool startup_movie_used_for_resume = 16003; + optional bool game_notes_enable_spellcheck = 17001; + optional int32 screenshot_items_per_row = 18000; + optional string g_background_path = 18201; + optional string g_background_max_keep = 18202; + optional int32 g_background_time_resolution = 18203; + optional .CMsgHotkey g_background_mk = 18207; + optional .CMsgHotkey g_background_tg = 18208; + optional bool g_background_a_m = 18209; + optional int32 g_background_br = 18210; + optional bool g_background_a_s = 18211; + optional int32 g_background_mode = 18212 [(.description) = "enum"]; + optional int32 g_background_audio = 18213 [(.description) = "enum"]; + optional int32 g_max_fps = 18214; + optional .CMsgHotkey gamerecording_hotkey_ic = 18215; + optional float gamerecording_ic_seconds = 18216; + optional bool show_timestamps_in_console = 20000; + optional bool force_oobe = 20001; + optional int32 override_browser_composer_mode = 20002; + optional bool cef_remote_debugging_enabled = 20003; + optional bool force_deck_perf_tab = 20004; + optional bool force_fake_mandatory_update = 20005; + optional bool hdr_compat_testing = 20006; + optional bool developer_mode_enabled = 20007; + optional bool show_advanced_update_channels = 20008; + optional int32 gamescope_hdr_visualization = 21001 [(.description) = "enum"]; + optional int32 gamescope_app_target_framerate = 21002; + optional bool gamescope_enable_app_target_framerate = 21003; + optional bool gamescope_disable_framelimit = 21004; + optional int32 gamescope_display_refresh_rate = 21005; + optional bool gamescope_use_game_refresh_rate_in_steam = 21006; + optional bool gamescope_disable_mura_correction = 21007; + optional bool gamescope_include_steamui_in_screenshots = 21008; + optional bool gamescope_allow_tearing = 21009; + optional bool gamescope_composite_debug = 21010; + optional bool gamescope_force_composite = 21011; + optional string gamescope_game_resolution_global = 21012; + optional int32 steamos_status_led_brightness = 22000; + optional bool steamos_tdp_limit_enabled = 22001; + optional int32 steamos_tdp_limit = 22002; + optional bool steamos_cec_enabled = 22003; + optional bool steamos_cec_wake_on_resume = 22004; + optional bool steamos_wifi_debug = 22005; + optional bool steamos_wifi_force_wpa_supplicant = 22006; + optional int32 steamos_magnifier_scale = 22007; + optional bool setting_validation_bool = 23001; + optional int32 setting_validation_enum = 23002 [(.description) = "enum"]; + optional int32 setting_validation_int32 = 23003; + optional uint32 setting_validation_uint32 = 23004; + optional uint64 setting_validation_uint64 = 23005; + optional float setting_validation_float = 23006; + optional string setting_validation_string = 23007; + optional bool system_bluetooth_enabled = 24000; +} + +message CMsgClientSharedLibraryLockStatus { + repeated .CMsgClientSharedLibraryLockStatus_LockedLibrary locked_library = 1; + optional uint32 own_library_locked_by = 2; +} + +// Used by: common.proto +message CMsgClientSharedLibraryLockStatus_LockedLibrary { + optional uint32 owner_id = 1; + optional uint32 locked_by = 2; +} + +message CMsgClientSharedLibraryStopPlaying { + optional int32 seconds_left = 1; + repeated .CMsgClientSharedLibraryStopPlaying_StopApp stop_apps = 2; +} + +// Used by: common.proto +message CMsgClientSharedLibraryStopPlaying_StopApp { + optional uint32 app_id = 1; + optional uint32 owner_id = 2; +} + +message CMsgClientStat2 { + repeated .CMsgClientStat2_StatDetail stat_detail = 1; +} + +// Used by: common.proto +message CMsgClientStat2_StatDetail { + optional uint32 client_stat = 1; + optional int64 ll_value = 2; + optional uint32 time_of_day = 3; + optional uint32 cell_id = 4; + optional uint32 depot_id = 5; + optional uint32 app_id = 6; +} + +message CMsgClientStatsUpdated { + optional fixed64 steam_id = 1; + optional fixed64 game_id = 2; + optional uint32 crc_stats = 3; + repeated .CMsgClientStatsUpdated_Updated_Stats updated_stats = 4; +} + +// Used by: common.proto +message CMsgClientStatsUpdated_Updated_Stats { + optional uint32 stat_id = 1; + optional uint32 stat_value = 2; +} + +message CMsgClientStoreUserStats { + optional fixed64 game_id = 1; + optional bool explicit_reset = 2; + repeated .CMsgClientStoreUserStats_Stats_To_Store stats_to_store = 3; +} + +// Used by: common.proto +message CMsgClientStoreUserStats_Stats_To_Store { + optional uint32 stat_id = 1; + optional uint32 stat_value = 2; +} + +message CMsgClientStoreUserStats2 { + optional fixed64 game_id = 1; + optional fixed64 settor_steam_id = 2; + optional fixed64 settee_steam_id = 3; + optional uint32 crc_stats = 4; + optional bool explicit_reset = 5; + repeated .CMsgClientStoreUserStats2_Stats stats = 6; +} + +// Used by: common.proto +message CMsgClientStoreUserStats2_Stats { + optional uint32 stat_id = 1; + optional uint32 stat_value = 2; +} + +message CMsgClientStoreUserStatsResponse { + optional fixed64 game_id = 1; + optional int32 eresult = 2 [default = 2]; + optional uint32 crc_stats = 3; + repeated .CMsgClientStoreUserStatsResponse_Stats_Failed_Validation stats_failed_validation = 4; + optional bool stats_out_of_date = 5; +} + +// Used by: common.proto +message CMsgClientStoreUserStatsResponse_Stats_Failed_Validation { + optional uint32 stat_id = 1; + optional uint32 reverted_stat_value = 2; +} + +message CMsgClientTicketAuthComplete { + optional fixed64 steam_id = 1; + optional fixed64 game_id = 2; + optional uint32 estate = 3; + optional uint32 eauth_session_response = 4; + optional bytes DEPRECATED_ticket = 5; + optional uint32 ticket_crc = 6; + optional uint32 ticket_sequence = 7; + optional fixed64 owner_steam_id = 8; +} + +message CMsgClientUCMAddScreenshot { + optional uint32 appid = 1; + optional string filename = 2; + optional string thumbname = 3; + optional fixed32 rtime32_created = 4; + optional uint32 width = 5; + optional uint32 height = 6; + optional uint32 permissions = 7; + optional string caption = 8; + optional string shortcut_name = 9; + repeated .CMsgClientUCMAddScreenshot_Tag tag = 10; + repeated fixed64 tagged_steamid = 11; + optional bool spoiler_tag = 12; + repeated uint64 tagged_publishedfileid = 13; + optional string vr_filename = 14; +} + +// Used by: common.proto +message CMsgClientUCMAddScreenshot_Tag { + optional string tag_name = 1; + optional string tag_value = 2; +} + +message CMsgClientUCMAddScreenshotResponse { + optional int32 eresult = 1 [default = 2]; + optional fixed64 screenshotid = 2 [default = 18446744073709551615]; +} + +message CMsgClientUCMDeletePublishedFile { + optional fixed64 published_file_id = 1; + optional uint32 app_id = 2; +} + +message CMsgClientUCMDeletePublishedFileResponse { + optional int32 eresult = 1 [default = 2]; +} + +message CMsgClientUCMDeleteScreenshot { + optional fixed64 screenshotid = 1 [default = 18446744073709551615]; +} + +message CMsgClientUCMDeleteScreenshotResponse { + optional int32 eresult = 1 [default = 2]; +} + +message CMsgClientUCMEnumeratePublishedFilesByUserAction { + optional uint32 app_id = 1; + optional uint32 start_index = 2; + optional int32 action = 3; +} + +message CMsgClientUCMEnumeratePublishedFilesByUserActionResponse { + optional int32 eresult = 1 [default = 2]; + repeated .CMsgClientUCMEnumeratePublishedFilesByUserActionResponse_PublishedFileId published_files = 2; + optional uint32 total_results = 3; +} + +// Used by: common.proto +message CMsgClientUCMEnumeratePublishedFilesByUserActionResponse_PublishedFileId { + optional fixed64 published_file_id = 1; + optional fixed32 rtime_time_stamp = 2 [default = 0]; +} + +message CMsgClientUCMEnumerateUserPublishedFiles { + optional uint32 app_id = 1; + optional uint32 start_index = 2; + optional uint32 sort_order = 3; +} + +message CMsgClientUCMEnumerateUserPublishedFilesResponse { + optional int32 eresult = 1 [default = 2]; + repeated .CMsgClientUCMEnumerateUserPublishedFilesResponse_PublishedFileId published_files = 2; + optional uint32 total_results = 3; +} + +// Used by: common.proto +message CMsgClientUCMEnumerateUserPublishedFilesResponse_PublishedFileId { + optional fixed64 published_file_id = 1; +} + +message CMsgClientUCMEnumerateUserSubscribedFiles { + optional uint32 app_id = 1; + optional uint32 start_index = 2; + optional uint32 list_type = 3 [default = 1]; + optional uint32 matching_file_type = 4 [default = 0]; + optional uint32 count = 5 [default = 50]; +} + +message CMsgClientUCMEnumerateUserSubscribedFilesResponse { + optional int32 eresult = 1 [default = 2]; + repeated .CMsgClientUCMEnumerateUserSubscribedFilesResponse_PublishedFileId subscribed_files = 2; + optional uint32 total_results = 3; +} + +// Used by: common.proto +message CMsgClientUCMEnumerateUserSubscribedFilesResponse_PublishedFileId { + optional fixed64 published_file_id = 1; + optional fixed32 rtime32_subscribed = 2 [default = 0]; +} + +message CMsgClientUCMEnumerateUserSubscribedFilesWithUpdates { + optional uint32 app_id = 1; + optional uint32 start_index = 2; + optional fixed32 start_time = 3; + optional uint32 desired_revision = 4 [default = 0]; +} + +message CMsgClientUCMEnumerateUserSubscribedFilesWithUpdatesResponse { + optional int32 eresult = 1 [default = 2]; + repeated .CMsgClientUCMEnumerateUserSubscribedFilesWithUpdatesResponse_PublishedFileId subscribed_files = 2; + optional uint32 total_results = 3; +} + +// Used by: common.proto +message CMsgClientUCMEnumerateUserSubscribedFilesWithUpdatesResponse_PublishedFileId { + optional fixed64 published_file_id = 1; + optional fixed32 rtime32_subscribed = 2 [default = 0]; + optional uint32 appid = 3; + optional fixed64 file_hcontent = 4; + optional uint32 file_size = 5; + optional fixed32 rtime32_last_updated = 6; + optional bool is_depot_content = 7; +} + +message CMsgClientUCMGetPublishedFilesForUser { + optional uint32 app_id = 1; + optional fixed64 creator_steam_id = 2; + repeated string required_tags = 3; + repeated string excluded_tags = 4; + optional uint32 start_index = 5; +} + +message CMsgClientUCMGetPublishedFilesForUserResponse { + optional int32 eresult = 1 [default = 2]; + repeated .CMsgClientUCMGetPublishedFilesForUserResponse_PublishedFileId published_files = 2; + optional uint32 total_results = 3; +} + +// Used by: common.proto +message CMsgClientUCMGetPublishedFilesForUserResponse_PublishedFileId { + optional fixed64 published_file_id = 1; +} + +message CMsgClientUCMPublishedFileUpdated { + optional fixed64 published_file_id = 1; + optional uint32 app_id = 2; + optional uint32 time_updated = 3; + optional fixed64 hcontent = 4; + optional fixed32 file_size = 5; + optional bool is_depot_content = 6; + optional uint32 revision = 7; +} + +message CMsgClientUCMPublishFile { + optional uint32 app_id = 1; + optional string file_name = 2; + optional string preview_file_name = 3; + optional uint32 consumer_app_id = 4; + optional string title = 5; + optional string description = 6; + repeated string tags = 8; + optional bool workshop_file = 9; + optional int32 visibility = 10; + optional uint32 file_type = 11; + optional string url = 12; + optional uint32 video_provider = 13; + optional string video_account_name = 14; + optional string video_identifier = 15; + optional bool in_progress = 16; +} + +message CMsgClientUCMPublishFileResponse { + optional int32 eresult = 1 [default = 2]; + optional fixed64 published_file_id = 2 [default = 18446744073709551615]; + optional bool needs_workshop_legal_agreement_acceptance = 3 [default = false]; +} + +message CMsgClientUCMSetUserPublishedFileAction { + optional fixed64 published_file_id = 1; + optional uint32 app_id = 2; + optional int32 action = 3; +} + +message CMsgClientUCMSetUserPublishedFileActionResponse { + optional int32 eresult = 1 [default = 2]; +} + +message CMsgClientUCMUpdatePublishedFile { + optional uint32 app_id = 1; + optional fixed64 published_file_id = 2; + optional string file_name = 3; + optional string preview_file_name = 4; + optional string title = 5; + optional string description = 6; + repeated string tags = 7; + optional int32 visibility = 8; + optional bool update_file = 9; + optional bool update_preview_file = 10; + optional bool update_title = 11; + optional bool update_description = 12; + optional bool update_tags = 13; + optional bool update_visibility = 14; + optional string change_description = 15; + optional bool update_url = 16; + optional string url = 17; + optional bool update_content_manifest = 18; + optional fixed64 content_manifest = 19; + optional string metadata = 20; + optional bool update_metadata = 21; + optional int32 language = 22 [default = 0]; + repeated string removed_kvtags = 23; + repeated .CMsgClientUCMUpdatePublishedFile_KeyValueTag kvtags = 24; + repeated .CMsgClientUCMUpdatePublishedFile_AdditionalPreview previews = 25; + repeated int32 previews_to_remove = 26; + optional bool clear_in_progress = 27; + optional bool remove_all_kvtags = 28; +} + +// Used by: common.proto +message CMsgClientUCMUpdatePublishedFile_AdditionalPreview { + optional string original_file_name = 1; + optional string internal_file_name = 2; + optional string videoid = 3; + optional uint32 preview_type = 4; + optional int32 update_index = 5 [default = -1]; +} + +// Used by: common.proto +message CMsgClientUCMUpdatePublishedFile_KeyValueTag { + optional string key = 1; + optional string value = 2; +} + +message CMsgClientUCMUpdatePublishedFileResponse { + optional int32 eresult = 1 [default = 2]; + optional bool needs_workshop_legal_agreement_acceptance = 2 [default = false]; +} + +message CMsgClientUDSP2PSessionEnded { + optional fixed64 steamid_remote = 1; + optional int32 appid = 2; + optional int32 session_length_sec = 3; + optional int32 session_error = 4; + optional int32 nattype = 5; + optional int32 bytes_recv = 6; + optional int32 bytes_sent = 7; + optional int32 bytes_sent_relay = 8; + optional int32 bytes_recv_relay = 9; + optional int32 time_to_connect_ms = 10; +} + +message CMsgClientUDSP2PSessionStarted { + optional fixed64 steamid_remote = 1; + optional int32 appid = 2; +} + +message CMsgClientUFSDeleteFileRequest { + optional uint32 app_id = 1; + optional string file_name = 2; + optional bool is_explicit_delete = 3; +} + +message CMsgClientUFSDeleteFileResponse { + optional int32 eresult = 1 [default = 2]; + optional string file_name = 2; +} + +message CMsgClientUFSDownloadRequest { + optional uint32 app_id = 1; + optional string file_name = 2; + optional bool can_handle_http = 3; +} + +message CMsgClientUFSDownloadResponse { + optional int32 eresult = 1 [default = 2]; + optional uint32 app_id = 2; + optional uint32 file_size = 3; + optional uint32 raw_file_size = 4; + optional bytes sha_file = 5; + optional uint64 time_stamp = 6; + optional bool is_explicit_delete = 7; + optional bool use_http = 8; + optional string http_host = 9; + optional string http_url = 10; + optional bytes kv_headers = 11; + optional bool use_https = 12; + optional bool encrypted = 13; +} + +message CMsgClientUFSFileChunk { + optional bytes sha_file = 1; + optional uint32 file_start = 2; + optional bytes data = 3; +} + +message CMsgClientUFSGetFileListForApp { + repeated uint32 apps_to_query = 1; + optional bool send_path_prefixes = 2; +} + +message CMsgClientUFSGetFileListForAppResponse { + repeated .CMsgClientUFSGetFileListForAppResponse_File files = 1; + repeated string path_prefixes = 2; +} + +// Used by: common.proto +message CMsgClientUFSGetFileListForAppResponse_File { + optional uint32 app_id = 1; + optional string file_name = 2; + optional bytes sha_file = 3; + optional uint64 time_stamp = 4; + optional uint32 raw_file_size = 5; + optional bool is_explicit_delete = 6; + optional uint32 platforms_to_sync = 7; + optional uint32 path_prefix_index = 8; +} + +message CMsgClientUFSGetSingleFileInfo { + optional uint32 app_id = 1; + optional string file_name = 2; +} + +message CMsgClientUFSGetSingleFileInfoResponse { + optional int32 eresult = 1 [default = 2]; + optional uint32 app_id = 2; + optional string file_name = 3; + optional bytes sha_file = 4; + optional uint64 time_stamp = 5; + optional uint32 raw_file_size = 6; + optional bool is_explicit_delete = 7; +} + +message CMsgClientUFSGetUGCDetails { + optional fixed64 hcontent = 1 [default = 18446744073709551615]; +} + +message CMsgClientUFSGetUGCDetailsResponse { + optional int32 eresult = 1 [default = 2]; + optional string url = 2; + optional uint32 app_id = 3; + optional string filename = 4; + optional fixed64 steamid_creator = 5; + optional uint32 file_size = 6; + optional uint32 compressed_file_size = 7; + optional string rangecheck_host = 8; + optional string file_encoded_sha1 = 9; +} + +message CMsgClientUFSLoginRequest { + optional uint32 protocol_version = 1; + optional uint64 am_session_token = 2; + repeated uint32 apps = 3; +} + +message CMsgClientUFSLoginResponse { + optional int32 eresult = 1 [default = 2]; +} + +message CMsgClientUFSShareFile { + optional uint32 app_id = 1; + optional string file_name = 2; +} + +message CMsgClientUFSShareFileResponse { + optional int32 eresult = 1 [default = 2]; + optional fixed64 hcontent = 2 [default = 18446744073709551615]; +} + +message CMsgClientUFSTransferHeartbeat { +} + +message CMsgClientUFSUploadCommit { + repeated .CMsgClientUFSUploadCommit_File files = 1; +} + +// Used by: common.proto +message CMsgClientUFSUploadCommit_File { + optional int32 eresult = 1 [default = 2]; + optional uint32 app_id = 2; + optional bytes sha_file = 3; + optional uint32 cub_file = 4; + optional string file_name = 5; +} + +message CMsgClientUFSUploadCommitResponse { + repeated .CMsgClientUFSUploadCommitResponse_File files = 1; +} + +// Used by: common.proto +message CMsgClientUFSUploadCommitResponse_File { + optional int32 eresult = 1 [default = 2]; + optional uint32 app_id = 2; + optional bytes sha_file = 3; +} + +message CMsgClientUFSUploadFileFinished { + optional int32 eresult = 1 [default = 2]; + optional bytes sha_file = 2; +} + +message CMsgClientUFSUploadFileRequest { + optional uint32 app_id = 1; + optional uint32 file_size = 2; + optional uint32 raw_file_size = 3; + optional bytes sha_file = 4; + optional uint64 time_stamp = 5; + optional string file_name = 6; + optional uint32 platforms_to_sync_deprecated = 7; + optional uint32 platforms_to_sync = 8 [default = 4294967295]; + optional uint32 cell_id = 9; + optional bool can_encrypt = 10; +} + +message CMsgClientUFSUploadFileResponse { + optional int32 eresult = 1 [default = 2]; + optional bytes sha_file = 2; + optional bool use_http = 3; + optional string http_host = 4; + optional string http_url = 5; + optional bytes kv_headers = 6; + optional bool use_https = 7; + optional bool encrypt_file = 8; +} + +message CMsgClientUGSGetGlobalStats { + optional uint64 gameid = 1; + optional uint32 history_days_requested = 2; + optional fixed32 time_last_requested = 3; + optional uint32 first_day_cached = 4; + optional uint32 days_cached = 5; +} + +message CMsgClientUGSGetGlobalStatsResponse { + optional int32 eresult = 1 [default = 2]; + optional fixed32 timestamp = 2; + optional int32 day_current = 3; + repeated .CMsgClientUGSGetGlobalStatsResponse_Day days = 4; +} + +// Used by: common.proto +message CMsgClientUGSGetGlobalStatsResponse_Day { + optional uint32 day_id = 1; + repeated .CMsgClientUGSGetGlobalStatsResponse_Day_Stat stats = 2; +} + +// Used by: common.proto +message CMsgClientUGSGetGlobalStatsResponse_Day_Stat { + optional int32 stat_id = 1; + optional int64 data = 2; +} + +message CMsgClientUIMode { + optional uint32 uimode = 1; + optional uint32 chat_mode = 2; +} + +message CMsgClientUninstallClientApp { + optional uint32 appid = 1; +} + +message CMsgClientUninstallClientAppResponse { + optional uint32 result = 1; +} + +message CMsgClientUnsignedInstallScript { + optional uint32 app_id = 1; + optional string file_name = 2; + optional uint32 file_size = 3; + optional bool signature_broken = 4; + optional uint32 depot_id = 5; + optional uint64 manifest_id = 6; + optional uint32 file_flags = 7; +} + +message CMsgClientUpdateAppJobReport { + optional uint32 app_id = 1; + repeated uint32 depot_ids = 2; + optional uint32 app_state = 3; + optional uint32 job_app_error = 4; + optional string error_details = 5; + optional uint32 job_duration = 6; + optional uint32 files_validation_failed = 7; + optional uint64 job_bytes_downloaded = 8; + optional uint64 job_bytes_staged = 9; + optional uint64 bytes_comitted = 10; + optional uint32 start_app_state = 11; + optional fixed64 stats_machine_id = 12; + optional string branch_name = 13; + optional uint64 total_bytes_downloaded = 14; + optional uint64 total_bytes_staged = 15; + optional uint64 total_bytes_restored = 16; + optional bool is_borrowed = 17; + optional bool is_free_weekend = 18; + optional uint64 total_bytes_legacy = 19; + optional uint64 total_bytes_patched = 20; + optional uint64 total_bytes_saved = 21; + optional uint32 cell_id = 22; +} + +message CMsgClientUpdateMachineAuth { + optional string filename = 1; + optional uint32 offset = 2; + optional uint32 cubtowrite = 3; + optional bytes bytes = 4; + optional uint32 otp_type = 5; + optional string otp_identifier = 6; + optional bytes otp_sharedsecret = 7; + optional uint32 otp_timedrift = 8; +} + +message CMsgClientUpdateMachineAuthResponse { + optional string filename = 1; + optional uint32 eresult = 2; + optional uint32 filesize = 3; + optional bytes sha_file = 4; + optional uint32 getlasterror = 5; + optional uint32 offset = 6; + optional uint32 cubwrote = 7; + optional int32 otp_type = 8; + optional uint32 otp_value = 9; + optional string otp_identifier = 10; +} + +message CMsgClientUpdateUserGameInfo { + optional fixed64 steamid_idgs = 1; + optional fixed64 gameid = 2; + optional uint32 game_ip = 3; + optional uint32 game_port = 4; + optional bytes token = 5; +} + +message CMsgClientUseLocalDeviceAuthorizations { + repeated uint32 authorization_account_id = 1; + repeated .CMsgClientUseLocalDeviceAuthorizations_DeviceToken device_tokens = 2; +} + +// Used by: common.proto +message CMsgClientUseLocalDeviceAuthorizations_DeviceToken { + optional uint32 owner_account_id = 1; + optional uint64 token_id = 2; +} + +message CMsgClientUserNotifications { + repeated .CMsgClientUserNotifications_Notification notifications = 1; +} + +// Used by: common.proto +message CMsgClientUserNotifications_Notification { + optional uint32 user_notification_type = 1; + optional uint32 count = 2; +} + +message CMsgClientVanityURLChangedNotification { + optional string vanity_url = 1; +} + +message CMsgClientVoiceCallPreAuthorize { + optional fixed64 caller_steamid = 1; + optional fixed64 receiver_steamid = 2; + optional int32 caller_id = 3; + optional bool hangup = 4; +} + +message CMsgClientVoiceCallPreAuthorizeResponse { + optional fixed64 caller_steamid = 1; + optional fixed64 receiver_steamid = 2; + optional int32 eresult = 3 [default = 2]; + optional int32 caller_id = 4; +} + +message CMsgClientWalletInfoUpdate { + optional bool has_wallet = 1; + optional int32 balance = 2; + optional int32 currency = 3; + optional int32 balance_delayed = 4; + optional int64 balance64 = 5; + optional int64 balance64_delayed = 6; +} + +message CMsgClientWorkshopItemChangesRequest { + optional uint32 app_id = 1; + optional uint32 last_time_updated = 2; + optional uint32 num_items_needed = 3; +} + +message CMsgClientWorkshopItemChangesResponse { + optional int32 eresult = 1 [default = 2]; + optional uint32 update_time = 2; + repeated .CMsgClientWorkshopItemChangesResponse_WorkshopItemInfo workshop_items = 5; +} + +// Used by: common.proto +message CMsgClientWorkshopItemChangesResponse_WorkshopItemInfo { + optional fixed64 published_file_id = 1; + optional uint32 time_updated = 2; + optional fixed64 manifest_id = 3; +} + +message CMsgClientWorkshopItemInfoRequest { + optional uint32 app_id = 1; + optional uint32 last_time_updated = 2; + repeated .CMsgClientWorkshopItemInfoRequest_WorkshopItem workshop_items = 3; +} + +// Used by: common.proto +message CMsgClientWorkshopItemInfoRequest_WorkshopItem { + optional fixed64 published_file_id = 1; + optional uint32 time_updated = 2; +} + +message CMsgClientWorkshopItemInfoResponse { + optional int32 eresult = 1 [default = 2]; + optional uint32 update_time = 2; + repeated .CMsgClientWorkshopItemInfoResponse_WorkshopItemInfo workshop_items = 3; + repeated fixed64 private_items = 4; +} + +// Used by: common.proto +message CMsgClientWorkshopItemInfoResponse_WorkshopItemInfo { + optional fixed64 published_file_id = 1; + optional uint32 time_updated = 2; + optional fixed64 manifest_id = 3; + optional bool is_legacy = 4; +} + +message CMsgCloudPendingRemoteOperations { + repeated .CCloud_PendingRemoteOperation operations = 1; +} + +// Used by: common.proto +message CMsgControllerActionSetMiscSettings { + optional string cursor_visible_action_set_key = 1; + optional string cursor_hidden_action_set_key = 2; +} + +message CMsgControllerConfiguration { + optional uint32 binding_handle = 1; + optional string display_name = 2; + optional string description = 3; + optional string creator = 4; + optional int32 controller_type = 5; + repeated .CMsgGameActionSet sets = 6; + repeated .CMsgControllerMode modes = 7; + optional string error_msg = 8; + optional string action_block_path = 9; + optional .CMsgControllerActionSetMiscSettings misc_action_set_settings = 10; + optional string url = 11; +} + +// Used by: common.proto +message CMsgControllerInput { + optional int32 key = 1 [(.description) = "enum"]; + repeated .CMsgControllerInputActivator activators = 2; + repeated .CMsgControllerInputActivator disabled_activators = 3; + optional bool inherited_from_parentset = 4; +} + +// Used by: common.proto +message CMsgControllerInputActivator { + optional int32 activation = 1 [(.description) = "enum"]; + repeated .CMsgControllerInputBinding bindings = 2; + repeated .CMsgControllerSetting settings = 3; +} + +// Used by: common.proto +message CMsgControllerInputBinding { + optional int32 type = 1; + optional .CMsgControllerInputBinding_KeyBindingData key_binding_data = 2; + optional .CMsgControllerInputKeyBinding keyboard_key = 3; + optional .CMsgControllerInputMouseButtonBinding mouse_button = 4; + optional .CMsgControllerInputGamepadButtonBinding gamepad_button = 5; + optional .CMsgControllerInputMouseWheelBinding mouse_wheel = 6; + optional .CMsgControllerInputModeShiftBinding mode_shift = 7; + optional .CMsgControllerInputGameActionBinding game_action = 8; + optional .CMsgControllerInputControllerActionBinding controller_action = 9; +} + +// Used by: common.proto +message CMsgControllerInputBinding_IconBindingData { + optional string icon_filename = 1; + optional string color_foreground = 2; + optional string color_background = 3; + optional string icon_url = 4; +} + +// Used by: common.proto +message CMsgControllerInputBinding_KeyBindingData { + optional string keys_bound_utf8 = 1; + optional string friendly_name_utf8 = 2; + optional .CMsgControllerInputBinding_IconBindingData icon_data = 3; +} + +// Used by: common.proto +message CMsgControllerInputControllerActionBinding { + optional int32 action = 1 [(.description) = "enum"]; + optional .CMsgControllerInputControllerActionMouseBinding mouse = 2; + optional .CMsgControllerInputControllerActionCameraHorizonReset camera_horizon_reset = 3; + optional .CMsgControllerInputControllerActionDotsPer360CalibrationSpin dots_per_360_calibration_spin = 4; + optional .CMsgControllerInputControllerActionTurnToFaceDirection turn_to_face_direction = 5; + optional .CMsgControllerInputControllerActionGameActionSetBinding action_set = 6; + optional .CMsgControllerInputControllerActionLEDColorBinding led_color = 7; + optional .CMsgControllerInputControllerActionChangePlayerNumberBinding change_player_number = 8; +} + +// Used by: common.proto +message CMsgControllerInputControllerActionCameraHorizonReset { + optional int32 camera_dip_angle = 1; + optional int32 delay_duration = 2; + optional int32 camera_horizon_reset_angle = 3; +} + +// Used by: common.proto +message CMsgControllerInputControllerActionChangePlayerNumberBinding { + optional int32 player_number = 1; +} + +// Used by: common.proto +message CMsgControllerInputControllerActionDotsPer360CalibrationSpin { + optional int32 spin_by_amount = 1; + optional int32 spin_duration = 2; +} + +// Used by: common.proto +message CMsgControllerInputControllerActionGameActionSetBinding { + optional int32 preset_type = 1 [(.description) = "enum"]; + optional string action_set_key = 2; + optional bool display = 3; + optional bool beep = 4; +} + +// Used by: common.proto +message CMsgControllerInputControllerActionLEDColorBinding { + optional int32 setting = 1 [(.description) = "enum"]; + optional int32 brightness = 2; + optional int32 saturation = 3; + optional int32 color_r = 4; + optional int32 color_g = 5; + optional int32 color_b = 6; +} + +// Used by: common.proto +message CMsgControllerInputControllerActionMouseBinding { + optional sint32 x = 1; + optional sint32 y = 2; + optional bool restore = 3; +} + +// Used by: common.proto +message CMsgControllerInputControllerActionTurnToFaceDirection { + optional int32 source_of_direction = 1; + optional int32 turn_duration = 2; + optional bool use_last_direction_if_deadzoned = 3; +} + +// Used by: common.proto +message CMsgControllerInputGameActionBinding { + optional string action_set_key = 1; + optional string action_key = 2; +} + +// Used by: common.proto +message CMsgControllerInputGamepadButtonBinding { + optional int32 button = 1 [(.description) = "enum"]; +} + +// Used by: common.proto +message CMsgControllerInputKeyBinding { + optional int32 key = 1 [(.description) = "enum"]; +} + +// Used by: common.proto +message CMsgControllerInputModeShiftBinding { + optional int32 source = 1 [(.description) = "enum"]; +} + +// Used by: common.proto +message CMsgControllerInputMouseButtonBinding { + optional int32 button = 1 [(.description) = "enum"]; +} + +// Used by: common.proto +message CMsgControllerInputMouseWheelBinding { + optional int32 button = 1 [(.description) = "enum"]; +} + +// Used by: common.proto +message CMsgControllerMode { + optional int32 mode = 1 [(.description) = "enum"]; + optional uint32 modeid = 2; + optional string description = 3; + repeated .CMsgControllerInput inputs = 4; + repeated .CMsgControllerSetting settings = 5; + optional string friendlyname = 6; + optional int32 source = 7 [(.description) = "enum"]; + optional .CMsgControllerVirtualMenuPreviewInfo virtual_menu_info = 8; + optional bool mode_shift = 9; +} + +// Used by: common.proto +message CMsgControllerSetting { + optional int32 key = 1 [(.description) = "enum"]; + optional sint32 int_value = 2; + optional sint32 int_min = 3; + optional sint32 int_max = 4; + optional sint32 int_default = 5; + optional .CMsgControllerSetting parentset_setting = 6; + optional sint64 long_value = 7; +} + +// Used by: common.proto +message CMsgControllerSourceGroup { + optional int32 mode = 1 [(.description) = "enum"]; + optional .CMsgControllerInputGameActionBinding game_action = 2; + repeated .CMsgControllerInput inputs = 3; + repeated .CMsgControllerSetting settings = 4; + optional uint32 modeid = 5; + optional bool mode_shift = 6; + optional .CMsgControllerSourceGroup mode_shift_source_group = 7; +} + +// Used by: common.proto +message CMsgControllerSources { + optional int32 key = 1 [(.description) = "enum"]; + optional .CMsgControllerSourceGroup active_group = 2; +} + +// Used by: common.proto +message CMsgControllerVirtualMenuPreviewInfo { + optional int32 source = 1 [(.description) = "enum"]; + optional float x_pos = 2; + optional float y_pos = 3; + optional float opacity = 4; + optional float scale = 5; + optional bool show_labels = 6; + optional uint32 menu_style = 7; + optional bool force_on = 8; + repeated .CVirtualMenuKey keys = 9; +} + +message CMsgCREGetUserPublishedItemVoteDetails { + repeated .CMsgCREGetUserPublishedItemVoteDetails_PublishedFileId published_file_ids = 1; +} + +// Used by: common.proto +message CMsgCREGetUserPublishedItemVoteDetails_PublishedFileId { + optional fixed64 published_file_id = 1; +} + +message CMsgCREGetUserPublishedItemVoteDetailsResponse { + optional int32 eresult = 1 [default = 2]; + repeated .CMsgCREGetUserPublishedItemVoteDetailsResponse_UserItemVoteDetail user_item_vote_details = 2; +} + +// Used by: common.proto +message CMsgCREGetUserPublishedItemVoteDetailsResponse_UserItemVoteDetail { + optional fixed64 published_file_id = 1; + optional int32 vote = 2 [default = 0]; +} + +message CMsgCREItemVoteSummary { + repeated .CMsgCREItemVoteSummary_PublishedFileId published_file_ids = 1; +} + +// Used by: common.proto +message CMsgCREItemVoteSummary_PublishedFileId { + optional fixed64 published_file_id = 1; +} + +message CMsgCREItemVoteSummaryResponse { + optional int32 eresult = 1 [default = 2]; + repeated .CMsgCREItemVoteSummaryResponse_ItemVoteSummary item_vote_summaries = 2; +} + +// Used by: common.proto +message CMsgCREItemVoteSummaryResponse_ItemVoteSummary { + optional fixed64 published_file_id = 1; + optional int32 votes_for = 2; + optional int32 votes_against = 3; + optional int32 reports = 4; + optional float score = 5; +} + +message CMsgCREUpdateUserPublishedItemVote { + optional fixed64 published_file_id = 1; + optional bool vote_up = 2; +} + +message CMsgCREUpdateUserPublishedItemVoteResponse { + optional int32 eresult = 1 [default = 2]; +} + +message CMsgDownloadRateStatistics { + optional uint32 cell_id = 1; + repeated .CMsgDownloadRateStatistics_StatsInfo stats = 2; + optional uint32 throttling_kbps = 3; + optional uint32 steam_realm = 4; +} + +// Used by: common.proto +message CMsgDownloadRateStatistics_StatsInfo { + optional uint32 source_type = 1; + optional uint32 source_id = 2; + optional uint32 seconds = 3; + optional uint64 bytes = 4; + optional string host_name = 5; + optional uint64 microseconds = 6; + optional bool used_ipv6 = 7; + optional bool proxied = 8; +} + +message CMsgDPGetNumberOfCurrentPlayers { + optional uint32 appid = 1; +} + +message CMsgDPGetNumberOfCurrentPlayersResponse { + optional int32 eresult = 1 [default = 2]; + optional int32 player_count = 2; +} + +message CMsgDRMDownloadRequestWithCrashData { + optional uint32 download_flags = 1; + optional uint32 download_types_known = 2; + optional bytes guid_drm = 3; + optional bytes guid_split = 4; + optional bytes guid_merge = 5; + optional string module_name = 6; + optional string module_path = 7; + optional bytes crash_data = 8; +} + +message CMsgDRMDownloadResponse { + optional uint32 eresult = 1 [default = 2]; + optional uint32 app_id = 2; + optional uint32 blob_download_type = 3; + optional bytes merge_guid = 4; + optional uint32 download_file_dfs_ip = 5; + optional uint32 download_file_dfs_port = 6; + optional string download_file_url = 7; + optional string module_path = 8; +} + +message CMsgDRMFinalResult { + optional uint32 eResult = 1 [default = 2]; + optional uint32 app_id = 2; + optional uint32 blob_download_type = 3; + optional uint32 error_detail = 4; + optional bytes merge_guid = 5; + optional uint32 download_file_dfs_ip = 6; + optional uint32 download_file_dfs_port = 7; + optional string download_file_url = 8; +} + +message CMsgFSEnumerateFollowingList { + optional uint32 start_index = 1; +} + +message CMsgFSEnumerateFollowingListResponse { + optional int32 eresult = 1 [default = 2]; + optional int32 total_results = 2; + repeated fixed64 steam_ids = 3; +} + +message CMsgFSGetFollowerCount { + optional fixed64 steam_id = 1; +} + +message CMsgFSGetFollowerCountResponse { + optional int32 eresult = 1 [default = 2]; + optional int32 count = 2 [default = 0]; +} + +message CMsgFSGetIsFollowing { + optional fixed64 steam_id = 1; +} + +message CMsgFSGetIsFollowingResponse { + optional int32 eresult = 1 [default = 2]; + optional bool is_following = 2 [default = false]; +} + +// Used by: common.proto +message CMsgGameAction { + optional string key = 1; + optional string display_name = 2; + repeated int32 modes = 3 [(.description) = "enum"]; +} + +// Used by: common.proto +message CMsgGameActionBindingType { + optional int32 key = 1 [(.description) = "enum"]; + repeated .CMsgGameAction actions = 2; +} + +// Used by: common.proto +message CMsgGameActionSet { + optional string key = 1; + optional string display_name = 2; + optional bool legacy_set = 3; + repeated .CMsgGameActionSet layers = 4; + repeated .CMsgGameActionBindingType action_binding_types = 5; + repeated .CMsgControllerSources source_bindings = 6; +} + +message CMsgGameServerData { + optional fixed64 steam_id_gs = 1; + optional uint32 deprecated_ip = 2; + optional uint32 query_port = 3; + optional uint32 game_port = 4; + optional uint32 sourcetv_port = 5; + optional uint32 app_id = 6; + optional string gamedir = 7; + optional string version = 8; + optional string product = 9; + optional string region = 10; + repeated .CMsgGameServerData_Player players = 11; + optional uint32 max_players = 12; + optional uint32 bot_count = 13; + optional bool password = 14; + optional bool secure = 15; + optional bool dedicated = 16; + optional string os = 17; + optional string game_data = 18; + optional uint32 game_data_version = 19; + optional string game_type = 20; + optional string map = 21; + optional string name = 22; + optional .CMsgIPAddress game_ip_address = 23; +} + +// Used by: common.proto +message CMsgGameServerData_Player { + optional fixed64 steam_id = 1; +} + +message CMsgGameServerOutOfDate { + optional fixed64 steam_id_gs = 1; + optional bool reject = 2; + optional string message = 3; +} + +message CMsgGameServerPingSample { + optional fixed32 my_ip = 1; + optional int32 gs_app_id = 2; + repeated .CMsgGameServerPingSample_Sample gs_samples = 3; +} + +// Used by: common.proto +message CMsgGameServerPingSample_Sample { + optional fixed32 ip = 1; + optional uint32 avg_ping_ms = 2; + optional uint32 stddev_ping_ms_x10 = 3; +} + +message CMsgGameServerRemove { + optional fixed64 steam_id = 1; + optional uint32 deprecated_ip = 2; + optional uint32 query_port = 3; + optional .CMsgIPAddress ip = 4; +} + +message CMsgGCClient { + optional uint32 appid = 1; + optional uint32 msgtype = 2; + optional bytes payload = 3; + optional fixed64 steamid = 4; + optional string gcname = 5; + optional uint32 ip = 6; +} + +// Used by: common.proto +message CMsgGCRoutingProtoBufHeader { + optional uint64 dst_gcid_queue = 1; + optional uint32 dst_gc_dir_index = 2; +} + +message CMsgGenerateSystemReportReply { + optional string report_id = 1; +} + +message CMsgGMSClientServerQueryResponse { + repeated .CMsgGMSClientServerQueryResponse_Server servers = 1; + optional string error = 2; +} + +// Used by: common.proto +message CMsgGMSClientServerQueryResponse_Server { + optional uint32 deprecated_server_ip = 1; + optional uint32 server_port = 2; + optional uint32 auth_players = 3; + optional .CMsgIPAddress server_ip = 4; +} + +message CMsgGSApprove { + optional fixed64 steam_id = 1; + optional fixed64 owner_steam_id = 2; +} + +message CMsgGSAssociateWithClan { + optional fixed64 steam_id_clan = 1; +} + +message CMsgGSAssociateWithClanResponse { + optional fixed64 steam_id_clan = 1; + optional uint32 eresult = 2 [default = 2]; +} + +message CMsgGSComputeNewPlayerCompatibility { + optional fixed64 steam_id_candidate = 1; +} + +message CMsgGSComputeNewPlayerCompatibilityResponse { + optional fixed64 steam_id_candidate = 1; + optional uint32 eresult = 2 [default = 2]; + optional bool is_clan_member = 3; + optional int32 ct_dont_like_you = 4; + optional int32 ct_you_dont_like = 5; + optional int32 ct_clanmembers_dont_like_you = 6; +} + +message CMsgGSDeny { + optional fixed64 steam_id = 1; + optional int32 edeny_reason = 2; + optional string deny_string = 3; +} + +message CMsgGSDisconnectNotice { + optional fixed64 steam_id = 1; +} + +message CMsgGSKick { + optional fixed64 steam_id = 1; + optional int32 edeny_reason = 2; +} + +message CMsgGSPlayerList { + repeated .CMsgGSPlayerList_Player players = 1; +} + +// Used by: common.proto +message CMsgGSPlayerList_Player { + optional uint64 steam_id = 1; + optional uint32 deprecated_public_ip = 2; + optional bytes token = 3; + optional .CMsgIPAddress public_ip = 4; +} + +message CMsgGSServerType { + optional uint32 app_id_served = 1; + optional uint32 flags = 2; + optional uint32 deprecated_game_ip_address = 3; + optional uint32 game_port = 4; + optional string game_dir = 5; + optional string game_version = 6; + optional uint32 game_query_port = 7; +} + +message CMsgGSStatusReply { + optional bool is_secure = 1; +} + +message CMsgGSUserPlaying { + optional fixed64 steam_id = 1; + optional uint32 deprecated_public_ip = 2; + optional bytes token = 3; + optional .CMsgIPAddress public_ip = 4; +} + +// Used by: common.proto +message CMsgHotkey { + optional uint32 key_code = 1; + optional bool alt_key = 2; + optional bool shift_key = 3; + optional bool ctrl_key = 4; + optional bool meta_key = 5; + optional string display_name = 6; +} + +// Used by: Authentication, AuthenticationSupport, Community, common.proto +message CMsgIPAddress { + optional fixed32 v4 = 1; + optional bytes v6 = 2; +} + +message CMsgIPAddressBucket { + optional .CMsgIPAddress original_ip_address = 1; + optional fixed64 bucket = 2; +} + +message CMsgMobileChatFriendMessage { + optional fixed64 steamid_friend = 1; + optional bool local_echo = 2; + optional int32 chat_entry_type = 3; + optional string message = 4; + optional fixed32 current_message_timestamp = 5; + optional fixed32 current_message_ordinal = 6; + optional fixed32 previous_message_timestamp = 7; + optional fixed32 previous_message_ordinal = 8; + optional string client_message_id = 9; +} + +message CMsgMonitorInfo { + optional string selected_display_name = 1; + repeated .CMsgMonitorInfo_MonitorInfo monitors = 2; +} + +// Used by: common.proto +message CMsgMonitorInfo_MonitorInfo { + optional string monitor_device_name = 1; + optional string monitor_display_name = 2; +} + +message CMsgMulti { + optional uint32 size_unzipped = 1; + optional bytes message_body = 2; +} + +message CMsgNetworkDeviceConnect { + optional uint32 device_id = 1 [default = 0]; + optional .CMsgNetworkDeviceConnect_KnownAP ap_known = 2; + optional .CMsgNetworkDeviceConnect_CustomAP ap_custom = 3; + optional .CMsgNetworkDeviceConnect_Credentials credentials = 4; + optional .CMsgNetworkDeviceIP4Config ip4 = 5; + optional .CMsgNetworkDeviceIP6Config ip6 = 6; +} + +// Used by: common.proto +message CMsgNetworkDeviceConnect_Credentials { + optional string username = 1; + optional string password = 2; +} + +// Used by: common.proto +message CMsgNetworkDeviceConnect_CustomAP { + optional string ssid = 1; + optional int32 esecurity = 2; +} + +// Used by: common.proto +message CMsgNetworkDeviceConnect_KnownAP { + optional uint32 ap_id = 1; +} + +// Used by: common.proto +message CMsgNetworkDeviceIP4Address { + optional int32 ip = 1 [default = 0]; + optional int32 netmask = 2; +} + +// Used by: common.proto +message CMsgNetworkDeviceIP4Config { + repeated .CMsgNetworkDeviceIP4Address addresses = 1; + repeated int32 dns_ip = 2; + optional int32 gateway_ip = 3; + optional bool is_dhcp_enabled = 4; + optional bool is_default_route = 5; + optional bool is_enabled = 6 [default = false]; +} + +// Used by: common.proto +message CMsgNetworkDeviceIP6Address { + optional string ip = 1 [default = ""]; +} + +// Used by: common.proto +message CMsgNetworkDeviceIP6Config { + repeated .CMsgNetworkDeviceIP6Address addresses = 1; + repeated string dns_ip = 2; + optional string gateway_ip = 3; + optional bool is_dhcp_enabled = 4; + optional bool is_default_route = 5; + optional bool is_enabled = 6 [default = false]; +} + +message CMsgNetworkDevicesData { + repeated .CMsgNetworkDevicesData_Device devices = 1; + optional bool is_wifi_enabled = 2; + optional bool is_wifi_scanning_enabled = 3; +} + +// Used by: common.proto +message CMsgNetworkDevicesData_Device { + optional uint32 id = 1 [default = 0]; + optional int32 etype = 2; + optional int32 estate = 3; + optional string mac = 4; + optional string vendor = 5; + optional string product = 6; + optional .CMsgNetworkDeviceIP4Config ip4 = 7; + optional .CMsgNetworkDeviceIP6Config ip6 = 8; + optional .CMsgNetworkDevicesData_Device_Wired wired = 9; + optional .CMsgNetworkDevicesData_Device_Wireless wireless = 10; +} + +// Used by: common.proto +message CMsgNetworkDevicesData_Device_Wired { + optional bool is_cable_present = 1 [default = false]; + optional uint32 speed_mbit = 2; + optional string friendly_name = 3; +} + +// Used by: common.proto +message CMsgNetworkDevicesData_Device_Wireless { + repeated .CMsgNetworkDevicesData_Device_Wireless_AP aps = 1; + optional int32 esecurity_supported = 2; +} + +// Used by: common.proto +message CMsgNetworkDevicesData_Device_Wireless_AP { + optional uint32 id = 1 [default = 0]; + optional int32 estrength = 2; + optional string ssid = 3; + optional bool is_active = 4; + optional bool is_autoconnect = 5; + optional int32 esecurity = 6; + optional string user_name = 7; + optional string password = 8; + optional int32 strength_raw = 9; +} + +message CMsgPersonaChangeResponse { + optional uint32 result = 1; + optional string player_name = 2; +} + +message CMsgProtoBufHeader { + optional fixed64 steamid = 1; + optional int32 client_sessionid = 2; + optional uint32 routing_appid = 3; + optional fixed64 jobid_source = 10 [default = 18446744073709551615]; + optional fixed64 jobid_target = 11 [default = 18446744073709551615]; + optional string target_job_name = 12; + optional int32 eresult = 13 [default = 2]; + optional string error_message = 14; + optional uint32 ip = 15; + optional uint32 auth_account_flags = 16; + optional int32 transport_error = 17 [default = 1]; + optional uint64 messageid = 18 [default = 18446744073709551615]; + optional uint32 publisher_group_id = 19; + optional uint32 sysid = 20; + optional uint64 trace_tag = 21; + optional uint32 token_source = 22; + optional bool admin_spoofing_user = 23; + optional int32 seq_num = 24; + optional uint32 webapi_key_id = 25; + optional bool is_from_external_source = 26; + repeated uint32 forward_to_sysid = 27; + optional uint32 cm_sysid = 28; + optional bytes ip_v6 = 29; + optional string wg_token = 30; + optional uint32 launcher_type = 31 [default = 0]; + optional uint32 realm = 32 [default = 0]; + optional int32 timeout_ms = 33 [default = -1]; + optional string debug_source = 34; + optional uint32 debug_source_string_index = 35; + optional uint64 token_id = 36; + optional .CMsgGCRoutingProtoBufHeader routing_gc = 37; + optional int32 session_disposition = 38 [default = 0, (.description) = "enum"]; + optional string wg_token__field_39 = 39; + optional string webui_auth_key = 40; + repeated int32 exclude_client_sessionids = 41; +} + +message CMsgProtobufWrapped { + optional bytes message_body = 1; +} + +message CMsgSelectOSBranchParams { + optional int32 branch = 1 [(.description) = "enum"]; + optional string custom_branch = 2; +} + +message CMsgSetControllerActionSet { + optional string action_set_key = 1; + optional string action_set_layer_key = 2; + optional string new_display_name = 3; + optional string action_set_to_copy_key = 4; +} + +message CMsgSetControllerInputActivator { + optional string action_set_key = 1; + optional string action_set_layer_key = 2; + optional int32 source_binding_key = 3 [(.description) = "enum"]; + optional bool mode_shift = 4; + optional int32 input_key = 5 [(.description) = "enum"]; + optional int32 activator_index = 6; + optional int32 new_activation = 7 [(.description) = "enum"]; + optional .CMsgControllerSetting new_setting = 8; + optional int32 modeid = 9; +} + +message CMsgSetControllerInputActivatorEnabled { + optional string action_set_key = 1; + optional string action_set_layer_key = 2; + optional int32 source_binding_key = 3 [(.description) = "enum"]; + optional bool mode_shift = 4; + optional int32 input_key = 5 [(.description) = "enum"]; + optional int32 activator_index = 6; + optional bool enabled = 7; + optional int32 modeid = 8; +} + +message CMsgSetControllerInputBinding { + optional string action_set_key = 1; + optional string action_set_layer_key = 2; + optional int32 source_binding_key = 3 [(.description) = "enum"]; + optional bool mode_shift = 4; + optional int32 input_key = 5 [(.description) = "enum"]; + optional int32 activator_index = 6; + optional int32 binding_index = 7; + optional .CMsgControllerInputBinding new_binding = 8; + optional int32 source_mode = 9 [(.description) = "enum"]; + optional int32 modeid = 10; +} + +message CMsgSetControllerSourceMode { + optional string action_set_key = 1; + optional string action_set_layer_key = 2; + optional int32 source_binding_key = 3 [(.description) = "enum"]; + optional bool mode_shift = 4; + optional int32 new_mode = 5 [(.description) = "enum"]; + optional .CMsgControllerInputGameActionBinding new_game_action = 6; + optional .CMsgControllerSetting new_setting = 7; + optional string new_name = 8; + optional uint32 modeid = 9; + optional bool change_mode = 10; + optional bool new_virtual_menu = 11; + optional bool enable_virtual_menu_support = 12; +} + +message CMsgSetModeShiftButton { + optional string action_set_key = 1; + optional string action_set_layer_key = 2; + optional int32 modeid = 3; + optional int32 source = 4 [(.description) = "enum"]; + optional int32 digital_io = 5 [(.description) = "enum"]; +} + +// Used by: common.proto +message CMsgSteamDatagramConnectionQuality { + optional .CMsgSteamDatagramLinkInstantaneousStats instantaneous = 1; + optional .CMsgSteamDatagramLinkLifetimeStats lifetime = 2; +} + +// Used by: common.proto +message CMsgSteamDatagramLinkInstantaneousStats { + optional uint32 out_packets_per_sec_x10 = 1; + optional uint32 out_bytes_per_sec = 2; + optional uint32 in_packets_per_sec_x10 = 3; + optional uint32 in_bytes_per_sec = 4; + optional uint32 ping_ms = 5; + optional uint32 packets_dropped_pct = 6; + optional uint32 packets_weird_sequence_pct = 7; + optional uint32 peak_jitter_usec = 8; +} + +// Used by: common.proto +message CMsgSteamDatagramLinkLifetimeStats { + optional uint32 connected_seconds = 2; + optional uint64 packets_sent = 3; + optional uint64 kb_sent = 4; + optional uint64 packets_recv = 5; + optional uint64 kb_recv = 6; + optional uint64 packets_recv_sequenced = 7; + optional uint64 packets_recv_dropped = 8; + optional uint64 packets_recv_out_of_order = 9; + optional uint64 packets_recv_duplicate = 10; + optional uint64 packets_recv_lurch = 11; + repeated uint64 multipath_packets_recv_sequenced = 12; + repeated uint64 multipath_packets_recv_later = 13; + optional uint32 multipath_send_enabled = 14; + optional uint64 packets_recv_out_of_order_corrected = 15; + optional uint32 quality_histogram_100 = 21; + optional uint32 quality_histogram_99 = 22; + optional uint32 quality_histogram_97 = 23; + optional uint32 quality_histogram_95 = 24; + optional uint32 quality_histogram_90 = 25; + optional uint32 quality_histogram_75 = 26; + optional uint32 quality_histogram_50 = 27; + optional uint32 quality_histogram_1 = 28; + optional uint32 quality_histogram_dead = 29; + optional uint32 quality_ntile_2nd = 30; + optional uint32 quality_ntile_5th = 31; + optional uint32 quality_ntile_25th = 32; + optional uint32 quality_ntile_50th = 33; + optional uint32 ping_histogram_25 = 41; + optional uint32 ping_histogram_50 = 42; + optional uint32 ping_histogram_75 = 43; + optional uint32 ping_histogram_100 = 44; + optional uint32 ping_histogram_125 = 45; + optional uint32 ping_histogram_150 = 46; + optional uint32 ping_histogram_200 = 47; + optional uint32 ping_histogram_300 = 48; + optional uint32 ping_histogram_max = 49; + optional uint32 ping_ntile_5th = 50; + optional uint32 ping_ntile_50th = 51; + optional uint32 ping_ntile_75th = 52; + optional uint32 ping_ntile_95th = 53; + optional uint32 ping_ntile_98th = 54; + optional uint32 jitter_histogram_negligible = 61; + optional uint32 jitter_histogram_1 = 62; + optional uint32 jitter_histogram_2 = 63; + optional uint32 jitter_histogram_5 = 64; + optional uint32 jitter_histogram_10 = 65; + optional uint32 jitter_histogram_20 = 66; +} + +// Used by: common.proto +message CMsgSteamDatagramP2PRoutingSummary { + optional .CMsgSteamNetworkingICESessionSummary ice = 2; + optional .CMsgSteamNetworkingP2PSDRRoutingSummary sdr = 3; +} + +// Used by: common.proto +message CMsgSteamNetworkingICESessionSummary { + optional uint32 local_candidate_types = 1; + optional uint32 remote_candidate_types = 2; + optional uint32 initial_route_kind = 3; + optional uint32 initial_ping = 4; + optional uint32 negotiation_ms = 5; + optional uint32 initial_score = 6; + optional uint32 failure_reason_code = 7; + optional uint32 selected_seconds = 12; + optional uint32 user_settings = 13; + optional uint32 ice_enable_var = 14; + optional uint32 local_candidate_types_allowed = 15; + optional uint32 best_route_kind = 16; + optional uint32 best_ping = 17; + optional uint32 best_score = 18; + optional uint32 best_time = 19; +} + +// Used by: common.proto +message CMsgSteamNetworkingP2PSDRRoutingSummary { + optional uint32 initial_ping = 1; + optional uint32 initial_ping_front_local = 2; + optional uint32 initial_ping_front_remote = 3; + optional uint32 initial_score = 4; + optional fixed32 initial_pop_local = 5; + optional fixed32 initial_pop_remote = 6; + optional uint32 negotiation_ms = 7; + optional uint32 selected_seconds = 8; + optional uint32 best_ping = 11; + optional uint32 best_ping_front_local = 12; + optional uint32 best_ping_front_remote = 13; + optional uint32 best_score = 14; + optional fixed32 best_pop_local = 15; + optional fixed32 best_pop_remote = 16; + optional uint32 best_time = 17; +} + +message CMsgSwapControllerSourceModes { + optional string action_set_key_a = 1; + optional string action_set_layer_key_a = 2; + optional int32 source_a = 3 [(.description) = "enum"]; + optional string action_set_key_b = 4; + optional string action_set_layer_key_b = 5; + optional int32 source_b = 6 [(.description) = "enum"]; +} + +message CMsgSwapModeInputBindings { + optional string action_set_key = 1; + optional string action_set_layer_key = 2; + optional int32 source_binding_key = 3 [(.description) = "enum"]; + optional bool mode_shift = 4; + optional int32 modeid = 5; + repeated .CMsgSwapModeInputBindings_CModeInputSwap swaps = 6; +} + +// Used by: common.proto +message CMsgSwapModeInputBindings_CModeInputSwap { + optional int32 old_key = 1 [(.description) = "enum"]; + optional int32 new_key = 2 [(.description) = "enum"]; +} + +// Used by: common.proto +message CMsgSystemAudioManagerDevice { + optional .CMsgSystemAudioManagerObject base = 1; + optional string name = 2; + optional string nick = 3; + optional string description = 4; + optional string api = 5; +} + +// Used by: common.proto +message CMsgSystemAudioManagerLink { + optional .CMsgSystemAudioManagerObject base = 1; + optional uint32 output_node_id = 2; + optional uint32 output_port_id = 3; + optional uint32 input_node_id = 4; + optional uint32 input_port_id = 5; +} + +// Used by: common.proto +message CMsgSystemAudioManagerNode { + optional .CMsgSystemAudioManagerObject base = 1; + optional uint32 device_id = 2; + optional string name = 3; + optional string nick = 4; + optional string description = 5; + optional int32 edirection = 6 [(.description) = "enum"]; + optional .CMsgSystemAudioVolume volume = 7; +} + +// Used by: common.proto +message CMsgSystemAudioManagerObject { + optional uint32 id = 1; + optional fixed32 rtime_last_update = 2; +} + +// Used by: common.proto +message CMsgSystemAudioManagerPort { + optional .CMsgSystemAudioManagerObject base = 1; + optional uint32 node_id = 3; + optional string name = 4; + optional string alias = 5; + optional int32 etype = 6 [(.description) = "enum"]; + optional int32 edirection = 7 [(.description) = "enum"]; + optional bool is_physical = 8; + optional bool is_terminal = 9; + optional bool is_control = 10; + optional bool is_monitor = 11; +} + +message CMsgSystemAudioManagerState { + optional fixed32 rtime_filter = 1; + optional int32 counter = 2; + optional .CMsgSystemAudioManagerStateHW hw = 3; +} + +// Used by: common.proto +message CMsgSystemAudioManagerStateHW { + repeated .CMsgSystemAudioManagerDevice devices = 1; + repeated .CMsgSystemAudioManagerNode nodes = 2; + repeated .CMsgSystemAudioManagerPort ports = 3; + repeated .CMsgSystemAudioManagerLink links = 4; +} + +message CMsgSystemAudioManagerUpdateSomething { + optional int32 counter = 1; +} + +// Used by: common.proto +message CMsgSystemAudioVolume { + repeated .CMsgSystemAudioVolume_ChannelEntry entries = 1; + optional bool is_muted = 2; +} + +// Used by: common.proto +message CMsgSystemAudioVolume_ChannelEntry { + optional int32 echannel = 1 [(.description) = "enum"]; + optional float volume = 2; +} + +// Used by: common.proto +message CMsgSystemDisplay { + optional int32 id = 1; + optional string name = 2; + optional string description = 3; + optional bool is_primary = 4; + optional bool is_enabled = 5; + optional bool is_internal = 6; + optional bool has_mode_override = 7; + optional int32 width_mm = 8; + optional int32 height_mm = 9; + optional int32 current_mode_id = 10; + repeated .CMsgSystemDisplayMode modes = 11; + optional int32 refresh_rate_min = 12; + optional int32 refresh_rate_max = 13; + optional bool is_vrr_capable = 14; + optional bool is_vrr_enabled = 15; + optional bool is_hdr_capable = 16; + optional bool is_hdr_enabled = 17; + repeated int32 supported_refresh_rates = 18; +} + +message CMsgSystemDisplayManagerSetMode { + optional int32 display_id = 1; + optional int32 mode_id = 2; +} + +message CMsgSystemDisplayManagerState { + repeated .CMsgSystemDisplay displays = 1; + optional bool is_mode_switching_supported = 2; + optional int32 compatibility_mode = 3 [(.description) = "enum"]; +} + +// Used by: common.proto +message CMsgSystemDisplayMode { + optional int32 id = 1; + optional int32 width = 2; + optional int32 height = 3; + optional int32 refresh_hz = 4; +} + +message CMsgSystemDockState { + optional .CMsgSystemDockUpdateState update_state = 1; +} + +message CMsgSystemDockUpdateFirmware { + optional bool check_only = 1; +} + +// Used by: common.proto +message CMsgSystemDockUpdateState { + optional int32 state = 1 [(.description) = "enum"]; + optional fixed32 rtime_last_checked = 2; + optional string version_current = 3; + optional string version_available = 4; + optional float stage_progress = 5; + optional fixed32 rtime_estimated_completion = 6; + optional int32 old_fw_workaround = 7; +} + +message CMsgSystemManagerSettings { + optional float idle_backlight_dim_battery_seconds = 1; + optional float idle_backlight_dim_ac_seconds = 2; + optional float idle_suspend_battery_seconds = 3; + optional float idle_suspend_ac_seconds = 4; + optional bool idle_suspend_supressed = 5; + optional bool is_adaptive_brightness_available = 6; + optional bool display_adaptive_brightness_enabled = 7; + optional bool display_nightmode_enabled = 10; + optional float display_nightmode_tintstrength = 11; + optional float display_nightmode_maxhue = 12; + optional float display_nightmode_maxsat = 13; + optional float display_nightmode_uiexp = 14; + optional float display_nightmode_blend = 15; + optional bool display_nightmode_reset = 16; + optional bool display_nightmode_schedule_enabled = 17; + optional float display_nightmode_schedule_starttime = 18; + optional float display_nightmode_schedule_endtime = 19; + optional bool display_diagnostics_enabled = 20; + optional float als_lux_primary = 21; + optional float als_lux_median = 22; + optional float display_backlight_raw = 23; + optional float display_brightness_adaptivemin = 24; + optional float display_brightness_adaptivemax = 25; + optional bool is_wifi_powersave_enabled = 26; + optional bool is_fan_control_available = 27; + optional int32 fan_control_mode = 28 [(.description) = "enum"]; + optional bool is_display_brightness_available = 29; + optional bool is_display_colormanagement_available = 31; + optional float display_colorgamut = 32; + optional float als_lux_alternate = 33; + optional bool is_display_colortemp_available = 34; + optional float display_colortemp = 35; + optional float display_colortemp_default = 36; + optional bool display_colortemp_enabled = 37; + optional int32 display_colorgamut_labelset = 38 [(.description) = "enum"]; + optional float display_brightness_overdrive_hdr_split = 39; +} + +// Used by: common.proto +message CMsgSystemPerfDiagnosticEntry { + optional string name = 1; + optional string value = 2; +} + +message CMsgSystemPerfDiagnosticInfo { + repeated .CMsgSystemPerfDiagnosticEntry entries = 1; + repeated .CMsgSystemPerfNetworkInterface interfaces = 2; + optional float battery_temp_c = 3; +} + +// Used by: common.proto +message CMsgSystemPerfLimits { + optional int32 cpu_governor_manual_min_mhz = 1; + optional int32 cpu_governor_manual_max_mhz = 2; + optional int32 fsr_sharpness_min = 3; + optional int32 fsr_sharpness_max = 4; + optional int32 gpu_performance_manual_min_mhz = 5; + optional int32 gpu_performance_manual_max_mhz = 6; + optional bool perf_overlay_is_standalone = 7; + optional bool is_dynamic_vrs_available = 8; + optional bool is_manual_display_refresh_rate_available = 9; + repeated int32 gpu_performance_levels_available = 10 [(.description) = "enum"]; + optional int32 display_refresh_manual_hz_min = 11; + optional int32 display_refresh_manual_hz_max = 12; + repeated int32 fps_limit_options = 13; + optional int32 tdp_limit_min = 14; + optional int32 tdp_limit_max = 15; + optional bool is_nis_supported = 16; + optional int32 nis_sharpness_min = 17; + optional int32 nis_sharpness_max = 18; + optional int32 display_external_refresh_manual_hz_min = 19; + optional int32 display_external_refresh_manual_hz_max = 20; + repeated int32 fps_limit_options_external = 21; + optional bool is_vrr_supported = 23; + optional bool is_dynamic_refresh_rate_in_steam_supported = 24; + optional bool is_split_scaling_and_filtering_supported = 25; + repeated int32 split_scaling_filters_available = 26 [(.description) = "enum"]; + repeated int32 split_scaling_scalers_available = 27 [(.description) = "enum"]; + optional bool is_hdr_supported = 28; + optional int32 display_refresh_manual_hz_oc_max = 29; + optional bool disable_refresh_rate_management = 30; +} + +// Used by: common.proto +message CMsgSystemPerfNetworkInterface { + optional string name = 1; + optional double timestamp = 2; + optional int64 tx_bytes_total = 3; + optional int64 rx_bytes_total = 4; + optional int32 tx_bytes_per_sec = 5; + optional int32 rx_bytes_per_sec = 6; +} + +// Used by: common.proto +message CMsgSystemPerfSettings { + optional .CMsgSystemPerfSettingsGlobal global = 1; + optional .CMsgSystemPerfSettingsPerApp per_app = 2; +} + +// Used by: common.proto +message CMsgSystemPerfSettingsGlobal { + optional float diagnostic_update_rate = 1; + optional int32 system_trace_service_state = 2 [(.description) = "enum"]; + optional int32 graphics_profiling_service_state = 3 [(.description) = "enum"]; + optional int32 perf_overlay_service_state = 4 [(.description) = "enum"]; + optional int32 perf_overlay_level = 5 [(.description) = "enum"]; + optional bool is_show_perf_overlay_over_steam_enabled = 6; + optional bool is_advanced_settings_enabled = 7; + optional bool allow_external_display_refresh_control = 8; + optional bool is_hdr_enabled = 9; + optional int32 hdr_on_sdr_tonemap_operator = 12 [(.description) = "enum"]; + optional bool is_hdr_debug_heatmap_enabled = 13; + optional bool force_hdr_wide_gammut_for_sdr = 15 [default = true]; + optional bool allow_experimental_hdr = 16; + optional bool debug_force_hdr_support = 18; + optional bool force_hdr_10pq_output_debug = 19; + optional bool is_display_oc_enabled = 20; + optional bool is_color_management_enabled = 21; + optional float sdr_to_hdr_brightness = 22; +} + +// Used by: common.proto +message CMsgSystemPerfSettingsPerApp { + optional int32 gpu_performance_manual_mhz = 1; + optional int32 fps_limit = 2; + optional bool is_variable_resolution_enabled = 3; + optional bool is_dynamic_refresh_rate_enabled = 4; + optional int32 tdp_limit = 5; + optional int32 cpu_governor = 6 [(.description) = "enum"]; + optional int32 cpu_governor_manual_mhz = 7; + optional int32 scaling_filter = 8; + optional int32 fsr_sharpness = 9; + optional bool is_fps_limit_enabled = 10; + optional bool is_tdp_limit_enabled = 11; + optional bool is_low_latency_mode_enabled = 12; + optional int32 display_refresh_manual_hz = 13; + optional bool is_game_perf_profile_enabled = 14; + optional int32 gpu_performance_level = 15 [(.description) = "enum"]; + optional int32 nis_sharpness = 16; + optional int32 display_external_refresh_manual_hz = 17; + optional int32 fps_limit_external = 18; + optional bool is_tearing_enabled = 19; + optional bool is_vrr_enabled = 20; + optional bool use_dynamic_refresh_rate_in_steam = 23; + optional int32 split_scaling_filter = 24 [(.description) = "enum"]; + optional int32 split_scaling_scaler = 25 [(.description) = "enum"]; +} + +message CMsgSystemPerfState { + optional .CMsgSystemPerfLimits limits = 1; + optional .CMsgSystemPerfSettings settings = 2; + optional uint64 current_game_id = 3; + optional uint64 active_profile_game_id = 4; +} + +message CMsgSystemPerfUpdateSettings { + optional uint64 gameid = 1; + optional bool reset_to_default = 2; + optional .CMsgSystemPerfSettings settings_delta = 3; + optional bool skip_storage_update = 4; +} + +message CMsgSystemUpdateApplyParams { + repeated int32 apply_types = 1 [(.description) = "enum"]; +} + +// Used by: common.proto +message CMsgSystemUpdateApplyResult { + optional int32 type = 1 [(.description) = "enum"]; + optional uint32 eresult = 2 [default = 2]; + optional bool requires_client_restart = 3 [default = false]; + optional bool requires_system_restart = 4 [default = false]; +} + +// Used by: common.proto +message CMsgSystemUpdateCheckResult { + optional int32 type = 1 [(.description) = "enum"]; + optional uint32 eresult = 2 [default = 2]; + optional fixed32 rtime_checked = 3; + optional bool available = 4; + optional string version = 5; + optional string auto_message = 6; + optional bool system_restart_pending = 7; +} + +// Used by: common.proto +message CMsgSystemUpdateProgress { + optional float stage_progress = 1; + optional int64 stage_size_bytes = 2; + optional fixed32 rtime_estimated_completion = 3; +} + +message CMsgSystemUpdateState { + optional int32 state = 1 [(.description) = "enum"]; + optional .CMsgSystemUpdateProgress progress = 2; + repeated .CMsgSystemUpdateCheckResult update_check_results = 3; + repeated .CMsgSystemUpdateApplyResult update_apply_results = 4; + optional bool supports_os_updates = 5; +} + +message CMsgTrading_CancelTradeRequest { + optional uint64 other_steamid = 1; +} + +message CMsgTrading_InitiateTradeRequest { + optional uint32 trade_request_id = 1; + optional uint64 other_steamid = 2; + optional string other_name = 3; +} + +message CMsgTrading_InitiateTradeResponse { + optional uint32 response = 1; + optional uint32 trade_request_id = 2; + optional uint64 other_steamid = 3; + optional uint32 steamguard_required_days = 4; + optional uint32 new_device_cooldown_days = 5; + optional uint32 default_password_reset_probation_days = 6; + optional uint32 password_reset_probation_days = 7; + optional uint32 default_email_change_probation_days = 8; + optional uint32 email_change_probation_days = 9; +} + +message CMsgTrading_StartSession { + optional uint64 other_steamid = 1; +} + +message CMsgWebUITransportFailure { + optional uint32 connect_count = 1; +} + +message CPartnerStoreBrowse_GetItems_Request { + optional .CStoreBrowse_GetItems_Request request = 1; + optional bool include_unpublished = 2; +} + +message CProductImpressionsFromClient_Notification { + repeated .CProductImpressionsFromClient_Notification_Impression impressions = 1; +} + +// Used by: common.proto +message CProductImpressionsFromClient_Notification_Impression { + optional int32 type = 1 [(.description) = "enum"]; + optional uint32 appid = 2; + optional uint32 num_impressions = 3; +} + +// Used by: RemoteClient, common.proto +message CRemoteClient_DeviceDetails { + optional string device_friendly_name = 1; + optional int32 os_type = 2; + optional uint32 gaming_device_type = 3; +} + +message CRemoteClient_Online_Notification { + optional fixed64 steamid = 1; + optional fixed64 remote_client_id = 2; + optional .CRemoteClient_DeviceDetails device_details = 3; +} + +message CRemoteClient_ReplyPacket_Notification { + optional fixed64 session_id = 1; + optional bytes payload = 2; +} + +message CRemotePlay_SessionStopped_Notification { + optional fixed64 record_id = 1; + optional bool used_x264 = 2; + optional bool used_h264 = 3; + optional bool used_hevc = 4; +} + +message CSteamNotification_HideNotification_Notification { + repeated uint64 notification_ids = 1; +} + +message CSteamNotification_MarkNotificationsRead_Notification { + optional uint32 timestamp = 1; + optional int32 notification_type = 2 [(.description) = "enum"]; + repeated uint64 notification_ids = 3; + optional bool mark_all_read = 4; +} + +message CSteamNotification_MarkNotificationsViewed_Notification { + optional uint64 remote_client_id = 1; + optional uint32 target_client_type = 2; +} + +message CSteamVR_AudioSettings_ChangeSettings_Request { + optional .CSteamVR_AudioSettings_Settings settings = 1; +} + +message CSteamVR_AudioSettings_RegisterForSettings_Request { +} + +// Used by: common.proto +message CSteamVR_AudioSettings_Settings { + optional .CSteamVR_AudioSettings_Settings_Channel main = 1; + optional .CSteamVR_AudioSettings_Settings_Channel audio_mirror = 2; + optional .CSteamVR_AudioSettings_Settings_Channel microphone = 3; +} + +// Used by: common.proto +message CSteamVR_AudioSettings_Settings_Channel { + optional bool available = 1; + optional bool muted = 2; + optional float volume = 3; +} + +message CSteamVR_AudioSettings_SettingsChanged_Notification { + optional .CSteamVR_AudioSettings_Settings settings = 1; +} + +message CSteamVR_Header { + optional int32 type = 1 [(.description) = "enum"]; + optional uint32 id = 2; +} + +message CSteamVR_VoiceChat_Active_Notification { +} + +message CSteamVR_VoiceChat_ConfigureVideo_Request { + optional bool send = 1; + optional bool receive = 2; +} + +message CSteamVR_VoiceChat_ConfigureVideo_Response { +} + +message CSteamVR_VoiceChat_ExitRoomChat_Request { + optional uint64 chat_group_id = 1; + optional uint64 chat_room_id = 2; +} + +message CSteamVR_VoiceChat_ExitRoomChat_Response { +} + +message CSteamVR_VoiceChat_GetAvatarUrl_Request { + optional fixed64 profile_steamid = 1; + optional int32 avatar_type = 2 [(.description) = "enum"]; +} + +message CSteamVR_VoiceChat_GetAvatarUrl_Response { + optional string profile_avatar_url = 1; +} + +message CSteamVR_VoiceChat_GroupName_Notification { + optional string name = 1; +} + +message CSteamVR_VoiceChat_Inactive_Notification { +} + +message CSteamVR_VoiceChat_InitiateRoomChat_Request { + optional uint64 chat_group_id = 1; + optional uint64 chat_room_id = 2; +} + +message CSteamVR_VoiceChat_InitiateRoomChat_Response { +} + +message CSteamVR_VoiceChat_NewGroupChatMsgAdded_Notification { + optional uint64 chat_group_id = 1; + optional uint64 chat_room_id = 2; + optional uint32 sender_accountid = 3; + optional uint32 timestamp = 4; + optional uint32 ordinal = 5; + optional string message = 6; +} + +message CSteamVR_VoiceChat_PerUserGainValue_Notification { + optional uint32 accountid = 1; + optional bool muted = 2; + optional float gain = 3; +} + +message CSteamVR_VoiceChat_PerUserVoiceStatus_Notification { + optional uint32 accountid = 1; + optional bool mic_muted_locally = 2; + optional bool output_muted_locally = 3; +} + +message CSteamVR_VoiceChat_Ready_Notification { +} + +message CSteamVR_VoiceChat_SendGroupChatMessage_Request { + optional string message_with_bbcode = 1; +} + +message CSteamVR_VoiceChat_SendGroupChatMessage_Response { +} + +message CSteamVR_VoiceChat_SetDefaultSession_Notification { + optional uint64 chat_group_id = 1; + optional uint64 chat_room_id = 2; +} + +message CSteamVR_VoiceChat_SetPerUserMuting_Request { + optional uint32 accountid = 1; + optional bool muted = 2; +} + +message CSteamVR_VoiceChat_SetPerUserMuting_Response { +} + +message CSteamVR_VoiceChat_SetPerUserVideo_Request { + optional uint32 accountid = 1; + optional bool receive = 2; +} + +message CSteamVR_VoiceChat_SetPerUserVideo_Response { +} + +message CSteamVR_VRGamepadUI_Message { + optional bytes header = 1; + optional bytes payload = 2; +} + +message CSteamVR_WebRTC_Active_Notification { +} + +message CSteamVR_WebRTC_CloseDataChannel_Request { + optional uint32 channel_id = 1; +} + +message CSteamVR_WebRTC_CloseDataChannel_Response { +} + +message CSteamVR_WebRTC_CreateDataChannel_Request { + optional string label = 1; + optional bool ordered = 2; + optional uint32 max_retransmits = 3; + optional uint32 max_packet_life_time = 4; +} + +message CSteamVR_WebRTC_CreateDataChannel_Response { + optional uint32 channel_id = 1; +} + +message CSteamVR_WebRTC_DataChannel_Close_Notification { + optional uint32 channel_id = 1; +} + +message CSteamVR_WebRTC_DataChannel_Error_Notification { + optional uint32 channel_id = 1; + optional string reason = 2; +} + +message CSteamVR_WebRTC_DataChannel_Message_Notification { + optional uint32 channel_id = 1; + optional bytes data = 2; +} + +message CSteamVR_WebRTC_DataChannel_Open_Notification { + optional uint32 channel_id = 1; +} + +message CSteamVR_WebRTC_Inactive_Notification { +} + +message CSteamVR_WebRTC_OnDataChannel_Notification { + optional fixed64 source_steamid = 1; + optional uint32 channel_id = 2; + optional string label = 3; +} + +message CStore_MigratePartnerLinkTracking_Notification { + optional uint32 accountid = 1; + optional uint64 browserid = 2; + optional int32 backfill_source = 3 [(.description) = "enum"]; +} + +message CStore_ReloadAllReservationPositionMessages_Notification { +} + +// Used by: PartnerStoreBrowse, StoreBrowse, common.proto +message CStoreBrowse_GetItems_Request { + repeated .StoreItemID ids = 1; + optional .StoreBrowseContext context = 2; + optional .StoreBrowseItemDataRequest data_request = 3; +} + +// Used by: PartnerStoreBrowse, StoreBrowse +message CStoreBrowse_GetItems_Response { + repeated .StoreItem store_items = 1; +} + +// Used by: Store, StoreBrowse, StoreQuery +message CStorePageFilter { + optional .CStorePageFilter_SalePageFilter sale_filter = 1; + optional .CStorePageFilter_ContentHubFilter content_hub_filter = 2; + repeated .CStorePageFilter_StoreFilter store_filters = 3; +} + +// Used by: Store, StoreBrowse, StoreQuery +message CStorePageFilter_ContentHubFilter { + optional string hub_type = 1; + optional string hub_category = 2; + optional uint32 hub_tagid = 3; + optional int32 discount_filter = 4 [(.description) = "enum"]; + optional .CStorePageFilter_ContentHubFilter_OptInInfo optin = 5; +} + +// Used by: Store, StoreBrowse, StoreQuery +message CStorePageFilter_ContentHubFilter_OptInInfo { + optional string name = 1; + optional uint32 optin_tagid = 2; + optional uint32 prune_tagid = 3; + optional bool optin_only = 4; +} + +// Used by: Store, StoreBrowse, StoreQuery +message CStorePageFilter_SalePageFilter { + optional uint32 sale_tagid = 1; +} + +// Used by: Store, StoreBrowse, StoreQuery +message CStorePageFilter_StoreFilter { + optional string filter_json = 1; + optional string cache_key = 2; +} + +message CStreamingClientConfig { + optional int32 quality = 1 [default = 2, (.description) = "enum"]; + optional uint32 desired_resolution_x = 2; + optional uint32 desired_resolution_y = 3; + optional uint32 desired_framerate_numerator = 4; + optional uint32 desired_framerate_denominator = 5; + optional int32 desired_bitrate_kbps = 6 [default = -1]; + optional bool enable_hardware_decoding = 7 [default = true]; + optional bool enable_performance_overlay = 8 [default = false]; + optional bool enable_video_streaming = 9 [default = true]; + optional bool enable_audio_streaming = 10 [default = true]; + optional bool enable_input_streaming = 11 [default = true]; + optional int32 audio_channels = 12 [default = 2]; + optional bool enable_video_hevc = 13 [default = false]; + optional bool enable_performance_icons = 14 [default = true]; + optional bool enable_microphone_streaming = 15 [default = false]; + optional string controller_overlay_hotkey = 16; + optional bool enable_touch_controller_OBSOLETE = 17 [default = false]; + optional int32 p2p_scope = 19 [default = 0, (.description) = "enum"]; + optional bool enable_audio_uncompressed = 20 [default = false]; + optional .CStreamVideoLimit display_limit = 21; + optional .CStreamVideoLimit quality_limit = 22; + optional .CStreamVideoLimit runtime_limit = 23; + repeated .CStreamVideoLimit decoder_limit = 24; + optional bool enable_unreliable_fec = 25 [default = false]; +} + +message CStreamingServerConfig { + optional bool change_desktop_resolution = 1; + optional bool dynamically_adjust_resolution_OBSOLETE = 2; + optional bool enable_capture_nvfbc = 3; + optional bool enable_hardware_encoding_nvidia_OBSOLETE = 4; + optional bool enable_hardware_encoding_amd_OBSOLETE = 5; + optional bool enable_hardware_encoding_intel_OBSOLETE = 6; + optional int32 software_encoding_threads = 7; + optional bool enable_traffic_priority = 8; + optional int32 host_play_audio = 9 [default = 0, (.description) = "enum"]; + optional bool enable_hardware_encoding = 10; +} + +// Used by: common.proto +message CStreamVideoLimit { + optional int32 codec = 1 [(.description) = "enum"]; + optional .CStreamVideoMode mode = 2; + optional int32 bitrate_kbps = 3; + optional int32 burst_bitrate_kbps = 4; +} + +// Used by: common.proto +message CStreamVideoMode { + optional uint32 width = 1; + optional uint32 height = 2; + optional uint32 refresh_rate = 3; + optional uint32 refresh_rate_numerator = 4; + optional uint32 refresh_rate_denominator = 5; +} + +// Used by: Test_TransportError, TransportValidation +message CTransportValidation_AppendToString_Request { + repeated string append_strings = 1; +} + +// Used by: Test_TransportError, TransportValidation +message CTransportValidation_AppendToString_Response { + optional string combined_text = 1; +} + +// Used by: GameRecordingClip, VideoClip +message CVideo_GameRecordingSegmentInfo { + optional uint32 segment_number = 1; + optional uint64 segment_size_bytes = 2; + optional string component_name = 3; + optional string representation_name = 4; +} + +// Used by: common.proto +message CVirtualMenuKey { + optional uint32 key_index = 1; + optional bool bound = 2; + optional float x = 3; + optional float y = 4; + optional float width = 5; + optional float height = 6; + optional string description = 7; + optional string label = 8; + optional string glyph_path = 9; + optional string icon_filename = 10; + optional string color_foreground = 11; + optional string color_background = 12; + optional uint32 quadrants = 13; + optional uint32 binding_type = 14; +} + +message CVRGamepadUI_Message_DashboardActionInvoked_Request { + optional uint32 action_id = 1; + optional bool toggle_value = 2; +} + +message CVRGamepadUI_Message_DashboardActionInvoked_Response { +} + +message CVRGamepadUI_Message_DashboardDesktopWindowClicked_Request { + optional uint32 window_id = 1; +} + +message CVRGamepadUI_Message_DashboardDesktopWindowClicked_Response { +} + +message CVRGamepadUI_Message_DashboardTabClicked_Request { + optional uint32 tab_id = 1; +} + +message CVRGamepadUI_Message_DashboardTabClicked_Response { +} + +message CVRGamepadUI_Message_Error_Response { + optional int32 error = 1 [(.description) = "enum"]; + optional string description = 2; + optional int32 origin = 3 [(.description) = "enum"]; +} + +message CVRGamepadUI_Message_Header { + optional string name = 1; + optional uint32 message_id = 2; + optional uint32 response_to_message_id = 3; + optional bool is_error_response = 4; +} + +message CVRGamepadUI_Message_HideDashboardPopup_Request { + optional uint32 dashboard_popup_request_id = 1; +} + +message CVRGamepadUI_Message_HideDashboardPopup_Response { +} + +message CVRGamepadUI_Message_RemoteVideoStream_Request { + optional uint32 source_accountid = 1; + optional string video_uniqueid = 2; +} + +message CVRGamepadUI_Message_RemoteVideoStream_Response { +} + +message CVRGamepadUI_Message_ShowDashboardPopup_Request { + optional uint32 dashboard_popup_request_id = 1; + optional string popup_overlay_key = 2; + optional string parent_overlay_key = 3; + optional .CVRGamepadUI_Message_ShowDashboardPopup_Request_NormalizedPosition origin_on_parent = 4; + optional .CVRGamepadUI_Message_ShowDashboardPopup_Request_NormalizedPosition origin_on_popup = 5; + optional .CVRGamepadUI_Message_ShowDashboardPopup_Request_Position offset = 6; + optional .CVRGamepadUI_Message_ShowDashboardPopup_Request_Rotation rotation = 7; + optional bool inherit_parent_pitch = 8; + optional bool inherit_parent_curvature = 9; + optional .CVRGamepadUI_Message_ShowDashboardPopup_Request_Rect clip_rect = 10; + optional bool interactive = 11; + optional bool requires_laser = 12; + optional string parent_device_path = 13; + optional int32 sort_order = 14 [(.description) = "enum"]; + optional int32 parent_enum = 15 [(.description) = "enum"]; +} + +// Used by: common.proto +message CVRGamepadUI_Message_ShowDashboardPopup_Request_NormalizedPosition { + optional float x = 1; + optional float y = 2; +} + +// Used by: common.proto +message CVRGamepadUI_Message_ShowDashboardPopup_Request_Position { + optional float x_pixels = 1; + optional float y_pixels = 2; + optional float z_pixels = 3; + optional float x_meters = 4; + optional float y_meters = 5; + optional float z_meters = 6; +} + +// Used by: common.proto +message CVRGamepadUI_Message_ShowDashboardPopup_Request_Rect { + optional float u_min = 1; + optional float v_min = 2; + optional float u_max = 3; + optional float v_max = 4; +} + +// Used by: common.proto +message CVRGamepadUI_Message_ShowDashboardPopup_Request_Rotation { + optional float pitch_degrees = 1; + optional float yaw_degrees = 2; +} + +message CVRGamepadUI_Message_ShowDashboardPopup_Response { +} + +message CVRGamepadUI_Message_ShowGame_Request { + optional string overlay_key = 1; +} + +message CVRGamepadUI_Message_ShowGame_Response { +} + +// Used by: common.proto +message CVRGamepadUIShared_DashboardAction { + optional uint32 action_id = 1; + optional bool visible_in_dashboard_bar = 2; + optional bool enabled = 3; + optional string display_name = 4; + optional .CVRGamepadUIShared_DashboardActionIcon icon = 5; + optional .CVRGamepadUIShared_DashboardActionIcon icon_active = 6; + optional int32 invocation = 7 [default = 1, (.description) = "enum"]; + optional bool active = 8; + optional int32 special_invocation = 9 [(.description) = "enum"]; + optional bool visible_in_dashboard_menu = 10; +} + +// Used by: common.proto +message CVRGamepadUIShared_DashboardActionIcon { + optional int32 enum = 1 [(.description) = "enum"]; +} + +// Used by: common.proto +message CVRGamepadUIShared_DashboardTabIcon { + optional int32 enum = 1 [(.description) = "enum"]; + optional uint32 appid = 2; + optional string overlay = 3; + optional uint32 hwnd = 4; +} + +message CVRGamepadUIShared_PathProperty_DashboardActions { + repeated .CVRGamepadUIShared_DashboardAction actions = 1; +} + +message CVRGamepadUIShared_PathProperty_DashboardTabs { + repeated .CVRGamepadUIShared_PathProperty_DashboardTabs_Tab tabs = 1; + optional uint32 selected_tab_id = 2; + optional uint32 vr_settings_tab_id = 3; + optional uint32 vr_steam_tab_id = 4; +} + +// Used by: common.proto +message CVRGamepadUIShared_PathProperty_DashboardTabs_Tab { + optional uint32 tab_id = 1; + optional bool visible_in_dashboard_bar = 2; + optional string display_name = 3; + optional .CVRGamepadUIShared_DashboardTabIcon icon = 4; + optional bool visible_in_dashboard_menu = 5; +} + +message CVRGamepadUIShared_PathProperty_DesktopWindows { + repeated .CVRGamepadUIShared_PathProperty_DesktopWindows_Window windows = 1; +} + +// Used by: common.proto +message CVRGamepadUIShared_PathProperty_DesktopWindows_Window { + optional uint32 window_id = 1; + optional uint32 hwnd = 2; + optional string title = 3; + optional uint32 tab_id = 4; +} + +message CVRGamepadUIShared_PathProperty_PowerOptions { + optional bool can_sleep = 1; + optional bool can_shutdown = 2; + optional bool can_restart_system = 3; + optional bool can_exitvr = 4; +} + +// Used by: common.proto +message EncryptedAppTicket { + optional uint32 ticket_version_no = 1; + optional uint32 crc_encryptedticket = 2; + optional uint32 cb_encrypteduserdata = 3; + optional uint32 cb_encrypted_appownershipticket = 4; + optional bytes encrypted_ticket = 5; +} + +// Used by: LoyaltyRewards, SaleItemRewards +message LoyaltyRewardDefinition { + optional uint32 appid = 1; + optional uint32 defid = 2; + optional int32 type = 3 [(.description) = "enum"]; + optional int32 community_item_class = 4; + optional uint32 community_item_type = 5; + optional int64 point_cost = 6; + optional uint32 timestamp_created = 7; + optional uint32 timestamp_updated = 8; + optional uint32 timestamp_available = 9; + optional int64 quantity = 10; + optional string internal_description = 11; + optional bool active = 12; + optional .LoyaltyRewardDefinition_CommunityItemData community_item_data = 13; + optional uint32 timestamp_available_end = 14; + repeated uint32 bundle_defids = 15; + optional uint32 usable_duration = 16; + optional uint32 bundle_discount = 17; + optional uint32 timestamp_free_until = 18; +} + +// Used by: LoyaltyRewards, SaleItemRewards +message LoyaltyRewardDefinition_BadgeData { + optional int32 level = 1; + optional string image = 2; +} + +// Used by: LoyaltyRewards, SaleItemRewards +message LoyaltyRewardDefinition_CommunityItemData { + optional string item_name = 1; + optional string item_title = 2; + optional string item_description = 3; + optional string item_image_small = 4; + optional string item_image_large = 5; + optional string item_movie_webm = 6; + optional string item_movie_mp4 = 7; + optional bool animated = 8; + repeated .LoyaltyRewardDefinition_BadgeData badge_data = 9; + optional string item_movie_webm_small = 10; + optional string item_movie_mp4_small = 11; + optional string profile_theme_id = 12; +} + +// Used by: Checkout, MarketingMessages, PartnerStoreBrowse, SteamCharts, StoreAppSimilarity, StoreBrowse, StoreMarketing, StoreQuery, StoreTopSellers, Wishlist, common.proto +message StoreBrowseContext { + optional string language = 1; + optional int32 elanguage = 2; + optional string country_code = 3; + optional int32 steam_realm = 4; +} + +// Used by: Checkout, MarketingMessages, PartnerStoreBrowse, SteamCharts, StoreAppSimilarity, StoreBrowse, StoreMarketing, StoreQuery, StoreTopSellers, Wishlist +message StoreBrowseFilterFailure { + optional int32 filter_failure = 1 [default = 0, (.description) = "enum"]; + optional bool already_owned = 5; + optional bool on_wishlist = 6; + optional bool ignored = 7; + optional bool not_in_users_language = 10; + optional bool not_on_users_platform = 11; + optional bool demo_for_owned_game = 12; + optional bool dlc_for_unowned_game = 13; + optional bool nonpreferred_product_type = 20; + repeated uint32 excluded_tagids = 21; + repeated int32 excluded_content_descriptorids = 30 [(.description) = "enum"]; +} + +// Used by: Checkout, MarketingMessages, PartnerStoreBrowse, SteamCharts, StoreAppSimilarity, StoreBrowse, StoreMarketing, StoreQuery, StoreTopSellers, Wishlist, common.proto +message StoreBrowseItemDataRequest { + optional bool include_assets = 1; + optional bool include_release = 2; + optional bool include_platforms = 3; + optional bool include_all_purchase_options = 4; + optional bool include_screenshots = 5; + optional bool include_trailers = 6; + optional bool include_ratings = 7; + optional int32 include_tag_count = 8; + optional bool include_reviews = 9; + optional bool include_basic_info = 10; + optional bool include_supported_languages = 11; + optional bool include_full_description = 12; + optional bool include_included_items = 13; + optional .StoreBrowseItemDataRequest included_item_data_request = 14; + optional bool include_assets_without_overrides = 15; + optional bool apply_user_filters = 16; + optional bool include_links = 17; +} + +// Used by: Checkout, MarketingMessages, PartnerStoreBrowse, SteamCharts, StoreAppSimilarity, StoreBrowse, StoreMarketing, StoreQuery, StoreTopSellers, Wishlist +message StoreGameRating { + optional string type = 1; + optional string rating = 2; + repeated string descriptors = 3; + optional string interactive_elements = 4; + optional int32 required_age = 10; + optional bool use_age_gate = 11; + optional string image_url = 20; + optional string image_target = 21; +} + +// Used by: Checkout, MarketingMessages, PartnerStoreBrowse, SteamCharts, StoreAppSimilarity, StoreBrowse, StoreMarketing, StoreQuery, StoreTopSellers, Wishlist +message StoreItem { + optional int32 item_type = 1 [(.description) = "enum"]; + optional uint32 id = 2; + optional uint32 success = 3; + optional bool visible = 4; + optional bool unvailable_for_country_restriction = 5; + optional string name = 6; + optional string store_url_path = 7; + optional uint32 appid = 9; + optional int32 type = 10 [(.description) = "enum"]; + repeated int32 included_types = 11 [(.description) = "enum"]; + repeated uint32 included_appids = 12; + optional bool is_free = 13; + optional bool is_early_access = 14; + optional .StoreItem_RelatedItems related_items = 15; + optional .StoreItem_IncludedItems included_items = 16; + repeated int32 content_descriptorids = 20 [(.description) = "enum"]; + repeated uint32 tagids = 21; + optional .StoreItem_Categories categories = 22; + optional .StoreItem_Reviews reviews = 23; + optional .StoreItem_BasicInfo basic_info = 24; + repeated .StoreItem_Tag tags = 25; + optional .StoreItem_Assets assets = 30; + optional .StoreItem_ReleaseInfo release = 31; + optional .StoreItem_Platforms platforms = 32; + optional .StoreGameRating game_rating = 33; + optional .StoreItem_PurchaseOption best_purchase_option = 40; + repeated .StoreItem_PurchaseOption purchase_options = 41; + repeated .StoreItem_PurchaseOption accessories = 42; + optional .StoreItem_PurchaseOption self_purchase_option = 43; + optional .StoreItem_Screenshots screenshots = 50; + optional .StoreItem_Trailers trailers = 51; + repeated .StoreItem_SupportedLanguage supported_languages = 52; + optional string store_url_path_override = 53; + optional .StoreItem_FreeWeekend free_weekend = 54; + optional bool unlisted = 55; + optional uint32 game_count = 56; + optional string internal_name = 57; + optional string full_description = 58; + optional bool is_free_temporarily = 59; + optional .StoreItem_Assets assets_without_overrides = 60; + optional .StoreBrowseFilterFailure user_filter_failure = 70; + repeated .StoreItem_Link links = 71; +} + +// Used by: Checkout, MarketingMessages, PartnerStoreBrowse, SteamCharts, StoreAppSimilarity, StoreBrowse, StoreMarketing, StoreQuery, StoreTopSellers, Wishlist +message StoreItem_Assets { + optional string asset_url_format = 1; + optional string main_capsule = 2; + optional string small_capsule = 3; + optional string header = 4; + optional string package_header = 5; + optional string page_background = 6; + optional string hero_capsule = 7; + optional string hero_capsule_2x = 8; + optional string library_capsule = 9; + optional string library_capsule_2x = 10; + optional string library_hero = 11; + optional string library_hero_2x = 12; + optional string community_icon = 13; + optional string clan_avatar = 14; +} + +// Used by: Checkout, MarketingMessages, PartnerStoreBrowse, SteamCharts, StoreAppSimilarity, StoreBrowse, StoreMarketing, StoreQuery, StoreTopSellers, Wishlist +message StoreItem_BasicInfo { + optional string short_description = 1; + repeated .StoreItem_BasicInfo_CreatorHomeLink publishers = 2; + //repeated string publishers = 2; + repeated .StoreItem_BasicInfo_CreatorHomeLink developers = 3; + //repeated string developers = 3; + repeated .StoreItem_BasicInfo_CreatorHomeLink franchises = 4; + //repeated string franchises = 4; + optional string capsule_headline = 5; +} + +// Used by: Checkout, MarketingMessages, PartnerStoreBrowse, SteamCharts, StoreAppSimilarity, StoreBrowse, StoreMarketing, StoreQuery, StoreTopSellers, Wishlist +message StoreItem_BasicInfo_CreatorHomeLink { + optional string name = 1; + optional uint32 creator_clan_account_id = 2; +} + +// Used by: Checkout, MarketingMessages, PartnerStoreBrowse, SteamCharts, StoreAppSimilarity, StoreBrowse, StoreMarketing, StoreQuery, StoreTopSellers, Wishlist +message StoreItem_Categories { + repeated uint32 supported_player_categoryids = 2; + repeated uint32 feature_categoryids = 3; + repeated uint32 controller_categoryids = 4; +} + +// Used by: Checkout, MarketingMessages, PartnerStoreBrowse, SteamCharts, StoreAppSimilarity, StoreBrowse, StoreMarketing, StoreQuery, StoreTopSellers, Wishlist +message StoreItem_FreeWeekend { + optional uint32 start_time = 1; + optional uint32 end_time = 2; + optional string text = 3; +} + +// Used by: Checkout, MarketingMessages, PartnerStoreBrowse, SteamCharts, StoreAppSimilarity, StoreBrowse, StoreMarketing, StoreQuery, StoreTopSellers, Wishlist +message StoreItem_IncludedItems { + repeated .StoreItem included_apps = 1; + repeated .StoreItem included_packages = 2; +} + +// Used by: Checkout, MarketingMessages, PartnerStoreBrowse, SteamCharts, StoreAppSimilarity, StoreBrowse, StoreMarketing, StoreQuery, StoreTopSellers, Wishlist +message StoreItem_Link { + optional int32 link_type = 1 [(.description) = "enum"]; + optional string url = 2; + optional string text = 3; +} + +// Used by: Checkout, MarketingMessages, PartnerStoreBrowse, SteamCharts, StoreAppSimilarity, StoreBrowse, StoreMarketing, StoreQuery, StoreTopSellers, Wishlist +message StoreItem_Platforms { + optional bool windows = 1; + optional bool mac = 2; + optional bool linux = 3; + //optional bool steamos_linux = 3; + optional .StoreItem_Platforms_VRSupport vr_support = 10; + optional int32 steam_deck_compat_category = 11 [(.description) = "enum"]; +} + +// Used by: Checkout, MarketingMessages, PartnerStoreBrowse, SteamCharts, StoreAppSimilarity, StoreBrowse, StoreMarketing, StoreQuery, StoreTopSellers, Wishlist +message StoreItem_Platforms_VRSupport { + optional bool vrhmd = 1; + optional bool vrhmd_only = 2; + optional bool htc_vive = 40; + optional bool oculus_rift = 41; + optional bool windows_mr = 42; + optional bool valve_index = 43; +} + +// Used by: Checkout, MarketingMessages, PartnerStoreBrowse, SteamCharts, StoreAppSimilarity, StoreBrowse, StoreMarketing, StoreQuery, StoreTopSellers, Wishlist +message StoreItem_PurchaseOption { + optional int32 packageid = 1; + optional int32 bundleid = 2; + optional string purchase_option_name = 3; + optional int64 final_price_in_cents = 5; + optional int64 original_price_in_cents = 6; + optional int64 user_final_price_in_cents = 7; + optional string formatted_final_price = 8; + optional string formatted_original_price = 9; + optional int32 discount_pct = 10; + optional int32 user_discount_pct = 11; + optional int32 bundle_discount_pct = 12; + repeated .StoreItem_PurchaseOption_Discount active_discounts = 20; + repeated .StoreItem_PurchaseOption_Discount user_active_discounts = 21; + repeated .StoreItem_PurchaseOption_Discount inactive_discounts = 22; + optional bool user_can_purchase = 30; + optional bool user_can_purchase_as_gift = 31; + optional bool is_commercial_license = 40; + optional bool should_suppress_discount_pct = 41; + optional bool hide_discount_pct_for_compliance = 42 [default = false]; + optional int32 included_game_count = 43; + optional int64 lowest_recent_price_in_cents = 44; + optional bool requires_shipping = 45; + optional .StoreItem_PurchaseOption_RecurrenceInfo recurrence_info = 46; +} + +// Used by: Checkout, MarketingMessages, PartnerStoreBrowse, SteamCharts, StoreAppSimilarity, StoreBrowse, StoreMarketing, StoreQuery, StoreTopSellers, Wishlist +message StoreItem_PurchaseOption_Discount { + optional int64 discount_amount = 1; + optional string discount_description = 2; + optional uint32 discount_end_date = 3; +} + +// Used by: Checkout, MarketingMessages, PartnerStoreBrowse, SteamCharts, StoreAppSimilarity, StoreBrowse, StoreMarketing, StoreQuery, StoreTopSellers, Wishlist +message StoreItem_PurchaseOption_RecurrenceInfo { + optional int32 packageid = 1; + optional int32 billing_agreement_type = 2; + optional int32 renewal_time_unit = 3; + optional int32 renewal_time_period = 4; + optional int64 renewal_price_in_cents = 5; + optional string formatted_renewal_price = 6; +} + +// Used by: Checkout, MarketingMessages, PartnerStoreBrowse, SteamCharts, StoreAppSimilarity, StoreBrowse, StoreMarketing, StoreQuery, StoreTopSellers, Wishlist +message StoreItem_RelatedItems { + optional uint32 parent_appid = 1; + repeated uint32 demo_appid = 2; + repeated uint32 standalone_demo_appid = 3; +} + +// Used by: Checkout, MarketingMessages, PartnerStoreBrowse, SteamCharts, StoreAppSimilarity, StoreBrowse, StoreMarketing, StoreQuery, StoreTopSellers, Wishlist +message StoreItem_ReleaseInfo { + optional uint32 steam_release_date = 1; + optional uint32 original_release_date = 2; + optional uint32 original_steam_release_date = 3; + optional bool is_coming_soon = 4; + optional bool is_preload = 5; + optional string custom_release_date_message = 6; + optional bool is_abridged_release_date = 7; + optional string coming_soon_display = 8; + optional bool is_early_access = 10; + optional uint32 mac_release_date = 20; + optional uint32 linux_release_date = 21; +} + +// Used by: Checkout, MarketingMessages, PartnerStoreBrowse, SteamCharts, StoreAppSimilarity, StoreBrowse, StoreMarketing, StoreQuery, StoreTopSellers, Wishlist +message StoreItem_Reviews { + optional .StoreItem_Reviews_StoreReviewSummary summary_filtered = 1; + optional .StoreItem_Reviews_StoreReviewSummary summary_unfiltered = 2; +} + +// Used by: Checkout, MarketingMessages, PartnerStoreBrowse, SteamCharts, StoreAppSimilarity, StoreBrowse, StoreMarketing, StoreQuery, StoreTopSellers, Wishlist +message StoreItem_Reviews_StoreReviewSummary { + optional uint32 review_count = 1; + optional int32 percent_positive = 2; + optional int32 review_score = 3 [(.description) = "enum"]; + optional string review_score_label = 4; +} + +// Used by: Checkout, MarketingMessages, PartnerStoreBrowse, SteamCharts, StoreAppSimilarity, StoreBrowse, StoreMarketing, StoreQuery, StoreTopSellers, Wishlist +message StoreItem_Screenshots { + repeated .StoreItem_Screenshots_Screenshot all_ages_screenshots = 2; + repeated .StoreItem_Screenshots_Screenshot mature_content_screenshots = 3; +} + +// Used by: Checkout, MarketingMessages, PartnerStoreBrowse, SteamCharts, StoreAppSimilarity, StoreBrowse, StoreMarketing, StoreQuery, StoreTopSellers, Wishlist +message StoreItem_Screenshots_Screenshot { + optional string filename = 1; + optional int32 ordinal = 2; +} + +// Used by: Checkout, MarketingMessages, PartnerStoreBrowse, SteamCharts, StoreAppSimilarity, StoreBrowse, StoreMarketing, StoreQuery, StoreTopSellers, Wishlist +message StoreItem_SupportedLanguage { + optional int32 elanguage = 1 [default = -1]; + optional bool supported = 2; + optional bool full_audio = 3; + optional bool subtitles = 4; + optional int32 eadditionallanguage = 5 [default = -1]; +} + +// Used by: Checkout, MarketingMessages, PartnerStoreBrowse, SteamCharts, StoreAppSimilarity, StoreBrowse, StoreMarketing, StoreQuery, StoreTopSellers, Wishlist +message StoreItem_Tag { + optional uint32 tagid = 1; + optional uint32 weight = 2; +} + +// Used by: Checkout, MarketingMessages, PartnerStoreBrowse, SteamCharts, StoreAppSimilarity, StoreBrowse, StoreMarketing, StoreQuery, StoreTopSellers, Wishlist +message StoreItem_Trailers { + repeated .StoreItem_Trailers_Trailer highlights = 1; + repeated .StoreItem_Trailers_Trailer other_trailers = 2; +} + +// Used by: Checkout, MarketingMessages, PartnerStoreBrowse, SteamCharts, StoreAppSimilarity, StoreBrowse, StoreMarketing, StoreQuery, StoreTopSellers, Wishlist +message StoreItem_Trailers_Trailer { + optional string trailer_name = 1; + optional string trailer_url_format = 2; + repeated .StoreItem_Trailers_VideoSource trailer_480p = 3; + repeated .StoreItem_Trailers_VideoSource trailer_max = 4; + repeated .StoreItem_Trailers_VideoSource microtrailer = 5; + optional string screenshot_medium = 10; + optional string screenshot_full = 11; + optional int32 trailer_base_id = 12; +} + +// Used by: Checkout, MarketingMessages, PartnerStoreBrowse, SteamCharts, StoreAppSimilarity, StoreBrowse, StoreMarketing, StoreQuery, StoreTopSellers, Wishlist +message StoreItem_Trailers_VideoSource { + optional string filename = 1; + optional string type = 2; +} + +// Used by: Checkout, MarketingMessages, PartnerStoreBrowse, SteamCharts, StoreAppSimilarity, StoreBrowse, StoreMarketing, StoreQuery, common.proto +message StoreItemID { + optional uint32 appid = 1; + optional uint32 packageid = 2; + optional uint32 bundleid = 3; + optional uint32 tagid = 4; + optional uint32 creatorid = 5; + optional uint32 hubcategoryid = 6; +} + +// Used by: Player, PlayerClient, Store, StoreClient +message UserContentDescriptorPreferences { + repeated .UserContentDescriptorPreferences_ContentDescriptor content_descriptors_to_exclude = 1; +} + +// Used by: Player, PlayerClient, Store, StoreClient +message UserContentDescriptorPreferences_ContentDescriptor { + optional uint32 content_descriptorid = 1; + optional uint32 timestamp_added = 2; +} + diff --git a/Protobufs/webui/common_base.proto b/Protobufs/webui/common_base.proto new file mode 100644 index 0000000..a2da5aa --- /dev/null +++ b/Protobufs/webui/common_base.proto @@ -0,0 +1,27 @@ +import "google/protobuf/descriptor.proto"; + +extend .google.protobuf.FieldOptions { + optional string description = 50000; +} + +extend .google.protobuf.ServiceOptions { + optional string service_description = 50000; +} + +extend .google.protobuf.MethodOptions { + optional string method_description = 50000; +} + +extend .google.protobuf.EnumOptions { + optional string enum_description = 50000; +} + +extend .google.protobuf.EnumValueOptions { + optional string enum_value_description = 50000; +} + +message NoResponse { +} + +message NotImplemented { +} diff --git a/Protobufs/webui/service_accountcart.proto b/Protobufs/webui/service_accountcart.proto new file mode 100644 index 0000000..e3b81ab --- /dev/null +++ b/Protobufs/webui/service_accountcart.proto @@ -0,0 +1,141 @@ +import "common_base.proto"; +import "common.proto"; + +message AccountCartContents { + repeated .AccountCartLineItem line_items = 1; + optional .CartAmount subtotal = 2; + optional bool is_valid = 3; + optional .AccountCartValidationDetails validation_details = 4; +} + +message AccountCartLineItem { + optional uint64 line_item_id = 1; + optional int32 type = 2 [(.description) = "enum"]; + optional uint32 packageid = 3; + optional uint32 bundleid = 4; + optional bool is_valid = 8; + optional .AccountCartValidationDetails validation_details = 9; + optional uint32 time_added = 10; + optional .CartAmount price_when_added = 11; + optional .CartGiftInfo gift_info = 12; + optional .AccountCartLineItemFlags flags = 13; + optional uint64 gidcoupon_applied = 14; +} + +message AccountCartLineItemFlags { + optional bool is_gift = 1; + optional bool is_private = 2; +} + +message AccountCartValidationDetails { + optional int32 validation_failure = 1 [default = 0, (.description) = "enum"]; +} + +message CAccountCart_AddItemsToCart_Request { + optional string user_country = 1; + repeated .CAccountCart_AddItemsToCart_Request_ItemToAdd items = 2; + optional .CUserInterface_NavData navdata = 3; +} + +message CAccountCart_AddItemsToCart_Request_ItemToAdd { + optional uint32 packageid = 1; + optional uint32 bundleid = 2; + optional .CartGiftInfo gift_info = 10; + optional .AccountCartLineItemFlags flags = 11; +} + +message CAccountCart_AddItemsToCart_Response { + repeated uint64 line_item_ids = 1; + optional .AccountCartContents cart = 2; + repeated uint32 replaced_packages = 3; + optional uint64 existing_billing_agreementid = 4; + optional uint32 new_billing_agreement_recurring_packageid = 5; +} + +message CAccountCart_DeleteCart_Request { +} + +message CAccountCart_DeleteCart_Response { +} + +message CAccountCart_GetCart_Request { + optional string user_country = 1; +} + +message CAccountCart_GetCart_Response { + optional .AccountCartContents cart = 1; +} + +message CAccountCart_GetRelevantCoupons_Request { + optional uint32 language = 1; +} + +message CAccountCart_GetRelevantCoupons_Response { + repeated .CAccountCart_GetRelevantCoupons_Response_LineItemCoupons line_items = 1; +} + +message CAccountCart_GetRelevantCoupons_Response_LineItemCoupons { + optional uint64 line_item_id = 1; + repeated .CartCoupon coupons = 2; +} + +message CAccountCart_MergeShoppingCartContents_Request { + optional fixed64 gidshoppingcart = 1; + optional string user_country = 2; +} + +message CAccountCart_MergeShoppingCartContents_Response { + optional .AccountCartContents cart = 1; +} + +message CAccountCart_ModifyLineItem_Request { + optional uint64 line_item_id = 1; + optional string user_country = 2; + optional .CartGiftInfo gift_info = 10; + optional .AccountCartLineItemFlags flags = 11; + optional uint64 apply_gidcoupon = 12; +} + +message CAccountCart_ModifyLineItem_Response { + optional .AccountCartContents cart = 1; +} + +message CAccountCart_RemoveItemFromCart_Request { + optional uint64 line_item_id = 1; + optional string user_country = 2; +} + +message CAccountCart_RemoveItemFromCart_Response { + optional .AccountCartContents cart = 1; +} + +message CUserInterface_CuratorData { + optional uint32 clanid = 1; + optional uint64 listid = 2; +} + +message CUserInterface_NavData { + optional string domain = 1; + optional string controller = 2; + optional string method = 3; + optional string submethod = 4; + optional string feature = 5; + optional uint32 depth = 6; + optional string countrycode = 7; + optional uint64 webkey = 8; + optional bool is_client = 9; + optional .CUserInterface_CuratorData curator_data = 10; + optional bool is_likely_bot = 11; + optional bool is_utm = 12; +} + +service AccountCart { + rpc AddItemsToCart (.CAccountCart_AddItemsToCart_Request) returns (.CAccountCart_AddItemsToCart_Response); + rpc DeleteCart (.CAccountCart_DeleteCart_Request) returns (.CAccountCart_DeleteCart_Response); + rpc GetCart (.CAccountCart_GetCart_Request) returns (.CAccountCart_GetCart_Response); + rpc GetRelevantCoupons (.CAccountCart_GetRelevantCoupons_Request) returns (.CAccountCart_GetRelevantCoupons_Response); + rpc MergeShoppingCartContents (.CAccountCart_MergeShoppingCartContents_Request) returns (.CAccountCart_MergeShoppingCartContents_Response); + rpc ModifyLineItem (.CAccountCart_ModifyLineItem_Request) returns (.CAccountCart_ModifyLineItem_Response); + rpc RemoveItemFromCart (.CAccountCart_RemoveItemFromCart_Request) returns (.CAccountCart_RemoveItemFromCart_Response); +} + diff --git a/Protobufs/webui/service_accountlinking.proto b/Protobufs/webui/service_accountlinking.proto new file mode 100644 index 0000000..e56ad02 --- /dev/null +++ b/Protobufs/webui/service_accountlinking.proto @@ -0,0 +1,27 @@ +import "common_base.proto"; + +message CAccountLinking_GetLinkedAccountInfo_Request { + optional int32 account_type = 1 [(.description) = "enum"]; + optional uint64 account_id = 2; + optional int32 filter = 3 [(.description) = "enum"]; + optional bool return_access_token = 4; +} + +message CAccountLinking_GetLinkedAccountInfo_Response { + repeated .CAccountLinking_GetLinkedAccountInfo_Response_CExternalAccountTuple_Response external_accounts = 1; +} + +message CAccountLinking_GetLinkedAccountInfo_Response_CExternalAccountTuple_Response { + optional int32 external_type = 1 [(.description) = "enum"]; + optional string external_id = 2; + optional string external_user_name = 3; + optional string external_url = 4; + optional string access_token = 5; + optional string access_token_secret = 6; + optional bool is_valid = 7; +} + +service AccountLinking { + rpc GetLinkedAccountInfo (.CAccountLinking_GetLinkedAccountInfo_Request) returns (.CAccountLinking_GetLinkedAccountInfo_Response); +} + diff --git a/Protobufs/webui/service_accountprivacy.proto b/Protobufs/webui/service_accountprivacy.proto new file mode 100644 index 0000000..e917e37 --- /dev/null +++ b/Protobufs/webui/service_accountprivacy.proto @@ -0,0 +1,42 @@ +import "common_base.proto"; + +message CAccountPrivacy_GetCookiePreferences_Request { +} + +message CAccountPrivacy_GetCookiePreferences_Response { + optional .CAccountPrivacyCookiePreferences preferences = 1; +} + +message CAccountPrivacyCookiePreferences { + optional int32 version = 1 [(.description) = "enum"]; + optional int32 preference_state = 2 [(.description) = "enum"]; + optional .CAccountPrivacyCookiePreferences_ContentCustomization content_customization = 3; + optional .CAccountPrivacyCookiePreferences_ValveAnalytics valve_analytics = 4; + optional .CAccountPrivacyCookiePreferences_ThirdPartyAnalytics third_party_analytics = 5; + optional .CAccountPrivacyCookiePreferences_ThirdPartyContent third_party_content = 6; + optional bool utm_enabled = 7 [default = true]; +} + +message CAccountPrivacyCookiePreferences_ContentCustomization { + optional bool recentapps = 1; +} + +message CAccountPrivacyCookiePreferences_ThirdPartyAnalytics { + optional bool google_analytics = 1; +} + +message CAccountPrivacyCookiePreferences_ThirdPartyContent { + optional bool youtube = 1; + optional bool vimeo = 2; + optional bool sketchfab = 3; + optional bool twitter = 4; +} + +message CAccountPrivacyCookiePreferences_ValveAnalytics { + optional bool product_impressions_tracking = 1; +} + +service AccountPrivacy { + rpc GetCookiePreferences (.CAccountPrivacy_GetCookiePreferences_Request) returns (.CAccountPrivacy_GetCookiePreferences_Response); +} + diff --git a/Protobufs/webui/service_accountprivateapps.proto b/Protobufs/webui/service_accountprivateapps.proto new file mode 100644 index 0000000..26209a8 --- /dev/null +++ b/Protobufs/webui/service_accountprivateapps.proto @@ -0,0 +1,34 @@ +import "common_base.proto"; + +message CAccountPrivateAppList { + repeated int32 appids = 1; +} + +message CAccountPrivateApps_GetPrivateAppList_Request { +} + +message CAccountPrivateApps_GetPrivateAppList_Response { + optional .CAccountPrivateAppList private_apps = 1; +} + +message CAccountPrivateApps_ToggleAppPrivacy_Request { + repeated int32 appids = 1; + optional bool private = 2; +} + +message CAccountPrivateApps_ToggleAppPrivacy_Response { +} + +message CAccountPrivateApsClient_NotifyPrivateAppListChanged_Notification { + optional .CAccountPrivateAppList private_apps = 1; +} + +service AccountPrivateApps { + rpc GetPrivateAppList (.CAccountPrivateApps_GetPrivateAppList_Request) returns (.CAccountPrivateApps_GetPrivateAppList_Response); + rpc ToggleAppPrivacy (.CAccountPrivateApps_ToggleAppPrivacy_Request) returns (.CAccountPrivateApps_ToggleAppPrivacy_Response); +} + +service AccountPrivateAppsClient { + rpc NotifyPrivateAppListChanged (.CAccountPrivateApsClient_NotifyPrivateAppListChanged_Notification) returns (.NoResponse); +} + diff --git a/Protobufs/webui/service_achievements.proto b/Protobufs/webui/service_achievements.proto new file mode 100644 index 0000000..fc4f25a --- /dev/null +++ b/Protobufs/webui/service_achievements.proto @@ -0,0 +1,23 @@ + +message CAchievements_GetInfo_Request { + optional uint64 gameid = 1; +} + +message CAchievements_GetInfo_Response { + repeated .CAchievements_GetInfo_Response_Info achievements = 1; +} + +message CAchievements_GetInfo_Response_Info { + optional string id = 1; + optional string name = 2; + optional string desc = 3; + optional string image_url_achieved = 4; + optional string image_url_not_achieved = 5; + optional bool achieved = 6; + optional uint32 unlock_time = 7; +} + +service Achievements { + rpc GetInfo (.CAchievements_GetInfo_Request) returns (.CAchievements_GetInfo_Response); +} + diff --git a/Protobufs/webui/service_assetsetpublishing.proto b/Protobufs/webui/service_assetsetpublishing.proto new file mode 100644 index 0000000..dd87e95 --- /dev/null +++ b/Protobufs/webui/service_assetsetpublishing.proto @@ -0,0 +1,96 @@ + +message CAssetSet { + optional uint32 appid = 1; + optional fixed64 assetset_id = 2; + optional string name = 3; + optional string desc = 4; + repeated string branches = 5; + optional uint32 last_update_rtime = 6; + optional uint32 priority = 7; + optional uint32 last_publish_rtime = 8; +} + +message CAssetSetPublishing_AddBranchToAssetSet_Request { + optional uint32 appid = 1; + optional fixed64 assetset_id = 2; + optional string branch = 3; +} + +message CAssetSetPublishing_AddBranchToAssetSet_Response { + optional .CAssetSet updated = 1; +} + +message CAssetSetPublishing_CreateAssetSet_Request { + optional uint32 appid = 1; + optional .CAssetSet assetset = 2; +} + +message CAssetSetPublishing_CreateAssetSet_Response { + optional .CAssetSet assetset = 1; +} + +message CAssetSetPublishing_DeleteAssetSet_Request { + optional uint32 appid = 1; + optional fixed64 assetset_id = 2; +} + +message CAssetSetPublishing_DeleteAssetSet_Response { +} + +message CAssetSetPublishing_GetAllAssetSets_Request { + optional uint32 appid = 1; +} + +message CAssetSetPublishing_GetAllAssetSets_Response { + repeated .CAssetSet assetset = 2; +} + +message CAssetSetPublishing_RemoseBranchFromAssetSet_Response { + optional .CAssetSet updated = 1; +} + +message CAssetSetPublishing_RemoveBranchFromAssetSet_Request { + optional uint32 appid = 1; + optional fixed64 assetset_id = 2; + optional string branch = 3; +} + +message CAssetSetPublishing_SwapAssetSetPriority_Request { + optional uint32 appid = 1; + optional fixed64 first_assetset_id = 2; + optional fixed64 second_assetset_id = 3; +} + +message CAssetSetPublishing_SwapAssetSetPriority_Response { + optional .CAssetSet updated_first = 1; + optional .CAssetSet updated_second = 2; +} + +message CAssetSetPublishing_UpdateAssetSet_Request { + optional uint32 appid = 1; + optional .CAssetSet assetset = 2; +} + +message CAssetSetPublishing_UpdateAssetSet_Response { +} + +message CAssetSetPublishing_UpdatePublishTime_Request { + optional uint32 appid = 1; + optional fixed64 assetset_id = 2; +} + +message CAssetSetPublishing_UpdatePublishTime_Response { + optional .CAssetSet updated = 1; +} + +service AssetSetPublishing { + rpc AddBranchToAssetSet (.CAssetSetPublishing_AddBranchToAssetSet_Request) returns (.CAssetSetPublishing_AddBranchToAssetSet_Response); + rpc CreateAssetSet (.CAssetSetPublishing_CreateAssetSet_Request) returns (.CAssetSetPublishing_CreateAssetSet_Response); + rpc DeleteAssetSet (.CAssetSetPublishing_DeleteAssetSet_Request) returns (.CAssetSetPublishing_DeleteAssetSet_Response); + rpc GetAllAssetSets (.CAssetSetPublishing_GetAllAssetSets_Request) returns (.CAssetSetPublishing_GetAllAssetSets_Response); + rpc RemoveBranchFromAssetSet (.CAssetSetPublishing_RemoveBranchFromAssetSet_Request) returns (.CAssetSetPublishing_RemoseBranchFromAssetSet_Response); + rpc SwapAssetSetPriority (.CAssetSetPublishing_SwapAssetSetPriority_Request) returns (.CAssetSetPublishing_SwapAssetSetPriority_Response); + rpc UpdateAssetSet (.CAssetSetPublishing_UpdateAssetSet_Request) returns (.CAssetSetPublishing_UpdateAssetSet_Response); + rpc UpdatePublishTime (.CAssetSetPublishing_UpdatePublishTime_Request) returns (.CAssetSetPublishing_UpdatePublishTime_Response); +} + diff --git a/Protobufs/webui/service_auction.proto b/Protobufs/webui/service_auction.proto new file mode 100644 index 0000000..f6c60cd --- /dev/null +++ b/Protobufs/webui/service_auction.proto @@ -0,0 +1,97 @@ +import "common_base.proto"; + +message CAuction_Bid { + optional uint32 accountid = 1; + optional uint64 auctiondescriptionid = 2; + optional int32 state = 3 [(.description) = "enum"]; + optional uint32 time_created = 4; + optional uint32 time_updated = 5; + optional int64 amount_bid = 6; + optional int64 amount_paid = 7; + optional int64 auctionbidid = 8; +} + +message CAuction_CancelBid_Request { + optional uint64 auctiondescriptionid = 1; +} + +message CAuction_CancelBid_Response { + optional int64 amount_returned = 1; +} + +message CAuction_GetAllItems_Request { +} + +message CAuction_GetAllItems_Response { + repeated .CAuction_Item items = 1; +} + +message CAuction_GetBidsForItem_Request { + optional uint64 auctiondescriptionid = 1; +} + +message CAuction_GetBidsForItem_Response { + optional .CAuction_Item item = 1; + optional int32 count_total = 2; + optional int32 current_user_position = 3; + repeated .CAuction_Bid winning_bids = 4; +} + +message CAuction_GetBidsForUser_Request { + optional fixed64 steamid = 1; +} + +message CAuction_GetBidsForUser_Response { + repeated .CAuction_Bid bids = 1; +} + +message CAuction_GetItemDetails_Request { + optional uint64 auctiondescriptionid = 1; +} + +message CAuction_GetItemDetails_Response { + optional .CAuction_Item item = 1; +} + +message CAuction_GetUserBidForItem_Request { + optional uint64 auctiondescriptionid = 1; +} + +message CAuction_GetUserBidForItem_Response { + optional .CAuction_Bid bid = 1; +} + +message CAuction_Item { + optional uint64 auctiondescriptionid = 1; + optional uint32 time_start = 2; + optional uint32 time_end = 3; + optional int64 amount_total = 5; + optional int64 amount_remaining = 6; + optional int64 highest_amount = 7; + optional uint32 highest_bidder_accountid = 8; + optional uint32 community_item_appid = 9; + optional uint32 community_item_type = 10; + optional uint32 store_appid = 11; + repeated uint32 store_packageids = 12; + optional int64 reserve_price = 13; +} + +message CAuction_PlaceBid_Request { + optional uint64 auctiondescriptionid = 1; + optional int64 amount_bid = 2; + optional int32 expected_amount_remaining = 3; +} + +message CAuction_PlaceBid_Response { +} + +service Auction { + rpc CancelBid (.CAuction_CancelBid_Request) returns (.CAuction_CancelBid_Response); + rpc GetAllItems (.CAuction_GetAllItems_Request) returns (.CAuction_GetAllItems_Response); + rpc GetBidsForItem (.CAuction_GetBidsForItem_Request) returns (.CAuction_GetBidsForItem_Response); + rpc GetBidsForUser (.CAuction_GetBidsForUser_Request) returns (.CAuction_GetBidsForUser_Response); + rpc GetItemDetails (.CAuction_GetItemDetails_Request) returns (.CAuction_GetItemDetails_Response); + rpc GetUserBidForItem (.CAuction_GetUserBidForItem_Request) returns (.CAuction_GetUserBidForItem_Response); + rpc PlaceBid (.CAuction_PlaceBid_Request) returns (.CAuction_PlaceBid_Response); +} + diff --git a/Protobufs/webui/service_authentication.proto b/Protobufs/webui/service_authentication.proto new file mode 100644 index 0000000..025744e --- /dev/null +++ b/Protobufs/webui/service_authentication.proto @@ -0,0 +1,223 @@ +import "common_base.proto"; +import "common.proto"; + +message CAuthentication_AccessToken_GenerateForApp_Request { + optional string refresh_token = 1; + optional fixed64 steamid = 2; + optional int32 renewal_type = 3 [(.description) = "enum"]; +} + +message CAuthentication_AccessToken_GenerateForApp_Response { + optional string access_token = 1; + optional string refresh_token = 2; +} + +message CAuthentication_AllowedConfirmation { + optional int32 confirmation_type = 1 [(.description) = "enum"]; + optional string associated_message = 2; +} + +message CAuthentication_BeginAuthSessionViaCredentials_Request { + optional string device_friendly_name = 1; + optional string account_name = 2; + optional string encrypted_password = 3; + optional uint64 encryption_timestamp = 4; + optional bool remember_login = 5; + optional int32 platform_type = 6 [(.description) = "enum"]; + optional int32 persistence = 7 [default = 1, (.description) = "enum"]; + optional string website_id = 8 [default = "Unknown"]; + optional .CAuthentication_DeviceDetails device_details = 9; + optional string guard_data = 10; + optional uint32 language = 11; + optional int32 qos_level = 12 [default = 2]; +} + +message CAuthentication_BeginAuthSessionViaCredentials_Response { + optional uint64 client_id = 1; + optional bytes request_id = 2; + optional float interval = 3; + repeated .CAuthentication_AllowedConfirmation allowed_confirmations = 4; + optional uint64 steamid = 5; + optional string weak_token = 6; + optional string agreement_session_url = 7; + optional string extended_error_message = 8; +} + +message CAuthentication_BeginAuthSessionViaQR_Request { + optional string device_friendly_name = 1; + optional int32 platform_type = 2 [(.description) = "enum"]; + optional .CAuthentication_DeviceDetails device_details = 3; + optional string website_id = 4 [default = "Unknown"]; +} + +message CAuthentication_BeginAuthSessionViaQR_Response { + optional uint64 client_id = 1; + optional string challenge_url = 2; + optional bytes request_id = 3; + optional float interval = 4; + repeated .CAuthentication_AllowedConfirmation allowed_confirmations = 5; + optional int32 version = 6; +} + +message CAuthentication_DeviceDetails { + optional string device_friendly_name = 1; + optional int32 platform_type = 2 [(.description) = "enum"]; + optional int32 os_type = 3; + optional uint32 gaming_device_type = 4; + optional uint32 client_count = 5; + optional bytes machine_id = 6; +} + +message CAuthentication_GetAuthSessionInfo_Request { + optional uint64 client_id = 1; +} + +message CAuthentication_GetAuthSessionInfo_Response { + optional string ip = 1; + optional string geoloc = 2; + optional string city = 3; + optional string state = 4; + optional string country = 5; + optional int32 platform_type = 6 [(.description) = "enum"]; + optional string device_friendly_name = 7; + optional int32 version = 8; + optional int32 login_history = 9 [(.description) = "enum"]; + optional bool requestor_location_mismatch = 10; + optional bool high_usage_login = 11; + optional int32 requested_persistence = 12 [(.description) = "enum"]; +} + +message CAuthentication_GetAuthSessionsForAccount_Request { +} + +message CAuthentication_GetAuthSessionsForAccount_Response { + repeated uint64 client_ids = 1; +} + +message CAuthentication_GetPasswordRSAPublicKey_Request { + optional string account_name = 1; +} + +message CAuthentication_GetPasswordRSAPublicKey_Response { + optional string publickey_mod = 1; + optional string publickey_exp = 2; + optional uint64 timestamp = 3; +} + +message CAuthentication_MigrateMobileSession_Request { + optional fixed64 steamid = 1; + optional string token = 2; + optional string signature = 3; +} + +message CAuthentication_MigrateMobileSession_Response { + optional string refresh_token = 1; + optional string access_token = 2; +} + +message CAuthentication_PollAuthSessionStatus_Request { + optional uint64 client_id = 1; + optional bytes request_id = 2; + optional fixed64 token_to_revoke = 3; +} + +message CAuthentication_PollAuthSessionStatus_Response { + optional uint64 new_client_id = 1; + optional string new_challenge_url = 2; + optional string refresh_token = 3; + optional string access_token = 4; + optional bool had_remote_interaction = 5; + optional string account_name = 6; + optional string new_guard_data = 7; + optional string agreement_session_url = 8; +} + +message CAuthentication_RefreshToken_Enumerate_Request { +} + +message CAuthentication_RefreshToken_Enumerate_Response { + repeated .CAuthentication_RefreshToken_Enumerate_Response_RefreshTokenDescription refresh_tokens = 1; + optional fixed64 requesting_token = 2; +} + +message CAuthentication_RefreshToken_Enumerate_Response_RefreshTokenDescription { + optional fixed64 token_id = 1; + optional string token_description = 2; + optional uint32 time_updated = 3; + optional int32 platform_type = 4 [(.description) = "enum"]; + optional bool logged_in = 5; + optional uint32 os_platform = 6; + optional uint32 auth_type = 7; + optional uint32 gaming_device_type = 8; + optional .CAuthentication_RefreshToken_Enumerate_Response_TokenUsageEvent first_seen = 9; + optional .CAuthentication_RefreshToken_Enumerate_Response_TokenUsageEvent last_seen = 10; + optional int32 os_type = 11; + optional int32 authentication_type = 12 [(.description) = "enum"]; +} + +message CAuthentication_RefreshToken_Enumerate_Response_TokenUsageEvent { + optional uint32 time = 1; + optional .CMsgIPAddress ip = 2; + optional string locale = 3; + optional string country = 4; + optional string state = 5; + optional string city = 6; +} + +message CAuthentication_RefreshToken_Revoke_Request { + optional fixed64 token_id = 1; + optional fixed64 steamid = 2; + optional int32 revoke_action = 3 [default = 1, (.description) = "enum"]; + optional bytes signature = 4; +} + +message CAuthentication_RefreshToken_Revoke_Response { +} + +message CAuthentication_Token_Revoke_Request { + optional string token = 1; + optional int32 revoke_action = 2 [default = 1, (.description) = "enum"]; +} + +message CAuthentication_Token_Revoke_Response { +} + +message CAuthentication_UpdateAuthSessionWithMobileConfirmation_Request { + optional int32 version = 1; + optional uint64 client_id = 2; + optional fixed64 steamid = 3; + optional bytes signature = 4; + optional bool confirm = 5 [default = false]; + optional int32 persistence = 6 [default = 1, (.description) = "enum"]; +} + +message CAuthentication_UpdateAuthSessionWithMobileConfirmation_Response { +} + +message CAuthentication_UpdateAuthSessionWithSteamGuardCode_Request { + optional uint64 client_id = 1; + optional fixed64 steamid = 2; + optional string code = 3; + optional int32 code_type = 4 [(.description) = "enum"]; +} + +message CAuthentication_UpdateAuthSessionWithSteamGuardCode_Response { + optional string agreement_session_url = 7; +} + +service Authentication { + rpc BeginAuthSessionViaCredentials (.CAuthentication_BeginAuthSessionViaCredentials_Request) returns (.CAuthentication_BeginAuthSessionViaCredentials_Response); + rpc BeginAuthSessionViaQR (.CAuthentication_BeginAuthSessionViaQR_Request) returns (.CAuthentication_BeginAuthSessionViaQR_Response); + rpc EnumerateTokens (.CAuthentication_RefreshToken_Enumerate_Request) returns (.CAuthentication_RefreshToken_Enumerate_Response); + rpc GenerateAccessTokenForApp (.CAuthentication_AccessToken_GenerateForApp_Request) returns (.CAuthentication_AccessToken_GenerateForApp_Response); + rpc GetAuthSessionInfo (.CAuthentication_GetAuthSessionInfo_Request) returns (.CAuthentication_GetAuthSessionInfo_Response); + rpc GetAuthSessionsForAccount (.CAuthentication_GetAuthSessionsForAccount_Request) returns (.CAuthentication_GetAuthSessionsForAccount_Response); + rpc GetPasswordRSAPublicKey (.CAuthentication_GetPasswordRSAPublicKey_Request) returns (.CAuthentication_GetPasswordRSAPublicKey_Response); + rpc MigrateMobileSession (.CAuthentication_MigrateMobileSession_Request) returns (.CAuthentication_MigrateMobileSession_Response); + rpc PollAuthSessionStatus (.CAuthentication_PollAuthSessionStatus_Request) returns (.CAuthentication_PollAuthSessionStatus_Response); + rpc RevokeRefreshToken (.CAuthentication_RefreshToken_Revoke_Request) returns (.CAuthentication_RefreshToken_Revoke_Response); + rpc RevokeToken (.CAuthentication_Token_Revoke_Request) returns (.CAuthentication_Token_Revoke_Response); + rpc UpdateAuthSessionWithMobileConfirmation (.CAuthentication_UpdateAuthSessionWithMobileConfirmation_Request) returns (.CAuthentication_UpdateAuthSessionWithMobileConfirmation_Response); + rpc UpdateAuthSessionWithSteamGuardCode (.CAuthentication_UpdateAuthSessionWithSteamGuardCode_Request) returns (.CAuthentication_UpdateAuthSessionWithSteamGuardCode_Response); +} + diff --git a/Protobufs/webui/service_authenticationsupport.proto b/Protobufs/webui/service_authenticationsupport.proto new file mode 100644 index 0000000..30d9b44 --- /dev/null +++ b/Protobufs/webui/service_authenticationsupport.proto @@ -0,0 +1,83 @@ +import "common.proto"; +import "common_base.proto"; + +message CAuthenticationSupport_GetTokenHistory_Request { + optional fixed64 token_id = 1; +} + +message CAuthenticationSupport_GetTokenHistory_Response { + repeated .CSupportRefreshTokenAudit history = 1; +} + +message CAuthenticationSupport_MarkTokenCompromised_Request { + optional fixed64 steamid = 1; + optional fixed64 token_id = 2; +} + +message CAuthenticationSupport_MarkTokenCompromised_Response { +} + +message CAuthenticationSupport_QueryRefreshTokenByID_Request { + optional fixed64 token_id = 1; +} + +message CAuthenticationSupport_QueryRefreshTokenByID_Response { + repeated .CSupportRefreshTokenDescription refresh_tokens = 1; +} + +message CAuthenticationSupport_QueryRefreshTokensByAccount_Request { + optional fixed64 steamid = 1; + optional bool include_revoked_tokens = 2; +} + +message CAuthenticationSupport_QueryRefreshTokensByAccount_Response { + repeated .CSupportRefreshTokenDescription refresh_tokens = 1; + optional int32 last_token_reset = 2; +} + +message CAuthenticationSupport_RevokeToken_Request { + optional fixed64 token_id = 1; + optional fixed64 steamid = 2; +} + +message CAuthenticationSupport_RevokeToken_Response { +} + +message CSupportRefreshTokenAudit { + optional int32 action = 1; + optional uint32 time = 2; + optional .CMsgIPAddress ip = 3; + optional fixed64 actor = 4; +} + +message CSupportRefreshTokenDescription { + optional fixed64 token_id = 1; + optional string token_description = 2; + optional uint32 time_updated = 3; + optional int32 platform_type = 4 [(.description) = "enum"]; + optional int32 token_state = 5 [(.description) = "enum"]; + optional fixed64 owner_steamid = 6; + optional uint32 os_platform = 7; + optional int32 os_type = 8; + optional uint32 auth_type = 9; + optional uint32 gaming_device_type = 10; + optional .CSupportRefreshTokenDescription_TokenUsageEvent first_seen = 11; + optional .CSupportRefreshTokenDescription_TokenUsageEvent last_seen = 12; +} + +message CSupportRefreshTokenDescription_TokenUsageEvent { + optional uint32 time = 1; + optional .CMsgIPAddress ip = 2; + optional string country = 3; + optional string state = 4; + optional string city = 5; +} + +service AuthenticationSupport { + rpc GetTokenHistory (.CAuthenticationSupport_GetTokenHistory_Request) returns (.CAuthenticationSupport_GetTokenHistory_Response); + rpc MarkTokenCompromised (.CAuthenticationSupport_MarkTokenCompromised_Request) returns (.CAuthenticationSupport_MarkTokenCompromised_Response); + rpc QueryRefreshTokenByID (.CAuthenticationSupport_QueryRefreshTokenByID_Request) returns (.CAuthenticationSupport_QueryRefreshTokenByID_Response); + rpc QueryRefreshTokensByAccount (.CAuthenticationSupport_QueryRefreshTokensByAccount_Request) returns (.CAuthenticationSupport_QueryRefreshTokensByAccount_Response); + rpc RevokeToken (.CAuthenticationSupport_RevokeToken_Request) returns (.CAuthenticationSupport_RevokeToken_Response); +} + diff --git a/Protobufs/webui/service_bluetoothmanager.proto b/Protobufs/webui/service_bluetoothmanager.proto new file mode 100644 index 0000000..f715621 --- /dev/null +++ b/Protobufs/webui/service_bluetoothmanager.proto @@ -0,0 +1,132 @@ +import "common_base.proto"; + +message CBluetoothManager_CancelPair_Request { + optional uint32 device = 1; +} + +message CBluetoothManager_CancelPair_Response { +} + +message CBluetoothManager_Connect_Request { + optional uint32 device = 1; +} + +message CBluetoothManager_Connect_Response { +} + +message CBluetoothManager_Disconnect_Request { + optional uint32 device = 1; +} + +message CBluetoothManager_Disconnect_Response { +} + +message CBluetoothManager_Forget_Request { + optional uint32 device = 1; +} + +message CBluetoothManager_Forget_Response { +} + +message CBluetoothManager_GetAdapterDetails_Request { + optional uint32 id = 1; +} + +message CBluetoothManager_GetAdapterDetails_Response { + optional .CMsgBluetoothManagerAdapterDetails adapter = 1; +} + +message CBluetoothManager_GetDeviceDetails_Request { + optional uint32 id = 1; +} + +message CBluetoothManager_GetDeviceDetails_Response { + optional .CMsgBluetoothManagerDeviceDetails device = 1; +} + +message CBluetoothManager_GetState_Request { +} + +message CBluetoothManager_GetState_Response { + optional bool is_service_available = 1; + optional bool is_enabled = 2; + optional bool is_discovering = 3; + repeated .CMsgBluetoothManagerAdapterInfo adapters = 4; + repeated .CMsgBluetoothManagerDeviceInfo devices = 5; +} + +message CBluetoothManager_Pair_Request { + optional uint32 device = 1; +} + +message CBluetoothManager_Pair_Response { +} + +message CBluetoothManager_SetDiscovering_Request { + optional bool enabled = 1; +} + +message CBluetoothManager_SetDiscovering_Response { +} + +message CBluetoothManager_SetWakeAllowed_Request { + optional uint32 device = 1; + optional bool allowed = 2; +} + +message CBluetoothManager_SetWakeAllowed_Response { +} + +message CBluetoothManager_StateChanged_Notification { +} + +message CMsgBluetoothManagerAdapterDetails { + optional uint32 id = 1 [default = 0]; + optional string mac = 2; + optional string name = 3; + optional bool is_enabled = 4; + optional bool is_discovering = 5; +} + +message CMsgBluetoothManagerAdapterInfo { + optional uint32 id = 1; +} + +message CMsgBluetoothManagerDeviceDetails { + optional uint32 id = 1 [default = 0]; + optional uint32 adapter_id = 2 [default = 0]; + optional int32 etype = 3 [(.description) = "enum"]; + optional string mac = 4; + optional string name = 5; + optional bool is_connected = 6; + optional bool is_paired = 7; + optional bool is_pairing = 8; + optional bool wake_allowed = 9; + optional bool wake_allowed_supported = 10; + optional int32 battery_percent = 11; + optional bool operation_in_progress = 12; +} + +message CMsgBluetoothManagerDeviceInfo { + optional uint32 id = 1; + optional bool should_hide_hint = 2; + optional int32 etype = 3 [(.description) = "enum"]; + optional bool is_connected = 4; + optional bool is_paired = 5; + optional int32 strength_raw = 6; +} + +service BluetoothManager { + rpc CancelPair (.CBluetoothManager_CancelPair_Request) returns (.CBluetoothManager_CancelPair_Response); + rpc Connect (.CBluetoothManager_Connect_Request) returns (.CBluetoothManager_Connect_Response); + rpc Disconnect (.CBluetoothManager_Disconnect_Request) returns (.CBluetoothManager_Disconnect_Response); + rpc Forget (.CBluetoothManager_Forget_Request) returns (.CBluetoothManager_Forget_Response); + rpc GetAdapterDetails (.CBluetoothManager_GetAdapterDetails_Request) returns (.CBluetoothManager_GetAdapterDetails_Response); + rpc GetDeviceDetails (.CBluetoothManager_GetDeviceDetails_Request) returns (.CBluetoothManager_GetDeviceDetails_Response); + rpc GetState (.CBluetoothManager_GetState_Request) returns (.CBluetoothManager_GetState_Response); + rpc NotifyStateChanged (.CBluetoothManager_StateChanged_Notification) returns (.NoResponse); + rpc Pair (.CBluetoothManager_Pair_Request) returns (.CBluetoothManager_Pair_Response); + rpc SetDiscovering (.CBluetoothManager_SetDiscovering_Request) returns (.CBluetoothManager_SetDiscovering_Response); + rpc SetWakeAllowed (.CBluetoothManager_SetWakeAllowed_Request) returns (.CBluetoothManager_SetWakeAllowed_Response); +} + diff --git a/Protobufs/webui/service_broadcast.proto b/Protobufs/webui/service_broadcast.proto new file mode 100644 index 0000000..f950323 --- /dev/null +++ b/Protobufs/webui/service_broadcast.proto @@ -0,0 +1,562 @@ +import "common_base.proto"; + +message CBroadcast_BeginBroadcastSession_Request { + optional int32 permission = 1; + optional uint64 gameid = 2; + optional uint64 client_instance_id = 3; + optional string title = 4; + optional uint32 cellid = 5; + optional uint64 rtmp_token = 6; + optional bool thumbnail_upload = 7; + optional string client_beta = 8; + optional uint32 sysid = 9; + optional bool allow_webrtc = 10; +} + +message CBroadcast_BeginBroadcastSession_Response { + optional fixed64 broadcast_id = 1; + optional string thumbnail_upload_address = 2; + optional string thumbnail_upload_token = 3; + optional uint32 thumbnail_interval_seconds = 4; + optional uint32 heartbeat_interval_seconds = 5; +} + +message CBroadcast_BroadcastChannelLive_Notification { + optional fixed64 broadcast_channel_id = 1; + optional string broadcast_channel_name = 2; + optional string broadcast_channel_avatar = 3; +} + +message CBroadcast_BroadcastStatus_Notification { + optional fixed64 broadcast_id = 1; + optional int32 num_viewers = 2; +} + +message CBroadcast_BroadcastUploadStarted_Notification { + optional fixed64 broadcast_id = 1; + optional string upload_token = 2; + optional string upload_address = 3; + optional string http_address = 4; + optional fixed64 broadcast_upload_id = 5; + optional uint32 heartbeat_interval_seconds = 6; + optional bool is_rtmp = 7; +} + +message CBroadcast_BroadcastViewerState_Notification { + optional fixed64 steamid = 1; + optional int32 state = 2 [(.description) = "enum"]; +} + +message CBroadcast_EndBroadcastSession_Request { + optional fixed64 broadcast_id = 1; +} + +message CBroadcast_EndBroadcastSession_Response { +} + +message CBroadcast_GetBroadcastChatInfo_Request { + optional fixed64 steamid = 1; + optional fixed64 broadcast_id = 2; + optional uint32 client_ip = 3; + optional uint32 client_cell = 4; +} + +message CBroadcast_GetBroadcastChatInfo_Response { + optional fixed64 chat_id = 1; + optional string view_url_template = 3; + repeated uint32 flair_group_ids = 4; +} + +message CBroadcast_GetBroadcastChatUserNames_Request { + optional fixed64 chat_id = 1; + repeated fixed64 user_steamid = 2; +} + +message CBroadcast_GetBroadcastChatUserNames_Response { + repeated .CBroadcast_GetBroadcastChatUserNames_Response_PersonaName persona_names = 1; +} + +message CBroadcast_GetBroadcastChatUserNames_Response_PersonaName { + optional fixed64 steam_id = 1; + optional string persona = 2; +} + +message CBroadcast_GetBroadcastStatus_Request { + optional fixed64 steamid = 1; + optional fixed64 broadcast_id = 2; +} + +message CBroadcast_GetBroadcastStatus_Response { + optional uint64 gameid = 1; + optional string title = 2; + optional uint32 num_viewers = 3; + optional int32 permission = 4; + optional bool is_rtmp = 5; + optional int32 seconds_delay = 6; + optional bool is_publisher = 7; + optional string thumbnail_url = 8; + optional int32 update_interval = 9; + optional bool is_uploading = 10; + optional uint32 duration = 11; + optional bool is_replay = 12; + optional bool is_capturing_vod = 13; + optional bool is_store_whitelisted = 14; +} + +message CBroadcast_GetBroadcastThumbnail_Request { + optional fixed64 steamid = 1; + optional fixed64 broadcast_id = 2; +} + +message CBroadcast_GetBroadcastThumbnail_Response { + optional string thumbnail_url = 1; + optional int32 update_interval = 2; + optional int32 num_viewers = 3; + optional int32 duration = 4; +} + +message CBroadcast_GetBroadcastUploadStats_Request { + optional uint32 row_limit = 1 [default = 100]; + optional uint32 start_time = 2 [default = 0]; + optional uint64 upload_id = 3; + optional fixed64 steamid = 4; + optional uint64 session_id = 5; +} + +message CBroadcast_GetBroadcastUploadStats_Response { + repeated .CBroadcast_GetBroadcastUploadStats_Response_UploadStats upload_stats = 1; +} + +message CBroadcast_GetBroadcastUploadStats_Response_UploadStats { + optional uint32 upload_result = 1; + optional uint32 time_stopped = 2; + optional uint32 seconds_uploaded = 3; + optional uint32 max_viewers = 4; + optional uint32 resolution_x = 5; + optional uint32 resolution_y = 6; + optional uint32 avg_bandwidth = 7; + optional uint64 total_bytes = 8; + optional uint32 app_id = 9; + optional uint32 total_unique_viewers = 10; + optional uint64 total_seconds_watched = 11; + optional uint32 time_started = 12; + optional uint64 upload_id = 13; + optional string local_address = 14; + optional string remote_address = 15; + optional uint32 frames_per_second = 16; + optional uint32 num_representations = 17; + optional string app_name = 18; + optional bool is_replay = 19; + optional uint64 session_id = 20; +} + +message CBroadcast_GetBroadcastViewerStats_Request { + optional uint64 upload_id = 1; + optional fixed64 steamid = 2; +} + +message CBroadcast_GetBroadcastViewerStats_Response { + repeated .CBroadcast_GetBroadcastViewerStats_Response_ViewerStats viewer_stats = 1; + repeated .CBroadcast_GetBroadcastViewerStats_Response_CountryStats country_stats = 2; +} + +message CBroadcast_GetBroadcastViewerStats_Response_CountryStats { + optional string country_code = 1; + optional uint32 num_viewers = 2; +} + +message CBroadcast_GetBroadcastViewerStats_Response_ViewerStats { + optional uint32 time = 1; + optional uint32 num_viewers = 2; +} + +message CBroadcast_GetBuildClipStatus_Request { + optional fixed64 broadcast_clip_id = 1; +} + +message CBroadcast_GetBuildClipStatus_Response { +} + +message CBroadcast_GetClipDetails_Request { + optional uint64 broadcast_clip_id = 1; +} + +message CBroadcast_GetClipDetails_Response { + optional uint64 broadcast_clip_id = 1; + optional uint64 video_id = 2; + optional uint64 channel_id = 3; + optional uint32 app_id = 4; + optional uint32 accountid_broadcaster = 5; + optional uint32 accountid_clipmaker = 6; + optional string video_description = 7; + optional uint32 start_time = 8; + optional uint32 length_milliseconds = 9; + optional string thumbnail_path = 10; +} + +message CBroadcast_GetRTMPInfo_Request { + optional uint32 ip = 1; + optional fixed64 steamid = 2; +} + +message CBroadcast_GetRTMPInfo_Response { + optional int32 broadcast_permission = 1; + optional string rtmp_host = 2; + optional string rtmp_token = 3; + optional int32 broadcast_delay = 4; + optional uint32 app_id = 5; + optional uint32 required_app_id = 6; + optional int32 broadcast_chat_permission = 7 [(.description) = "enum"]; + optional int32 broadcast_buffer = 8; + optional fixed64 steamid = 9; + optional uint32 chat_rate_limit = 10; + optional bool enable_replay = 11; + optional bool is_partner_chat_only = 12; + optional string wordban_list = 13; +} + +message CBroadcast_HeartbeatBroadcast_Notification { + optional fixed64 steamid = 1; + optional fixed64 broadcast_id = 2; + optional fixed64 viewer_token = 3; + optional uint32 representation = 4; +} + +message CBroadcast_InviteToBroadcast_Request { + optional fixed64 steamid = 1; + optional bool approval_response = 2; +} + +message CBroadcast_InviteToBroadcast_Response { + optional bool success = 1; +} + +message CBroadcast_MuteBroadcastChatUser_Request { + optional fixed64 chat_id = 1; + optional fixed64 user_steamid = 2; + optional bool muted = 3; +} + +message CBroadcast_MuteBroadcastChatUser_Response { +} + +message CBroadcast_PostChatMessage_Request { + optional fixed64 chat_id = 1; + optional string message = 2; + optional uint32 instance_id = 3; + optional uint32 language = 4 [default = 0]; + optional string country_code = 5; +} + +message CBroadcast_PostChatMessage_Response { + optional string persona_name = 1; + optional bool in_game = 2; + optional int32 result = 3; + optional int32 cooldown_time_seconds = 4; +} + +message CBroadcast_RemoveUserChatText_Request { + optional fixed64 chat_id = 1; + optional fixed64 user_steamid = 2; +} + +message CBroadcast_RemoveUserChatText_Response { +} + +message CBroadcast_SendBroadcastStateToServer_Request { + optional int32 permission = 1; + optional uint64 gameid = 2; + optional string title = 3; + optional string game_data_config = 4; +} + +message CBroadcast_SendBroadcastStateToServer_Response { +} + +message CBroadcast_SendThumbnailToRelay_Notification { + optional string thumbnail_upload_token = 1; + optional fixed64 thumbnail_broadcast_session_id = 2; + optional bytes thumbnail_data = 3; + optional uint32 thumbnail_width = 4; + optional uint32 thumbnail_height = 5; +} + +message CBroadcast_SessionClosed_Notification { + optional fixed64 broadcast_id = 1; +} + +message CBroadcast_SetClipDetails_Request { + optional uint64 broadcast_clip_id = 1; + optional uint32 start_time = 2; + optional uint32 end_time = 3; + optional string video_description = 4; +} + +message CBroadcast_SetClipDetails_Response { +} + +message CBroadcast_SetRTMPInfo_Request { + optional int32 broadcast_permission = 1; + optional bool update_token = 2; + optional int32 broadcast_delay = 3; + optional uint32 app_id = 4; + optional uint32 required_app_id = 5; + optional int32 broadcast_chat_permission = 6 [default = 0, (.description) = "enum"]; + optional int32 broadcast_buffer = 7; + optional fixed64 steamid = 8; + optional uint32 chat_rate_limit = 9; + optional bool enable_replay = 10; + optional bool is_partner_chat_only = 11; + optional string wordban_list = 12; +} + +message CBroadcast_SetRTMPInfo_Response { +} + +message CBroadcast_StartBroadcastUpload_Request { + optional fixed64 broadcast_id = 1; + optional uint32 cellid = 2; + optional bool as_rtmp = 3; + optional uint32 delay_seconds = 4; + optional uint64 rtmp_token = 5 [default = 0]; + optional uint32 upload_ip_address = 6; + optional bool is_replay = 7; + optional uint32 sysid = 8; +} + +message CBroadcast_StartBroadcastUpload_Response { + optional string upload_token = 1; + optional string upload_address = 2; + optional fixed64 broadcast_upload_id = 3; + optional bool enable_replay = 6; + optional string http_address = 7; +} + +message CBroadcast_StartBuildClip_Request { + optional fixed64 steamid = 1; + optional fixed64 broadcast_session_id = 2; + optional int32 first_segment = 3; + optional int32 num_segments = 4; + optional string clip_description = 5; +} + +message CBroadcast_StartBuildClip_Response { + optional fixed64 broadcast_clip_id = 1; +} + +message CBroadcast_StopBroadcastUpload_Notification { + optional fixed64 broadcast_id = 1; + optional fixed64 broadcast_relay_id = 2; + optional uint32 upload_result = 3; + optional bool too_many_poor_uploads = 4; +} + +message CBroadcast_StopWatchingBroadcast_Notification { + optional fixed64 steamid = 1; + optional fixed64 broadcast_id = 2; + optional fixed64 viewer_token = 3; +} + +message CBroadcast_UpdateChatMessageFlair_Request { + optional fixed64 chat_id = 1; + optional string flair = 2; +} + +message CBroadcast_UpdateChatMessageFlair_Response { + optional int32 result = 1; + optional fixed64 chat_id = 2; + optional string flair = 3; +} + +message CBroadcast_ViewerBroadcastInvite_Notification { + optional fixed64 broadcaster_steamid = 1; +} + +message CBroadcast_WaitingBroadcastViewer_Notification { + optional fixed64 broadcast_id = 1; +} + +message CBroadcast_WatchBroadcast_Request { + optional fixed64 steamid = 1; + optional fixed64 existing_broadcast_id = 2; + optional fixed64 viewer_token = 3; + optional uint32 client_ip = 4; + optional uint32 client_cell = 5; + optional int32 watch_location = 6 [(.description) = "enum"]; + optional bool is_webrtc = 7; +} + +message CBroadcast_WatchBroadcast_Response { + optional int32 response = 1 [(.description) = "enum"]; + optional string mpd_url = 2; + optional fixed64 broadcast_id = 3; + optional uint64 gameid = 4; + optional string title = 5; + optional uint32 num_viewers = 6; + optional int32 permission = 7; + optional bool is_rtmp = 8; + optional int32 seconds_delay = 9; + optional fixed64 viewer_token = 10; + optional string hls_m3u8_master_url = 11; + optional int32 heartbeat_interval = 12; + optional string thumbnail_url = 13; + optional bool is_webrtc = 14; + optional fixed64 webrtc_session_id = 15; + optional string webrtc_offer_sdp = 16; + optional string webrtc_turn_server = 17; + optional bool is_replay = 18; + optional int32 duration = 19; + optional string cdn_auth_url_parameters = 20; +} + +message CBroadcast_WebRTC_Candidate { + optional string sdp_mid = 1; + optional int32 sdp_mline_index = 2; + optional string candidate = 3; +} + +message CBroadcast_WebRTCAddHostCandidate_Request { + optional fixed64 webrtc_session_id = 1; + optional .CBroadcast_WebRTC_Candidate candidate = 2; +} + +message CBroadcast_WebRTCAddHostCandidate_Response { +} + +message CBroadcast_WebRTCAddViewerCandidate_Notification { + optional fixed64 broadcast_session_id = 1; + optional fixed64 webrtc_session_id = 2; + optional .CBroadcast_WebRTC_Candidate candidate = 3; +} + +message CBroadcast_WebRTCAddViewerCandidate_Request { + optional fixed64 broadcaster_steamid = 1; + optional fixed64 webrtc_session_id = 2; + optional .CBroadcast_WebRTC_Candidate candidate = 3; +} + +message CBroadcast_WebRTCAddViewerCandidate_Response { +} + +message CBroadcast_WebRTCGetHostCandidates_Request { + optional fixed64 broadcaster_steamid = 1; + optional fixed64 webrtc_session_id = 2; + optional uint32 candidate_generation = 3; +} + +message CBroadcast_WebRTCGetHostCandidates_Response { + optional uint32 candidate_generation = 1; + repeated .CBroadcast_WebRTC_Candidate candidates = 2; +} + +message CBroadcast_WebRTCHaveTURNServer_Notification { + optional fixed64 broadcast_session_id = 1; + optional string turn_server = 2; +} + +message CBroadcast_WebRTCLookupTURNServer_Request { + optional uint32 cellid = 1; +} + +message CBroadcast_WebRTCLookupTURNServer_Response { + optional string turn_server = 1; +} + +message CBroadcast_WebRTCNeedTURNServer_Notification { + optional fixed64 broadcast_session_id = 1; +} + +message CBroadcast_WebRTCSetAnswer_Notification { + optional fixed64 broadcast_session_id = 1; + optional fixed64 webrtc_session_id = 2; + optional string answer = 3; +} + +message CBroadcast_WebRTCSetAnswer_Request { + optional fixed64 broadcaster_steamid = 1; + optional fixed64 webrtc_session_id = 2; + optional string answer = 3; +} + +message CBroadcast_WebRTCSetAnswer_Response { +} + +message CBroadcast_WebRTCStart_Notification { + optional fixed64 broadcast_session_id = 1; + optional fixed64 webrtc_session_id = 2; + optional fixed64 viewer_steamid = 3; + optional fixed64 viewer_token = 4; +} + +message CBroadcast_WebRTCStartResult_Request { + optional fixed64 webrtc_session_id = 1; + optional bool started = 2; + optional string offer = 3; + optional uint32 resolution_x = 4; + optional uint32 resolution_y = 5; + optional uint32 fps = 6; +} + +message CBroadcast_WebRTCStartResult_Response { +} + +message CBroadcast_WebRTCStopped_Request { + optional fixed64 webrtc_session_id = 1; +} + +message CBroadcast_WebRTCStopped_Response { +} + +service Broadcast { + rpc BeginBroadcastSession (.CBroadcast_BeginBroadcastSession_Request) returns (.CBroadcast_BeginBroadcastSession_Response); + rpc EndBroadcastSession (.CBroadcast_EndBroadcastSession_Request) returns (.CBroadcast_EndBroadcastSession_Response); + rpc GetBroadcastChatInfo (.CBroadcast_GetBroadcastChatInfo_Request) returns (.CBroadcast_GetBroadcastChatInfo_Response); + rpc GetBroadcastChatUserNames (.CBroadcast_GetBroadcastChatUserNames_Request) returns (.CBroadcast_GetBroadcastChatUserNames_Response); + rpc GetBroadcastStatus (.CBroadcast_GetBroadcastStatus_Request) returns (.CBroadcast_GetBroadcastStatus_Response); + rpc GetBroadcastThumbnail (.CBroadcast_GetBroadcastThumbnail_Request) returns (.CBroadcast_GetBroadcastThumbnail_Response); + rpc GetBroadcastUploadStats (.CBroadcast_GetBroadcastUploadStats_Request) returns (.CBroadcast_GetBroadcastUploadStats_Response); + rpc GetBroadcastViewerStats (.CBroadcast_GetBroadcastViewerStats_Request) returns (.CBroadcast_GetBroadcastViewerStats_Response); + rpc GetBuildClipStatus (.CBroadcast_GetBuildClipStatus_Request) returns (.CBroadcast_GetBuildClipStatus_Response); + rpc GetClipDetails (.CBroadcast_GetClipDetails_Request) returns (.CBroadcast_GetClipDetails_Response); + rpc GetRTMPInfo (.CBroadcast_GetRTMPInfo_Request) returns (.CBroadcast_GetRTMPInfo_Response); + rpc HeartbeatBroadcast (.CBroadcast_HeartbeatBroadcast_Notification) returns (.NoResponse); + rpc InviteToBroadcast (.CBroadcast_InviteToBroadcast_Request) returns (.CBroadcast_InviteToBroadcast_Response); + rpc MuteBroadcastChatUser (.CBroadcast_MuteBroadcastChatUser_Request) returns (.CBroadcast_MuteBroadcastChatUser_Response); + rpc NotifyBroadcastSessionHeartbeat (.NotImplemented) returns (.NoResponse); + rpc NotifyBroadcastUploadStop (.NotImplemented) returns (.NoResponse); + rpc NotifyWebRTCHaveTURNServer (.CBroadcast_WebRTCHaveTURNServer_Notification) returns (.NoResponse); + rpc PostChatMessage (.CBroadcast_PostChatMessage_Request) returns (.CBroadcast_PostChatMessage_Response); + rpc RemoveUserChatText (.CBroadcast_RemoveUserChatText_Request) returns (.CBroadcast_RemoveUserChatText_Response); + rpc SendBroadcastStateToServer (.CBroadcast_SendBroadcastStateToServer_Request) returns (.CBroadcast_SendBroadcastStateToServer_Response); + rpc SetClipDetails (.CBroadcast_SetClipDetails_Request) returns (.CBroadcast_SetClipDetails_Response); + rpc SetRTMPInfo (.CBroadcast_SetRTMPInfo_Request) returns (.CBroadcast_SetRTMPInfo_Response); + rpc StartBroadcastUpload (.CBroadcast_StartBroadcastUpload_Request) returns (.CBroadcast_StartBroadcastUpload_Response); + rpc StartBuildClip (.CBroadcast_StartBuildClip_Request) returns (.CBroadcast_StartBuildClip_Response); + rpc StopWatchingBroadcast (.CBroadcast_StopWatchingBroadcast_Notification) returns (.NoResponse); + rpc UpdateChatMessageFlair (.CBroadcast_UpdateChatMessageFlair_Request) returns (.CBroadcast_UpdateChatMessageFlair_Response); + rpc WatchBroadcast (.CBroadcast_WatchBroadcast_Request) returns (.CBroadcast_WatchBroadcast_Response); + rpc WebRTCAddHostCandidate (.CBroadcast_WebRTCAddHostCandidate_Request) returns (.CBroadcast_WebRTCAddHostCandidate_Response); + rpc WebRTCAddViewerCandidate (.CBroadcast_WebRTCAddViewerCandidate_Request) returns (.CBroadcast_WebRTCAddViewerCandidate_Response); + rpc WebRTCGetHostCandidates (.CBroadcast_WebRTCGetHostCandidates_Request) returns (.CBroadcast_WebRTCGetHostCandidates_Response); + rpc WebRTCLookupTURNServer (.CBroadcast_WebRTCLookupTURNServer_Request) returns (.CBroadcast_WebRTCLookupTURNServer_Response); + rpc WebRTCSetAnswer (.CBroadcast_WebRTCSetAnswer_Request) returns (.CBroadcast_WebRTCSetAnswer_Response); + rpc WebRTCStartResult (.CBroadcast_WebRTCStartResult_Request) returns (.CBroadcast_WebRTCStartResult_Response); + rpc WebRTCStopped (.CBroadcast_WebRTCStopped_Request) returns (.CBroadcast_WebRTCStopped_Response); +} + +service BroadcastClient { + rpc NotifyBroadcastChannelLive (.CBroadcast_BroadcastChannelLive_Notification) returns (.NoResponse); + rpc NotifyBroadcastStatus (.CBroadcast_BroadcastStatus_Notification) returns (.NoResponse); + rpc NotifyBroadcastUploadStarted (.CBroadcast_BroadcastUploadStarted_Notification) returns (.NoResponse); + rpc NotifyBroadcastViewerState (.CBroadcast_BroadcastViewerState_Notification) returns (.NoResponse); + rpc NotifySessionClosed (.CBroadcast_SessionClosed_Notification) returns (.NoResponse); + rpc NotifyStopBroadcastUpload (.CBroadcast_StopBroadcastUpload_Notification) returns (.NoResponse); + rpc NotifyViewerBroadcastInvite (.CBroadcast_ViewerBroadcastInvite_Notification) returns (.NoResponse); + rpc NotifyWaitingBroadcastViewer (.CBroadcast_WaitingBroadcastViewer_Notification) returns (.NoResponse); + rpc NotifyWebRTCAddViewerCandidate (.CBroadcast_WebRTCAddViewerCandidate_Notification) returns (.NoResponse); + rpc NotifyWebRTCNeedTURNServer (.CBroadcast_WebRTCNeedTURNServer_Notification) returns (.NoResponse); + rpc NotifyWebRTCSetAnswer (.CBroadcast_WebRTCSetAnswer_Notification) returns (.NoResponse); + rpc NotifyWebRTCStart (.CBroadcast_WebRTCStart_Notification) returns (.NoResponse); + rpc SendThumbnailToRelay (.CBroadcast_SendThumbnailToRelay_Notification) returns (.NoResponse); +} + diff --git a/Protobufs/webui/service_chat.proto b/Protobufs/webui/service_chat.proto new file mode 100644 index 0000000..83614ad --- /dev/null +++ b/Protobufs/webui/service_chat.proto @@ -0,0 +1,11 @@ + +message CChat_RequestFriendPersonaStates_Request { +} + +message CChat_RequestFriendPersonaStates_Response { +} + +service Chat { + rpc RequestFriendPersonaStates (.CChat_RequestFriendPersonaStates_Request) returns (.CChat_RequestFriendPersonaStates_Response); +} + diff --git a/Protobufs/webui/service_chatroom.proto b/Protobufs/webui/service_chatroom.proto new file mode 100644 index 0000000..7a2c90c --- /dev/null +++ b/Protobufs/webui/service_chatroom.proto @@ -0,0 +1,811 @@ +import "common.proto"; +import "common_base.proto"; + +message CChatMentions { + optional bool mention_all = 1; + optional bool mention_here = 2; + repeated uint32 mention_accountids = 3; +} + +message CChatRole { + optional uint64 role_id = 1; + optional string name = 2; + optional uint32 ordinal = 3; +} + +message CChatRoom_AckChatMessage_Notification { + optional uint64 chat_group_id = 1; + optional uint64 chat_id = 2; + optional uint32 timestamp = 3; +} + +message CChatRoom_AddRoleToUser_Request { + optional uint64 chat_group_id = 1; + optional uint64 role_id = 3; + optional fixed64 steamid = 4; +} + +message CChatRoom_AddRoleToUser_Response { +} + +message CChatRoom_ChatMessageModified_Notification { + optional uint64 chat_group_id = 1; + optional uint64 chat_id = 2; + repeated .CChatRoom_ChatMessageModified_Notification_ChatMessage messages = 3; +} + +message CChatRoom_ChatMessageModified_Notification_ChatMessage { + optional uint32 server_timestamp = 1; + optional uint32 ordinal = 2; + optional bool deleted = 3; +} + +message CChatRoom_ChatRoomGroupRoomsChange_Notification { + optional uint64 chat_group_id = 1; + optional uint64 default_chat_id = 2; + repeated .CChatRoomState chat_rooms = 3; +} + +message CChatRoom_ChatRoomHeaderState_Notification { + optional .CChatRoomGroupHeaderState header_state = 1; +} + +message CChatRoom_CreateChatRoom_Request { + optional uint64 chat_group_id = 1; + optional string name = 2; + optional bool allow_voice = 3; +} + +message CChatRoom_CreateChatRoom_Response { + optional .CChatRoomState chat_room = 1; +} + +message CChatRoom_CreateChatRoomGroup_Request { + optional fixed64 steamid_partner = 1; + optional fixed64 steamid_invited = 2; + optional string name = 3; + repeated fixed64 steamid_invitees = 4; + optional uint32 watching_broadcast_accountid = 6; + optional uint64 watching_broadcast_channel_id = 7; +} + +message CChatRoom_CreateChatRoomGroup_Response { + optional uint64 chat_group_id = 1; + optional .CChatRoomGroupState state = 2; + optional .CUserChatRoomGroupState user_chat_state = 3; +} + +message CChatRoom_CreateInviteLink_Request { + optional uint64 chat_group_id = 1; + optional uint32 seconds_valid = 2; + optional uint64 chat_id = 3; +} + +message CChatRoom_CreateInviteLink_Response { + optional string invite_code = 1; + optional uint32 seconds_valid = 2; +} + +message CChatRoom_CreateRole_Request { + optional uint64 chat_group_id = 1; + optional string name = 2; +} + +message CChatRoom_CreateRole_Response { + optional .CChatRoleActions actions = 2; +} + +message CChatRoom_DeleteChatMessages_Request { + optional uint64 chat_group_id = 1; + optional uint64 chat_id = 2; + repeated .CChatRoom_DeleteChatMessages_Request_Message messages = 3; +} + +message CChatRoom_DeleteChatMessages_Request_Message { + optional uint32 server_timestamp = 1; + optional uint32 ordinal = 2; +} + +message CChatRoom_DeleteChatMessages_Response { +} + +message CChatRoom_DeleteChatRoom_Request { + optional uint64 chat_group_id = 1; + optional uint64 chat_id = 2; +} + +message CChatRoom_DeleteChatRoom_Response { +} + +message CChatRoom_DeleteInviteLink_Request { + optional uint64 chat_group_id = 1; + optional string invite_code = 2; +} + +message CChatRoom_DeleteInviteLink_Response { +} + +message CChatRoom_DeleteRole_Request { + optional uint64 chat_group_id = 1; + optional uint64 role_id = 2; +} + +message CChatRoom_DeleteRole_Response { +} + +message CChatRoom_DeleteRoleFromUser_Request { + optional uint64 chat_group_id = 1; + optional uint64 role_id = 3; + optional fixed64 steamid = 4; +} + +message CChatRoom_DeleteRoleFromUser_Response { +} + +message CChatRoom_EndMiniGameForChatRoomGroup_Request { + optional uint64 chat_group_id = 1; + optional uint64 chat_id = 2; + optional uint64 minigame_id = 3; +} + +message CChatRoom_EndMiniGameForChatRoomGroup_Response { +} + +message CChatRoom_GetBanList_Request { + optional uint64 chat_group_id = 1; +} + +message CChatRoom_GetBanList_Response { + repeated .CChatRoom_GetBanList_Response_BanInfo bans = 1; +} + +message CChatRoom_GetBanList_Response_BanInfo { + optional uint32 accountid = 1; + optional uint32 accountid_actor = 2; + optional uint32 time_banned = 3; + optional string ban_reason = 4; +} + +message CChatRoom_GetChatRoomGroupState_Request { + optional uint64 chat_group_id = 1; +} + +message CChatRoom_GetChatRoomGroupState_Response { + optional .CChatRoomGroupState state = 1; +} + +message CChatRoom_GetChatRoomGroupSummary_Request { + optional uint64 chat_group_id = 1; +} + +message CChatRoom_GetInviteInfo_Request { + optional fixed64 steamid_invitee = 1; + optional uint64 chat_group_id = 2; + optional uint64 chat_id = 3; + optional string invite_code = 4; +} + +message CChatRoom_GetInviteInfo_Response { + optional .CChatRoom_GetChatRoomGroupSummary_Response group_summary = 1; + optional uint32 time_kick_expire = 2; + optional bool banned = 3; +} + +message CChatRoom_GetInviteLinkInfo_Request { + optional string invite_code = 1; +} + +message CChatRoom_GetInviteLinkInfo_Response { + optional fixed64 steamid_sender = 3; + optional uint32 time_expires = 4; + optional uint64 chat_id = 6; + optional .CChatRoom_GetChatRoomGroupSummary_Response group_summary = 8; + optional .CUserChatRoomGroupState user_chat_group_state = 9; + optional uint32 time_kick_expire = 10; + optional bool banned = 11; +} + +message CChatRoom_GetInviteLinksForGroup_Request { + optional uint64 chat_group_id = 1; +} + +message CChatRoom_GetInviteLinksForGroup_Response { + repeated .CChatRoom_GetInviteLinksForGroup_Response_LinkInfo invite_links = 1; +} + +message CChatRoom_GetInviteLinksForGroup_Response_LinkInfo { + optional string invite_code = 1; + optional fixed64 steamid_creator = 2; + optional uint32 time_expires = 3; + optional uint64 chat_id = 4; +} + +message CChatRoom_GetInviteList_Request { + optional uint64 chat_group_id = 1; +} + +message CChatRoom_GetInviteList_Response { + repeated .CChatRoomGroupInvite invites = 1; +} + +message CChatRoom_GetMessageHistory_Request { + optional uint64 chat_group_id = 1; + optional uint64 chat_id = 2; + optional uint32 last_time = 3; + optional uint32 last_ordinal = 4; + optional uint32 start_time = 5; + optional uint32 start_ordinal = 6; + optional uint32 max_count = 7; +} + +message CChatRoom_GetMessageHistory_Response { + repeated .CChatRoom_GetMessageHistory_Response_ChatMessage messages = 1; + optional bool more_available = 4; +} + +message CChatRoom_GetMessageHistory_Response_ChatMessage { + optional uint32 sender = 1; + optional uint32 server_timestamp = 2; + optional string message = 3; + optional uint32 ordinal = 4; + optional .ServerMessage server_message = 5; + optional bool deleted = 6; + repeated .CChatRoom_GetMessageHistory_Response_ChatMessage_MessageReaction reactions = 7; +} + +message CChatRoom_GetMessageHistory_Response_ChatMessage_MessageReaction { + optional int32 reaction_type = 1 [(.description) = "enum"]; + optional string reaction = 2; + optional uint32 num_reactors = 3; + optional bool has_user_reacted = 4; +} + +message CChatRoom_GetMessageReactionReactors_Request { + optional uint64 chat_group_id = 1; + optional uint64 chat_id = 2; + optional uint32 server_timestamp = 3; + optional uint32 ordinal = 4; + optional int32 reaction_type = 5 [(.description) = "enum"]; + optional string reaction = 6; + optional uint32 limit = 7; +} + +message CChatRoom_GetMessageReactionReactors_Response { + repeated uint32 reactors = 1; +} + +message CChatRoom_GetMyChatRoomGroups_Request { +} + +message CChatRoom_GetMyChatRoomGroups_Response { + repeated .CChatRoomSummaryPair chat_room_groups = 1; +} + +message CChatRoom_GetRoleActions_Request { + optional uint64 chat_group_id = 1; + optional uint64 role_id = 2; +} + +message CChatRoom_GetRoleActions_Response { + repeated .CChatRoleActions actions = 1; +} + +message CChatRoom_GetRoles_Request { + optional uint64 chat_group_id = 1; +} + +message CChatRoom_GetRoles_Response { + repeated .CChatRole roles = 1; +} + +message CChatRoom_GetRolesForUser_Request { + optional uint64 chat_group_id = 1; + optional fixed64 steamid = 3; +} + +message CChatRoom_GetRolesForUser_Response { + repeated uint64 role_ids = 1; +} + +message CChatRoom_IncomingChatMessage_Notification { + optional uint64 chat_group_id = 1; + optional uint64 chat_id = 2; + optional fixed64 steamid_sender = 3; + optional string message = 4; + optional uint32 timestamp = 5; + optional .CChatMentions mentions = 6; + optional uint32 ordinal = 7; + optional .ServerMessage server_message = 8; + optional string message_no_bbcode = 9; + optional string chat_name = 10; + optional string notification_key = 11; +} + +message CChatRoom_InviteFriendToChatRoomGroup_Request { + optional uint64 chat_group_id = 1; + optional fixed64 steamid = 2; + optional uint64 chat_id = 3; + optional bool skip_friendsui_check = 4; +} + +message CChatRoom_InviteFriendToChatRoomGroup_Response { +} + +message CChatRoom_JoinChatRoomGroup_Request { + optional uint64 chat_group_id = 1; + optional string invite_code = 2; + optional uint64 chat_id = 3; +} + +message CChatRoom_JoinChatRoomGroup_Response { + optional .CChatRoomGroupState state = 1; + optional .CUserChatRoomGroupState user_chat_state = 3; + optional uint64 join_chat_id = 4; + optional uint32 time_expire = 5; +} + +message CChatRoom_JoinMiniGameForChatRoomGroup_Request { + optional uint64 chat_group_id = 1; + optional uint64 chat_id = 2; +} + +message CChatRoom_JoinMiniGameForChatRoomGroup_Response { + optional uint64 minigame_id = 1; +} + +message CChatRoom_JoinVoiceChat_Request { + optional uint64 chat_group_id = 1; + optional uint64 chat_id = 2; +} + +message CChatRoom_JoinVoiceChat_Response { + optional uint64 voice_chatid = 1; +} + +message CChatRoom_KickUser_Request { + optional uint64 chat_group_id = 1; + optional fixed64 steamid = 2; + optional int32 expiration = 3; +} + +message CChatRoom_KickUser_Response { +} + +message CChatRoom_LeaveChatRoomGroup_Request { + optional uint64 chat_group_id = 1; +} + +message CChatRoom_LeaveChatRoomGroup_Response { +} + +message CChatRoom_LeaveVoiceChat_Request { + optional uint64 chat_group_id = 1; + optional uint64 chat_id = 2; +} + +message CChatRoom_LeaveVoiceChat_Response { +} + +message CChatRoom_MemberStateChange_Notification { + optional uint64 chat_group_id = 1; + optional .CChatRoomMember member = 2; + optional int32 change = 3 [(.description) = "enum"]; +} + +message CChatRoom_MessageReaction_Notification { + optional uint64 chat_group_id = 1; + optional uint64 chat_id = 2; + optional uint32 server_timestamp = 3; + optional uint32 ordinal = 4; + optional fixed64 reactor = 5; + optional int32 reaction_type = 6 [(.description) = "enum"]; + optional string reaction = 7; + optional bool is_add = 8; +} + +message CChatRoom_MuteUser_Request { + optional uint64 chat_group_id = 1; + optional fixed64 steamid = 2; + optional int32 expiration = 3; +} + +message CChatRoom_MuteUser_Response { +} + +message CChatRoom_NotifyShouldRejoinChatRoomVoiceChat_Notification { + optional uint64 chat_id = 1; + optional uint64 chat_group_id = 2; +} + +message CChatRoom_RenameChatRoom_Request { + optional uint64 chat_group_id = 1; + optional uint64 chat_id = 2; + optional string name = 3; +} + +message CChatRoom_RenameChatRoom_Response { +} + +message CChatRoom_RenameChatRoomGroup_Request { + optional uint64 chat_group_id = 1; + optional string name = 2; +} + +message CChatRoom_RenameChatRoomGroup_Response { + optional string name = 1; +} + +message CChatRoom_RenameRole_Request { + optional uint64 chat_group_id = 1; + optional uint64 role_id = 2; + optional string name = 3; +} + +message CChatRoom_RenameRole_Response { +} + +message CChatRoom_ReorderChatRoom_Request { + optional uint64 chat_group_id = 1; + optional uint64 chat_id = 2; + optional uint64 move_after_chat_id = 3; +} + +message CChatRoom_ReorderChatRoom_Response { +} + +message CChatRoom_ReorderRole_Request { + optional uint64 chat_group_id = 1; + optional uint64 role_id = 2; + optional uint32 ordinal = 3; +} + +message CChatRoom_ReorderRole_Response { +} + +message CChatRoom_ReplaceRoleActions_Request { + optional uint64 chat_group_id = 1; + optional uint64 role_id = 2; + optional .CChatRoleActions actions = 4; +} + +message CChatRoom_ReplaceRoleActions_Response { +} + +message CChatRoom_RevokeInvite_Request { + optional uint64 chat_group_id = 1; + optional fixed64 steamid = 2; +} + +message CChatRoom_RevokeInvite_Response { +} + +message CChatRoom_SaveChatRoomGroup_Request { + optional uint64 chat_group_id = 1; + optional string name = 2; +} + +message CChatRoom_SaveChatRoomGroup_Response { +} + +message CChatRoom_SearchMembers_Request { + optional uint64 chat_group_id = 1; + optional uint64 search_id = 2; + optional string search_text = 3; + optional int32 max_results = 4; +} + +message CChatRoom_SearchMembers_Response { + repeated .CChatRoom_SearchMembers_Response_MemberMatch matching_members = 1; + optional uint32 status_flags = 2; +} + +message CChatRoom_SearchMembers_Response_MemberMatch { + optional int32 accountid = 1; + optional .CMsgClientPersonaState_Friend persona = 2; +} + +message CChatRoom_SendChatMessage_Request { + optional uint64 chat_group_id = 1; + optional uint64 chat_id = 2; + optional string message = 3; + optional bool echo_to_sender = 4; +} + +message CChatRoom_SendChatMessage_Response { + optional string modified_message = 1; + optional uint32 server_timestamp = 2; + optional uint32 ordinal = 3; + optional string message_without_bb_code = 4; +} + +message CChatRoom_SetAppChatRoomGroupForceActive_Request { + optional uint64 chat_group_id = 1; + optional uint32 requesting_app_id = 2; +} + +message CChatRoom_SetAppChatRoomGroupForceActive_Response { + optional uint32 result = 1; + repeated uint32 accounts_in_channel = 2; +} + +message CChatRoom_SetAppChatRoomGroupStopForceActive_Notification { + optional uint64 chat_group_id = 1; + optional uint32 requesting_app_id = 2; +} + +message CChatRoom_SetChatRoomGroupAvatar_Request { + optional uint64 chat_group_id = 1; + optional bytes avatar_sha = 2; +} + +message CChatRoom_SetChatRoomGroupAvatar_Response { +} + +message CChatRoom_SetChatRoomGroupTagline_Request { + optional uint64 chat_group_id = 1; + optional string tagline = 2; +} + +message CChatRoom_SetChatRoomGroupTagline_Response { +} + +message CChatRoom_SetChatRoomGroupWatchingBroadcast_Request { + optional uint64 chat_group_id = 1; + optional uint32 watching_broadcast_accountid = 2; + optional uint64 watching_broadcast_channel_id = 3; +} + +message CChatRoom_SetChatRoomGroupWatchingBroadcast_Response { +} + +message CChatRoom_SetSessionActiveChatRoomGroups_Request { + repeated uint64 chat_group_ids = 1; + repeated uint64 chat_groups_data_requested = 2; + optional int32 virtualize_members_threshold = 3; +} + +message CChatRoom_SetSessionActiveChatRoomGroups_Response { + repeated .CChatRoomGroupState chat_states = 1; + repeated uint64 virtualize_members_chat_group_ids = 2; +} + +message CChatRoom_SetUserBanState_Request { + optional uint64 chat_group_id = 1; + optional fixed64 steamid = 2; + optional bool ban_state = 3; +} + +message CChatRoom_SetUserBanState_Response { +} + +message CChatRoom_SetUserChatGroupPreferences_Request { + optional uint64 chat_group_id = 1; + optional .CChatRoom_SetUserChatGroupPreferences_Request_ChatGroupPreferences chat_group_preferences = 2; + repeated .CChatRoom_SetUserChatGroupPreferences_Request_ChatRoomPreferences chat_room_preferences = 3; +} + +message CChatRoom_SetUserChatGroupPreferences_Request_ChatGroupPreferences { + optional int32 desktop_notification_level = 1 [(.description) = "enum"]; + optional int32 mobile_notification_level = 2 [(.description) = "enum"]; + optional bool unread_indicator_muted = 3; +} + +message CChatRoom_SetUserChatGroupPreferences_Request_ChatRoomPreferences { + optional uint64 chat_id = 1; + optional int32 desktop_notification_level = 2 [(.description) = "enum"]; + optional int32 mobile_notification_level = 3 [(.description) = "enum"]; + optional bool unread_indicator_muted = 4; +} + +message CChatRoom_SetUserChatGroupPreferences_Response { +} + +message CChatRoom_UpdateMemberListView_Notification { + optional uint64 chat_group_id = 1; + optional uint64 view_id = 2; + optional int32 start = 3; + optional int32 end = 4; + optional int32 client_changenumber = 5; + optional bool delete_view = 6; + repeated int32 persona_subscribe_accountids = 7; + repeated int32 persona_unsubscribe_accountids = 8; +} + +message CChatRoom_UpdateMessageReaction_Request { + optional uint64 chat_group_id = 1; + optional uint64 chat_id = 2; + optional uint32 server_timestamp = 3; + optional uint32 ordinal = 4; + optional int32 reaction_type = 5 [(.description) = "enum"]; + optional string reaction = 6; + optional bool is_add = 7; +} + +message CChatRoom_UpdateMessageReaction_Response { + optional uint32 num_reactors = 1; +} + +message CChatRoomClient_MemberListViewUpdated_Notification { + optional uint64 chat_group_id = 1; + optional uint64 view_id = 2; + optional .CChatRoomMemberListView view = 3; + repeated .CChatRoomClient_MemberListViewUpdated_Notification_MemberListViewEntry members = 4; + optional uint32 status_flags = 5; + optional .CChatRoomMemberSummaryCounts member_summary = 6; + repeated .CMsgClientPersonaState_Friend subscribed_personas = 7; +} + +message CChatRoomClient_MemberListViewUpdated_Notification_MemberListViewEntry { + optional int32 rank = 1; + optional uint32 accountid = 2; + optional .CMsgClientPersonaState_Friend persona = 3; +} + +message CChatRoomGroupHeaderState { + optional uint64 chat_group_id = 1; + optional string chat_name = 2; + optional uint32 clanid = 13; + optional uint32 accountid_owner = 14; + optional string tagline = 15; + optional bytes avatar_sha = 16; + optional uint64 default_role_id = 17; + repeated .CChatRole roles = 18; + repeated .CChatRoleActions role_actions = 19; + optional uint32 watching_broadcast_accountid = 20; + optional uint32 appid = 21; + repeated .CChatPartyBeacon party_beacons = 22; + optional uint64 watching_broadcast_channel_id = 23; + optional uint64 active_minigame_id = 24; + optional string avatar_ugc_url = 25; + optional bool disabled = 26; +} + +message CChatRoomGroupInvite { + optional uint32 accountid = 1; + optional uint32 accountid_actor = 2; + optional uint32 time_invited = 3; +} + +message CChatRoomGroupState { + optional .CChatRoomGroupHeaderState header_state = 1; + repeated .CChatRoomMember members = 2; + optional uint64 default_chat_id = 4; + repeated .CChatRoomState chat_rooms = 5; + repeated .CChatRoomMember kicked = 7; +} + +message CChatRoomMember { + optional uint32 accountid = 1; + optional int32 state = 3 [(.description) = "enum"]; + optional int32 rank = 4 [(.description) = "enum"]; + optional uint32 time_kick_expire = 6; + repeated uint64 role_ids = 7; +} + +message CChatRoomMemberListView { + optional int32 start = 3; + optional int32 end = 4; + optional int32 total_count = 5; + optional int32 client_changenumber = 6; + optional int32 server_changenumber = 7; +} + +message CChatRoomMemberSummaryCounts { + optional int32 ingame = 1; + optional int32 online = 2; + optional int32 offline = 3; +} + +message CChatRoomSummaryPair { + optional .CUserChatRoomGroupState user_chat_group_state = 1; + optional .CChatRoom_GetChatRoomGroupSummary_Response group_summary = 2; +} + +message ChatRoomClient_NotifyChatGroupUserStateChanged_Notification { + optional uint64 chat_group_id = 1; + optional .CUserChatRoomGroupState user_chat_group_state = 2; + optional .CChatRoom_GetChatRoomGroupSummary_Response group_summary = 3; + optional int32 user_action = 4 [(.description) = "enum"]; +} + +message ChatRoomClient_NotifyChatRoomDisconnect_Notification { + repeated uint64 chat_group_ids = 1; +} + +message CUserChatRoomGroupState { + optional uint64 chat_group_id = 1; + optional uint32 time_joined = 2; + repeated .CUserChatRoomState user_chat_room_state = 3; + optional int32 desktop_notification_level = 4 [default = 0, (.description) = "enum"]; + optional int32 mobile_notification_level = 5 [default = 0, (.description) = "enum"]; + optional uint32 time_last_group_ack = 6; + optional bool unread_indicator_muted = 7 [default = false]; +} + +message CUserChatRoomState { + optional uint64 chat_id = 1; + optional uint32 time_joined = 2; + optional uint32 time_last_ack = 3; + optional int32 desktop_notification_level = 4 [default = 0, (.description) = "enum"]; + optional int32 mobile_notification_level = 5 [default = 0, (.description) = "enum"]; + optional uint32 time_last_mention = 6; + optional bool unread_indicator_muted = 7 [default = false]; + optional uint32 time_first_unread = 8; +} + +message ServerMessage { + optional int32 message = 1 [(.description) = "enum"]; + optional string string_param = 2; + optional uint32 accountid_param = 3; +} + +service ChatRoom { + rpc AckChatMessage (.CChatRoom_AckChatMessage_Notification) returns (.NoResponse); + rpc AddRoleToUser (.CChatRoom_AddRoleToUser_Request) returns (.CChatRoom_AddRoleToUser_Response); + rpc CreateChatRoom (.CChatRoom_CreateChatRoom_Request) returns (.CChatRoom_CreateChatRoom_Response); + rpc CreateChatRoomGroup (.CChatRoom_CreateChatRoomGroup_Request) returns (.CChatRoom_CreateChatRoomGroup_Response); + rpc CreateInviteLink (.CChatRoom_CreateInviteLink_Request) returns (.CChatRoom_CreateInviteLink_Response); + rpc CreateRole (.CChatRoom_CreateRole_Request) returns (.CChatRoom_CreateRole_Response); + rpc DeleteChatMessages (.CChatRoom_DeleteChatMessages_Request) returns (.CChatRoom_DeleteChatMessages_Response); + rpc DeleteChatRoom (.CChatRoom_DeleteChatRoom_Request) returns (.CChatRoom_DeleteChatRoom_Response); + rpc DeleteInviteLink (.CChatRoom_DeleteInviteLink_Request) returns (.CChatRoom_DeleteInviteLink_Response); + rpc DeleteRole (.CChatRoom_DeleteRole_Request) returns (.CChatRoom_DeleteRole_Response); + rpc DeleteRoleFromUser (.CChatRoom_DeleteRoleFromUser_Request) returns (.CChatRoom_DeleteRoleFromUser_Response); + rpc EndMiniGameForChatRoomGroup (.CChatRoom_EndMiniGameForChatRoomGroup_Request) returns (.CChatRoom_EndMiniGameForChatRoomGroup_Response); + rpc GetBanList (.CChatRoom_GetBanList_Request) returns (.CChatRoom_GetBanList_Response); + rpc GetChatRoomGroupState (.CChatRoom_GetChatRoomGroupState_Request) returns (.CChatRoom_GetChatRoomGroupState_Response); + rpc GetChatRoomGroupSummary (.CChatRoom_GetChatRoomGroupSummary_Request) returns (.CChatRoom_GetChatRoomGroupSummary_Response); + rpc GetInviteInfo (.CChatRoom_GetInviteInfo_Request) returns (.CChatRoom_GetInviteInfo_Response); + rpc GetInviteLinkInfo (.CChatRoom_GetInviteLinkInfo_Request) returns (.CChatRoom_GetInviteLinkInfo_Response); + rpc GetInviteLinksForGroup (.CChatRoom_GetInviteLinksForGroup_Request) returns (.CChatRoom_GetInviteLinksForGroup_Response); + rpc GetInviteList (.CChatRoom_GetInviteList_Request) returns (.CChatRoom_GetInviteList_Response); + rpc GetMessageHistory (.CChatRoom_GetMessageHistory_Request) returns (.CChatRoom_GetMessageHistory_Response); + rpc GetMessageReactionReactors (.CChatRoom_GetMessageReactionReactors_Request) returns (.CChatRoom_GetMessageReactionReactors_Response); + rpc GetMyChatRoomGroups (.CChatRoom_GetMyChatRoomGroups_Request) returns (.CChatRoom_GetMyChatRoomGroups_Response); + rpc GetRoleActions (.CChatRoom_GetRoleActions_Request) returns (.CChatRoom_GetRoleActions_Response); + rpc GetRoles (.CChatRoom_GetRoles_Request) returns (.CChatRoom_GetRoles_Response); + rpc GetRolesForUser (.CChatRoom_GetRolesForUser_Request) returns (.CChatRoom_GetRolesForUser_Response); + rpc InviteFriendToChatRoomGroup (.CChatRoom_InviteFriendToChatRoomGroup_Request) returns (.CChatRoom_InviteFriendToChatRoomGroup_Response); + rpc JoinChatRoomGroup (.CChatRoom_JoinChatRoomGroup_Request) returns (.CChatRoom_JoinChatRoomGroup_Response); + rpc JoinMiniGameForChatRoomGroup (.CChatRoom_JoinMiniGameForChatRoomGroup_Request) returns (.CChatRoom_JoinMiniGameForChatRoomGroup_Response); + rpc JoinVoiceChat (.CChatRoom_JoinVoiceChat_Request) returns (.CChatRoom_JoinVoiceChat_Response); + rpc KickUserFromGroup (.CChatRoom_KickUser_Request) returns (.CChatRoom_KickUser_Response); + rpc LeaveChatRoomGroup (.CChatRoom_LeaveChatRoomGroup_Request) returns (.CChatRoom_LeaveChatRoomGroup_Response); + rpc LeaveVoiceChat (.CChatRoom_LeaveVoiceChat_Request) returns (.CChatRoom_LeaveVoiceChat_Response); + rpc MuteUserInGroup (.CChatRoom_MuteUser_Request) returns (.CChatRoom_MuteUser_Response); + rpc RenameChatRoom (.CChatRoom_RenameChatRoom_Request) returns (.CChatRoom_RenameChatRoom_Response); + rpc RenameChatRoomGroup (.CChatRoom_RenameChatRoomGroup_Request) returns (.CChatRoom_RenameChatRoomGroup_Response); + rpc RenameRole (.CChatRoom_RenameRole_Request) returns (.CChatRoom_RenameRole_Response); + rpc ReorderChatRoom (.CChatRoom_ReorderChatRoom_Request) returns (.CChatRoom_ReorderChatRoom_Response); + rpc ReorderRole (.CChatRoom_ReorderRole_Request) returns (.CChatRoom_ReorderRole_Response); + rpc ReplaceRoleActions (.CChatRoom_ReplaceRoleActions_Request) returns (.CChatRoom_ReplaceRoleActions_Response); + rpc RevokeInviteToGroup (.CChatRoom_RevokeInvite_Request) returns (.CChatRoom_RevokeInvite_Response); + rpc SaveChatRoomGroup (.CChatRoom_SaveChatRoomGroup_Request) returns (.CChatRoom_SaveChatRoomGroup_Response); + rpc SearchMembers (.CChatRoom_SearchMembers_Request) returns (.CChatRoom_SearchMembers_Response); + rpc SendChatMessage (.CChatRoom_SendChatMessage_Request) returns (.CChatRoom_SendChatMessage_Response); + rpc SetAppChatRoomGroupForceActive (.CChatRoom_SetAppChatRoomGroupForceActive_Request) returns (.CChatRoom_SetAppChatRoomGroupForceActive_Response); + rpc SetAppChatRoomGroupStopForceActive (.CChatRoom_SetAppChatRoomGroupStopForceActive_Notification) returns (.NoResponse); + rpc SetChatRoomGroupAvatar (.CChatRoom_SetChatRoomGroupAvatar_Request) returns (.CChatRoom_SetChatRoomGroupAvatar_Response); + rpc SetChatRoomGroupTagline (.CChatRoom_SetChatRoomGroupTagline_Request) returns (.CChatRoom_SetChatRoomGroupTagline_Response); + rpc SetChatRoomGroupWatchingBroadcast (.CChatRoom_SetChatRoomGroupWatchingBroadcast_Request) returns (.CChatRoom_SetChatRoomGroupWatchingBroadcast_Response); + rpc SetSessionActiveChatRoomGroups (.CChatRoom_SetSessionActiveChatRoomGroups_Request) returns (.CChatRoom_SetSessionActiveChatRoomGroups_Response); + rpc SetUserBanState (.CChatRoom_SetUserBanState_Request) returns (.CChatRoom_SetUserBanState_Response); + rpc SetUserChatGroupPreferences (.CChatRoom_SetUserChatGroupPreferences_Request) returns (.CChatRoom_SetUserChatGroupPreferences_Response); + rpc UpdateMemberListView (.CChatRoom_UpdateMemberListView_Notification) returns (.NoResponse); + rpc UpdateMessageReaction (.CChatRoom_UpdateMessageReaction_Request) returns (.CChatRoom_UpdateMessageReaction_Response); +} + +service ChatRoomClient { + rpc NotifyAckChatMessageEcho (.CChatRoom_AckChatMessage_Notification) returns (.NoResponse); + rpc NotifyChatGroupUserStateChanged (.ChatRoomClient_NotifyChatGroupUserStateChanged_Notification) returns (.NoResponse); + rpc NotifyChatMessageModified (.CChatRoom_ChatMessageModified_Notification) returns (.NoResponse); + rpc NotifyChatRoomDisconnect (.ChatRoomClient_NotifyChatRoomDisconnect_Notification) returns (.NoResponse); + rpc NotifyChatRoomGroupRoomsChange (.CChatRoom_ChatRoomGroupRoomsChange_Notification) returns (.NoResponse); + rpc NotifyChatRoomHeaderStateChange (.CChatRoom_ChatRoomHeaderState_Notification) returns (.NoResponse); + rpc NotifyIncomingChatMessage (.CChatRoom_IncomingChatMessage_Notification) returns (.NoResponse); + rpc NotifyMemberListViewUpdated (.CChatRoomClient_MemberListViewUpdated_Notification) returns (.NoResponse); + rpc NotifyMemberStateChange (.CChatRoom_MemberStateChange_Notification) returns (.NoResponse); + rpc NotifyMessageReaction (.CChatRoom_MessageReaction_Notification) returns (.NoResponse); + rpc NotifyShouldRejoinChatRoomVoiceChat (.CChatRoom_NotifyShouldRejoinChatRoomVoiceChat_Notification) returns (.NoResponse); +} + diff --git a/Protobufs/webui/service_chatusability.proto b/Protobufs/webui/service_chatusability.proto new file mode 100644 index 0000000..5bc39a2 --- /dev/null +++ b/Protobufs/webui/service_chatusability.proto @@ -0,0 +1,107 @@ +import "common_base.proto"; + +message CChatUsability_ClientUsabilityMetrics_Notification { + optional uint32 metrics_run_id = 1; + optional uint32 client_build = 2; + optional uint32 metrics_version = 3; + optional bool in_web = 4; + optional .CChatUsability_ClientUsabilityMetrics_Notification_Settings settings = 10; + optional .CChatUsability_ClientUsabilityMetrics_Notification_VoiceSettings voice_settings = 11; + optional .CChatUsability_ClientUsabilityMetrics_Notification_UIState ui_state = 12; + optional .CChatUsability_ClientUsabilityMetrics_Notification_Metrics metrics = 13; +} + +message CChatUsability_ClientUsabilityMetrics_Notification_Metrics { + optional int32 friends_count = 1; + optional int32 friends_category_count = 2; + optional int32 friends_categorized_count = 3; + optional int32 friends_online_count = 4; + optional int32 friends_in_game_count = 5; + optional int32 friends_in_game_singleton_count = 6; + optional int32 game_group_count = 7; + optional int32 friends_favorite_count = 8; + optional int32 group_chat_count = 9; + optional int32 group_chat_favorite_count = 10; +} + +message CChatUsability_ClientUsabilityMetrics_Notification_Settings { + optional bool notifications_show_ingame = 1; + optional bool notifications_show_online = 2; + optional bool notifications_show_message = 3; + optional bool notifications_events_and_announcements = 4; + optional bool sounds_play_ingame = 5; + optional bool sounds_play_online = 6; + optional bool sounds_play_message = 7; + optional bool sounds_events_and_announcements = 8; + optional bool always_new_chat_window = 9; + optional bool force_alphabetic_friend_sorting = 10; + optional int32 chat_flash_mode = 11; + optional bool remember_open_chats = 12; + optional bool compact_quick_access = 13; + optional bool compact_friends_list = 14; + optional bool notifications_show_chat_room_notification = 15; + optional bool sounds_play_chat_room_notification = 16; + optional bool hide_offline_friends_in_tag_groups = 17; + optional bool hide_categorized_friends = 18; + optional bool categorize_in_game_friends_by_game = 19; + optional int32 chat_font_size = 20; + optional bool use24hour_clock = 21; + optional bool do_not_disturb_mode = 22; + optional bool disable_embed_inlining = 23; + optional bool sign_into_friends = 24; + optional bool animated_avatars = 25; +} + +message CChatUsability_ClientUsabilityMetrics_Notification_UIState { + optional int32 friends_list_height = 1; + optional int32 friends_list_width = 2; + optional bool friends_list_docked = 3; + optional bool friends_list_collapsed = 4; + optional int32 friends_list_group_chats_height = 5; + optional bool friends_list_visible = 6; + optional int32 chat_popups_opened = 7; + optional int32 group_chat_tabs_opened = 8; + optional int32 friend_chat_tabs_opened = 9; + optional int32 chat_window_width = 10; + optional int32 chat_window_height = 11; + optional .CChatUsability_ClientUsabilityMetrics_Notification_UIState_CategoryCollapseState category_collapse = 12; + optional int32 group_chat_left_col_collapsed = 13; + optional int32 group_chat_right_col_collapsed = 14; + optional bool in_one_on_one_voice_chat = 15; + optional bool in_group_voice_chat = 16; +} + +message CChatUsability_ClientUsabilityMetrics_Notification_UIState_CategoryCollapseState { + optional bool in_game_collapsed = 1; + optional bool online_collapsed = 2; + optional bool offline_collapsed = 3; + optional int32 game_groups_collapsed = 4; + optional int32 categories_collapsed = 5; +} + +message CChatUsability_ClientUsabilityMetrics_Notification_VoiceSettings { + optional float voice_input_gain = 1; + optional float voice_output_gain = 2; + optional int32 noise_gate_level = 3; + optional bool voice_use_echo_cancellation = 4; + optional bool voice_use_noise_cancellation = 5; + optional bool voice_use_auto_gain_control = 6; + optional bool selected_non_default_mic = 7; + optional bool selected_non_default_output = 8; + optional bool push_to_talk_enabled = 9; + optional bool push_to_mute_enabled = 10; + optional bool play_ptt_sounds = 11; +} + +message CChatUsability_RequestClientUsabilityMetrics_Notification { + optional uint32 metrics_run_id = 1; +} + +service ChatUsability { + rpc NotifyClientUsabilityMetrics (.CChatUsability_ClientUsabilityMetrics_Notification) returns (.NoResponse); +} + +service ChatUsabilityClient { + rpc NotifyRequestClientUsabilityMetrics (.CChatUsability_RequestClientUsabilityMetrics_Notification) returns (.NoResponse); +} + diff --git a/Protobufs/webui/service_checkout.proto b/Protobufs/webui/service_checkout.proto new file mode 100644 index 0000000..deff2c2 --- /dev/null +++ b/Protobufs/webui/service_checkout.proto @@ -0,0 +1,92 @@ +import "common.proto"; + +message CCheckout_GetFriendOwnershipForGifting_Request { + repeated .StoreItemID item_ids = 1; +} + +message CCheckout_GetFriendOwnershipForGifting_Response { + repeated .CCheckout_GetFriendOwnershipForGifting_Response_OwnershipInfo ownership_info = 1; +} + +message CCheckout_GetFriendOwnershipForGifting_Response_FriendOwnership { + optional uint32 accountid = 1; + optional bool already_owns = 2; + optional bool wishes_for = 3; + repeated uint32 partial_owns_appids = 4; + repeated uint32 partial_wishes_for = 5; +} + +message CCheckout_GetFriendOwnershipForGifting_Response_OwnershipInfo { + optional .StoreItemID item_id = 1; + repeated .CCheckout_GetFriendOwnershipForGifting_Response_FriendOwnership friend_ownership = 2; +} + +message CCheckout_ValidateCart_Request { + optional int64 gidshoppingcart = 1; + optional .StoreBrowseContext context = 2; + optional .StoreBrowseItemDataRequest data_request = 3; + optional .CartGiftInfo gift_info = 4; + optional fixed64 gidreplayoftransid = 5; + optional bool for_init_purchase = 6; +} + +message CCheckout_ValidateCart_Response { + repeated .CCheckout_ValidateCart_Response_CartItem cart_items = 1; + optional .CCheckout_ValidateCart_Response_EstimatedTotals estimated_totals = 5; +} + +message CCheckout_ValidateCart_Response_CartItem { + optional uint64 line_item_id = 1; + optional .StoreItemID item_id = 2; + optional .StoreItem store_item = 3; + optional .CartGiftInfo gift_info = 4; + optional .CCheckout_ValidateCart_Response_CartItem_Errors errors = 5; + optional .CCheckout_ValidateCart_Response_CartItem_Warnings warnings = 6; + optional .CartAmount subtotal = 7; + optional .CartAmount price_when_added = 8; + optional .CartAmount original_price = 9; + optional .CartCoupon coupon_applied = 10; + optional .CartAmount coupon_discount = 11; + optional bool can_purchase_as_gift = 12; + optional bool restrict_add_additional_to_cart = 13; +} + +message CCheckout_ValidateCart_Response_CartItem_Errors { + repeated int32 owned_appids = 1; + repeated int32 duplicate_appids_in_cart = 2; + optional bool unavailable_in_country = 3; + optional bool invalid_coupon = 4; + optional bool invalid_coupon_for_item = 5; + optional bool coupon_exclusive_promo = 6; + optional bool cannot_purchase_as_gift = 7; + optional bool invalid_item = 8; + optional bool too_many_in_cart = 9; + optional bool has_existing_billing_agreement = 10; + repeated int32 missing_must_own_appids = 11; +} + +message CCheckout_ValidateCart_Response_CartItem_Warnings { + repeated int32 owned_appids = 1; + repeated int32 owned_appids_extra_copy = 2; + repeated .CCheckout_ValidateCart_Response_CartItem_Warnings_AppInMasterSub appids_in_mastersub = 3; + optional bool price_has_changed = 4; + optional bool non_refundable = 5; +} + +message CCheckout_ValidateCart_Response_CartItem_Warnings_AppInMasterSub { + optional uint32 cart_appid = 1; + optional uint32 mastersub_appid = 2; +} + +message CCheckout_ValidateCart_Response_EstimatedTotals { + optional .CartAmount subtotal = 1; + optional .CartAmount wallet_balance = 2; + optional .CartAmount exceeding_wallet_balance = 3; + optional .CartAmount remaining_wallet_balance = 4; +} + +service Checkout { + rpc GetFriendOwnershipForGifting (.CCheckout_GetFriendOwnershipForGifting_Request) returns (.CCheckout_GetFriendOwnershipForGifting_Response); + rpc ValidateCart (.CCheckout_ValidateCart_Request) returns (.CCheckout_ValidateCart_Response); +} + diff --git a/Protobufs/webui/service_clan.proto b/Protobufs/webui/service_clan.proto new file mode 100644 index 0000000..cf2440a --- /dev/null +++ b/Protobufs/webui/service_clan.proto @@ -0,0 +1,62 @@ +import "common_base.proto"; + +message CClan_GetDraftAndRecentPartnerEventSnippet_Request { + optional fixed64 steamid = 1; + optional uint32 rtime_oldest_date = 2; +} + +message CClan_GetDraftAndRecentPartnerEventSnippet_Response { + repeated .CClan_GetDraftAndRecentPartnerEventSnippet_Response_CEventSnippetData snippets = 1; +} + +message CClan_GetDraftAndRecentPartnerEventSnippet_Response_CEventSnippetData { + optional fixed64 gid = 1; + optional fixed64 announcement_gid = 2; + optional bool hidden = 3; + optional bool published = 4; + optional uint32 rtime32_start_time = 5; + optional string event_name = 6; + optional int32 event_type = 7 [(.description) = "enum"]; +} + +message CClan_GetPartnerEventsByBuildIDRange_Request { + repeated .CClan_GetPartnerEventsByBuildIDRange_Request_PatchNoteRange requests = 1; + optional string cursor = 2; + optional uint32 count = 3 [default = 100]; +} + +message CClan_GetPartnerEventsByBuildIDRange_Request_PatchNoteRange { + optional uint32 appid = 1; + optional uint32 start_build_id = 2; + optional uint32 end_build_id = 3; + optional string branch = 4; +} + +message CClan_GetPartnerEventsByBuildIDRange_Response { + repeated .CClan_GetPartnerEventsByBuildIDRange_Response_PatchNotesDesc matches = 1; + optional uint32 num_total_results = 2; + optional string next_cursor = 3; +} + +message CClan_GetPartnerEventsByBuildIDRange_Response_PatchNotesDesc { + optional uint32 appid = 1; + optional uint32 build_id = 2; + optional string branch = 3; + optional fixed64 clan_event_gid = 4; + optional uint32 clan_account_id = 5; +} + +message CClan_RespondToClanInvite_Request { + optional fixed64 steamid = 1; + optional bool accept = 2; +} + +message CClan_RespondToClanInvite_Response { +} + +service Clan { + rpc GetDraftAndRecentPartnerEventSnippet (.CClan_GetDraftAndRecentPartnerEventSnippet_Request) returns (.CClan_GetDraftAndRecentPartnerEventSnippet_Response); + rpc GetPartnerEventsByBuildIDRange (.CClan_GetPartnerEventsByBuildIDRange_Request) returns (.CClan_GetPartnerEventsByBuildIDRange_Response); + rpc RespondToClanInvite (.CClan_RespondToClanInvite_Request) returns (.CClan_RespondToClanInvite_Response); +} + diff --git a/Protobufs/webui/service_clanchatrooms.proto b/Protobufs/webui/service_clanchatrooms.proto new file mode 100644 index 0000000..60afacb --- /dev/null +++ b/Protobufs/webui/service_clanchatrooms.proto @@ -0,0 +1,25 @@ +import "common.proto"; + +message CClanChatRooms_GetClanChatRoomInfo_Request { + optional fixed64 steamid = 1; + optional bool autocreate = 2 [default = true]; +} + +message CClanChatRooms_GetClanChatRoomInfo_Response { + optional .CChatRoom_GetChatRoomGroupSummary_Response chat_group_summary = 1; +} + +message CClanChatRooms_SetClanChatRoomPrivate_Request { + optional fixed64 steamid = 1; + optional bool chat_room_private = 2; +} + +message CClanChatRooms_SetClanChatRoomPrivate_Response { + optional bool chat_room_private = 1; +} + +service ClanChatRooms { + rpc GetClanChatRoomInfo (.CClanChatRooms_GetClanChatRoomInfo_Request) returns (.CClanChatRooms_GetClanChatRoomInfo_Response); + rpc SetClanChatRoomPrivate (.CClanChatRooms_SetClanChatRoomPrivate_Request) returns (.CClanChatRooms_SetClanChatRoomPrivate_Response); +} + diff --git a/Protobufs/webui/service_clanfaqs.proto b/Protobufs/webui/service_clanfaqs.proto new file mode 100644 index 0000000..075bb34 --- /dev/null +++ b/Protobufs/webui/service_clanfaqs.proto @@ -0,0 +1,202 @@ + +message CClanFAQContent { + optional uint64 faq_id = 1; + optional uint32 language = 2; + optional uint64 version = 3; + optional string content = 4; + optional string title = 5; + optional fixed32 timestamp = 6; + optional uint64 author_account_id = 7; + optional string url_code = 8; +} + +message CClanFAQS_CheckFAQPermissions_Request { + optional fixed64 steamid = 1; +} + +message CClanFAQS_CheckFAQPermissions_Response { +} + +message CClanFAQS_Create_Request { + optional uint64 steamid = 1; + optional string internal_name = 2; + optional string json_data = 3; +} + +message CClanFAQS_Create_Response { + optional uint64 faq_id = 1; +} + +message CClanFAQS_Delete_Request { + optional uint64 steamid = 1; + optional uint64 faq_id = 2; +} + +message CClanFAQS_Delete_Response { +} + +message CClanFAQS_GetAllDrafts_Request { + optional uint64 steamid = 1; + optional uint64 faq_id = 2; +} + +message CClanFAQS_GetAllDrafts_Response { + optional .CClanFAQSummary summary = 1; + repeated .CClanFAQContent draft = 2; +} + +message CClanFAQS_GetAllFAQsForClan_Request { + optional uint64 steamid = 1; +} + +message CClanFAQS_GetAllFAQsForClan_Response { + repeated .CClanFAQSummary faq = 1; +} + +message CClanFAQS_GetAllLatestVersionPublishedFAQS_Request { + optional uint64 steamid = 1; + optional uint64 faq_id = 2; +} + +message CClanFAQS_GetAllLatestVersionPublishedFAQS_Response { + repeated .CClanFAQContent faqs = 1; +} + +message CClanFAQS_GetFAQ_Request { + optional uint64 faq_id = 2; + optional uint32 language = 3; +} + +message CClanFAQS_GetFAQ_Response { + optional .CClanFAQContent faq = 1; + optional bool faq_exists = 2 [default = false]; +} + +message CClanFAQS_GetFAQVersion_Request { + optional uint64 steamid = 1; + optional uint64 faq_id = 2; + optional uint32 language = 3; + optional uint64 version = 4; +} + +message CClanFAQS_GetFAQVersion_Response { + optional .CClanFAQContent faq = 1; +} + +message CClanFAQS_PreviewDraft_Request { + optional uint64 steamid = 1; + optional uint64 faq_id = 2; + optional uint32 language = 3; +} + +message CClanFAQS_PreviewDraft_Response { + optional .CClanFAQContent faq = 1; +} + +message CClanFAQS_PublishDraft_Request { + optional uint64 steamid = 1; + optional uint64 faq_id = 2; + repeated uint32 language = 3; +} + +message CClanFAQS_PublishDraft_Response { + optional fixed32 last_publish_timestamp = 1; +} + +message CClanFAQS_SearchFAQs_Request { + optional string search_text = 1; + repeated int32 elanguages = 2; + optional int32 count = 3; + optional string cursor = 4; + repeated uint32 filter_clanids = 5; +} + +message CClanFAQS_SearchFAQs_Response { + repeated .CClanFAQS_SearchFAQs_Response_CFAQSearchResult faqs = 1; + optional int32 num_total_results = 2; + optional string next_cursor = 3; +} + +message CClanFAQS_SearchFAQs_Response_CFAQSearchResult { + optional uint64 articleid = 1; + optional string name = 2; + optional string content = 3; + optional uint32 clan_accountid = 4; + optional string url_code = 5; + repeated string localized_names = 6; +} + +message CClanFAQS_SetVisibility_Request { + optional uint64 steamid = 1; + optional uint64 faq_id = 2; + optional bool visible_in_global_realm = 3; + optional bool visible_in_china_realm = 4; +} + +message CClanFAQS_SetVisibility_Response { +} + +message CClanFAQS_UpdateDraft_Request { + optional uint64 steamid = 1; + optional uint64 faq_id = 2; + optional uint32 language = 3; + optional string content = 4; + optional string title = 5; +} + +message CClanFAQS_UpdateDraft_Response { + optional fixed32 last_update_timestamp = 1; +} + +message CClanFAQS_UpdateInternalName_Request { + optional uint64 steamid = 1; + optional uint64 faq_id = 2; + optional string internal_name = 3; +} + +message CClanFAQS_UpdateInternalName_Response { +} + +message CClanFAQS_UpdateJsonData_Request { + optional uint64 steamid = 1; + optional uint64 faq_id = 2; + optional string json_data = 3; +} + +message CClanFAQS_UpdateJsonData_Response { +} + +message CClanFAQSummary { + optional uint64 faq_id = 1; + optional string internal_name = 2; + optional bool visible_in_global_realm = 3; + optional bool visible_in_china_realm = 4; + optional string json_data = 5; + repeated .CClanFAQSummary_CLanguageInfo per_language_info = 6; + optional string url_code = 7; +} + +message CClanFAQSummary_CLanguageInfo { + optional uint32 language = 1; + optional fixed32 last_update_timestamp = 2; + optional fixed32 last_publish_timestamp = 3; +} + +service ClanFAQS { + rpc CheckFAQPermissions (.CClanFAQS_CheckFAQPermissions_Request) returns (.CClanFAQS_CheckFAQPermissions_Response); + rpc Create (.CClanFAQS_Create_Request) returns (.CClanFAQS_Create_Response); + rpc Delete (.CClanFAQS_Delete_Request) returns (.CClanFAQS_Delete_Response); + rpc GetAllDrafts (.CClanFAQS_GetAllDrafts_Request) returns (.CClanFAQS_GetAllDrafts_Response); + rpc GetAllFAQsForClan (.CClanFAQS_GetAllFAQsForClan_Request) returns (.CClanFAQS_GetAllFAQsForClan_Response); + rpc GetAllLatestVersionPublishedFAQS (.CClanFAQS_GetAllLatestVersionPublishedFAQS_Request) returns (.CClanFAQS_GetAllLatestVersionPublishedFAQS_Response); + rpc GetFAQ (.CClanFAQS_GetFAQ_Request) returns (.CClanFAQS_GetFAQ_Response); + rpc GetFAQVersion (.CClanFAQS_GetFAQVersion_Request) returns (.CClanFAQS_GetFAQVersion_Response); + rpc PreviewDraft (.CClanFAQS_PreviewDraft_Request) returns (.CClanFAQS_PreviewDraft_Response); + rpc PublishDraft (.CClanFAQS_PublishDraft_Request) returns (.CClanFAQS_PublishDraft_Response); + rpc SearchFAQs (.CClanFAQS_SearchFAQs_Request) returns (.CClanFAQS_SearchFAQs_Response); + rpc SetVisibility (.CClanFAQS_SetVisibility_Request) returns (.CClanFAQS_SetVisibility_Response); + rpc UpdateDraft (.CClanFAQS_UpdateDraft_Request) returns (.CClanFAQS_UpdateDraft_Response); + rpc UpdateInternalName (.CClanFAQS_UpdateInternalName_Request) returns (.CClanFAQS_UpdateInternalName_Response); + rpc UpdateJsonData (.CClanFAQS_UpdateJsonData_Request) returns (.CClanFAQS_UpdateJsonData_Response); +} + diff --git a/Protobufs/webui/service_clientcomm.proto b/Protobufs/webui/service_clientcomm.proto new file mode 100644 index 0000000..783b9cb --- /dev/null +++ b/Protobufs/webui/service_clientcomm.proto @@ -0,0 +1,163 @@ + +message CClientComm_ClientData { + optional uint32 package_version = 1; + optional string os = 2; + optional string machine_name = 3; + optional string ip_public = 4; + optional string ip_private = 5; + optional uint64 bytes_available = 6; + repeated .CClientComm_ClientData_RunningGames running_games = 7; + optional uint32 protocol_version = 8; + optional uint32 clientcomm_version = 9; + repeated uint32 local_users = 10; +} + +message CClientComm_ClientData_RunningGames { + optional uint32 appid = 1; + optional string extra_info = 2; + optional uint32 time_running_sec = 3; +} + +message CClientComm_EnableOrDisableDownloads_Request { + optional uint64 client_instanceid = 1; + optional bool enable = 2; +} + +message CClientComm_EnableOrDisableDownloads_Response { +} + +message CClientComm_GetAllClientLogonInfo_Request { +} + +message CClientComm_GetAllClientLogonInfo_Response { + repeated .CClientComm_GetAllClientLogonInfo_Response_Session sessions = 1; + optional uint32 refetch_interval_sec = 2; +} + +message CClientComm_GetAllClientLogonInfo_Response_Session { + optional uint64 client_instanceid = 1; + optional uint32 protocol_version = 2; + optional string os_name = 3; + optional string machine_name = 4; + optional int32 os_type = 5; + optional int32 device_type = 6; + optional int32 realm = 7; +} + +message CClientComm_GetClientAppList_Request { + optional string fields = 1; + optional string filters = 2; + optional uint64 client_instanceid = 3; + optional bool include_client_info = 4; + optional string language = 5; + repeated uint32 filter_appids = 6; +} + +message CClientComm_GetClientAppList_Response { + optional uint64 bytes_available = 1; + repeated .CClientComm_GetClientAppList_Response_AppData apps = 2; + optional .CClientComm_ClientData client_info = 3; + optional uint32 refetch_interval_sec_full = 4; + optional uint32 refetch_interval_sec_changing = 5; + optional uint32 refetch_interval_sec_updating = 6; +} + +message CClientComm_GetClientAppList_Response_AppData { + optional uint32 appid = 1; + optional string app = 2; + optional string category = 3; + optional string app_type = 4; + optional uint32 num_downloading = 8; + optional uint32 num_paused = 10; + optional uint32 bytes_download_rate = 11; + optional uint64 bytes_downloaded = 12; + optional uint64 bytes_to_download = 13; + repeated .CClientComm_GetClientAppList_Response_AppData_DLCData dlcs = 17; + optional bool favorite = 18; + optional bool auto_update = 19; + optional bool installed = 20; + optional bool download_paused = 21; + optional bool changing = 22; + optional bool available_on_platform = 23; + optional uint64 bytes_staged = 24; + optional uint64 bytes_to_stage = 25; + optional uint64 bytes_required = 26; + optional uint32 source_buildid = 27; + optional uint32 target_buildid = 28; + optional uint32 estimated_seconds_remaining = 29; + optional int32 queue_position = 30 [default = -1]; + optional bool uninstalling = 31; + optional uint32 rt_time_scheduled = 32; + optional bool running = 33; +} + +message CClientComm_GetClientAppList_Response_AppData_DLCData { + optional uint32 appid = 1; + optional string app = 2; + optional uint32 installed = 3; +} + +message CClientComm_GetClientInfo_Request { + optional uint64 client_instanceid = 1; +} + +message CClientComm_GetClientInfo_Response { + optional .CClientComm_ClientData client_info = 1; +} + +message CClientComm_GetClientLogonInfo_Request { + optional uint64 client_instanceid = 1; +} + +message CClientComm_GetClientLogonInfo_Response { + optional uint32 protocol_version = 1; + optional string os = 2; + optional string machine_name = 3; +} + +message CClientComm_InstallClientApp_Request { + optional uint32 appid = 1; + optional uint64 client_instanceid = 2; +} + +message CClientComm_InstallClientApp_Response { +} + +message CClientComm_LaunchClientApp_Request { + optional uint64 client_instanceid = 1; + optional uint32 appid = 2; + optional string query_params = 3; +} + +message CClientComm_LaunchClientApp_Response { +} + +message CClientComm_SetClientAppUpdateState_Request { + optional uint32 appid = 1; + optional uint32 action = 2; + optional uint64 client_instanceid = 3; +} + +message CClientComm_SetClientAppUpdateState_Response { +} + +message CClientComm_UninstallClientApp_Request { + optional uint32 appid = 1; + optional uint64 client_instanceid = 2; +} + +message CClientComm_UninstallClientApp_Response { +} + +service ClientComm { + rpc EnableOrDisableDownloads (.CClientComm_EnableOrDisableDownloads_Request) returns (.CClientComm_EnableOrDisableDownloads_Response); + rpc GetAllClientLogonInfo (.CClientComm_GetAllClientLogonInfo_Request) returns (.CClientComm_GetAllClientLogonInfo_Response); + rpc GetClientAppList (.CClientComm_GetClientAppList_Request) returns (.CClientComm_GetClientAppList_Response); + rpc GetClientInfo (.CClientComm_GetClientInfo_Request) returns (.CClientComm_GetClientInfo_Response); + rpc GetClientLogonInfo (.CClientComm_GetClientLogonInfo_Request) returns (.CClientComm_GetClientLogonInfo_Response); + rpc InstallClientApp (.CClientComm_InstallClientApp_Request) returns (.CClientComm_InstallClientApp_Response); + rpc LaunchClientApp (.CClientComm_LaunchClientApp_Request) returns (.CClientComm_LaunchClientApp_Response); + rpc SetClientAppUpdateState (.CClientComm_SetClientAppUpdateState_Request) returns (.CClientComm_SetClientAppUpdateState_Response); + rpc UninstallClientApp (.CClientComm_UninstallClientApp_Request) returns (.CClientComm_UninstallClientApp_Response); +} + diff --git a/Protobufs/webui/service_clientmetrics.proto b/Protobufs/webui/service_clientmetrics.proto new file mode 100644 index 0000000..0f18fd9 --- /dev/null +++ b/Protobufs/webui/service_clientmetrics.proto @@ -0,0 +1,22 @@ +import "common_base.proto"; + +message CClientMetrics_ReportClientError_Notification { + optional string product = 1; + optional string version = 2; + repeated .CClientMetrics_ReportClientError_Notification_Error errors = 3; +} + +message CClientMetrics_ReportClientError_Notification_Error { + optional string identifier = 1; + optional string message = 2; + optional uint32 count = 3; +} + +service ClientMetrics { + rpc ClientAppInterfaceStatsReport (.NotImplemented) returns (.NoResponse); + rpc ClientBootstrapReport (.NotImplemented) returns (.NoResponse); + rpc ClientIPv6ConnectivityReport (.NotImplemented) returns (.NoResponse); + rpc ReportClientError (.CClientMetrics_ReportClientError_Notification) returns (.NoResponse); + rpc SteamPipeWorkStatsReport (.NotImplemented) returns (.NoResponse); +} + diff --git a/Protobufs/webui/service_cloud.proto b/Protobufs/webui/service_cloud.proto new file mode 100644 index 0000000..487910b --- /dev/null +++ b/Protobufs/webui/service_cloud.proto @@ -0,0 +1,222 @@ +import "common_base.proto"; +import "common.proto"; + +message CCloud_AppCloudStateChange_Notification { + optional uint32 appid = 1; + optional uint64 app_change_number = 2; +} + +message CCloud_AppFileInfo { + optional string file_name = 1; + optional bytes sha_file = 2; + optional uint64 time_stamp = 3; + optional uint32 raw_file_size = 4; + optional int32 persist_state = 5 [(.description) = "enum"]; + optional uint32 platforms_to_sync = 6; + optional uint32 path_prefix_index = 7; + optional uint32 machine_name_index = 8; +} + +message CCloud_AppLaunchIntent_Response { + repeated .CCloud_PendingRemoteOperation pending_remote_operations = 1; +} + +message CCloud_AppSessionResume_Response { +} + +message CCloud_AppSessionSuspend_Response { +} + +message CCloud_BeginAppUploadBatch_Response { + optional uint64 batch_id = 1; + optional uint64 app_change_number = 4; +} + +message CCloud_BeginHTTPUpload_Response { + optional fixed64 ugcid = 1; + optional fixed32 timestamp = 2; + optional string url_host = 3; + optional string url_path = 4; + optional bool use_https = 5; + repeated .CCloud_BeginHTTPUpload_Response_HTTPHeaders request_headers = 6; +} + +message CCloud_BeginHTTPUpload_Response_HTTPHeaders { + optional string name = 1; + optional string value = 2; +} + +message CCloud_BeginUGCUpload_Response { + optional int32 storage_system = 1 [(.description) = "enum"]; + optional fixed64 ugcid = 2; + optional fixed32 timestamp = 3; + optional string url_host = 4; + optional string url_path = 5; + optional bool use_https = 6; + repeated .CCloud_BeginUGCUpload_Response_HTTPHeaders request_headers = 7; +} + +message CCloud_BeginUGCUpload_Response_HTTPHeaders { + optional string name = 1; + optional string value = 2; +} + +message CCloud_ClientBeginFileUpload_Response { + optional bool encrypt_file = 1; + repeated .ClientCloudFileUploadBlockDetails block_requests = 2; +} + +message CCloud_ClientCommitFileUpload_Response { + optional bool file_committed = 1; +} + +message CCloud_ClientDeleteFile_Response { +} + +message CCloud_ClientFileDownload_Response { + optional uint32 appid = 1; + optional uint32 file_size = 2; + optional uint32 raw_file_size = 3; + optional bytes sha_file = 4; + optional uint64 time_stamp = 5; + optional bool is_explicit_delete = 6; + optional string url_host = 7; + optional string url_path = 8; + optional bool use_https = 9; + repeated .CCloud_ClientFileDownload_Response_HTTPHeaders request_headers = 10; + optional bool encrypted = 11; +} + +message CCloud_ClientFileDownload_Response_HTTPHeaders { + optional string name = 1; + optional string value = 2; +} + +message CCloud_ClientGetAppQuotaUsage_Response { + optional uint32 existing_files = 1; + optional uint64 existing_bytes = 2; + optional uint32 max_num_files = 3; + optional uint64 max_num_bytes = 4; +} + +message CCloud_ClientLogUploadRequest_Notification { + optional uint64 request_id = 1; +} + +message CCloud_CommitHTTPUpload_Response { + optional bool file_committed = 1; +} + +message CCloud_CommitUGCUpload_Response { + optional bool file_committed = 1; +} + +message CCloud_CompleteAppUploadBatch_Response { +} + +message CCloud_Delete_Response { +} + +message CCloud_EnumerateUserApps_Response { + repeated .CCloud_EnumerateUserApps_Response_Apps apps = 1; +} + +message CCloud_EnumerateUserApps_Response_Apps { + optional uint32 appid = 1; + optional int32 totalcount = 2; + optional int64 totalsize = 3; +} + +message CCloud_EnumerateUserFiles_Response { + repeated .CCloud_UserFile files = 1; + optional uint32 total_files = 2; +} + +message CCloud_GetAppFileChangelist_Response { + optional uint64 current_change_number = 1; + repeated .CCloud_AppFileInfo files = 2; + optional bool is_only_delta = 3; + repeated string path_prefixes = 4; + repeated string machine_names = 5; + optional uint64 app_buildid_hwm = 6; +} + +message CCloud_GetClientEncryptionKey_Response { + optional bytes key = 1; + optional int32 crc = 2; +} + +message CCloud_GetFileDetails_Response { + optional .CCloud_UserFile details = 1; +} + +message CCloud_GetUploadServerInfo_Response { + optional string server_url = 1; +} + +message CCloud_UserFile { + optional uint32 appid = 1; + optional uint64 ugcid = 2; + optional string filename = 3; + optional uint64 timestamp = 4; + optional uint32 file_size = 5; + optional string url = 6; + optional fixed64 steamid_creator = 7; + optional uint32 flags = 8; + repeated string platforms_to_sync = 9; + optional string file_sha = 10; +} + +message ClientCloudFileUploadBlockDetails { + optional string url_host = 1; + optional string url_path = 2; + optional bool use_https = 3; + optional int32 http_method = 4; + repeated .ClientCloudFileUploadBlockDetails_HTTPHeaders request_headers = 5; + optional uint64 block_offset = 6; + optional uint32 block_length = 7; + optional bytes explicit_body_data = 8; + optional bool may_parallelize = 9; +} + +message ClientCloudFileUploadBlockDetails_HTTPHeaders { + optional string name = 1; + optional string value = 2; +} + +service Cloud { + rpc BeginAppUploadBatch (.NotImplemented) returns (.CCloud_BeginAppUploadBatch_Response); + rpc BeginHTTPUpload (.NotImplemented) returns (.CCloud_BeginHTTPUpload_Response); + rpc BeginUGCUpload (.NotImplemented) returns (.CCloud_BeginUGCUpload_Response); + rpc CDNReport (.NotImplemented) returns (.NoResponse); + rpc ClientBeginFileUpload (.NotImplemented) returns (.CCloud_ClientBeginFileUpload_Response); + rpc ClientCommitFileUpload (.NotImplemented) returns (.CCloud_ClientCommitFileUpload_Response); + rpc ClientConflictResolution (.NotImplemented) returns (.NoResponse); + rpc ClientDeleteFile (.NotImplemented) returns (.CCloud_ClientDeleteFile_Response); + rpc ClientFileDownload (.NotImplemented) returns (.CCloud_ClientFileDownload_Response); + rpc ClientGetAppQuotaUsage (.NotImplemented) returns (.CCloud_ClientGetAppQuotaUsage_Response); + rpc ClientLogUploadCheck (.NotImplemented) returns (.NoResponse); + rpc ClientLogUploadComplete (.NotImplemented) returns (.NoResponse); + rpc CommitHTTPUpload (.NotImplemented) returns (.CCloud_CommitHTTPUpload_Response); + rpc CommitUGCUpload (.NotImplemented) returns (.CCloud_CommitUGCUpload_Response); + rpc CompleteAppUploadBatch (.NotImplemented) returns (.NoResponse); + rpc CompleteAppUploadBatchBlocking (.NotImplemented) returns (.CCloud_CompleteAppUploadBatch_Response); + rpc Delete (.NotImplemented) returns (.CCloud_Delete_Response); + rpc EnumerateUserApps (.NotImplemented) returns (.CCloud_EnumerateUserApps_Response); + rpc EnumerateUserFiles (.NotImplemented) returns (.CCloud_EnumerateUserFiles_Response); + rpc ExternalStorageTransferReport (.NotImplemented) returns (.NoResponse); + rpc GetAppFileChangelist (.NotImplemented) returns (.CCloud_GetAppFileChangelist_Response); + rpc GetClientEncryptionKey (.NotImplemented) returns (.CCloud_GetClientEncryptionKey_Response); + rpc GetFileDetails (.NotImplemented) returns (.CCloud_GetFileDetails_Response); + rpc GetUploadServerInfo (.NotImplemented) returns (.CCloud_GetUploadServerInfo_Response); + rpc ResumeAppSession (.NotImplemented) returns (.CCloud_AppSessionResume_Response); + rpc SignalAppExitSyncDone (.NotImplemented) returns (.NoResponse); + rpc SignalAppLaunchIntent (.NotImplemented) returns (.CCloud_AppLaunchIntent_Response); + rpc SuspendAppSession (.NotImplemented) returns (.CCloud_AppSessionSuspend_Response); +} + +service CloudClient { + rpc ClientLogUploadRequest (.CCloud_ClientLogUploadRequest_Notification) returns (.NoResponse); + rpc NotifyAppStateChange (.CCloud_AppCloudStateChange_Notification) returns (.NoResponse); +} + diff --git a/Protobufs/webui/service_cloudconfigstore.proto b/Protobufs/webui/service_cloudconfigstore.proto new file mode 100644 index 0000000..92764ce --- /dev/null +++ b/Protobufs/webui/service_cloudconfigstore.proto @@ -0,0 +1,51 @@ +import "common_base.proto"; + +message CCloudConfigStore_Change_Notification { + repeated .CCloudConfigStore_NamespaceVersion versions = 2; +} + +message CCloudConfigStore_Download_Request { + repeated .CCloudConfigStore_NamespaceVersion versions = 1; +} + +message CCloudConfigStore_Download_Response { + repeated .CCloudConfigStore_NamespaceData data = 1; +} + +message CCloudConfigStore_Entry { + optional string key = 1; + optional bool is_deleted = 2; + optional string value = 3; + optional fixed32 timestamp = 4; + optional uint64 version = 5; +} + +message CCloudConfigStore_NamespaceData { + optional uint32 enamespace = 1; + optional uint64 version = 2; + repeated .CCloudConfigStore_Entry entries = 3; + optional uint64 horizon = 4; +} + +message CCloudConfigStore_NamespaceVersion { + optional uint32 enamespace = 1; + optional uint64 version = 2; +} + +message CCloudConfigStore_Upload_Request { + repeated .CCloudConfigStore_NamespaceData data = 1; +} + +message CCloudConfigStore_Upload_Response { + repeated .CCloudConfigStore_NamespaceVersion versions = 1; +} + +service CloudConfigStore { + rpc Download (.CCloudConfigStore_Download_Request) returns (.CCloudConfigStore_Download_Response); + rpc Upload (.CCloudConfigStore_Upload_Request) returns (.CCloudConfigStore_Upload_Response); +} + +service CloudConfigStoreClient { + rpc NotifyChange (.CCloudConfigStore_Change_Notification) returns (.NoResponse); +} + diff --git a/Protobufs/webui/service_cloudgaming.proto b/Protobufs/webui/service_cloudgaming.proto new file mode 100644 index 0000000..af0136d --- /dev/null +++ b/Protobufs/webui/service_cloudgaming.proto @@ -0,0 +1,30 @@ + +message CCloudGaming_CreateNonce_Request { + optional string platform = 1; + optional uint32 appid = 2; +} + +message CCloudGaming_CreateNonce_Response { + optional string nonce = 1; + optional uint32 expiry = 2; +} + +message CCloudGaming_GetTimeRemaining_Request { + optional string platform = 1; + repeated uint32 appid_list = 2; +} + +message CCloudGaming_GetTimeRemaining_Response { + repeated .CCloudGaming_TimeRemaining entries = 2; +} + +message CCloudGaming_TimeRemaining { + optional uint32 appid = 1; + optional uint32 minutes_remaining = 2; +} + +service CloudGaming { + rpc CreateNonce (.CCloudGaming_CreateNonce_Request) returns (.CCloudGaming_CreateNonce_Response); + rpc GetTimeRemaining (.CCloudGaming_GetTimeRemaining_Request) returns (.CCloudGaming_GetTimeRemaining_Response); +} + diff --git a/Protobufs/webui/service_community.proto b/Protobufs/webui/service_community.proto new file mode 100644 index 0000000..4805755 --- /dev/null +++ b/Protobufs/webui/service_community.proto @@ -0,0 +1,365 @@ +import "common_base.proto"; +import "common.proto"; + +message CAppPriority { + optional uint32 priority = 1; + repeated uint32 appid = 2; +} + +message CCDDBAppDetailCommon { + optional uint32 appid = 1; + optional string name = 2; + optional string icon = 3; + optional string logo = 4; + optional string logo_small = 5; + optional bool tool = 6; + optional bool demo = 7; + optional bool media = 8; + optional bool community_visible_stats = 9; + optional string friendly_name = 10; + optional string propagation = 11; + optional bool has_adult_content = 12; + optional bool is_visible_in_steam_china = 13; + optional uint32 app_type = 14; + optional bool has_adult_content_sex = 15; + optional bool has_adult_content_violence = 16; + repeated uint32 content_descriptorids = 17; +} + +message CClanEventUserNewsTuple { + optional uint32 clanid = 1; + optional fixed64 event_gid = 2; + optional fixed64 announcement_gid = 3; + optional uint32 rtime_start = 4; + optional uint32 rtime_end = 5; + optional uint32 priority_score = 6; + optional uint32 type = 7; + optional uint32 clamp_range_slot = 8; + optional uint32 appid = 9; + optional uint32 rtime32_last_modified = 10; +} + +message CClanMatchEventByRange { + optional uint32 rtime_before = 1; + optional uint32 rtime_after = 2; + optional uint32 qualified = 3; + repeated .CClanEventUserNewsTuple events = 4; +} + +message CCommunity_ClearSinglePartnerEventsAppPriority_Request { + optional uint32 appid = 1; +} + +message CCommunity_ClearSinglePartnerEventsAppPriority_Response { +} + +message CCommunity_ClearUserPartnerEventsAppPriorities_Request { +} + +message CCommunity_ClearUserPartnerEventsAppPriorities_Response { +} + +message CCommunity_Comment { + optional fixed64 gidcomment = 1; + optional fixed64 steamid = 2; + optional uint32 timestamp = 3; + optional string text = 4; + optional int32 upvotes = 5; + optional bool hidden = 6; + optional bool hidden_by_user = 7; + optional bool deleted = 8; + optional .CMsgIPAddress ipaddress = 9; + optional int32 total_hidden = 10; + optional bool upvoted_by_user = 11; + repeated .CCommunity_Comment_Reaction reactions = 12; + optional fixed64 gidparentcomment = 13; +} + +message CCommunity_Comment_Reaction { + optional uint32 reactionid = 1; + optional uint32 count = 2; +} + +message CCommunity_DeleteCommentFromThread_Request { + optional fixed64 steamid = 1; + optional int32 comment_thread_type = 2 [(.description) = "enum"]; + //optional uint32 comment_thread_type = 2; + optional fixed64 gidfeature = 3; + optional fixed64 gidfeature2 = 4; + optional fixed64 gidcomment = 5; + optional bool undelete = 6; +} + +message CCommunity_DeleteCommentFromThread_Response { +} + +message CCommunity_GetAppRichPresenceLocalization_Request { + optional int32 appid = 1; + optional string language = 2; +} + +message CCommunity_GetAppRichPresenceLocalization_Response { + optional int32 appid = 1; + repeated .CCommunity_GetAppRichPresenceLocalization_Response_TokenList token_lists = 2; +} + +message CCommunity_GetAppRichPresenceLocalization_Response_Token { + optional string name = 1; + optional string value = 2; +} + +message CCommunity_GetAppRichPresenceLocalization_Response_TokenList { + optional string language = 1; + repeated .CCommunity_GetAppRichPresenceLocalization_Response_Token tokens = 2; +} + +message CCommunity_GetApps_Request { + repeated int32 appids = 1; + optional uint32 language = 2; +} + +message CCommunity_GetApps_Response { + repeated .CCDDBAppDetailCommon apps = 1; +} + +message CCommunity_GetAvatarHistory_Request { + optional fixed64 steamid = 1; + optional bool filter_user_uploaded_only = 2; +} + +message CCommunity_GetAvatarHistory_Response { + repeated .CCommunity_GetAvatarHistory_Response_AvatarData avatars = 1; +} + +message CCommunity_GetAvatarHistory_Response_AvatarData { + optional string avatar_sha1 = 1; + optional bool user_uploaded = 2; + optional uint32 timestamp = 3; +} + +message CCommunity_GetBestEventsForUser_Request { + optional bool include_steam_blog = 1; + optional uint32 filter_to_played_within_days = 2; + optional bool include_only_game_updates = 3; +} + +message CCommunity_GetBestEventsForUser_Response { + repeated .CCommunity_PartnerEventResult results = 1; +} + +message CCommunity_GetClanAnnouncementVoteForUser_Request { + optional uint64 announcementid = 1; +} + +message CCommunity_GetClanAnnouncementVoteForUser_Response { + optional bool voted_up = 1; + optional bool voted_down = 2; +} + +message CCommunity_GetCommentThread_Request { + optional fixed64 steamid = 1; + optional int32 comment_thread_type = 2 [(.description) = "enum"]; + //optional uint32 comment_thread_type = 2; + optional fixed64 gidfeature = 3; + optional fixed64 gidfeature2 = 4; + optional fixed64 commentthreadid = 5; + optional int32 start = 6; + optional int32 count = 7; + optional int32 upvoters = 8; + optional bool include_deleted = 9; + optional fixed64 gidcomment = 10; + optional uint32 time_oldest = 11; + optional bool oldest_first = 12; +} + +message CCommunity_GetCommentThread_Response { + repeated .CCommunity_Comment comments = 1; + repeated .CCommunity_Comment deleted_comments = 2; + optional fixed64 steamid = 3; + optional fixed64 commentthreadid = 4; + optional int32 start = 5; + optional int32 count = 6; + optional int32 total_count = 7; + optional int32 upvotes = 8; + repeated uint32 upvoters = 9; + optional bool user_subscribed = 10; + optional bool user_upvoted = 11; + optional fixed64 answer_commentid = 12; + optional uint32 answer_actor = 13; + optional int32 answer_actor_rank = 14; + optional bool can_post = 15; + optional uint32 comment_thread_type = 16; + optional fixed64 gidfeature = 17; + optional fixed64 gidfeature2 = 18; +} + +message CCommunity_GetCommentThreadRatings_Request { + optional string commentthreadtype = 1; + optional uint64 steamid = 2; + optional uint64 gidfeature = 3; + optional uint64 gidfeature2 = 4; + optional uint64 gidcomment = 5; + optional uint32 max_results = 6; +} + +message CCommunity_GetCommentThreadRatings_Response { + optional uint64 commentthreadid = 1; + optional uint64 gidcomment = 2; + optional uint32 upvotes = 3; + optional bool has_upvoted = 4; + repeated uint32 upvoter_accountids = 5; +} + +message CCommunity_GetUserPartnerEventNews_Request { + optional uint32 count = 1; + optional uint32 offset = 2; + optional uint32 rtime32_start_time = 3; + optional uint32 rtime32_end_time = 4; + repeated uint32 language_preference = 5; + repeated int32 filter_event_type = 6 [(.description) = "enum"]; + optional bool filter_to_appid = 7; + repeated .CAppPriority app_list = 8; + optional uint32 count_after = 9 [default = 0]; + optional uint32 count_before = 10 [default = 0]; +} + +message CCommunity_GetUserPartnerEventNews_Response { + repeated .CClanMatchEventByRange results = 1; +} + +message CCommunity_GetUserPartnerEventsAppPriorities_Request { +} + +message CCommunity_GetUserPartnerEventsAppPriorities_Response { + repeated .CCommunity_PartnerEventsAppPriority priorities = 1; +} + +message CCommunity_GetUserPartnerEventViewStatus_Request { + repeated fixed64 event_gids = 1; + optional bool include_read_events_only = 2; +} + +message CCommunity_GetUserPartnerEventViewStatus_Response { + repeated .CCommunity_GetUserPartnerEventViewStatus_Response_PartnerEvent events = 1; +} + +message CCommunity_GetUserPartnerEventViewStatus_Response_PartnerEvent { + optional fixed64 event_gid = 1; + optional uint32 last_shown_time = 2; + optional uint32 last_read_time = 3; + optional uint32 clan_account_id = 4; +} + +message CCommunity_MarkPartnerEventsForUser_Request { + repeated .CCommunity_MarkPartnerEventsForUser_Request_PartnerEventMarking markings = 1; +} + +message CCommunity_MarkPartnerEventsForUser_Request_PartnerEventMarking { + optional uint32 clanid = 1; + optional fixed64 event_gid = 2; + optional int32 display_location = 3 [(.description) = "enum"]; + optional bool mark_shown = 4; + optional bool mark_read = 5; +} + +message CCommunity_MarkPartnerEventsForUser_Response { +} + +message CCommunity_PartnerEventResult { + optional uint32 clanid = 1; + optional fixed64 event_gid = 2; + optional fixed64 announcement_gid = 3; + optional uint32 appid = 4; + optional bool possible_takeover = 5; + optional uint32 rtime32_last_modified = 6 [default = 0]; + optional int32 user_app_priority = 7; +} + +message CCommunity_PartnerEventsAppPriority { + optional uint32 appid = 1; + optional int32 user_app_priority = 2; +} + +message CCommunity_PartnerEventsShowLessForApp_Request { + optional uint32 appid = 1; +} + +message CCommunity_PartnerEventsShowLessForApp_Response { +} + +message CCommunity_PartnerEventsShowMoreForApp_Request { + optional uint32 appid = 1; +} + +message CCommunity_PartnerEventsShowMoreForApp_Response { +} + +message CCommunity_PostCommentToThread_Request { + optional fixed64 steamid = 1; + optional int32 comment_thread_type = 2 [(.description) = "enum"]; + //optional uint32 comment_thread_type = 2; + optional fixed64 gidfeature = 3; + optional fixed64 gidfeature2 = 4; + optional string text = 6; + optional fixed64 gidparentcomment = 7; + optional bool suppress_notifications = 8; + optional bool is_report = 9; + optional bool start_hidden = 10; +} + +message CCommunity_PostCommentToThread_Response { + optional fixed64 gidcomment = 1; + optional fixed64 commentthreadid = 2; + optional int32 count = 3; + optional int32 upvotes = 4; +} + +message CCommunity_RateClanAnnouncement_Request { + optional uint64 announcementid = 1; + optional bool vote_up = 2; + optional uint32 clan_accountid = 3; +} + +message CCommunity_RateClanAnnouncement_Response { +} + +message CCommunity_RateCommentThread_Request { + optional string commentthreadtype = 1; + optional uint64 steamid = 2; + optional uint64 gidfeature = 3; + optional uint64 gidfeature2 = 4; + optional uint64 gidcomment = 5; + optional bool rate_up = 6; + optional bool suppress_notifications = 7; +} + +message CCommunity_RateCommentThread_Response { + optional uint64 gidcomment = 1; + optional uint64 commentthreadid = 2; + optional uint32 count = 3; + optional uint32 upvotes = 4; + optional bool has_upvoted = 5; +} + +service Community { + rpc ClearSinglePartnerEventsAppPriority (.CCommunity_ClearSinglePartnerEventsAppPriority_Request) returns (.CCommunity_ClearSinglePartnerEventsAppPriority_Response); + rpc ClearUserPartnerEventsAppPriorities (.CCommunity_ClearUserPartnerEventsAppPriorities_Request) returns (.CCommunity_ClearUserPartnerEventsAppPriorities_Response); + rpc DeleteCommentFromThread (.CCommunity_DeleteCommentFromThread_Request) returns (.CCommunity_DeleteCommentFromThread_Response); + rpc GetAppRichPresenceLocalization (.CCommunity_GetAppRichPresenceLocalization_Request) returns (.CCommunity_GetAppRichPresenceLocalization_Response); + rpc GetApps (.CCommunity_GetApps_Request) returns (.CCommunity_GetApps_Response); + rpc GetAvatarHistory (.CCommunity_GetAvatarHistory_Request) returns (.CCommunity_GetAvatarHistory_Response); + rpc GetBestEventsForUser (.CCommunity_GetBestEventsForUser_Request) returns (.CCommunity_GetBestEventsForUser_Response); + rpc GetClanAnnouncementVoteForUser (.CCommunity_GetClanAnnouncementVoteForUser_Request) returns (.CCommunity_GetClanAnnouncementVoteForUser_Response); + rpc GetCommentThread (.CCommunity_GetCommentThread_Request) returns (.CCommunity_GetCommentThread_Response); + rpc GetCommentThreadRatings (.CCommunity_GetCommentThreadRatings_Request) returns (.CCommunity_GetCommentThreadRatings_Response); + rpc GetUserPartnerEventNews (.CCommunity_GetUserPartnerEventNews_Request) returns (.CCommunity_GetUserPartnerEventNews_Response); + rpc GetUserPartnerEventsAppPriorities (.CCommunity_GetUserPartnerEventsAppPriorities_Request) returns (.CCommunity_GetUserPartnerEventsAppPriorities_Response); + rpc GetUserPartnerEventViewStatus (.CCommunity_GetUserPartnerEventViewStatus_Request) returns (.CCommunity_GetUserPartnerEventViewStatus_Response); + rpc MarkPartnerEventsForUser (.CCommunity_MarkPartnerEventsForUser_Request) returns (.CCommunity_MarkPartnerEventsForUser_Response); + rpc PartnerEventsShowLessForApp (.CCommunity_PartnerEventsShowLessForApp_Request) returns (.CCommunity_PartnerEventsShowLessForApp_Response); + rpc PartnerEventsShowMoreForApp (.CCommunity_PartnerEventsShowMoreForApp_Request) returns (.CCommunity_PartnerEventsShowMoreForApp_Response); + rpc PostCommentToThread (.CCommunity_PostCommentToThread_Request) returns (.CCommunity_PostCommentToThread_Response); + rpc RateClanAnnouncement (.CCommunity_RateClanAnnouncement_Request) returns (.CCommunity_RateClanAnnouncement_Response); + rpc RateCommentThread (.CCommunity_RateCommentThread_Request) returns (.CCommunity_RateCommentThread_Response); +} + diff --git a/Protobufs/webui/service_dailydeal.proto b/Protobufs/webui/service_dailydeal.proto new file mode 100644 index 0000000..24420ac --- /dev/null +++ b/Protobufs/webui/service_dailydeal.proto @@ -0,0 +1,91 @@ +import "common_base.proto"; + +message CDailyDeal_CancelDailyDeal_Request { + optional fixed64 gid = 1; +} + +message CDailyDeal_CancelDailyDeal_Response { +} + +message CDailyDeal_CreateDailyDeal_Request { + optional .CDailyDealDetails daily_deal = 1; + optional uint32 partnerid = 2; + optional fixed64 inviteid = 3; +} + +message CDailyDeal_CreateDailyDeal_Response { + optional fixed64 gid = 1; +} + +message CDailyDeal_DeleteDailyDeal_Request { + optional fixed64 gid = 1; +} + +message CDailyDeal_DeleteDailyDeal_Response { +} + +message CDailyDeal_GetDailyDeals_Request { + optional fixed64 gid = 1; + optional uint32 rtime32_start_date = 2; + optional uint32 rtime32_end_date = 3; + optional uint32 appid = 4; + optional int32 store_item_type = 5 [(.description) = "enum"]; + optional string search_term = 6; + optional uint32 partnerid = 7; +} + +message CDailyDeal_GetDailyDeals_Response { + repeated .CDailyDealDetails daily_deals = 1; + repeated uint32 blocked_dates = 2; + repeated uint32 scheduled_slots = 3; + repeated .CDailyDeal_GetDailyDeals_Response_DailyDealBlockedDate blocked = 4; +} + +message CDailyDeal_GetDailyDeals_Response_DailyDealBlockedDate { + optional uint32 date = 1; + optional string name = 2; +} + +message CDailyDeal_GetDailyDealsForApps_Request { + repeated uint32 appids = 1; +} + +message CDailyDeal_GetDailyDealsForApps_Response { + repeated .CDailyDealDetails daily_deals = 1; +} + +message CDailyDeal_UpdateDailyDeal_Request { + optional .CDailyDealDetails daily_deal = 1; + optional fixed64 gid = 2; +} + +message CDailyDeal_UpdateDailyDeal_Response { +} + +message CDailyDealDetails { + optional fixed64 gid = 1; + optional int32 store_item_type = 2 [(.description) = "enum"]; + optional uint32 store_item_id = 3; + optional string store_item_name = 4; + optional uint32 discount_event_id = 5; + optional uint32 creator_id = 6; + optional uint32 rtime32_start_time = 7; + optional uint32 last_update_time = 8; + optional string template_json = 9; + optional string partner_jsondata = 10; + optional string internal_json = 11; + optional bool deleted = 12; + optional bool cancelled = 13; + optional uint32 rtime32_cancel_time = 14; + optional fixed64 asset_request_id = 15; +} + +service DailyDeal { + rpc CancelDailyDeal (.CDailyDeal_CancelDailyDeal_Request) returns (.CDailyDeal_CancelDailyDeal_Response); + rpc CreateDailyDeal (.CDailyDeal_CreateDailyDeal_Request) returns (.CDailyDeal_CreateDailyDeal_Response); + rpc DeleteDailyDeal (.CDailyDeal_DeleteDailyDeal_Request) returns (.CDailyDeal_DeleteDailyDeal_Response); + rpc GetDailyDeals (.CDailyDeal_GetDailyDeals_Request) returns (.CDailyDeal_GetDailyDeals_Response); + rpc GetDailyDealsForApps (.CDailyDeal_GetDailyDealsForApps_Request) returns (.CDailyDeal_GetDailyDealsForApps_Response); + rpc UpdateDailyDeal (.CDailyDeal_UpdateDailyDeal_Request) returns (.CDailyDeal_UpdateDailyDeal_Response); +} + diff --git a/Protobufs/webui/service_econ.proto b/Protobufs/webui/service_econ.proto new file mode 100644 index 0000000..ec10f05 --- /dev/null +++ b/Protobufs/webui/service_econ.proto @@ -0,0 +1,134 @@ + +message CEcon_Asset { + optional uint32 appid = 1; + optional uint64 contextid = 2; + optional uint64 assetid = 3; + optional uint64 classid = 4; + optional uint64 instanceid = 5; + optional uint32 currencyid = 6; + optional int64 amount = 7; + optional bool missing = 8; + optional int64 est_usd = 9; +} + +message CEcon_ClientGetItemShopOverlayAuthURL_Request { + optional string return_url = 1; +} + +message CEcon_ClientGetItemShopOverlayAuthURL_Response { + optional string url = 1; +} + +message CEcon_GetAssetClassInfo_Request { + optional string language = 1; + optional uint32 appid = 2; + repeated .CEcon_GetAssetClassInfo_Request_Class classes = 3; + optional bool high_pri = 4; +} + +message CEcon_GetAssetClassInfo_Request_Class { + optional uint64 classid = 1; + optional uint64 instanceid = 2; +} + +message CEcon_GetAssetClassInfo_Response { + repeated .CEconItem_Description descriptions = 1; +} + +message CEcon_GetInventoryItemsWithDescriptions_Request { + optional fixed64 steamid = 1; + optional uint32 appid = 2; + optional uint64 contextid = 3; + optional bool get_descriptions = 4; + optional string language = 5; + optional .CEcon_GetInventoryItemsWithDescriptions_Request_FilterOptions filters = 6; + optional uint64 start_assetid = 8; + optional int32 count = 9; + optional bool for_trade_offer_verification = 10; +} + +message CEcon_GetInventoryItemsWithDescriptions_Request_FilterOptions { + repeated uint64 assetids = 1; + repeated uint32 currencyids = 2; + optional bool tradable_only = 3; + optional bool marketable_only = 4; +} + +message CEcon_GetInventoryItemsWithDescriptions_Response { + repeated .CEcon_Asset assets = 1; + repeated .CEconItem_Description descriptions = 2; + repeated .CEcon_Asset missing_assets = 3; + optional bool more_items = 4; + optional uint64 last_assetid = 5; + optional uint32 total_inventory_count = 6; +} + +message CEcon_GetTradeOfferAccessToken_Request { + optional bool generate_new_token = 1; +} + +message CEcon_GetTradeOfferAccessToken_Response { + optional string trade_offer_access_token = 1; +} + +message CEconItem_Action { + optional string link = 1; + optional string name = 2; +} + +message CEconItem_Description { + optional int32 appid = 1; + optional uint64 classid = 2; + optional uint64 instanceid = 3; + optional bool currency = 4; + optional string background_color = 5; + optional string icon_url = 6; + optional string icon_url_large = 7; + repeated .CEconItem_DescriptionLine descriptions = 8; + optional bool tradable = 9; + repeated .CEconItem_Action actions = 10; + repeated .CEconItem_DescriptionLine owner_descriptions = 11; + repeated .CEconItem_Action owner_actions = 12; + repeated string fraudwarnings = 13; + optional string name = 14; + optional string name_color = 15; + optional string type = 16; + optional string market_name = 17; + optional string market_hash_name = 18; + optional string market_fee = 19; + optional .CEconItem_Description contained_item = 20; + repeated .CEconItem_Action market_actions = 21; + optional bool commodity = 22; + optional int32 market_tradable_restriction = 23; + optional int32 market_marketable_restriction = 24; + optional bool marketable = 25; + repeated .CEconItem_Tag tags = 26; + optional string item_expiration = 27; + optional int32 market_fee_app = 28; + optional string market_buy_country_restriction = 30; + optional string market_sell_country_restriction = 31; +} + +message CEconItem_DescriptionLine { + optional string type = 1; + optional string value = 2; + optional string color = 3; + optional string label = 4; +} + +message CEconItem_Tag { + optional uint32 appid = 1; + optional string category = 2; + optional string internal_name = 3; + optional string localized_category_name = 4; + optional string localized_tag_name = 5; + optional string color = 6; +} + +service Econ { + rpc ClientGetItemShopOverlayAuthURL (.CEcon_ClientGetItemShopOverlayAuthURL_Request) returns (.CEcon_ClientGetItemShopOverlayAuthURL_Response); + rpc GetAssetClassInfo (.CEcon_GetAssetClassInfo_Request) returns (.CEcon_GetAssetClassInfo_Response); + rpc GetInventoryItemsWithDescriptions (.CEcon_GetInventoryItemsWithDescriptions_Request) returns (.CEcon_GetInventoryItemsWithDescriptions_Response); + rpc GetTradeOfferAccessToken (.CEcon_GetTradeOfferAccessToken_Request) returns (.CEcon_GetTradeOfferAccessToken_Response); +} + diff --git a/Protobufs/webui/service_embedded.proto b/Protobufs/webui/service_embedded.proto new file mode 100644 index 0000000..5a367ce --- /dev/null +++ b/Protobufs/webui/service_embedded.proto @@ -0,0 +1,24 @@ + +message CEmbeddedClient_AuthorizeCurrentDevice_Request { + optional fixed64 steamid = 1; + optional uint32 appid = 2; + optional string device_info = 3; + optional uint32 deviceid = 4; +} + +message CEmbeddedClient_AuthorizeDevice_Response { + optional uint32 result = 1; + optional .CEmbeddedClient_Token token = 2; +} + +message CEmbeddedClient_Token { + optional fixed64 steamid = 1; + optional bytes client_token = 2; + optional uint32 expiry = 3; + optional uint32 deviceid = 4; +} + +service EmbeddedClient { + rpc AuthorizeCurrentDevice (.CEmbeddedClient_AuthorizeCurrentDevice_Request) returns (.CEmbeddedClient_AuthorizeDevice_Response); +} + diff --git a/Protobufs/webui/service_experimentservice.proto b/Protobufs/webui/service_experimentservice.proto new file mode 100644 index 0000000..c8eb949 --- /dev/null +++ b/Protobufs/webui/service_experimentservice.proto @@ -0,0 +1,6 @@ +import "common_base.proto"; + +service ExperimentService { + rpc ReportProductImpressionsFromClient (.NotImplemented) returns (.NoResponse); +} + diff --git a/Protobufs/webui/service_familygroups.proto b/Protobufs/webui/service_familygroups.proto new file mode 100644 index 0000000..67c75a9 --- /dev/null +++ b/Protobufs/webui/service_familygroups.proto @@ -0,0 +1,386 @@ +import "common_base.proto"; + +message CFamilyGroups_CancelFamilyGroupInvite_Request { + optional uint64 family_groupid = 1; + optional fixed64 steamid_to_cancel = 2; +} + +message CFamilyGroups_CancelFamilyGroupInvite_Response { +} + +message CFamilyGroups_ClearCooldownSkip_Request { + optional fixed64 steamid = 1; + optional uint64 invite_id = 2; +} + +message CFamilyGroups_ClearCooldownSkip_Response { +} + +message CFamilyGroups_ConfirmInviteToFamilyGroup_Request { + optional uint64 family_groupid = 1; + optional uint64 invite_id = 2; + optional uint64 nonce = 3; +} + +message CFamilyGroups_ConfirmInviteToFamilyGroup_Response { +} + +message CFamilyGroups_ConfirmJoinFamilyGroup_Request { + optional uint64 family_groupid = 1; + optional uint64 invite_id = 2; + optional uint64 nonce = 3; +} + +message CFamilyGroups_ConfirmJoinFamilyGroup_Response { +} + +message CFamilyGroups_CreateFamilyGroup_Request { + optional string name = 1; + optional fixed64 steamid = 2; +} + +message CFamilyGroups_CreateFamilyGroup_Response { + optional uint64 family_groupid = 1; + optional bool cooldown_skip_granted = 2; +} + +message CFamilyGroups_DeleteFamilyGroup_Request { + optional uint64 family_groupid = 1; +} + +message CFamilyGroups_DeleteFamilyGroup_Response { +} + +message CFamilyGroups_ForceAcceptInvite_Request { + optional uint64 family_groupid = 1; + optional fixed64 steamid = 2; +} + +message CFamilyGroups_ForceAcceptInvite_Response { +} + +message CFamilyGroups_GetChangeLog_Request { + optional uint64 family_groupid = 1; +} + +message CFamilyGroups_GetChangeLog_Response { + repeated .CFamilyGroups_GetChangeLog_Response_Change changes = 1; +} + +message CFamilyGroups_GetChangeLog_Response_Change { + optional fixed64 timestamp = 1; + optional fixed64 actor_steamid = 2; + optional int32 type = 3 [(.description) = "enum"]; + optional string body = 4; + optional bool by_support = 5; +} + +message CFamilyGroups_GetFamilyGroup_Request { + optional uint64 family_groupid = 1; + optional bool send_running_apps = 2; +} + +message CFamilyGroups_GetFamilyGroup_Response { + optional string name = 1; + repeated .FamilyGroupMember members = 2; + repeated .FamilyGroupPendingInvite pending_invites = 3; + optional uint32 free_spots = 4; + optional string country = 5; + optional uint32 slot_cooldown_remaining_seconds = 6; + repeated .FamilyGroupFormerMember former_members = 7; + optional uint32 slot_cooldown_overrides = 8; +} + +message CFamilyGroups_GetFamilyGroupForUser_Request { + optional uint64 steamid = 1; + optional bool include_family_group_response = 2; +} + +message CFamilyGroups_GetFamilyGroupForUser_Response { + optional uint64 family_groupid = 1; + optional bool is_not_member_of_any_group = 2; + optional uint32 latest_time_joined = 3; + optional uint64 latest_joined_family_groupid = 4; + repeated .FamilyGroupPendingInviteForUser pending_group_invites = 5; + optional uint32 role = 6; + optional uint32 cooldown_seconds_remaining = 7; + optional .CFamilyGroups_GetFamilyGroup_Response family_group = 8; + optional bool can_undelete_last_joined_family = 9; +} + +message CFamilyGroups_GetInviteCheckResults_Request { + optional uint64 family_groupid = 1; + optional fixed64 steamid = 2; +} + +message CFamilyGroups_GetInviteCheckResults_Response { + optional bool wallet_country_matches = 1; + optional bool ip_match = 2; + optional uint32 join_restriction = 3; +} + +message CFamilyGroups_GetPlaytimeSummary_Request { + optional fixed64 family_groupid = 1; +} + +message CFamilyGroups_GetPlaytimeSummary_Response { + repeated .CFamilyGroups_PlaytimeEntry entries = 1; + repeated .CFamilyGroups_PlaytimeEntry entries_by_owner = 2; +} + +message CFamilyGroups_GetPreferredLenders_Request { + optional uint64 family_groupid = 1; +} + +message CFamilyGroups_GetPreferredLenders_Response { + repeated .CFamilyGroups_GetPreferredLenders_Response_FamilyMember members = 1; +} + +message CFamilyGroups_GetPreferredLenders_Response_FamilyMember { + optional fixed64 steamid = 1; + repeated uint32 preferred_appids = 2; +} + +message CFamilyGroups_GetPurchaseRequests_Request { + optional uint64 family_groupid = 1; + repeated uint64 request_ids = 3; + optional uint32 rt_include_completed_since = 4; +} + +message CFamilyGroups_GetPurchaseRequests_Response { + repeated .PurchaseRequest requests = 1; +} + +message CFamilyGroups_GetSharedLibraryApps_Request { + optional fixed64 family_groupid = 1; + optional bool include_own = 2; + optional bool include_excluded = 3; + optional string language = 5; + optional uint32 max_apps = 6; + optional bool include_non_games = 7; + optional fixed64 steamid = 8; +} + +message CFamilyGroups_GetSharedLibraryApps_Response { + repeated .CFamilyGroups_GetSharedLibraryApps_Response_SharedApp apps = 1; + optional fixed64 owner_steamid = 2; +} + +message CFamilyGroups_GetSharedLibraryApps_Response_SharedApp { + optional uint32 appid = 1; + repeated fixed64 owner_steamids = 2; + optional string name = 6; + optional string sort_as = 7; + optional string capsule_filename = 8; + optional string img_icon_hash = 9; + optional int32 exclude_reason = 10 [default = 0, (.description) = "enum"]; + optional uint32 rt_time_acquired = 11; + optional uint32 rt_last_played = 12; + optional uint32 rt_playtime = 13; + optional int32 app_type = 14 [default = 1, (.description) = "enum"]; + repeated uint32 content_descriptors = 15; +} + +message CFamilyGroups_GetUsersSharingDevice_Request { + optional uint64 family_groupid = 1; + optional uint64 client_instance_id = 2; +} + +message CFamilyGroups_GetUsersSharingDevice_Response { + repeated fixed64 users = 1; +} + +message CFamilyGroups_InviteToFamilyGroup_Request { + optional uint64 family_groupid = 1; + optional fixed64 receiver_steamid = 2; + optional int32 receiver_role = 3 [(.description) = "enum"]; +} + +message CFamilyGroups_InviteToFamilyGroup_Response { + optional uint64 invite_id = 1; + optional int32 two_factor_method = 2 [(.description) = "enum"]; +} + +message CFamilyGroups_JoinFamilyGroup_Request { + optional uint64 family_groupid = 1; + optional uint64 nonce = 2; +} + +message CFamilyGroups_JoinFamilyGroup_Response { + optional int32 two_factor_method = 2 [(.description) = "enum"]; + optional bool cooldown_skip_granted = 3; + optional bool invite_already_accepted = 4; +} + +message CFamilyGroups_ModifyFamilyGroupDetails_Request { + optional uint64 family_groupid = 1; + optional string name = 2; +} + +message CFamilyGroups_ModifyFamilyGroupDetails_Response { +} + +message CFamilyGroups_PlaytimeEntry { + optional fixed64 steamid = 1; + optional uint32 appid = 2; + optional uint32 first_played = 3; + optional uint32 latest_played = 4; + optional uint32 seconds_played = 5; +} + +message CFamilyGroups_RemoveFromFamilyGroup_Request { + optional uint64 family_groupid = 1; + optional fixed64 steamid_to_remove = 2; +} + +message CFamilyGroups_RemoveFromFamilyGroup_Response { +} + +message CFamilyGroups_RequestPurchase_Request { + optional uint64 family_groupid = 1; + optional uint64 gidshoppingcart = 2; + optional string store_country_code = 3; + optional bool use_account_cart = 4; +} + +message CFamilyGroups_RequestPurchase_Response { + optional uint64 gidshoppingcart = 1; + optional uint64 request_id = 2; +} + +message CFamilyGroups_ResendInvitationToFamilyGroup_Request { + optional uint64 family_groupid = 1; + optional uint64 steamid = 2; +} + +message CFamilyGroups_ResendInvitationToFamilyGroup_Response { +} + +message CFamilyGroups_RespondToRequestedPurchase_Request { + optional uint64 family_groupid = 1; + optional int32 action = 3 [(.description) = "enum"]; + optional uint64 request_id = 4; +} + +message CFamilyGroups_RespondToRequestedPurchase_Response { +} + +message CFamilyGroups_SetFamilyCooldownOverrides_Request { + optional uint64 family_groupid = 1; + optional uint32 cooldown_count = 2; +} + +message CFamilyGroups_SetFamilyCooldownOverrides_Response { +} + +message CFamilyGroups_SetPreferredLender_Request { + optional uint64 family_groupid = 1; + optional uint32 appid = 2; + optional fixed64 lender_steamid = 3; +} + +message CFamilyGroups_SetPreferredLender_Response { +} + +message CFamilyGroups_UndeleteFamilyGroup_Request { + optional uint64 family_groupid = 1; +} + +message CFamilyGroups_UndeleteFamilyGroup_Response { +} + +message CFamilyGroupsClient_GroupChanged_Notification { + optional uint64 family_groupid = 1; +} + +message CFamilyGroupsClient_InviteStatus_Notification { +} + +message CFamilyGroupsClient_NotifyRunningApps_Notification { + optional uint64 family_groupid = 1; + repeated .CFamilyGroupsClient_NotifyRunningApps_Notification_RunningApp running_apps = 2; +} + +message CFamilyGroupsClient_NotifyRunningApps_Notification_PlayingMember { + optional fixed64 member_steamid = 1; + optional fixed64 owner_steamid = 2; +} + +message CFamilyGroupsClient_NotifyRunningApps_Notification_RunningApp { + optional uint32 appid = 1; + repeated .CFamilyGroupsClient_NotifyRunningApps_Notification_PlayingMember playing_members = 3; +} + +message FamilyGroupFormerMember { + optional fixed64 steamid = 1; +} + +message FamilyGroupMember { + optional fixed64 steamid = 1; + optional int32 role = 2 [(.description) = "enum"]; + optional uint32 time_joined = 3; + optional uint32 cooldown_seconds_remaining = 4; +} + +message FamilyGroupPendingInvite { + optional fixed64 steamid = 1; + optional int32 role = 2 [(.description) = "enum"]; +} + +message FamilyGroupPendingInviteForUser { + optional uint64 family_groupid = 1; + optional int32 role = 2 [(.description) = "enum"]; + optional fixed64 inviter_steamid = 3; + optional bool awaiting_2fa = 4; +} + +message PurchaseRequest { + optional fixed64 requester_steamid = 1; + optional uint64 gidshoppingcart = 2; + optional uint32 time_requested = 3; + optional uint32 time_responded = 4; + optional fixed64 responder_steamid = 5; + optional int32 response_action = 6 [(.description) = "enum"]; + optional bool is_completed = 7; + optional uint64 request_id = 8; + repeated uint32 requested_packageids = 9; + repeated uint32 purchased_packageids = 10; + repeated uint32 requested_bundleids = 11; + repeated uint32 purchased_bundleids = 12; +} + +service FamilyGroups { + rpc CancelFamilyGroupInvite (.CFamilyGroups_CancelFamilyGroupInvite_Request) returns (.CFamilyGroups_CancelFamilyGroupInvite_Response); + rpc ClearCooldownSkip (.CFamilyGroups_ClearCooldownSkip_Request) returns (.CFamilyGroups_ClearCooldownSkip_Response); + rpc ConfirmInviteToFamilyGroup (.CFamilyGroups_ConfirmInviteToFamilyGroup_Request) returns (.CFamilyGroups_ConfirmInviteToFamilyGroup_Response); + rpc ConfirmJoinFamilyGroup (.CFamilyGroups_ConfirmJoinFamilyGroup_Request) returns (.CFamilyGroups_ConfirmJoinFamilyGroup_Response); + rpc CreateFamilyGroup (.CFamilyGroups_CreateFamilyGroup_Request) returns (.CFamilyGroups_CreateFamilyGroup_Response); + rpc DeleteFamilyGroup (.CFamilyGroups_DeleteFamilyGroup_Request) returns (.CFamilyGroups_DeleteFamilyGroup_Response); + rpc ForceAcceptInvite (.CFamilyGroups_ForceAcceptInvite_Request) returns (.CFamilyGroups_ForceAcceptInvite_Response); + rpc GetChangeLog (.CFamilyGroups_GetChangeLog_Request) returns (.CFamilyGroups_GetChangeLog_Response); + rpc GetFamilyGroup (.CFamilyGroups_GetFamilyGroup_Request) returns (.CFamilyGroups_GetFamilyGroup_Response); + rpc GetFamilyGroupForUser (.CFamilyGroups_GetFamilyGroupForUser_Request) returns (.CFamilyGroups_GetFamilyGroupForUser_Response); + rpc GetInviteCheckResults (.CFamilyGroups_GetInviteCheckResults_Request) returns (.CFamilyGroups_GetInviteCheckResults_Response); + rpc GetPlaytimeSummary (.CFamilyGroups_GetPlaytimeSummary_Request) returns (.CFamilyGroups_GetPlaytimeSummary_Response); + rpc GetPreferredLenders (.CFamilyGroups_GetPreferredLenders_Request) returns (.CFamilyGroups_GetPreferredLenders_Response); + rpc GetPurchaseRequests (.CFamilyGroups_GetPurchaseRequests_Request) returns (.CFamilyGroups_GetPurchaseRequests_Response); + rpc GetSharedLibraryApps (.CFamilyGroups_GetSharedLibraryApps_Request) returns (.CFamilyGroups_GetSharedLibraryApps_Response); + rpc GetUsersSharingDevice (.CFamilyGroups_GetUsersSharingDevice_Request) returns (.CFamilyGroups_GetUsersSharingDevice_Response); + rpc InviteToFamilyGroup (.CFamilyGroups_InviteToFamilyGroup_Request) returns (.CFamilyGroups_InviteToFamilyGroup_Response); + rpc JoinFamilyGroup (.CFamilyGroups_JoinFamilyGroup_Request) returns (.CFamilyGroups_JoinFamilyGroup_Response); + rpc ModifyFamilyGroupDetails (.CFamilyGroups_ModifyFamilyGroupDetails_Request) returns (.CFamilyGroups_ModifyFamilyGroupDetails_Response); + rpc RemoveFromFamilyGroup (.CFamilyGroups_RemoveFromFamilyGroup_Request) returns (.CFamilyGroups_RemoveFromFamilyGroup_Response); + rpc RequestPurchase (.CFamilyGroups_RequestPurchase_Request) returns (.CFamilyGroups_RequestPurchase_Response); + rpc ResendInvitationToFamilyGroup (.CFamilyGroups_ResendInvitationToFamilyGroup_Request) returns (.CFamilyGroups_ResendInvitationToFamilyGroup_Response); + rpc RespondToRequestedPurchase (.CFamilyGroups_RespondToRequestedPurchase_Request) returns (.CFamilyGroups_RespondToRequestedPurchase_Response); + rpc SetFamilyCooldownOverrides (.CFamilyGroups_SetFamilyCooldownOverrides_Request) returns (.CFamilyGroups_SetFamilyCooldownOverrides_Response); + rpc SetPreferredLender (.CFamilyGroups_SetPreferredLender_Request) returns (.CFamilyGroups_SetPreferredLender_Response); + rpc UndeleteFamilyGroup (.CFamilyGroups_UndeleteFamilyGroup_Request) returns (.CFamilyGroups_UndeleteFamilyGroup_Response); +} + +service FamilyGroupsClient { + rpc NotifyGroupChanged (.CFamilyGroupsClient_GroupChanged_Notification) returns (.NoResponse); + rpc NotifyInviteStatus (.CFamilyGroupsClient_InviteStatus_Notification) returns (.NoResponse); + rpc NotifyRunningApps (.CFamilyGroupsClient_NotifyRunningApps_Notification) returns (.NoResponse); +} + diff --git a/Protobufs/webui/service_fovasvideo.proto b/Protobufs/webui/service_fovasvideo.proto new file mode 100644 index 0000000..445ebe3 --- /dev/null +++ b/Protobufs/webui/service_fovasvideo.proto @@ -0,0 +1,15 @@ + +message CFovasVideo_ClientGetOPFSettings_Request { + optional uint32 app_id = 1; + optional uint32 client_cellid = 2; +} + +message CFovasVideo_ClientGetOPFSettings_Response { + optional uint32 app_id = 1; + optional string opf_settings = 2; +} + +service FovasVideo { + rpc ClientGetOPFSettings (.CFovasVideo_ClientGetOPFSettings_Request) returns (.CFovasVideo_ClientGetOPFSettings_Response); +} + diff --git a/Protobufs/webui/service_friendmessages.proto b/Protobufs/webui/service_friendmessages.proto new file mode 100644 index 0000000..55b25ae --- /dev/null +++ b/Protobufs/webui/service_friendmessages.proto @@ -0,0 +1,133 @@ +import "common_base.proto"; + +message CFriendMessages_AckMessage_Notification { + optional fixed64 steamid_partner = 1; + optional uint32 timestamp = 2; +} + +message CFriendMessages_GetRecentMessages_Request { + optional fixed64 steamid1 = 1; + optional fixed64 steamid2 = 2; + optional uint32 count = 3; + optional bool most_recent_conversation = 4; + optional fixed32 rtime32_start_time = 5; + optional bool bbcode_format = 6; + optional uint32 start_ordinal = 7; + optional uint32 time_last = 8; + optional uint32 ordinal_last = 9; +} + +message CFriendMessages_GetRecentMessages_Response { + repeated .CFriendMessages_GetRecentMessages_Response_FriendMessage messages = 1; + optional bool more_available = 4; +} + +message CFriendMessages_GetRecentMessages_Response_FriendMessage { + optional uint32 accountid = 1; + optional uint32 timestamp = 2; + optional string message = 3; + optional uint32 ordinal = 4; + repeated .CFriendMessages_GetRecentMessages_Response_FriendMessage_MessageReaction reactions = 5; +} + +message CFriendMessages_GetRecentMessages_Response_FriendMessage_MessageReaction { + optional int32 reaction_type = 1 [(.description) = "enum"]; + optional string reaction = 2; + repeated uint32 reactors = 3; +} + +message CFriendMessages_IncomingMessage_Notification { + optional fixed64 steamid_friend = 1; + optional int32 chat_entry_type = 2; + optional bool from_limited_account = 3; + optional string message = 4; + optional fixed32 rtime32_server_timestamp = 5; + optional uint32 ordinal = 6; + optional bool local_echo = 7; + optional string message_no_bbcode = 8; + optional bool low_priority = 9; +} + +message CFriendMessages_IsInFriendsUIBeta_Request { + optional fixed64 steamid = 1; +} + +message CFriendMessages_IsInFriendsUIBeta_Response { + optional bool online_in_friendsui = 1; + optional bool has_used_friendsui = 2; +} + +message CFriendMessages_MessageReaction_Notification { + optional fixed64 steamid_friend = 1; + optional uint32 server_timestamp = 2; + optional uint32 ordinal = 3; + optional fixed64 reactor = 4; + optional int32 reaction_type = 5 [(.description) = "enum"]; + optional string reaction = 6; + optional bool is_add = 7; +} + +message CFriendMessages_SendMessage_Request { + optional fixed64 steamid = 1; + optional int32 chat_entry_type = 2; + optional string message = 3; + optional bool contains_bbcode = 4; + optional bool echo_to_sender = 5; + optional bool low_priority = 6; + optional bool override_limits = 7; + optional string client_message_id = 8; + optional bool blocked_in_china = 9; +} + +message CFriendMessages_SendMessage_Response { + optional string modified_message = 1; + optional uint32 server_timestamp = 2; + optional uint32 ordinal = 3; + optional string message_without_bb_code = 4; +} + +message CFriendMessages_UpdateMessageReaction_Request { + optional fixed64 steamid = 1; + optional uint32 server_timestamp = 2; + optional uint32 ordinal = 3; + optional int32 reaction_type = 4 [(.description) = "enum"]; + optional string reaction = 5; + optional bool is_add = 6; +} + +message CFriendMessages_UpdateMessageReaction_Response { + repeated uint32 reactors = 1; +} + +message CFriendsMessages_GetActiveMessageSessions_Request { + optional uint32 lastmessage_since = 1; + optional bool only_sessions_with_messages = 2; +} + +message CFriendsMessages_GetActiveMessageSessions_Response { + repeated .CFriendsMessages_GetActiveMessageSessions_Response_FriendMessageSession message_sessions = 1; + optional uint32 timestamp = 2; +} + +message CFriendsMessages_GetActiveMessageSessions_Response_FriendMessageSession { + optional uint32 accountid_friend = 1; + optional uint32 last_message = 2; + optional uint32 last_view = 3; + optional uint32 unread_message_count = 4; +} + +service FriendMessages { + rpc AckMessage (.CFriendMessages_AckMessage_Notification) returns (.NoResponse); + rpc GetActiveMessageSessions (.CFriendsMessages_GetActiveMessageSessions_Request) returns (.CFriendsMessages_GetActiveMessageSessions_Response); + rpc GetRecentMessages (.CFriendMessages_GetRecentMessages_Request) returns (.CFriendMessages_GetRecentMessages_Response); + rpc IsInFriendsUIBeta (.CFriendMessages_IsInFriendsUIBeta_Request) returns (.CFriendMessages_IsInFriendsUIBeta_Response); + rpc SendMessage (.CFriendMessages_SendMessage_Request) returns (.CFriendMessages_SendMessage_Response); + rpc UpdateMessageReaction (.CFriendMessages_UpdateMessageReaction_Request) returns (.CFriendMessages_UpdateMessageReaction_Response); +} + +service FriendMessagesClient { + rpc IncomingMessage (.CFriendMessages_IncomingMessage_Notification) returns (.NoResponse); + rpc MessageReaction (.CFriendMessages_MessageReaction_Notification) returns (.NoResponse); + rpc NotifyAckMessageEcho (.CFriendMessages_AckMessage_Notification) returns (.NoResponse); +} + diff --git a/Protobufs/webui/service_friendslist.proto b/Protobufs/webui/service_friendslist.proto new file mode 100644 index 0000000..4affac6 --- /dev/null +++ b/Protobufs/webui/service_friendslist.proto @@ -0,0 +1,70 @@ +import "common_base.proto"; + +message CFriendsList_FavoritesChanged_Notification { + repeated .CFriendsListFavoriteEntry favorites = 1; +} + +message CFriendsList_GetCategories_Request { +} + +message CFriendsList_GetCategories_Response { + repeated .CFriendsListCategory categories = 1; +} + +message CFriendsList_GetFavorites_Request { +} + +message CFriendsList_GetFavorites_Response { + repeated .CFriendsListFavoriteEntry favorites = 1; +} + +message CFriendsList_GetFriendsList_Request { +} + +message CFriendsList_GetFriendsList_Response { + optional .CMsgClientFriendsList friendslist = 1; +} + +message CFriendsList_SetFavorites_Request { + repeated .CFriendsListFavoriteEntry favorites = 1; +} + +message CFriendsList_SetFavorites_Response { +} + +message CFriendsListCategory { + optional uint32 groupid = 1; + optional string name = 2; + repeated uint32 accountid_members = 3; +} + +message CFriendsListFavoriteEntry { + optional uint32 accountid = 1; + optional uint32 clanid = 2; + optional uint64 chat_group_id = 3; +} + +message CMsgClientFriendsList { + optional bool bincremental = 1; + repeated .CMsgClientFriendsList_Friend friends = 2; + optional uint32 max_friend_count = 3; + optional uint32 active_friend_count = 4; + optional bool friends_limit_hit = 5; +} + +message CMsgClientFriendsList_Friend { + optional fixed64 ulfriendid = 1; + optional uint32 efriendrelationship = 2; +} + +service FriendsList { + rpc GetCategories (.CFriendsList_GetCategories_Request) returns (.CFriendsList_GetCategories_Response); + rpc GetFavorites (.CFriendsList_GetFavorites_Request) returns (.CFriendsList_GetFavorites_Response); + rpc GetFriendsList (.CFriendsList_GetFriendsList_Request) returns (.CFriendsList_GetFriendsList_Response); + rpc SetFavorites (.CFriendsList_SetFavorites_Request) returns (.CFriendsList_SetFavorites_Response); +} + +service FriendsListClient { + rpc FavoritesChanged (.CFriendsList_FavoritesChanged_Notification) returns (.NoResponse); +} + diff --git a/Protobufs/webui/service_gamenotes.proto b/Protobufs/webui/service_gamenotes.proto new file mode 100644 index 0000000..968ddc6 --- /dev/null +++ b/Protobufs/webui/service_gamenotes.proto @@ -0,0 +1,15 @@ + +message CGameNotes_UploadImage_Request { + optional string file_prefix = 1; + optional string mime_type = 2; + optional bytes data = 3; +} + +message CGameNotes_UploadImage_Response { + optional string filename = 1; +} + +service GameNotes { + rpc UploadImage (.CGameNotes_UploadImage_Request) returns (.CGameNotes_UploadImage_Response); +} + diff --git a/Protobufs/webui/service_gamerecording.proto b/Protobufs/webui/service_gamerecording.proto new file mode 100644 index 0000000..dcf6ac5 --- /dev/null +++ b/Protobufs/webui/service_gamerecording.proto @@ -0,0 +1,538 @@ +import "common_base.proto"; + +message CGameRecording_CleanupBackgroundRecordings_Request { +} + +message CGameRecording_CleanupBackgroundRecordings_Response { +} + +message CGameRecording_ClipCreated_Notification { + optional .CGameRecording_ClipSummary summary = 1; +} + +message CGameRecording_ClipDeleted_Notification { + optional string clip_id = 1; + optional uint64 game_id = 2; +} + +message CGameRecording_ClipSummary { + optional string clip_id = 1; + optional uint64 game_id = 2; + optional uint64 duration_ms = 3; + optional uint32 date_recorded = 4; + optional string start_timeline_id = 5; + optional uint64 start_offset_ms = 6; + optional uint64 published_file_id = 7; + optional uint64 file_size = 8; + optional string name = 9; + optional uint32 date_clipped = 10; + optional bool temporary = 11; + optional string original_device = 12; + optional uint32 original_gaming_device_type = 13; + optional uint32 date_downloaded = 14; + optional string thumbnail_url = 15; + optional uint32 thumbnail_width = 16; + optional uint32 thumbnail_height = 17; +} + +message CGameRecording_DeleteClip_Request { + optional string clip_id = 1; +} + +message CGameRecording_DeleteClip_Response { +} + +message CGameRecording_DeletePerGameSettings_Request { + optional fixed64 gameid = 1; +} + +message CGameRecording_DeletePerGameSettings_Response { +} + +message CGameRecording_ExportClip_Request { + optional string clip_id = 1; + optional string export_mp4_path = 2; + optional .CGameRecording_ExportClip_Settings settings = 3; +} + +message CGameRecording_ExportClip_Response { +} + +message CGameRecording_ExportClip_Settings { + optional int32 bitrate_kbps = 1; + optional int32 width = 2; + optional int32 height = 3; + optional int32 frames_per_second = 4; +} + +message CGameRecording_ExportProgress_Notification { + optional float progress = 1; + optional string clip_id = 2; + optional int32 eresult = 3; +} + +message CGameRecording_GetActiveTimelineApps_Request { +} + +message CGameRecording_GetActiveTimelineApps_Response { + repeated .CGameRecording_GetActiveTimelineApps_Response_App apps = 1; +} + +message CGameRecording_GetActiveTimelineApps_Response_App { + optional uint64 game_id = 1; + optional uint32 most_recent_start_time = 2; + optional int32 recording_type = 3 [(.description) = "enum"]; + optional double video_duration_seconds = 4; + optional double timeline_duration_seconds = 5; + optional bool is_active = 6; + optional uint64 file_size = 7; +} + +message CGameRecording_GetAndTrimPostGameHighlights_Request { + optional uint64 game_id = 1; + optional uint32 created_after = 2; +} + +message CGameRecording_GetAndTrimPostGameHighlights_Response { + repeated .CGameRecordingTimelineEvent events = 1; +} + +message CGameRecording_GetAvailableDiskSpace_Request { +} + +message CGameRecording_GetAvailableDiskSpace_Response { + optional double size = 1; +} + +message CGameRecording_GetClips_Request { + optional uint64 game_id = 1; + optional uint32 created_after = 2; + optional bool include_temporary = 3; +} + +message CGameRecording_GetClips_Response { + repeated .CGameRecording_ClipSummary clip = 1; +} + +message CGameRecording_GetEnoughDiskSpace_Request { +} + +message CGameRecording_GetEnoughDiskSpace_Response { + optional bool enough_space = 1; +} + +message CGameRecording_GetPerGameSettings_Request { +} + +message CGameRecording_GetPerGameSettings_Response { + repeated .CGameRecording_PerGameSettings settings = 1; +} + +message CGameRecording_GetPlatformCapabilities_Request { +} + +message CGameRecording_GetPlatformCapabilities_Response { + optional bool per_process_audio_capture = 1; +} + +message CGameRecording_GetRecordingSize_Request { + optional uint64 game_id = 1; +} + +message CGameRecording_GetRecordingSize_Response { + optional uint64 file_size = 1; +} + +message CGameRecording_GetTags_Request { + optional uint64 game_id = 1; +} + +message CGameRecording_GetTags_Response { + repeated .CTimelineTag tags = 1; +} + +message CGameRecording_GetThumbnails_Request { + optional string recording_id = 1; + optional string clip_id = 3; + repeated int64 start_offset_us = 4; + optional uint32 major_axis = 5 [default = 512]; + optional int32 time_precision = 6 [default = 0, (.description) = "enum"]; + optional string timeline_id = 7; + optional int32 format = 8 [default = 1, (.description) = "enum"]; +} + +message CGameRecording_GetThumbnails_Response { + repeated .CGameRecording_GetThumbnails_Response_Thumbnail thumbnails = 1; +} + +message CGameRecording_GetThumbnails_Response_Thumbnail { + optional bytes image_data = 1; + optional uint32 width = 2; + optional uint32 height = 3; +} + +message CGameRecording_GetTimelinesForApp_Request { + optional uint64 game_id = 1; +} + +message CGameRecording_GetTimelinesForApp_Response { + repeated .CGameRecordingTimelineMetadata timelines = 1; +} + +message CGameRecording_GetTimelinesForClip_Request { + optional string clip_id = 1; +} + +message CGameRecording_GetTimelinesForClip_Response { + optional uint64 game_id = 1; + repeated .CGameRecordingTimelineMetadata timelines = 2; + optional uint64 first_timeline_start_offset_ms = 3; +} + +message CGameRecording_GetTotalDiskSpaceUsage_Request { + optional string folder_path = 1; + optional int32 type = 2 [(.description) = "enum"]; +} + +message CGameRecording_GetTotalDiskSpaceUsage_Response { + optional uint64 size = 1; +} + +message CGameRecording_LowDiskSpace_Notification { +} + +message CGameRecording_ManuallyDeleteRecordingsForApps_Request { + repeated uint64 game_ids = 1; +} + +message CGameRecording_ManuallyDeleteRecordingsForApps_Response { +} + +message CGameRecording_OpenOverlayToGamePhase_Notification { + optional uint64 game_id = 1; + optional string phase_id = 2; +} + +message CGameRecording_OpenOverlayToTimelineEvent_Notification { + optional uint64 game_id = 1; + optional uint64 entry_id = 2; +} + +message CGameRecording_PerGameSettings { + optional fixed64 gameid = 1; + optional bool enabled = 2; + optional int32 minutes = 3; + optional int32 bitrate = 4; +} + +message CGameRecording_PhaseListChanged_Notification { +} + +message CGameRecording_PostGameHighlightsChanged_Notification { + optional uint64 game_id = 1; +} + +message CGameRecording_QueryPhases_Request { + optional uint32 page = 1; + optional uint32 count = 2; + optional uint64 filter_gameid = 10; + optional string filter_search_string = 11; + repeated .CGameRecording_QueryPhases_Request_Tag filter_tags = 12; + optional string filter_phase_id = 13; +} + +message CGameRecording_QueryPhases_Request_Tag { + optional string group = 1; + optional string name = 2; +} + +message CGameRecording_QueryPhases_Response { + repeated .CGameRecording_QueryPhases_Response_Phase phases = 1; + optional uint32 total_count = 2; +} + +message CGameRecording_QueryPhases_Response_Phase { + optional uint64 game_id = 1; + optional uint32 date_recorded = 5; + optional uint64 duration_ms = 6; + repeated .CTimelineTag tags = 7; + repeated .CTimelineTag contained_tags = 8; + optional .CGameRecording_QueryPhases_Response_Phase_BackgroundRecording background_recording = 9; + repeated string clip_ids = 10; + optional int32 type = 11 [(.description) = "enum"]; + optional uint64 start_ms = 12; + repeated uint32 screenshots = 13; + optional bool active = 14; + optional string phase_id = 15; + repeated .CTimelineEntry significant_events = 16; + repeated .CPhaseAttribute attributes = 17; +} + +message CGameRecording_QueryPhases_Response_Phase_BackgroundRecording { + optional string timeline_id = 1; + optional uint64 offset = 2; + optional uint64 duration_ms = 3; +} + +message CGameRecording_RecordingSessionChanged_Notification { + optional int32 notification_type = 1 [(.description) = "enum"]; + optional string timeline_id = 2; + optional uint64 game_id = 4; + optional string session_id = 5; + optional uint64 start_offset = 6; + optional uint64 duration_ms = 7; + optional int32 recording_type = 8 [(.description) = "enum"]; +} + +message CGameRecording_SaveClip_Request { + optional uint64 game_id = 1; + optional .CGameRecording_SaveClip_Request_Position start = 2; + optional .CGameRecording_SaveClip_Request_Position end = 3; + optional string name = 4; + optional string src_clip_id = 5; + optional bool temporary = 6; +} + +message CGameRecording_SaveClip_Request_Position { + optional string timeline_id = 1; + optional uint64 offset_ms = 2; +} + +message CGameRecording_SaveClip_Response { + optional .CGameRecording_ClipSummary summary = 1; +} + +message CGameRecording_SetPerGameSettings_Request { + optional .CGameRecording_PerGameSettings game_settings = 1; +} + +message CGameRecording_SetPerGameSettings_Response { +} + +message CGameRecording_StartRecording_Request { + optional uint64 game_id = 1; +} + +message CGameRecording_StartRecording_Response { +} + +message CGameRecording_StopRecording_Request { + optional uint64 game_id = 1; +} + +message CGameRecording_StopRecording_Response { + optional .CGameRecording_ClipSummary summary = 1; +} + +message CGameRecording_SwitchBackgroundRecordingGame_Request { + optional uint64 game_id = 1; +} + +message CGameRecording_SwitchBackgroundRecordingGame_Response { +} + +message CGameRecording_TakeScreenshot_Request { + optional fixed64 game_id = 1; + optional string timeline_id = 2; + optional uint64 timeline_offset_ms = 3; +} + +message CGameRecording_TakeScreenshot_Response { + optional fixed64 screenshot_id = 1; +} + +message CGameRecording_TimelineChanged_Notification { + optional int32 notification_type = 1 [(.description) = "enum"]; + optional string timeline_id = 2; + optional uint64 game_id = 3; + optional uint32 start_time = 4; + optional uint64 duration_ms = 5; +} + +message CGameRecording_TimelineEntryChanged_Notification { + optional .CTimelineEntry entry = 1; + optional fixed64 game_id = 2; +} + +message CGameRecording_UploadClipToSteam_Request { + optional string clip_id = 1; + optional string title = 2; + optional string desc = 3; + optional int32 visibility = 4; +} + +message CGameRecording_UploadClipToSteam_Response { + optional .CGameRecording_ClipSummary summary = 1; +} + +message CGameRecording_UploadProgress_Notification { + optional float progress = 1; + optional string clip_id = 2; + optional int32 eresult = 3; +} + +message CGameRecording_UserAddTimelineEntry_Request { + optional uint64 game_id = 1; + optional .CTimelineEntry entry = 2; + optional string clip_id = 3; +} + +message CGameRecording_UserAddTimelineEntry_Response { + optional uint64 entry_id = 1; +} + +message CGameRecording_UserRemoveTimelineEntry_Request { + optional uint64 game_id = 1; + optional string timeline_id = 2; + optional uint64 entry_id = 3; + optional string clip_id = 4; +} + +message CGameRecording_UserRemoveTimelineEntry_Response { +} + +message CGameRecording_UserUpdateTimelineEntry_Request { + optional uint64 game_id = 1; + optional .CTimelineEntry entry = 2; + optional string clip_id = 3; +} + +message CGameRecording_UserUpdateTimelineEntry_Response { +} + +message CGameRecording_ZipClip_Request { + optional string clip_id = 1; +} + +message CGameRecording_ZipClip_Response { + optional string zip_path = 1; +} + +message CGameRecordingPhase { + optional string phase_id = 4; + optional uint64 duration_ms = 5; + repeated .CGameRecordingPhase_Tag tags = 6; + repeated .CGameRecordingPhase_Tag contained_tags = 7; + optional uint64 background_timeline_offset = 8; + repeated .CPhaseAttribute attributes = 9; +} + +message CGameRecordingPhase_Tag { + optional string name = 1; + optional string group = 2; +} + +message CGameRecordingTimelineEvent { + optional uint64 game_id = 1; + optional uint32 rt_created = 2; + optional int32 possible_clip = 3; + optional string timeline_id = 4; + optional uint64 entry_id = 5; + optional uint64 timeline_offset_ms = 6; + optional uint64 duration_ms = 7; + optional string marker_icon = 8; + optional string marker_title = 9; + optional bool user_marker = 10; +} + +message CGameRecordingTimelineMetadata { + optional string timeline_id = 1; + optional uint64 game_id = 2; + optional uint32 date_recorded = 3; + optional uint64 duration_ms = 4; + repeated .CGameRecordingTimelineMetadata_Recording recordings = 5; + repeated .CGameRecordingPhase phases = 6; + repeated .CGameRecordingTimelineEvent significant_events = 7; +} + +message CGameRecordingTimelineMetadata_Recording { + optional string recording_id = 1; + optional uint64 start_offset_ms = 2; + optional uint64 duration_ms = 3; + optional int32 recording_type = 4 [(.description) = "enum"]; + optional bool delete_on_cleanup = 5; + optional uint64 video_manager_clip_id = 6; + optional uint64 video_manager_video_id = 7; + optional string cdn_manifest_url = 8; + optional uint64 file_size = 9; + optional uint64 recording_zero_timeline_offset_ms = 10; +} + +message CPhaseAttribute { + optional string group = 1; + optional string value = 2; + optional uint32 priority = 3; +} + +message CTimelineEntry { + optional string timeline_id = 1; + optional uint64 entry_id = 2; + optional uint64 time = 3; + optional int32 type = 4 [(.description) = "enum"]; + optional int32 game_mode = 5; + optional string range_title = 7; + optional uint64 range_duration = 8; + optional int32 range_possible_clip = 9; + optional string timestamp_title = 10; + optional string marker_icon = 11; + optional string marker_description = 13; + optional int32 marker_priority = 14; + optional uint32 screenshot_handle = 15; + optional string achievement_name = 16; + repeated .CTimelineTag tag = 17; + optional string phase_id = 18; + repeated .CPhaseAttribute attributes = 19; +} + +message CTimelineTag { + optional string name = 1; + optional string group = 2; + optional string icon = 3; + optional uint32 priority = 4; +} + +service GameRecording { + rpc CleanupBackgroundRecordings (.CGameRecording_CleanupBackgroundRecordings_Request) returns (.CGameRecording_CleanupBackgroundRecordings_Response); + rpc DeleteClip (.CGameRecording_DeleteClip_Request) returns (.CGameRecording_DeleteClip_Response); + rpc DeletePerGameSettings (.CGameRecording_DeletePerGameSettings_Request) returns (.CGameRecording_DeletePerGameSettings_Response); + rpc ExportClip (.CGameRecording_ExportClip_Request) returns (.CGameRecording_ExportClip_Response); + rpc GetActiveTimelineApps (.CGameRecording_GetActiveTimelineApps_Request) returns (.CGameRecording_GetActiveTimelineApps_Response); + rpc GetAndTrimPostGameHighlights (.CGameRecording_GetAndTrimPostGameHighlights_Request) returns (.CGameRecording_GetAndTrimPostGameHighlights_Response); + rpc GetAvailableDiskSpace (.CGameRecording_GetAvailableDiskSpace_Request) returns (.CGameRecording_GetAvailableDiskSpace_Response); + rpc GetBackgroundRecordingFileSize (.CGameRecording_GetRecordingSize_Request) returns (.CGameRecording_GetRecordingSize_Response); + rpc GetClips (.CGameRecording_GetClips_Request) returns (.CGameRecording_GetClips_Response); + rpc GetEnoughDiskSpace (.CGameRecording_GetEnoughDiskSpace_Request) returns (.CGameRecording_GetEnoughDiskSpace_Response); + rpc GetPerGameSettings (.CGameRecording_GetPerGameSettings_Request) returns (.CGameRecording_GetPerGameSettings_Response); + rpc GetPlatformCapabilities (.CGameRecording_GetPlatformCapabilities_Request) returns (.CGameRecording_GetPlatformCapabilities_Response); + rpc GetTags (.CGameRecording_GetTags_Request) returns (.CGameRecording_GetTags_Response); + rpc GetThumbnails (.CGameRecording_GetThumbnails_Request) returns (.CGameRecording_GetThumbnails_Response); + rpc GetTimelinesForApp (.CGameRecording_GetTimelinesForApp_Request) returns (.CGameRecording_GetTimelinesForApp_Response); + rpc GetTimelinesForClip (.CGameRecording_GetTimelinesForClip_Request) returns (.CGameRecording_GetTimelinesForClip_Response); + rpc GetTotalDiskSpaceUsage (.CGameRecording_GetTotalDiskSpaceUsage_Request) returns (.CGameRecording_GetTotalDiskSpaceUsage_Response); + rpc ManuallyDeleteRecordingsForApps (.CGameRecording_ManuallyDeleteRecordingsForApps_Request) returns (.CGameRecording_ManuallyDeleteRecordingsForApps_Response); + rpc NotifyClipCreated (.CGameRecording_ClipCreated_Notification) returns (.NoResponse); + rpc NotifyClipDeleted (.CGameRecording_ClipDeleted_Notification) returns (.NoResponse); + rpc NotifyExportProgress (.CGameRecording_ExportProgress_Notification) returns (.NoResponse); + rpc NotifyLowDiskSpace (.CGameRecording_LowDiskSpace_Notification) returns (.NoResponse); + rpc NotifyOpenOverlayToGamePhase (.CGameRecording_OpenOverlayToGamePhase_Notification) returns (.NoResponse); + rpc NotifyOpenOverlayToTimelineEvent (.CGameRecording_OpenOverlayToTimelineEvent_Notification) returns (.NoResponse); + rpc NotifyPhaseListChanged (.CGameRecording_PhaseListChanged_Notification) returns (.NoResponse); + rpc NotifyPostGameHighlightsChanged (.CGameRecording_PostGameHighlightsChanged_Notification) returns (.NoResponse); + rpc NotifyRecordingSessionChanged (.CGameRecording_RecordingSessionChanged_Notification) returns (.NoResponse); + rpc NotifyTimelineChanged (.CGameRecording_TimelineChanged_Notification) returns (.NoResponse); + rpc NotifyTimelineEntryChanged (.CGameRecording_TimelineEntryChanged_Notification) returns (.NoResponse); + rpc NotifyUploadProgress (.CGameRecording_UploadProgress_Notification) returns (.NoResponse); + rpc QueryPhases (.CGameRecording_QueryPhases_Request) returns (.CGameRecording_QueryPhases_Response); + rpc SaveClip (.CGameRecording_SaveClip_Request) returns (.CGameRecording_SaveClip_Response); + rpc SetPerGameSettings (.CGameRecording_SetPerGameSettings_Request) returns (.CGameRecording_SetPerGameSettings_Response); + rpc StartRecording (.CGameRecording_StartRecording_Request) returns (.CGameRecording_StartRecording_Response); + rpc StopRecording (.CGameRecording_StopRecording_Request) returns (.CGameRecording_StopRecording_Response); + rpc SwitchBackgroundRecordingGame (.CGameRecording_SwitchBackgroundRecordingGame_Request) returns (.CGameRecording_SwitchBackgroundRecordingGame_Response); + rpc TakeScreenshot (.CGameRecording_TakeScreenshot_Request) returns (.CGameRecording_TakeScreenshot_Response); + rpc UploadClipToSteam (.CGameRecording_UploadClipToSteam_Request) returns (.CGameRecording_UploadClipToSteam_Response); + rpc UserAddTimelineEntry (.CGameRecording_UserAddTimelineEntry_Request) returns (.CGameRecording_UserAddTimelineEntry_Response); + rpc UserRemoveTimelineEntry (.CGameRecording_UserRemoveTimelineEntry_Request) returns (.CGameRecording_UserRemoveTimelineEntry_Response); + rpc UserUpdateTimelineEntry (.CGameRecording_UserUpdateTimelineEntry_Request) returns (.CGameRecording_UserUpdateTimelineEntry_Response); + rpc ZipClip (.CGameRecording_ZipClip_Request) returns (.CGameRecording_ZipClip_Response); +} + diff --git a/Protobufs/webui/service_gamerecordingclip.proto b/Protobufs/webui/service_gamerecordingclip.proto new file mode 100644 index 0000000..0eef34b --- /dev/null +++ b/Protobufs/webui/service_gamerecordingclip.proto @@ -0,0 +1,85 @@ +import "common.proto"; + +message CGameRecording_CreateShareClip_Request { + optional .CGameRecordingClip clip = 2; + repeated .CMsgVideoGameRecordingDef video_def = 3; +} + +message CGameRecording_CreateShareClip_Response { + optional .CGameRecordingClip clip = 1; +} + +message CGameRecording_DeleteSharedClip_Request { + optional fixed64 clip_id = 2; +} + +message CGameRecording_DeleteSharedClip_Response { +} + +message CGameRecording_GetSingleSharedClip_Request { + optional fixed64 clip_id = 2; +} + +message CGameRecording_GetSingleSharedClip_Response { + optional .CGameRecordingClip clip = 1; +} + +message CGameRecordingClip { + optional fixed64 clip_id = 1; + optional uint64 gameid = 2; + optional uint32 date_recorded = 4; + optional uint64 total_file_size_bytes = 7; + repeated .CVideoManagerClipID video_ids = 9; + optional fixed64 owner_steamid = 10; + optional bool upload_complete = 11; + optional uint32 duration_ms = 12; +} + +message CMsgVideoGameRecordingComponent { + optional string component_name = 1; + optional uint32 contents = 2; + optional uint32 segment_size = 3; + optional string file_type = 4; + repeated .CMsgVideoGameRecordingRepresentation representations = 5; +} + +message CMsgVideoGameRecordingDef { + optional uint64 steamid = 1; + optional uint32 app_id = 2; + optional uint32 num_segments = 3; + optional uint32 length_milliseconds = 4; + optional uint32 segment_duration_timescale = 5; + optional uint32 segment_duration = 6; + repeated .CMsgVideoGameRecordingComponent components = 7; + optional uint32 start_time_ms = 8; + optional uint32 start_offset_in_timeline_ms = 9; +} + +message CMsgVideoGameRecordingRepresentation { + optional string representation_name = 2; + optional uint32 horizontal_resolution = 3; + optional uint32 vertical_resolution = 4; + optional double frame_rate = 5; + optional uint32 bandwidth = 6; + optional uint32 audio_sample_rate = 7; + optional string frame_rate_string = 8; + optional string codec = 9; + optional uint32 audio_channel_config = 10; + repeated .CVideo_GameRecordingSegmentInfo segment_info = 11; +} + +message CVideoManagerClipID { + optional fixed64 video_manager_clip_id = 1; + optional fixed64 video_manager_video_id = 2; + optional fixed64 server_timeline_id = 3; + optional string manifest_url = 4; + optional uint32 duration_ms = 5; + optional uint32 start_offset_ms = 6; +} + +service GameRecordingClip { + rpc CreateShareClip (.CGameRecording_CreateShareClip_Request) returns (.CGameRecording_CreateShareClip_Response); + rpc DeleteSharedClip (.CGameRecording_DeleteSharedClip_Request) returns (.CGameRecording_DeleteSharedClip_Response); + rpc GetSingleSharedClip (.CGameRecording_GetSingleSharedClip_Request) returns (.CGameRecording_GetSingleSharedClip_Response); +} + diff --git a/Protobufs/webui/service_gamerecordingdebug.proto b/Protobufs/webui/service_gamerecordingdebug.proto new file mode 100644 index 0000000..b90ad78 --- /dev/null +++ b/Protobufs/webui/service_gamerecordingdebug.proto @@ -0,0 +1,52 @@ + +message CGameRecordingDebug_AddTimelineHighlightMarker_Request { + optional uint32 appid = 1; + optional string icon = 2; + optional string title = 3; + optional string desc = 4; +} + +message CGameRecordingDebug_AddTimelineHighlightMarker_Response { +} + +message CGameRecordingDebug_AddTimelineRangeEnd_Request { + optional uint32 appid = 1; + optional string id = 2; +} + +message CGameRecordingDebug_AddTimelineRangeEnd_Response { +} + +message CGameRecordingDebug_AddTimelineRangeStart_Request { + optional uint32 appid = 1; + optional string id = 2; + optional string title = 3; +} + +message CGameRecordingDebug_AddTimelineRangeStart_Response { +} + +message CGameRecordingDebug_AddTimelineTimestamp_Request { + optional uint32 appid = 1; + optional string title = 2; +} + +message CGameRecordingDebug_AddTimelineTimestamp_Response { +} + +message CGameRecordingDebug_SetTimelineGameMode_Request { + optional uint32 appid = 1; + optional uint32 mode = 2; +} + +message CGameRecordingDebug_SetTimelineGameMode_Response { +} + +service GameRecordingDebug { + rpc AddTimelineHighlightMarker (.CGameRecordingDebug_AddTimelineHighlightMarker_Request) returns (.CGameRecordingDebug_AddTimelineHighlightMarker_Response); + rpc AddTimelineRangeEnd (.CGameRecordingDebug_AddTimelineRangeEnd_Request) returns (.CGameRecordingDebug_AddTimelineRangeEnd_Response); + rpc AddTimelineRangeStart (.CGameRecordingDebug_AddTimelineRangeStart_Request) returns (.CGameRecordingDebug_AddTimelineRangeStart_Response); + rpc AddTimelineTimestamp (.CGameRecordingDebug_AddTimelineTimestamp_Request) returns (.CGameRecordingDebug_AddTimelineTimestamp_Response); + rpc SetTimelineGameMode (.CGameRecordingDebug_SetTimelineGameMode_Request) returns (.CGameRecordingDebug_SetTimelineGameMode_Response); +} + diff --git a/Protobufs/webui/service_gamescope.proto b/Protobufs/webui/service_gamescope.proto new file mode 100644 index 0000000..40ad03a --- /dev/null +++ b/Protobufs/webui/service_gamescope.proto @@ -0,0 +1,58 @@ +import "common_base.proto"; + +message CGamescope_GetState_Request { +} + +message CGamescope_GetState_Response { + optional .CMsgGamescopeState state = 1; +} + +message CGamescope_ReArmMuraCalibration_Request { +} + +message CGamescope_ReArmMuraCalibration_Response { +} + +message CGamescope_SetBlurParams_Request { + optional int32 mode = 1 [(.description) = "enum"]; + optional int32 radius = 2; + optional int32 fade_duration_ms = 3; +} + +message CGamescope_SetBlurParams_Response { +} + +message CGamescope_StateChanged_Notification { +} + +message CMsgDisplayInfo { + optional string make = 1; + optional string model = 2; + optional string connector_name = 3; + repeated int32 supported_refresh_rates = 4; + repeated int32 supported_frame_rates = 5; + optional bool is_external = 6; + optional bool is_hdr_capable = 7; + optional bool is_vrr_capable = 8; +} + +message CMsgGamescopeState { + optional bool is_service_available = 1; + optional bool is_reshade_supported = 2; + optional bool is_app_hdr_enabled = 3; + optional bool is_app_refresh_rate_supported = 4; + optional .CMsgDisplayInfo active_display_info = 5; + optional bool is_app_refresh_rate_capable = 6; + optional bool is_refresh_rate_switching_supported = 7; + optional bool is_refresh_rate_switching_restricted = 8; + optional bool is_hdr_visualization_supported = 9; + optional bool is_mura_correction_supported = 10; +} + +service Gamescope { + rpc GetState (.CGamescope_GetState_Request) returns (.CGamescope_GetState_Response); + rpc NotifyStateChanged (.CGamescope_StateChanged_Notification) returns (.NoResponse); + rpc ReArmMuraCalibration (.CGamescope_ReArmMuraCalibration_Request) returns (.CGamescope_ReArmMuraCalibration_Response); + rpc SetBlurParams (.CGamescope_SetBlurParams_Request) returns (.CGamescope_SetBlurParams_Response); +} + diff --git a/Protobufs/webui/service_helprequestlogs.proto b/Protobufs/webui/service_helprequestlogs.proto new file mode 100644 index 0000000..454e9f2 --- /dev/null +++ b/Protobufs/webui/service_helprequestlogs.proto @@ -0,0 +1,16 @@ + +message CHelpRequestLogs_UploadUserApplicationLog_Request { + optional uint32 appid = 1; + optional string log_type = 2; + optional string version_string = 3; + optional string log_contents = 4; +} + +message CHelpRequestLogs_UploadUserApplicationLog_Response { + optional uint64 id = 1; +} + +service HelpRequestLogs { + rpc UploadUserApplicationLog (.CHelpRequestLogs_UploadUserApplicationLog_Request) returns (.CHelpRequestLogs_UploadUserApplicationLog_Response); +} + diff --git a/Protobufs/webui/service_loyaltyrewards.proto b/Protobufs/webui/service_loyaltyrewards.proto new file mode 100644 index 0000000..6b0e853 --- /dev/null +++ b/Protobufs/webui/service_loyaltyrewards.proto @@ -0,0 +1,252 @@ +import "common_base.proto"; +import "common.proto"; + +message CLoyaltyRewards_AddReaction_Request { + optional int32 target_type = 1 [(.description) = "enum"]; + optional uint64 targetid = 2; + optional uint32 reactionid = 3; +} + +message CLoyaltyRewards_AddReaction_Response { +} + +message CLoyaltyRewards_BatchedQueryRewardItems_Request { + repeated .CLoyaltyRewards_QueryRewardItems_Request requests = 1; +} + +message CLoyaltyRewards_BatchedQueryRewardItems_Response { + repeated .CLoyaltyRewards_BatchedQueryRewardItems_Response_Response responses = 1; +} + +message CLoyaltyRewards_BatchedQueryRewardItems_Response_Response { + optional int32 eresult = 1; + optional .CLoyaltyRewards_QueryRewardItems_Response response = 2; +} + +message CLoyaltyRewards_GetActivePurchaseBonuses_Request { +} + +message CLoyaltyRewards_GetActivePurchaseBonuses_Response { + repeated .LoyaltyRewardPurchaseBonus bonuses = 1; +} + +message CLoyaltyRewards_GetEligibleApps_Request { +} + +message CLoyaltyRewards_GetEligibleApps_Response { + repeated .CLoyaltyRewards_GetEligibleApps_Response_EligibleApp apps = 1; +} + +message CLoyaltyRewards_GetEligibleApps_Response_EligibleApp { + optional uint32 appid = 1; + optional bool has_items_anyone_can_purchase = 2; + optional bool event_app = 3; + optional string hero_carousel_image = 4; +} + +message CLoyaltyRewards_GetEquippedProfileItems_Request { + optional fixed64 steamid = 1; + optional string language = 2; +} + +message CLoyaltyRewards_GetEquippedProfileItems_Response { + repeated .LoyaltyRewardDefinition active_definitions = 1; + repeated .LoyaltyRewardDefinition inactive_definitions = 2; + repeated .LoyaltyRewardDefinition bundle_definitions = 3; +} + +message CLoyaltyRewards_GetPointsForSpend_Request { + optional int64 amount = 1; + optional uint32 ecurrency = 2; +} + +message CLoyaltyRewards_GetPointsForSpend_Response { + optional int64 points = 1; +} + +message CLoyaltyRewards_GetProfileCustomizationsConfig_Request { +} + +message CLoyaltyRewards_GetProfileCustomizationsConfig_Response { + optional uint32 points_cost = 1; + optional uint32 upgrade_points_cost = 2; + repeated int32 purchasable_customization_types = 3 [(.description) = "enum"]; + repeated int32 upgradable_customization_types = 4 [(.description) = "enum"]; + optional uint32 max_slots_per_type = 5; + optional uint32 max_upgradable_level = 6; +} + +message CLoyaltyRewards_GetReactionConfig_Request { +} + +message CLoyaltyRewards_GetReactionConfig_Response { + repeated .CLoyaltyRewards_GetReactionConfig_Response_ReactionConfig reactions = 3; +} + +message CLoyaltyRewards_GetReactionConfig_Response_ReactionConfig { + optional int32 reactionid = 1 [(.description) = "enum"]; + optional uint32 points_cost = 2; + optional uint32 points_transferred = 3; + repeated int32 valid_target_types = 4 [(.description) = "enum"]; + repeated uint32 valid_ugc_types = 5; +} + +message CLoyaltyRewards_GetReactions_Request { + optional int32 target_type = 1 [(.description) = "enum"]; + optional uint64 targetid = 2; +} + +message CLoyaltyRewards_GetReactions_Response { + repeated uint32 reactionids = 1; +} + +message CLoyaltyRewards_GetReactionsSummaryForUser_Request { + optional fixed64 steamid = 1; +} + +message CLoyaltyRewards_GetReactionsSummaryForUser_Response { + repeated .CLoyaltyRewards_GetReactionsSummaryForUser_Response_Breakdown total = 1; + repeated .CLoyaltyRewards_GetReactionsSummaryForUser_Response_Breakdown user_reviews = 2; + repeated .CLoyaltyRewards_GetReactionsSummaryForUser_Response_Breakdown ugc = 3; + repeated .CLoyaltyRewards_GetReactionsSummaryForUser_Response_Breakdown profile = 4; + repeated .CLoyaltyRewards_GetReactionsSummaryForUser_Response_Breakdown forum_topics = 5; + //optional uint32 total_given = 5; + repeated .CLoyaltyRewards_GetReactionsSummaryForUser_Response_Breakdown comments = 6; + //optional uint32 total_received = 6; + optional int64 total_points_given = 7; + //optional uint32 total_given = 7; + optional int64 total_points_received = 8; + //optional uint32 total_received = 8; + optional int64 total_points_given__field_9 = 9; + optional int64 total_points_received__field_10 = 10; +} + +message CLoyaltyRewards_GetReactionsSummaryForUser_Response_Breakdown { + optional int32 reactionid = 1 [(.description) = "enum"]; + optional uint32 given = 2; + optional uint32 received = 3; + optional int64 points_given = 4; + optional int64 points_received = 5; +} + +message CLoyaltyRewards_GetSummary_Request { + optional fixed64 steamid = 1; +} + +message CLoyaltyRewards_GetSummary_Response { + optional .CLoyaltyRewards_GetSummary_Response_Summary summary = 1; + optional uint32 timestamp_updated = 2; + optional uint64 auditid_highwater = 3; +} + +message CLoyaltyRewards_GetSummary_Response_Summary { + optional int64 points = 1; + optional int64 points_earned = 2; + optional int64 points_spent = 3; +} + +message CLoyaltyRewards_QueryRewardItems_Request { + repeated uint32 appids = 1; + optional uint32 time_available = 2; + repeated int32 community_item_classes = 3; + optional string language = 4; + optional int32 count = 5; + optional string cursor = 6; + optional int32 sort = 7 [default = 1, (.description) = "enum"]; + optional bool sort_descending = 8 [default = true]; + repeated int32 reward_types = 9 [(.description) = "enum"]; + repeated int32 excluded_community_item_classes = 10; + repeated uint32 definitionids = 11; + repeated int32 filters = 12 [(.description) = "enum"]; + repeated string filter_match_all_category_tags = 13; + repeated string filter_match_any_category_tags = 14; + repeated uint32 contains_definitionids = 15; + optional bool include_direct_purchase_disabled = 16; + repeated uint32 excluded_content_descriptors = 17; + repeated uint32 excluded_appids = 18; + optional string search_term = 19; +} + +message CLoyaltyRewards_QueryRewardItems_Response { + repeated .LoyaltyRewardDefinition definitions = 1; + optional int32 total_count = 2; + optional int32 count = 3; + optional string next_cursor = 4; +} + +message CLoyaltyRewards_RedeemPoints_Request { + optional uint32 defid = 1; + optional int64 expected_points_cost = 2; +} + +message CLoyaltyRewards_RedeemPoints_Response { + optional uint64 communityitemid = 1; + repeated uint64 bundle_community_item_ids = 2; +} + +message CLoyaltyRewards_RedeemPointsForBadgeLevel_Request { + optional uint32 defid = 1; + optional int32 num_levels = 2 [default = 1]; +} + +message CLoyaltyRewards_RedeemPointsForProfileCustomization_Request { + optional int32 customization_type = 1 [(.description) = "enum"]; +} + +message CLoyaltyRewards_RedeemPointsForProfileCustomization_Response { + optional uint64 purchaseid = 1; +} + +message CLoyaltyRewards_RedeemPointsForProfileCustomizationUpgrade_Request { + optional int32 customization_type = 1 [(.description) = "enum"]; + optional uint32 new_level = 2; +} + +message CLoyaltyRewards_RedeemPointsForProfileCustomizationUpgrade_Response { +} + +message CLoyaltyRewards_RedeemPointsToUpgradeItem_Request { + optional uint32 defid = 1; + optional uint64 communityitemid = 2; +} + +message CLoyaltyRewards_RegisterForSteamDeckRewards_Request { + optional string serial_number = 1; + optional string controller_code = 2; +} + +message CLoyaltyRewards_RegisterForSteamDeckRewards_Response { + optional bool granted_profile_modifier = 1; +} + +message LoyaltyRewardPurchaseBonus { + optional uint64 bonusid = 1; + optional uint32 appid = 2; + optional bool active = 3; + optional int32 points = 4; + optional uint32 timestamp_start = 5; + optional uint32 timestamp_end = 6; + optional string internal_description = 7; +} + +service LoyaltyRewards { + rpc AddReaction (.CLoyaltyRewards_AddReaction_Request) returns (.CLoyaltyRewards_AddReaction_Response); + rpc BatchedQueryRewardItems (.CLoyaltyRewards_BatchedQueryRewardItems_Request) returns (.CLoyaltyRewards_BatchedQueryRewardItems_Response); + rpc GetActivePurchaseBonuses (.CLoyaltyRewards_GetActivePurchaseBonuses_Request) returns (.CLoyaltyRewards_GetActivePurchaseBonuses_Response); + rpc GetEligibleApps (.CLoyaltyRewards_GetEligibleApps_Request) returns (.CLoyaltyRewards_GetEligibleApps_Response); + rpc GetEquippedProfileItems (.CLoyaltyRewards_GetEquippedProfileItems_Request) returns (.CLoyaltyRewards_GetEquippedProfileItems_Response); + rpc GetPointsForSpend (.CLoyaltyRewards_GetPointsForSpend_Request) returns (.CLoyaltyRewards_GetPointsForSpend_Response); + rpc GetProfileCustomizationsConfig (.CLoyaltyRewards_GetProfileCustomizationsConfig_Request) returns (.CLoyaltyRewards_GetProfileCustomizationsConfig_Response); + rpc GetReactionConfig (.CLoyaltyRewards_GetReactionConfig_Request) returns (.CLoyaltyRewards_GetReactionConfig_Response); + rpc GetReactions (.CLoyaltyRewards_GetReactions_Request) returns (.CLoyaltyRewards_GetReactions_Response); + rpc GetReactionsSummaryForUser (.CLoyaltyRewards_GetReactionsSummaryForUser_Request) returns (.CLoyaltyRewards_GetReactionsSummaryForUser_Response); + rpc GetSummary (.CLoyaltyRewards_GetSummary_Request) returns (.CLoyaltyRewards_GetSummary_Response); + rpc QueryRewardItems (.CLoyaltyRewards_QueryRewardItems_Request) returns (.CLoyaltyRewards_QueryRewardItems_Response); + rpc RedeemPoints (.CLoyaltyRewards_RedeemPoints_Request) returns (.CLoyaltyRewards_RedeemPoints_Response); + rpc RedeemPointsForBadgeLevel (.CLoyaltyRewards_RedeemPointsForBadgeLevel_Request) returns (.CLoyaltyRewards_RedeemPoints_Response); + rpc RedeemPointsForProfileCustomization (.CLoyaltyRewards_RedeemPointsForProfileCustomization_Request) returns (.CLoyaltyRewards_RedeemPointsForProfileCustomization_Response); + rpc RedeemPointsForProfileCustomizationUpgrade (.CLoyaltyRewards_RedeemPointsForProfileCustomizationUpgrade_Request) returns (.CLoyaltyRewards_RedeemPointsForProfileCustomizationUpgrade_Response); + rpc RedeemPointsToUpgradeItem (.CLoyaltyRewards_RedeemPointsToUpgradeItem_Request) returns (.CLoyaltyRewards_RedeemPoints_Response); + rpc RegisterForSteamDeckRewards (.CLoyaltyRewards_RegisterForSteamDeckRewards_Request) returns (.CLoyaltyRewards_RegisterForSteamDeckRewards_Response); +} + diff --git a/Protobufs/webui/service_marketingmessages.proto b/Protobufs/webui/service_marketingmessages.proto new file mode 100644 index 0000000..a513d76 --- /dev/null +++ b/Protobufs/webui/service_marketingmessages.proto @@ -0,0 +1,224 @@ +import "common_base.proto"; +import "common.proto"; + +message CDisplayMarketingMessage { + optional fixed64 gid = 1; + optional string title = 2; + optional int32 type = 3 [(.description) = "enum"]; + optional .StoreItemID associated_item_id = 4; + optional .StoreItem associated_item = 5; + optional string associated_name = 6; + optional string template_type = 10; + optional string template_vars_json = 11; +} + +message CMarketingMessage_GetMarketingMessagesForApps_Request { + repeated uint32 appids = 1; +} + +message CMarketingMessage_GetMarketingMessagesForApps_Response { + repeated .CMarketingMessageProto messages = 1; +} + +message CMarketingMessage_GetMarketingMessagesForPartner_Request { + optional uint32 partnerid = 1; +} + +message CMarketingMessage_GetMarketingMessagesForPartner_Response { + repeated .CMarketingMessageProto messages = 1; +} + +message CMarketingMessageHourlyStats { + optional uint32 rt_time_hour = 1; + optional uint32 seen_count = 2; + optional int32 template_type = 3 [(.description) = "enum"]; + optional uint32 display_index = 4; +} + +message CMarketingMessageProto { + optional fixed64 gid = 1; + optional string title = 2; + optional int32 type = 3 [(.description) = "enum"]; + optional int32 visibility = 4 [(.description) = "enum"]; + optional uint32 priority = 5; + optional int32 association_type = 6 [(.description) = "enum"]; + optional uint32 associated_id = 7; + optional string associated_name = 8; + optional uint32 start_date = 9; + optional uint32 end_date = 10; + optional string country_allow = 11; + optional string country_deny = 12; + optional bool ownership_restrictions_overridden = 13; + optional uint32 must_own_appid = 14; + optional uint32 must_not_own_appid = 15; + optional uint32 must_own_packageid = 16; + optional uint32 must_not_own_packageid = 17; + optional uint32 must_have_launched_appid = 18; + optional string additional_restrictions = 19; + optional string template_type = 20; + optional string template_vars = 21; + optional uint32 flags = 22; + optional string creator_name = 23; + optional string template_vars_json = 24; + optional string additional_restrictions_json = 25; +} + +message CMarketingMessages_CreateMarketingMessage_Request { + optional .CMarketingMessageProto message = 1; + optional bool from_json = 2; +} + +message CMarketingMessages_CreateMarketingMessage_Response { + optional fixed64 gid = 1; +} + +message CMarketingMessages_DeleteMarketingMessage_Request { + optional fixed64 gid = 1; +} + +message CMarketingMessages_DeleteMarketingMessage_Response { +} + +message CMarketingMessages_DoesUserHavePendingMarketingMessages_Request { + optional string country_code = 2; + optional int32 elanguage = 3; + optional int32 operating_system = 4; + optional int32 client_package_version = 5; +} + +message CMarketingMessages_DoesUserHavePendingMarketingMessages_Response { + optional bool has_pending_messages = 1; + optional int32 pending_message_count = 2; +} + +message CMarketingMessages_FindMarketingMessages_Request { + optional int32 lookup_type = 1 [(.description) = "enum"]; + optional fixed64 gid = 2; + optional int32 message_type = 3 [(.description) = "enum"]; + repeated fixed64 gidlist = 4; + optional string title = 5; +} + +message CMarketingMessages_FindMarketingMessages_Response { + repeated .CMarketingMessageProto messages = 1; +} + +message CMarketingMessages_GetActiveMarketingMessages_Request { + optional string country = 1; + optional bool anonymous_user = 2; +} + +message CMarketingMessages_GetActiveMarketingMessages_Response { + repeated .CMarketingMessageProto messages = 1; + optional uint32 time_next_message_age = 2; +} + +message CMarketingMessages_GetDisplayMarketingMessage_Request { + optional fixed64 gid = 1; + optional .StoreBrowseContext context = 2; + optional .StoreBrowseItemDataRequest data_request = 3; +} + +message CMarketingMessages_GetDisplayMarketingMessage_Response { + optional .CDisplayMarketingMessage message = 1; +} + +message CMarketingMessages_GetMarketingMessage_Request { + optional fixed64 gid = 1; +} + +message CMarketingMessages_GetMarketingMessage_Response { + optional .CMarketingMessageProto message = 1; +} + +message CMarketingMessages_GetMarketingMessagesForUser_Request { + optional bool include_seen_messages = 1; + optional string country_code = 2; + optional int32 elanguage = 3; + optional int32 operating_system = 4; + optional int32 client_package_version = 5; + optional .StoreBrowseContext context = 6; + optional .StoreBrowseItemDataRequest data_request = 7; +} + +message CMarketingMessages_GetMarketingMessagesForUser_Response { + repeated .CMarketingMessages_GetMarketingMessagesForUser_Response_MarketingMessageForUser messages = 1; +} + +message CMarketingMessages_GetMarketingMessagesForUser_Response_MarketingMessageForUser { + optional bool already_seen = 1; + optional .CDisplayMarketingMessage message = 2; +} + +message CMarketingMessages_GetMarketingMessagesViewerRangeStats_Request { + optional uint32 rt_start_time = 1; + optional uint32 rt_end_time = 2; +} + +message CMarketingMessages_GetMarketingMessagesViewerRangeStats_Response { + repeated .CMarketingMessageHourlyStats stats = 1; +} + +message CMarketingMessages_GetMarketingMessageViewerStats_Request { + optional fixed64 gid = 1; +} + +message CMarketingMessages_GetMarketingMessageViewerStats_Response { + repeated .CMarketingMessageHourlyStats stats = 1; +} + +message CMarketingMessages_GetPartnerMessagePreview_Request { + optional fixed64 gid = 1; + optional uint32 partnerid = 2; +} + +message CMarketingMessages_GetPartnerMessagePreview_Response { + optional .CMarketingMessageProto message = 1; +} + +message CMarketingMessages_GetPartnerReadyToPublishMessages_Request { + optional uint32 partnerid = 1; +} + +message CMarketingMessages_GetPartnerReadyToPublishMessages_Response { + repeated .CDisplayMarketingMessage messages = 1; +} + +message CMarketingMessages_PartnerPublishMessage_Request { + optional fixed64 gid = 1; + optional uint32 partnerid = 2; +} + +message CMarketingMessages_PartnerPublishMessage_Response { +} + +message CMarketingMessages_UpdateMarketingMessage_Request { + optional fixed64 gid = 1; + optional .CMarketingMessageProto message = 2; + optional bool from_json = 3; +} + +message CMarketingMessages_UpdateMarketingMessage_Response { +} + +service MarketingMessages { + rpc CreateMarketingMessage (.CMarketingMessages_CreateMarketingMessage_Request) returns (.CMarketingMessages_CreateMarketingMessage_Response); + rpc DeleteMarketingMessage (.CMarketingMessages_DeleteMarketingMessage_Request) returns (.CMarketingMessages_DeleteMarketingMessage_Response); + rpc DoesUserHavePendingMarketingMessages (.CMarketingMessages_DoesUserHavePendingMarketingMessages_Request) returns (.CMarketingMessages_DoesUserHavePendingMarketingMessages_Response); + rpc FindMarketingMessages (.CMarketingMessages_FindMarketingMessages_Request) returns (.CMarketingMessages_FindMarketingMessages_Response); + rpc GetActiveMarketingMessages (.CMarketingMessages_GetActiveMarketingMessages_Request) returns (.CMarketingMessages_GetActiveMarketingMessages_Response); + rpc GetDisplayMarketingMessage (.CMarketingMessages_GetDisplayMarketingMessage_Request) returns (.CMarketingMessages_GetDisplayMarketingMessage_Response); + rpc GetDisplayMarketingMessageAdmin (.CMarketingMessages_GetDisplayMarketingMessage_Request) returns (.CMarketingMessages_GetDisplayMarketingMessage_Response); + rpc GetDisplayMarketingMessageForUser (.CMarketingMessages_GetDisplayMarketingMessage_Request) returns (.CMarketingMessages_GetDisplayMarketingMessage_Response); + rpc GetMarketingMessage (.CMarketingMessages_GetMarketingMessage_Request) returns (.CMarketingMessages_GetMarketingMessage_Response); + rpc GetMarketingMessagesForApps (.CMarketingMessage_GetMarketingMessagesForApps_Request) returns (.CMarketingMessage_GetMarketingMessagesForApps_Response); + rpc GetMarketingMessagesForPartner (.CMarketingMessage_GetMarketingMessagesForPartner_Request) returns (.CMarketingMessage_GetMarketingMessagesForPartner_Response); + rpc GetMarketingMessagesForUser (.CMarketingMessages_GetMarketingMessagesForUser_Request) returns (.CMarketingMessages_GetMarketingMessagesForUser_Response); + rpc GetMarketingMessagesViewerRangeStats (.CMarketingMessages_GetMarketingMessagesViewerRangeStats_Request) returns (.CMarketingMessages_GetMarketingMessagesViewerRangeStats_Response); + rpc GetMarketingMessageViewerStats (.CMarketingMessages_GetMarketingMessageViewerStats_Request) returns (.CMarketingMessages_GetMarketingMessageViewerStats_Response); + rpc GetPartnerMessagePreview (.CMarketingMessages_GetPartnerMessagePreview_Request) returns (.CMarketingMessages_GetPartnerMessagePreview_Response); + rpc GetPartnerReadyToPublishMessages (.CMarketingMessages_GetPartnerReadyToPublishMessages_Request) returns (.CMarketingMessages_GetPartnerReadyToPublishMessages_Response); + rpc PublishPartnerMessage (.CMarketingMessages_PartnerPublishMessage_Request) returns (.CMarketingMessages_PartnerPublishMessage_Response); + rpc UpdateMarketingMessage (.CMarketingMessages_UpdateMarketingMessage_Request) returns (.CMarketingMessages_UpdateMarketingMessage_Response); +} + diff --git a/Protobufs/webui/service_mobileapp.proto b/Protobufs/webui/service_mobileapp.proto new file mode 100644 index 0000000..d047d4a --- /dev/null +++ b/Protobufs/webui/service_mobileapp.proto @@ -0,0 +1,18 @@ + +message CMobileApp_GetMobileSummary_Request { + optional fixed64 authenticator_gid = 1; +} + +message CMobileApp_GetMobileSummary_Response { + optional uint32 stale_time_seconds = 1; + optional bool is_authenticator_valid = 2; + optional uint32 owned_games = 3; + optional uint32 friend_count = 4; + optional string wallet_balance = 5; + optional string language = 6; +} + +service MobileApp { + rpc GetMobileSummary (.CMobileApp_GetMobileSummary_Request) returns (.CMobileApp_GetMobileSummary_Response); +} + diff --git a/Protobufs/webui/service_mobileauth.proto b/Protobufs/webui/service_mobileauth.proto new file mode 100644 index 0000000..be9cf82 --- /dev/null +++ b/Protobufs/webui/service_mobileauth.proto @@ -0,0 +1,24 @@ + +message CMobileAuth_MigrateMobileSession_Request { + optional fixed64 steamid = 1; + optional string token = 2; + optional bytes signature = 3; + optional .CMobileAuth_MigrateMobileSession_Request_DeviceDetails device_details = 4; +} + +message CMobileAuth_MigrateMobileSession_Request_DeviceDetails { + optional string device_friendly_name = 1; + optional uint32 platform_type = 2; + optional int32 os_type = 3; + optional uint32 gaming_device_type = 4; +} + +message CMobileAuth_MigrateMobileSession_Response { + optional string refresh_token = 1; + optional string access_token = 2; +} + +service MobileAuth { + rpc MigrateMobileSession (.CMobileAuth_MigrateMobileSession_Request) returns (.CMobileAuth_MigrateMobileSession_Response); +} + diff --git a/Protobufs/webui/service_mobiledevice.proto b/Protobufs/webui/service_mobiledevice.proto new file mode 100644 index 0000000..8094b5d --- /dev/null +++ b/Protobufs/webui/service_mobiledevice.proto @@ -0,0 +1,38 @@ +import "common_base.proto"; + +message CMobileDevice_DeregisterMobileDevice_Notification { + optional string deviceid = 1; +} + +message CMobileDevice_HasMobileDevice_Request { + optional int32 app_type = 1 [(.description) = "enum"]; + optional bool push_enabled_only = 2; + optional string minimum_version = 3; +} + +message CMobileDevice_HasMobileDevice_Response { + optional bool found_device = 1; + optional bool up_to_date = 2; +} + +message CMobileDevice_RegisterMobileDevice_Request { + optional string deviceid = 1; + optional string language = 2; + optional bool push_enabled = 3; + optional string app_version = 4; + optional string os_version = 5; + optional string device_model = 6; + optional string twofactor_device_identifier = 7; + optional int32 mobile_app = 8 [(.description) = "enum"]; +} + +message CMobileDevice_RegisterMobileDevice_Response { + optional uint32 unique_deviceid = 2; +} + +service MobileDevice { + rpc DeregisterMobileDevice (.CMobileDevice_DeregisterMobileDevice_Notification) returns (.NoResponse); + rpc HasMobileDevice (.CMobileDevice_HasMobileDevice_Request) returns (.CMobileDevice_HasMobileDevice_Response); + rpc RegisterMobileDevice (.CMobileDevice_RegisterMobileDevice_Request) returns (.CMobileDevice_RegisterMobileDevice_Response); +} + diff --git a/Protobufs/webui/service_mobileperaccount.proto b/Protobufs/webui/service_mobileperaccount.proto new file mode 100644 index 0000000..a25ea95 --- /dev/null +++ b/Protobufs/webui/service_mobileperaccount.proto @@ -0,0 +1,31 @@ + +message CMobilePerAccount_GetSettings_Request { +} + +message CMobilePerAccount_GetSettings_Response { + optional bool allow_sale_push = 2; + optional bool allow_wishlist_push = 3; + optional bool has_settings = 4; + optional uint32 chat_notification_level = 5; + optional bool notify_direct_chat = 6; + optional bool notify_group_chat = 7; + optional bool allow_event_push = 8 [default = true]; +} + +message CMobilePerAccount_SetSettings_Request { + optional bool allow_sale_push = 2; + optional bool allow_wishlist_push = 3; + optional uint32 chat_notification_level = 4; + optional bool notify_direct_chat = 5; + optional bool notify_group_chat = 6; + optional bool allow_event_push = 7 [default = true]; +} + +message CMobilePerAccount_SetSettings_Response { +} + +service MobilePerAccount { + rpc GetSettings (.CMobilePerAccount_GetSettings_Request) returns (.CMobilePerAccount_GetSettings_Response); + rpc SetSettings (.CMobilePerAccount_SetSettings_Request) returns (.CMobilePerAccount_SetSettings_Response); +} + diff --git a/Protobufs/webui/service_news.proto b/Protobufs/webui/service_news.proto new file mode 100644 index 0000000..b24d9db --- /dev/null +++ b/Protobufs/webui/service_news.proto @@ -0,0 +1,110 @@ +import "common_base.proto"; + +message CNews_ConvertHTMLToBBCode_Request { + optional string content = 1; + optional bool preserve_newlines = 2 [default = false]; +} + +message CNews_ConvertHTMLToBBCode_Response { + optional string converted_content = 1; + optional bool found_html = 2; +} + +message CNews_GetBatchPublishedPartnerEvent_Request { + optional fixed64 news_feed_gid = 1; + optional uint32 start_index = 2 [default = 0]; + optional uint32 amount = 3 [default = 100]; +} + +message CNews_GetBatchPublishedPartnerEvent_Response { + optional uint32 clan_account_id = 1; + optional fixed64 news_feed_gid = 2; + repeated fixed64 clan_event_gid = 3; + repeated fixed64 news_post_gid = 4; + repeated string news_url = 5; +} + +message CNews_GetNewsFeedByRepublishClan_Request { + optional uint32 clan_account_id = 1; +} + +message CNews_GetNewsFeedByRepublishClan_Response { + repeated .CNewsFeedDef feeds = 1; +} + +message CNews_PreviewPartnerEvents_Request { + optional string rss_url = 1; + optional uint32 lang = 2; +} + +message CNews_PreviewPartnerEvents_Response { + optional string rss_url = 1; + repeated .CNewsPartnerEventPreview results = 2; + optional string error_msg = 3; +} + +message CNews_PublishPartnerEvent_Request { + optional .CNewsFeedPostDef post = 1; + optional bool draft = 2; +} + +message CNews_PublishPartnerEvent_Response { + optional fixed64 clan_event_gid = 1; + optional fixed64 news_post_gid = 2; +} + +message CNewsFeedDef { + optional fixed64 gid = 1; + optional string name = 2; + optional uint32 type = 3 [default = 0]; + optional string url = 4; + repeated uint32 associated_apps = 5; + optional uint32 poll_interval = 6 [default = 300]; + optional string kv_description = 7; + optional string kv_filter = 8; + optional uint32 publish_to_clan_account_id = 9; + optional uint32 language = 10; + optional uint32 last_error = 11; + optional uint32 last_update = 12; + optional uint32 last_checked = 13; +} + +message CNewsFeedPostDef { + optional fixed64 gid = 1; + optional fixed64 news_feed_gid = 2; + optional string title = 3; + optional string url = 4; + optional string author = 5; + optional uint32 rtime_date = 6; + optional string contents = 7; + optional bool commited = 8; + optional bool deleted = 9; + optional string tags = 10; + repeated uint32 appids = 11; + optional int32 recommendation_state = 12 [(.description) = "enum"]; + optional bool received_compensation = 13; + optional bool received_for_free = 14; + optional string blurb = 15; + optional string event_subtitle = 16; + optional string event_summary = 17; +} + +message CNewsPartnerEventPreview { + optional string rss_message = 1; + optional string unique_id = 2; + optional string title = 3; + optional string desc = 4; + optional string jsondata = 5; + optional .CNewsFeedPostDef post = 6; + optional bool valid_post = 7; + optional string post_error_msg = 8; +} + +service News { + rpc ConvertHTMLToBBCode (.CNews_ConvertHTMLToBBCode_Request) returns (.CNews_ConvertHTMLToBBCode_Response); + rpc GetBatchPublishedPartnerEvent (.CNews_GetBatchPublishedPartnerEvent_Request) returns (.CNews_GetBatchPublishedPartnerEvent_Response); + rpc GetNewsFeedByRepublishClan (.CNews_GetNewsFeedByRepublishClan_Request) returns (.CNews_GetNewsFeedByRepublishClan_Response); + rpc PreviewPartnerEvents (.CNews_PreviewPartnerEvents_Request) returns (.CNews_PreviewPartnerEvents_Response); + rpc PublishPartnerEvent (.CNews_PublishPartnerEvent_Request) returns (.CNews_PublishPartnerEvent_Response); +} + diff --git a/Protobufs/webui/service_parental.proto b/Protobufs/webui/service_parental.proto new file mode 100644 index 0000000..d23393e --- /dev/null +++ b/Protobufs/webui/service_parental.proto @@ -0,0 +1,259 @@ +import "common_base.proto"; + +message CParental_ApproveFeatureAccess_Request { + optional bool approve = 1; + optional fixed64 requestid = 2; + optional uint32 features = 3; + optional uint32 duration = 4; + optional fixed64 steamid = 10; +} + +message CParental_ApproveFeatureAccess_Response { +} + +message CParental_ApprovePlaytime_Request { + optional bool approve = 1; + optional fixed64 requestid = 2; + optional .ParentalTemporaryPlaytimeRestrictions restrictions_approved = 3; + optional fixed64 steamid = 10; +} + +message CParental_ApprovePlaytime_Response { +} + +message CParental_DisableParentalSettings_Request { + optional string password = 1; + optional fixed64 steamid = 10; +} + +message CParental_DisableParentalSettings_Response { +} + +message CParental_DisableWithRecoveryCode_Request { + optional uint32 recovery_code = 1; + optional fixed64 steamid = 10; +} + +message CParental_DisableWithRecoveryCode_Response { +} + +message CParental_EnableParentalSettings_Request { + optional string password = 1; + optional .ParentalSettings settings = 2; + optional string sessionid = 3; + optional uint32 enablecode = 4; + optional fixed64 steamid = 10; +} + +message CParental_EnableParentalSettings_Response { +} + +message CParental_GetParentalSettings_Request { + optional fixed64 steamid = 10; +} + +message CParental_GetParentalSettings_Response { + optional .ParentalSettings settings = 1; +} + +message CParental_GetRequests_Request { + optional uint32 rt_include_completed_since = 1; + optional fixed64 family_groupid = 2; +} + +message CParental_GetRequests_Response { + repeated .ParentalFeatureRequest feature_requests = 1; + repeated .ParentalPlaytimeRequest playtime_requests = 2; +} + +message CParental_GetSignedParentalSettings_Request { + optional uint32 priority = 1; +} + +message CParental_GetSignedParentalSettings_Response { + optional bytes serialized_settings = 1; + optional bytes signature = 2; +} + +message CParental_LockClient_Request { + optional string session = 1; +} + +message CParental_LockClient_Response { +} + +message CParental_ParentalLock_Notification { + optional string sessionid = 1; +} + +message CParental_ParentalSettingsChange_Notification { + optional bytes serialized_settings = 1; + optional bytes signature = 2; + optional string password = 3; + optional string sessionid = 4; +} + +message CParental_ParentalUnlock_Notification { + optional string password = 1; + optional string sessionid = 2; +} + +message CParental_PlaytimeUsed_Notification { + optional uint32 day_of_week = 1; + optional uint32 minutes_used = 2; +} + +message CParental_ReportPlaytimeAndNotify_Request { + optional uint32 day_of_week = 1; + optional uint32 minutes_used = 2; + optional fixed64 steamid = 10; +} + +message CParental_ReportPlaytimeAndNotify_Response { +} + +message CParental_RequestFeatureAccess_Request { + optional uint32 features = 1; + optional fixed64 steamid = 10; +} + +message CParental_RequestFeatureAccess_Response { + optional fixed64 requestid = 1; +} + +message CParental_RequestPlaytime_Request { + optional uint32 time_expires = 1; + optional .ParentalPlaytimeDay current_playtime_restrictions = 2; + optional fixed64 steamid = 10; +} + +message CParental_RequestPlaytime_Response { + optional fixed64 requestid = 1; +} + +message CParental_RequestRecoveryCode_Request { +} + +message CParental_RequestRecoveryCode_Response { +} + +message CParental_SetParentalSettings_Request { + optional string password = 1; + optional .ParentalSettings settings = 2; + optional string new_password = 3; + optional string sessionid = 4; + optional fixed64 steamid = 10; +} + +message CParental_SetParentalSettings_Response { +} + +message CParental_ValidatePassword_Request { + optional string password = 1; + optional string session = 2; + optional bool send_unlock_on_success = 3; +} + +message CParental_ValidatePassword_Response { + optional string token = 1; +} + +message CParental_ValidateToken_Request { + optional string unlock_token = 1; +} + +message CParental_ValidateToken_Response { +} + +message ParentalApp { + optional uint32 appid = 1; + optional bool is_allowed = 2; +} + +message ParentalFeatureRequest { + optional fixed64 requestid = 1; + optional fixed64 family_groupid = 2; + optional fixed64 steamid = 3; + optional uint32 features = 4; + optional uint32 time_requested = 5; + optional bool approved = 6; + optional fixed64 steamid_responder = 7; + optional uint32 time_responded = 8; +} + +message ParentalPlaytimeDay { + optional uint64 allowed_time_windows = 1; + optional uint32 allowed_daily_minutes = 2; +} + +message ParentalPlaytimeRequest { + optional fixed64 requestid = 1; + optional fixed64 family_groupid = 2; + optional fixed64 steamid = 3; + optional .ParentalPlaytimeDay current_playtime_restrictions = 4; + optional uint32 time_expires = 5; + optional uint32 time_requested = 6; + optional bool approved = 7; + optional fixed64 steamid_responder = 8; + optional uint32 time_responded = 9; + optional .ParentalTemporaryPlaytimeRestrictions restrictions_approved = 10; +} + +message ParentalPlaytimeRestrictions { + optional bool apply_playtime_restrictions = 2; + repeated .ParentalPlaytimeDay playtime_days = 15; +} + +message ParentalSettings { + optional fixed64 steamid = 1; + optional uint32 applist_base_id = 2; + optional string applist_base_description = 3; + repeated .ParentalApp applist_base = 4; + repeated .ParentalApp applist_custom = 5; + optional uint32 passwordhashtype = 6; + optional bytes salt = 7; + optional bytes passwordhash = 8; + optional bool is_enabled = 9; + optional uint32 enabled_features = 10; + optional string recovery_email = 11; + optional bool is_site_license_lock = 12; + optional uint32 temporary_enabled_features = 13; + optional uint32 rtime_temporary_feature_expiration = 14; + optional .ParentalPlaytimeRestrictions playtime_restrictions = 15; + optional .ParentalTemporaryPlaytimeRestrictions temporary_playtime_restrictions = 16; + repeated uint32 excluded_store_content_descriptors = 17; + repeated uint32 excluded_community_content_descriptors = 18; + repeated uint32 utility_appids = 19; +} + +message ParentalTemporaryPlaytimeRestrictions { + optional .ParentalPlaytimeDay restrictions = 1; + optional uint32 rtime_expires = 2; +} + +service Parental { + rpc ApproveFeatureAccess (.CParental_ApproveFeatureAccess_Request) returns (.CParental_ApproveFeatureAccess_Response); + rpc ApprovePlaytime (.CParental_ApprovePlaytime_Request) returns (.CParental_ApprovePlaytime_Response); + rpc DisableParentalSettings (.CParental_DisableParentalSettings_Request) returns (.CParental_DisableParentalSettings_Response); + rpc DisableWithRecoveryCode (.CParental_DisableWithRecoveryCode_Request) returns (.CParental_DisableWithRecoveryCode_Response); + rpc EnableParentalSettings (.CParental_EnableParentalSettings_Request) returns (.CParental_EnableParentalSettings_Response); + rpc GetParentalSettings (.CParental_GetParentalSettings_Request) returns (.CParental_GetParentalSettings_Response); + rpc GetRequests (.CParental_GetRequests_Request) returns (.CParental_GetRequests_Response); + rpc GetSignedParentalSettings (.CParental_GetSignedParentalSettings_Request) returns (.CParental_GetSignedParentalSettings_Response); + rpc LockClient (.CParental_LockClient_Request) returns (.CParental_LockClient_Response); + rpc ReportPlaytimeAndNotify (.CParental_ReportPlaytimeAndNotify_Request) returns (.CParental_ReportPlaytimeAndNotify_Response); + rpc RequestFeatureAccess (.CParental_RequestFeatureAccess_Request) returns (.CParental_RequestFeatureAccess_Response); + rpc RequestPlaytime (.CParental_RequestPlaytime_Request) returns (.CParental_RequestPlaytime_Response); + rpc RequestRecoveryCode (.CParental_RequestRecoveryCode_Request) returns (.CParental_RequestRecoveryCode_Response); + rpc SetParentalSettings (.CParental_SetParentalSettings_Request) returns (.CParental_SetParentalSettings_Response); + rpc ValidatePassword (.CParental_ValidatePassword_Request) returns (.CParental_ValidatePassword_Response); + rpc ValidateToken (.CParental_ValidateToken_Request) returns (.CParental_ValidateToken_Response); +} + +service ParentalClient { + rpc NotifyLock (.CParental_ParentalLock_Notification) returns (.NoResponse); + rpc NotifyPlaytimeUsed (.CParental_PlaytimeUsed_Notification) returns (.NoResponse); + rpc NotifySettingsChange (.CParental_ParentalSettingsChange_Notification) returns (.NoResponse); + rpc NotifyUnlock (.CParental_ParentalUnlock_Notification) returns (.NoResponse); +} + diff --git a/Protobufs/webui/service_partnerappnotes.proto b/Protobufs/webui/service_partnerappnotes.proto new file mode 100644 index 0000000..7c6c390 --- /dev/null +++ b/Protobufs/webui/service_partnerappnotes.proto @@ -0,0 +1,53 @@ + +message CPartnerAppNotes_CreateNotes_Request { + optional uint32 appid = 1; + optional string partner_notes = 2; + optional string admin_notes = 3; + optional string partner_readonly_notes = 4; +} + +message CPartnerAppNotes_CreateNotes_Response { +} + +message CPartnerAppNotes_GetMultipleNotes_Request { + repeated uint32 appids = 1; +} + +message CPartnerAppNotes_GetMultipleNotes_Response { + repeated .CPartnerAppNotes_GetMultipleNotes_Response_Container notes = 1; +} + +message CPartnerAppNotes_GetMultipleNotes_Response_Container { + optional uint32 appid = 1; + optional string partner_notes = 2; + optional string admin_notes = 3; + optional string partner_readonly_notes = 4; +} + +message CPartnerAppNotes_GetNotes_Request { + optional uint32 appid = 1; +} + +message CPartnerAppNotes_GetNotes_Response { + optional string partner_notes = 2; + optional string admin_notes = 3; + optional string partner_readonly_notes = 4; +} + +message CPartnerAppNotes_UpdateNotes_Request { + optional uint32 appid = 1; + optional string partner_notes = 2; + optional string admin_notes = 3; + optional string partner_readonly_notes = 4; +} + +message CPartnerAppNotes_UpdateNotes_Response { +} + +service PartnerAppNotes { + rpc CreateNotes (.CPartnerAppNotes_CreateNotes_Request) returns (.CPartnerAppNotes_CreateNotes_Response); + rpc GetMultipleNotes (.CPartnerAppNotes_GetMultipleNotes_Request) returns (.CPartnerAppNotes_GetMultipleNotes_Response); + rpc GetNotes (.CPartnerAppNotes_GetNotes_Request) returns (.CPartnerAppNotes_GetNotes_Response); + rpc UpdateNotes (.CPartnerAppNotes_UpdateNotes_Request) returns (.CPartnerAppNotes_UpdateNotes_Response); +} + diff --git a/Protobufs/webui/service_partnerdeadline.proto b/Protobufs/webui/service_partnerdeadline.proto new file mode 100644 index 0000000..e578dcf --- /dev/null +++ b/Protobufs/webui/service_partnerdeadline.proto @@ -0,0 +1,56 @@ +import "common_base.proto"; + +message CPartnerDeadline { + optional uint32 partnerid = 1; + optional int32 type = 2 [(.description) = "enum"]; + optional int32 status = 3 [(.description) = "enum"]; + optional uint32 due_date = 4; + repeated uint32 email_days_before_due = 5; + optional fixed64 gid = 6; + optional int32 store_item_type = 7 [(.description) = "enum"]; + optional uint32 store_item_id = 8; + optional uint32 discount_event_id = 9; + optional string description_jsondata = 10; + optional uint64 required_rights = 11; + optional bool send_email_on_creation = 12; +} + +message CPartnerDeadline_GetDeadlineByTimeRange_Request { + optional int32 type = 1 [(.description) = "enum"]; + optional uint32 start_date = 2; + optional uint32 end_date = 3; + optional bool include_complete = 4; + optional int32 store_item_type = 7 [(.description) = "enum"]; + optional uint32 store_item_id = 8; +} + +message CPartnerDeadline_GetDeadlineByTimeRange_Response { + repeated .CPartnerDeadline_GetDeadlineByTimeRange_Response_Result deadlines = 1; +} + +message CPartnerDeadline_GetDeadlineByTimeRange_Response_Result { + optional fixed64 deadlineid = 1; + optional .CPartnerDeadline data = 2; +} + +message CPartnerDeadline_GetDeadlinesForPartner_Request { + optional uint32 partnerid = 1; + optional uint32 start_date = 2; + optional uint32 end_date = 3; + optional bool include_complete = 4; +} + +message CPartnerDeadline_GetDeadlinesForPartner_Response { + repeated .CPartnerDeadline_GetDeadlinesForPartner_Response_Result deadlines = 1; +} + +message CPartnerDeadline_GetDeadlinesForPartner_Response_Result { + optional fixed64 deadlineid = 1; + optional .CPartnerDeadline data = 2; +} + +service PartnerDeadline { + rpc GetDeadlineByTimeRange (.CPartnerDeadline_GetDeadlineByTimeRange_Request) returns (.CPartnerDeadline_GetDeadlineByTimeRange_Response); + rpc GetDeadlinesForPartner (.CPartnerDeadline_GetDeadlinesForPartner_Request) returns (.CPartnerDeadline_GetDeadlinesForPartner_Response); +} + diff --git a/Protobufs/webui/service_partnerdismiss.proto b/Protobufs/webui/service_partnerdismiss.proto new file mode 100644 index 0000000..233fd5e --- /dev/null +++ b/Protobufs/webui/service_partnerdismiss.proto @@ -0,0 +1,43 @@ +import "common_base.proto"; + +message CDismissPinData { + optional int32 state = 1 [(.description) = "enum"]; + optional uint32 accountid = 2; + optional string key_json = 3; + optional uint32 partnerid = 4; + optional uint32 rtime_create = 5; + optional uint32 rtime_validity = 6; + optional fixed64 dismiss_id = 7; +} + +message CPartnerDismiss_CreateDismiss_Request { + repeated .CDismissPinData dismiss_list = 1; +} + +message CPartnerDismiss_CreateDismiss_Response { + repeated .CDismissPinData dismiss_list = 1; +} + +message CPartnerDismiss_DeleteDismiss_Request { + optional fixed64 dismiss_id = 7; +} + +message CPartnerDismiss_DeleteDismiss_Response { +} + +message CPartnerDismiss_GetDismissTimeRange_Request { + optional uint32 partnerid = 1; + optional uint32 accountid = 2; + optional uint32 rtime_after = 3; +} + +message CPartnerDismiss_GetDismissTimeRange_Response { + repeated .CDismissPinData dismiss_list = 1; +} + +service PartnerDismiss { + rpc CreateDismiss (.CPartnerDismiss_CreateDismiss_Request) returns (.CPartnerDismiss_CreateDismiss_Response); + rpc DeleteDismiss (.CPartnerDismiss_DeleteDismiss_Request) returns (.CPartnerDismiss_DeleteDismiss_Response); + rpc GetDismissTimeRange (.CPartnerDismiss_GetDismissTimeRange_Request) returns (.CPartnerDismiss_GetDismissTimeRange_Response); +} + diff --git a/Protobufs/webui/service_partnermembershipinvite.proto b/Protobufs/webui/service_partnermembershipinvite.proto new file mode 100644 index 0000000..df79467 --- /dev/null +++ b/Protobufs/webui/service_partnermembershipinvite.proto @@ -0,0 +1,34 @@ +import "common_base.proto"; + +message CPartnerMembershipInvite_GetInvites_Request { + optional uint32 partnerid = 1; + repeated int32 filter_states = 2 [(.description) = "enum"]; +} + +message CPartnerMembershipInvite_GetInvites_Response { + repeated .MembershipInvite invites = 1; +} + +message MembershipInvite { + optional uint64 inviteid = 1; + optional uint32 accountid_sender = 2; + optional string email = 3; + optional string real_name = 4; + optional string note = 5; + optional uint32 time_sent = 6; + optional int32 current_state = 7 [(.description) = "enum"]; + optional uint64 pub_rights = 8; + optional uint64 app_rights = 9; + optional uint32 time_receiver_responded = 10; + optional uint32 accountid = 11; + optional uint32 time_partner_responded = 12; + optional uint32 accountid_partner = 13; + optional uint32 partnerid = 14; + optional uint32 time_last_updated = 15; + optional string sender_ip = 16; +} + +service PartnerMembershipInvite { + rpc GetInvites (.CPartnerMembershipInvite_GetInvites_Request) returns (.CPartnerMembershipInvite_GetInvites_Response); +} + diff --git a/Protobufs/webui/service_partnerstorebrowse.proto b/Protobufs/webui/service_partnerstorebrowse.proto new file mode 100644 index 0000000..3c2edd1 --- /dev/null +++ b/Protobufs/webui/service_partnerstorebrowse.proto @@ -0,0 +1,23 @@ +import "common.proto"; + +message CPartnerStoreBrowse_GetCountryRestrictions_Request { + repeated .StoreItemID ids = 1; +} + +message CPartnerStoreBrowse_GetCountryRestrictions_Response { + repeated .CPartnerStoreBrowse_GetCountryRestrictions_Response_CCountryRestrictions results = 1; + repeated .StoreItemID no_info = 2; +} + +message CPartnerStoreBrowse_GetCountryRestrictions_Response_CCountryRestrictions { + optional .StoreItemID id = 1; + optional bool no_restrictions = 2; + repeated string allowed_countries = 3; + repeated string restricted_countries = 4; +} + +service PartnerStoreBrowse { + rpc GetCountryRestrictions (.CPartnerStoreBrowse_GetCountryRestrictions_Request) returns (.CPartnerStoreBrowse_GetCountryRestrictions_Response); + rpc GetItems (.CStoreBrowse_GetItems_Request) returns (.CStoreBrowse_GetItems_Response); +} + diff --git a/Protobufs/webui/service_phone.proto b/Protobufs/webui/service_phone.proto new file mode 100644 index 0000000..1c9735d --- /dev/null +++ b/Protobufs/webui/service_phone.proto @@ -0,0 +1,51 @@ + +message CPhone_AddPhoneToAccount_Response { + optional bool success = 1; + optional int32 phone_number_type = 2; +} + +message CPhone_ConfirmAddPhoneToAccount_Request { + optional fixed64 steamid = 1; + optional string stoken = 2; +} + +message CPhone_IsAccountWaitingForEmailConfirmation_Request { +} + +message CPhone_IsAccountWaitingForEmailConfirmation_Response { + optional bool awaiting_email_confirmation = 1; + optional uint32 seconds_to_wait = 2; +} + +message CPhone_SendPhoneVerificationCode_Request { + optional uint32 language = 1; +} + +message CPhone_SendPhoneVerificationCode_Response { +} + +message CPhone_SetAccountPhoneNumber_Request { + optional string phone_number = 1; + optional string phone_country_code = 2; +} + +message CPhone_SetAccountPhoneNumber_Response { + optional string confirmation_email_address = 1; + optional string phone_number_formatted = 2; +} + +message CPhone_VerifyAccountPhoneWithCode_Request { + optional string code = 1; +} + +message CPhone_VerifyAccountPhoneWithCode_Response { +} + +service Phone { + rpc ConfirmAddPhoneToAccount (.CPhone_ConfirmAddPhoneToAccount_Request) returns (.CPhone_AddPhoneToAccount_Response); + rpc IsAccountWaitingForEmailConfirmation (.CPhone_IsAccountWaitingForEmailConfirmation_Request) returns (.CPhone_IsAccountWaitingForEmailConfirmation_Response); + rpc SendPhoneVerificationCode (.CPhone_SendPhoneVerificationCode_Request) returns (.CPhone_SendPhoneVerificationCode_Response); + rpc SetAccountPhoneNumber (.CPhone_SetAccountPhoneNumber_Request) returns (.CPhone_SetAccountPhoneNumber_Response); + rpc VerifyAccountPhoneWithCode (.CPhone_VerifyAccountPhoneWithCode_Request) returns (.CPhone_VerifyAccountPhoneWithCode_Response); +} + diff --git a/Protobufs/webui/service_physicalgoods.proto b/Protobufs/webui/service_physicalgoods.proto new file mode 100644 index 0000000..9b66686 --- /dev/null +++ b/Protobufs/webui/service_physicalgoods.proto @@ -0,0 +1,15 @@ + +message CPhysicalGoods_CheckInventoryAvailableByPackage_Request { + optional int32 packageid = 1; + optional string country_code = 2; +} + +message CPhysicalGoods_CheckInventoryAvailableByPackage_Response { + optional bool inventory_available = 1; + optional bool high_pending_orders = 2; +} + +service PhysicalGoods { + rpc CheckInventoryAvailableByPackage (.CPhysicalGoods_CheckInventoryAvailableByPackage_Request) returns (.CPhysicalGoods_CheckInventoryAvailableByPackage_Response); +} + diff --git a/Protobufs/webui/service_player.proto b/Protobufs/webui/service_player.proto new file mode 100644 index 0000000..7a6d854 --- /dev/null +++ b/Protobufs/webui/service_player.proto @@ -0,0 +1,924 @@ +import "common_base.proto"; +import "common.proto"; + +message CPlayer_AcceptSSA_Request { + optional int32 agreement_type = 1 [(.description) = "enum"]; + optional uint32 time_signed_utc = 2; +} + +message CPlayer_AcceptSSA_Response { +} + +message CPlayer_AddFriend_Request { + optional fixed64 steamid = 1; +} + +message CPlayer_AddFriend_Response { + optional bool invite_sent = 1; + optional uint32 friend_relationship = 2; + optional int32 result = 3; +} + +message CPlayer_CommunityPreferences { + optional bool hide_adult_content_violence = 1 [default = true]; + optional bool hide_adult_content_sex = 2 [default = true]; + optional uint32 timestamp_updated = 3; + optional bool parenthesize_nicknames = 4 [default = false]; + optional int32 text_filter_setting = 5 [(.description) = "enum"]; + optional bool text_filter_ignore_friends = 6 [default = true]; + optional uint32 text_filter_words_revision = 7; +} + +message CPlayer_CommunityPreferencesChanged_Notification { + optional .CPlayer_CommunityPreferences preferences = 1; + optional .UserContentDescriptorPreferences content_descriptor_preferences = 2; +} + +message CPlayer_DeletePostedStatus_Request { + optional uint64 postid = 1; +} + +message CPlayer_DeletePostedStatus_Response { +} + +message CPlayer_FriendEquippedProfileItemsChanged_Notification { + optional fixed32 accountid = 1; +} + +message CPlayer_FriendNicknameChanged_Notification { + optional fixed32 accountid = 1; + optional string nickname = 2; + optional bool is_echo_to_self = 3; +} + +message CPlayer_GetAchievementsProgress_Request { + optional uint64 steamid = 1; + optional string language = 2; + repeated uint32 appids = 3; + optional bool include_unvetted_apps = 4; +} + +message CPlayer_GetAchievementsProgress_Response { + repeated .CPlayer_GetAchievementsProgress_Response_AchievementProgress achievement_progress = 1; +} + +message CPlayer_GetAchievementsProgress_Response_AchievementProgress { + optional uint32 appid = 1; + optional uint32 unlocked = 2; + optional uint32 total = 3; + optional float percentage = 4; + optional bool all_unlocked = 5; + optional uint32 cache_time = 6; + optional bool vetted = 7; +} + +message CPlayer_GetAnimatedAvatar_Request { + optional fixed64 steamid = 1; + optional string language = 2; +} + +message CPlayer_GetAnimatedAvatar_Response { + optional .ProfileItem avatar = 1; +} + +message CPlayer_GetAvatarFrame_Request { + optional fixed64 steamid = 1; + optional string language = 2; +} + +message CPlayer_GetAvatarFrame_Response { + optional .ProfileItem avatar_frame = 1; +} + +message CPlayer_GetCommunityBadgeProgress_Request { + optional uint64 steamid = 1; + optional int32 badgeid = 2; +} + +message CPlayer_GetCommunityBadgeProgress_Response { + repeated .CPlayer_GetCommunityBadgeProgress_Response_Quest quests = 1; +} + +message CPlayer_GetCommunityBadgeProgress_Response_Quest { + optional uint32 questid = 1; + optional bool completed = 2; +} + +message CPlayer_GetCommunityPreferences_Request { +} + +message CPlayer_GetCommunityPreferences_Response { + optional .CPlayer_CommunityPreferences preferences = 1; + optional .UserContentDescriptorPreferences content_descriptor_preferences = 2; +} + +message CPlayer_GetDurationControl_Request { + optional uint32 appid = 1; +} + +message CPlayer_GetDurationControl_Response { + optional bool is_enabled = 1; + optional int32 seconds = 2; + optional int32 seconds_today = 3; + optional bool is_steamchina_account = 4; + optional bool is_age_verified = 5; + optional uint32 seconds_allowed_today = 6; + optional bool age_verification_pending = 7; + optional bool block_minors = 8; +} + +message CPlayer_GetEmoticonList_Request { +} + +message CPlayer_GetEmoticonList_Response { + repeated .CPlayer_GetEmoticonList_Response_Emoticon emoticons = 1; +} + +message CPlayer_GetEmoticonList_Response_Emoticon { + optional string name = 1; + optional int32 count = 2; + optional uint32 time_last_used = 3; + optional uint32 use_count = 4; + optional uint32 time_received = 5; + optional uint32 appid = 6; +} + +message CPlayer_GetFavoriteBadge_Request { + optional uint64 steamid = 1; +} + +message CPlayer_GetFavoriteBadge_Response { + optional bool has_favorite_badge = 1; + optional uint32 badgeid = 2; + optional uint64 communityitemid = 3; + optional uint32 item_type = 4; + optional uint32 border_color = 5; + optional uint32 appid = 6; + optional uint32 level = 7; +} + +message CPlayer_GetFriendsAppsActivity_Request { + optional string news_language = 1; + optional uint32 request_flags = 2; +} + +message CPlayer_GetFriendsAppsActivity_Response { + repeated .CPlayer_GetFriendsAppsActivity_Response_AppFriendsInfo trending = 1; + repeated .CPlayer_GetFriendsAppsActivity_Response_AppFriendsInfo recent_purchases = 2; + repeated .CPlayer_GetFriendsAppsActivity_Response_AppFriendsInfo unowned = 3; + repeated .CPlayer_GetFriendsAppsActivity_Response_AppFriendsInfo popular = 4; + repeated .CPlayer_GetFriendsAppsActivity_Response_AppFriendsInfo dont_forget = 5; + repeated .CPlayer_GetFriendsAppsActivity_Response_AppFriendsInfo being_discussed = 6; + repeated .CPlayer_GetFriendsAppsActivity_Response_AppFriendsInfo new_to_group = 7; + repeated .CPlayer_GetFriendsAppsActivity_Response_AppFriendsInfo returned_to_group = 8; + optional uint32 active_friend_count = 9 [default = 0]; +} + +message CPlayer_GetFriendsAppsActivity_Response_AppFriendsInfo { + optional uint32 appid = 1; + repeated .CPlayer_GetFriendsAppsActivity_Response_FriendPlayTime friends = 2; + optional uint32 display_order = 3; +} + +message CPlayer_GetFriendsAppsActivity_Response_FriendPlayTime { + optional fixed64 steamid = 1; + optional uint32 minutes_played_this_week = 2; + optional uint32 minutes_played_two_weeks = 3; + optional uint32 minutes_played_forever = 4; + optional uint32 event_count = 5; +} + +message CPlayer_GetFriendsGameplayInfo_Request { + optional uint32 appid = 1; +} + +message CPlayer_GetFriendsGameplayInfo_Response { + optional .CPlayer_GetFriendsGameplayInfo_Response_OwnGameplayInfo your_info = 1; + repeated .CPlayer_GetFriendsGameplayInfo_Response_FriendsGameplayInfo in_game = 2; + repeated .CPlayer_GetFriendsGameplayInfo_Response_FriendsGameplayInfo played_recently = 3; + repeated .CPlayer_GetFriendsGameplayInfo_Response_FriendsGameplayInfo played_ever = 4; + repeated .CPlayer_GetFriendsGameplayInfo_Response_FriendsGameplayInfo owns = 5; + repeated .CPlayer_GetFriendsGameplayInfo_Response_FriendsGameplayInfo in_wishlist = 6; +} + +message CPlayer_GetFriendsGameplayInfo_Response_FriendsGameplayInfo { + optional fixed64 steamid = 1; + optional uint32 minutes_played = 2; + optional uint32 minutes_played_forever = 3; +} + +message CPlayer_GetFriendsGameplayInfo_Response_OwnGameplayInfo { + optional fixed64 steamid = 1; + optional uint32 minutes_played = 2; + optional uint32 minutes_played_forever = 3; + optional bool in_wishlist = 4; + optional bool owned = 5; +} + +message CPlayer_GetGameAchievements_Request { + optional uint32 appid = 1; + optional string language = 2; +} + +message CPlayer_GetGameAchievements_Response { + repeated .CPlayer_GetGameAchievements_Response_Achievement achievements = 1; +} + +message CPlayer_GetGameAchievements_Response_Achievement { + optional string internal_name = 1; + optional string localized_name = 2; + optional string localized_desc = 3; + optional string icon = 4; + optional string icon_gray = 5; + optional bool hidden = 6; + optional string player_percent_unlocked = 7; +} + +message CPlayer_GetGameBadgeLevels_Request { + optional uint32 appid = 1; +} + +message CPlayer_GetGameBadgeLevels_Response { + optional uint32 player_level = 1; + repeated .CPlayer_GetGameBadgeLevels_Response_Badge badges = 2; +} + +message CPlayer_GetGameBadgeLevels_Response_Badge { + optional int32 level = 1; + optional int32 series = 2; + optional uint32 border_color = 3; +} + +message CPlayer_GetLastPlayedTimes_Request { + optional uint32 min_last_played = 1; +} + +message CPlayer_GetLastPlayedTimes_Response { + repeated .CPlayer_GetLastPlayedTimes_Response_Game games = 1; +} + +message CPlayer_GetLastPlayedTimes_Response_Game { + optional int32 appid = 1; + optional uint32 last_playtime = 2; + optional int32 playtime_2weeks = 3; + optional int32 playtime_forever = 4; + optional uint32 first_playtime = 5; + optional int32 playtime_windows_forever = 6; + optional int32 playtime_mac_forever = 7; + optional int32 playtime_linux_forever = 8; + optional uint32 first_windows_playtime = 9; + optional uint32 first_mac_playtime = 10; + optional uint32 first_linux_playtime = 11; + optional uint32 last_windows_playtime = 12; + optional uint32 last_mac_playtime = 13; + optional uint32 last_linux_playtime = 14; + optional uint32 playtime_disconnected = 15; + optional int32 playtime_deck_forever = 16; + optional uint32 first_deck_playtime = 17; + optional uint32 last_deck_playtime = 18; +} + +message CPlayer_GetMiniProfileBackground_Request { + optional fixed64 steamid = 1; + optional string language = 2; +} + +message CPlayer_GetMiniProfileBackground_Response { + optional .ProfileItem profile_background = 1; +} + +message CPlayer_GetMutualFriendsForIncomingInvites_Request { +} + +message CPlayer_GetMutualFriendsForIncomingInvites_Response { + repeated .CPlayer_IncomingInviteMutualFriendList incoming_invite_mutual_friends_lists = 1; +} + +message CPlayer_GetNewSteamAnnouncementState_Request { + optional int32 language = 1; +} + +message CPlayer_GetNewSteamAnnouncementState_Response { + optional int32 state = 1 [(.description) = "enum"]; + optional string announcement_headline = 2; + optional string announcement_url = 3; + optional uint32 time_posted = 4; + optional uint64 announcement_gid = 5; +} + +message CPlayer_GetNicknameList_Request { +} + +message CPlayer_GetNicknameList_Response { + repeated .CPlayer_GetNicknameList_Response_PlayerNickname nicknames = 1; +} + +message CPlayer_GetNicknameList_Response_PlayerNickname { + optional fixed32 accountid = 1; + optional string nickname = 2; +} + +message CPlayer_GetOwnedGames_Request { + optional uint64 steamid = 1; + optional bool include_appinfo = 2; + optional bool include_played_free_games = 3; + repeated uint32 appids_filter = 4; + optional bool include_free_sub = 5; + optional bool skip_unvetted_apps = 6 [default = true]; + optional string language = 7; + optional bool include_extended_appinfo = 8; +} + +message CPlayer_GetOwnedGames_Response { + optional uint32 game_count = 1; + repeated .CPlayer_GetOwnedGames_Response_Game games = 2; +} + +message CPlayer_GetOwnedGames_Response_Game { + optional int32 appid = 1; + optional string name = 2; + optional int32 playtime_2weeks = 3; + optional int32 playtime_forever = 4; + optional string img_icon_url = 5; + optional string img_logo_url = 6; + optional bool has_community_visible_stats = 7; + optional int32 playtime_windows_forever = 8; + optional int32 playtime_mac_forever = 9; + optional int32 playtime_linux_forever = 10; + optional uint32 rtime_last_played = 11; + optional string capsule_filename = 12; + optional string sort_as = 13; + optional bool has_workshop = 14; + optional bool has_market = 15; + optional bool has_dlc = 16; + optional bool has_leaderboards = 17; + repeated uint32 content_descriptorids = 18; + optional int32 playtime_disconnected = 19; + optional int32 playtime_deck_forever = 20; +} + +message CPlayer_GetPerFriendPreferences_Request { +} + +message CPlayer_GetPerFriendPreferences_Response { + repeated .PerFriendPreferences preferences = 1; +} + +message CPlayer_GetPlayerLinkDetails_Request { + repeated uint64 steamids = 1; +} + +message CPlayer_GetPlayerLinkDetails_Response { + repeated .CPlayer_GetPlayerLinkDetails_Response_PlayerLinkDetails accounts = 1; +} + +message CPlayer_GetPlayerLinkDetails_Response_PlayerLinkDetails { + optional .CPlayer_GetPlayerLinkDetails_Response_PlayerLinkDetails_AccountPublicData public_data = 1; + optional .CPlayer_GetPlayerLinkDetails_Response_PlayerLinkDetails_AccountPrivateData private_data = 2; +} + +message CPlayer_GetPlayerLinkDetails_Response_PlayerLinkDetails_AccountPrivateData { + optional int32 persona_state = 1; + optional uint32 persona_state_flags = 2; + optional uint32 time_created = 3; + optional fixed64 game_id = 4; + optional fixed64 game_server_steam_id = 5; + optional uint32 game_server_ip_address = 6; + optional uint32 game_server_port = 7; + optional string game_extra_info = 8; + optional string account_name = 9; + optional fixed64 lobby_steam_id = 10; + optional string rich_presence_kv = 11; + optional fixed64 broadcast_session_id = 12; + optional uint32 watching_broadcast_accountid = 13; + optional uint32 watching_broadcast_appid = 14; + optional uint32 watching_broadcast_viewers = 15; + optional string watching_broadcast_title = 16; + optional uint32 last_logoff_time = 17; + optional uint32 last_seen_online = 18; + optional int32 game_os_type = 19; + optional int32 game_device_type = 20; + optional string game_device_name = 21; + optional bool game_is_private = 22; +} + +message CPlayer_GetPlayerLinkDetails_Response_PlayerLinkDetails_AccountPublicData { + optional fixed64 steamid = 1; + optional int32 visibility_state = 2; + optional int32 privacy_state = 3; + optional int32 profile_state = 4; + optional uint32 ban_expires_time = 7; + optional uint32 account_flags = 8; + optional bytes sha_digest_avatar = 9; + optional string persona_name = 10; + optional string profile_url = 11; + optional bool content_country_restricted = 12; +} + +message CPlayer_GetPlayNext_Request { + optional uint32 max_age_seconds = 1; + repeated uint32 ignore_appids = 2; +} + +message CPlayer_GetPlayNext_Response { + optional uint32 last_update_time = 1; + repeated uint32 appids = 2; +} + +message CPlayer_GetPostedStatus_Request { + optional uint64 steamid = 1; + optional uint64 postid = 2; +} + +message CPlayer_GetPostedStatus_Response { + optional uint32 accountid = 1; + optional uint64 postid = 2; + optional string status_text = 3; + optional bool deleted = 4; + optional uint32 appid = 5; +} + +message CPlayer_GetPrivacySettings_Request { +} + +message CPlayer_GetPrivacySettings_Response { + optional .CPrivacySettings privacy_settings = 1; +} + +message CPlayer_GetProfileBackground_Request { + optional fixed64 steamid = 1; + optional string language = 2; +} + +message CPlayer_GetProfileBackground_Response { + optional .ProfileItem profile_background = 1; +} + +message CPlayer_GetProfileCustomization_Request { + optional fixed64 steamid = 1; + optional bool include_inactive_customizations = 2; + optional bool include_purchased_customizations = 3; +} + +message CPlayer_GetProfileCustomization_Response { + repeated .ProfileCustomization customizations = 1; + optional uint32 slots_available = 2; + optional .ProfileTheme profile_theme = 3; + repeated .CPlayer_GetProfileCustomization_Response_PurchasedCustomization purchased_customizations = 4; + optional .ProfilePreferences profile_preferences = 5; +} + +message CPlayer_GetProfileCustomization_Response_PurchasedCustomization { + optional uint64 purchaseid = 1; + optional int32 customization_type = 2 [(.description) = "enum"]; + optional uint32 level = 3; +} + +message CPlayer_GetProfileItemsEquipped_Request { + optional fixed64 steamid = 1; + optional string language = 2; +} + +message CPlayer_GetProfileItemsEquipped_Response { + optional .ProfileItem profile_background = 1; + optional .ProfileItem mini_profile_background = 2; + optional .ProfileItem avatar_frame = 3; + optional .ProfileItem animated_avatar = 4; + optional .ProfileItem profile_modifier = 5; + optional .ProfileItem steam_deck_keyboard_skin = 6; +} + +message CPlayer_GetProfileItemsOwned_Request { + optional string language = 1; + repeated int32 filters = 2 [(.description) = "enum"]; +} + +message CPlayer_GetProfileItemsOwned_Response { + repeated .ProfileItem profile_backgrounds = 1; + repeated .ProfileItem mini_profile_backgrounds = 2; + repeated .ProfileItem avatar_frames = 3; + repeated .ProfileItem animated_avatars = 4; + repeated .ProfileItem profile_modifiers = 5; + repeated .ProfileItem steam_deck_keyboard_skins = 6; + repeated .ProfileItem steam_deck_startup_movies = 7; +} + +message CPlayer_GetProfileThemesAvailable_Request { +} + +message CPlayer_GetProfileThemesAvailable_Response { + repeated .ProfileTheme profile_themes = 1; +} + +message CPlayer_GetPurchasedAndUpgradedProfileCustomizations_Request { + optional fixed64 steamid = 1; +} + +message CPlayer_GetPurchasedAndUpgradedProfileCustomizations_Response { + repeated .CPlayer_GetPurchasedAndUpgradedProfileCustomizations_Response_PurchasedCustomization purchased_customizations = 1; + repeated .CPlayer_GetPurchasedAndUpgradedProfileCustomizations_Response_UpgradedCustomization upgraded_customizations = 2; +} + +message CPlayer_GetPurchasedAndUpgradedProfileCustomizations_Response_PurchasedCustomization { + optional int32 customization_type = 1 [(.description) = "enum"]; + optional uint32 count = 2; +} + +message CPlayer_GetPurchasedAndUpgradedProfileCustomizations_Response_UpgradedCustomization { + optional int32 customization_type = 1 [(.description) = "enum"]; + optional uint32 level = 2; +} + +message CPlayer_GetPurchasedProfileCustomizations_Request { + optional fixed64 steamid = 1; +} + +message CPlayer_GetPurchasedProfileCustomizations_Response { + repeated .CPlayer_GetPurchasedProfileCustomizations_Response_PurchasedCustomization purchased_customizations = 1; +} + +message CPlayer_GetPurchasedProfileCustomizations_Response_PurchasedCustomization { + optional uint64 purchaseid = 1; + optional int32 customization_type = 2 [(.description) = "enum"]; +} + +message CPlayer_GetRecentPlaytimeSessionsForChild_Request { + optional uint64 steamid = 1; +} + +message CPlayer_GetRecentPlaytimeSessionsForChild_Response { + repeated .CPlayer_GetRecentPlaytimeSessionsForChild_Response_PlaytimeSession sessions = 1; +} + +message CPlayer_GetRecentPlaytimeSessionsForChild_Response_PlaytimeSession { + optional uint32 time_start = 1; + optional uint32 time_end = 2; + optional uint32 appid = 3; + optional uint32 device_type = 4; + optional bool disconnected = 5; +} + +message CPlayer_GetSteamDeckKeyboardSkin_Request { + optional fixed64 steamid = 1; + optional string language = 2; +} + +message CPlayer_GetSteamDeckKeyboardSkin_Response { + optional .ProfileItem steam_deck_keyboard_skin = 1; +} + +message CPlayer_GetTextFilterWords_Request { +} + +message CPlayer_GetTextFilterWords_Response { + optional .CPlayer_TextFilterWords words = 1; +} + +message CPlayer_GetTimeSSAAccepted_Request { +} + +message CPlayer_GetTimeSSAAccepted_Response { + optional uint32 time_ssa_accepted = 1; + optional uint32 time_ssa_updated = 2; + optional uint32 time_chinassa_accepted = 3; +} + +message CPlayer_GetTopAchievementsForGames_Request { + optional uint64 steamid = 1; + optional string language = 2; + optional uint32 max_achievements = 3; + repeated uint32 appids = 4; +} + +message CPlayer_GetTopAchievementsForGames_Response { + repeated .CPlayer_GetTopAchievementsForGames_Response_Game games = 1; +} + +message CPlayer_GetTopAchievementsForGames_Response_Achievement { + optional uint32 statid = 1; + optional uint32 bit = 2; + optional string name = 3; + optional string desc = 4; + optional string icon = 5; + optional string icon_gray = 6; + optional bool hidden = 7; + optional string player_percent_unlocked = 8; +} + +message CPlayer_GetTopAchievementsForGames_Response_Game { + optional uint32 appid = 1; + optional uint32 total_achievements = 2; + repeated .CPlayer_GetTopAchievementsForGames_Response_Achievement achievements = 3; +} + +message CPlayer_IgnoreFriend_Request { + optional fixed64 steamid = 1; + optional bool unignore = 2; +} + +message CPlayer_IgnoreFriend_Response { + optional uint32 friend_relationship = 1; +} + +message CPlayer_IncomingInviteMutualFriendList { + optional fixed64 steamid = 1; + repeated uint32 mutual_friend_account_ids = 2; +} + +message CPlayer_LastPlayedTimes_Notification { + repeated .CPlayer_GetLastPlayedTimes_Response_Game games = 1; +} + +message CPlayer_NewSteamAnnouncementState_Notification { + optional int32 state = 1 [(.description) = "enum"]; + optional string announcement_headline = 2; + optional string announcement_url = 3; + optional uint32 time_posted = 4; + optional uint64 announcement_gid = 5; +} + +message CPlayer_PerFriendPreferencesChanged_Notification { + optional fixed32 accountid = 1; + optional .PerFriendPreferences preferences = 2; +} + +message CPlayer_PostStatusToFriends_Request { + optional uint32 appid = 1; + optional string status_text = 2; +} + +message CPlayer_PostStatusToFriends_Response { +} + +message CPlayer_PrivacySettingsChanged_Notification { + optional .CPrivacySettings privacy_settings = 1; +} + +message CPlayer_RecordDisconnectedPlaytime_Request { + repeated .CPlayer_RecordDisconnectedPlaytime_Request_PlayHistory play_sessions = 3; +} + +message CPlayer_RecordDisconnectedPlaytime_Request_PlayHistory { + optional uint32 appid = 1; + optional uint32 session_time_start = 2; + optional uint32 seconds = 3; + optional bool offline = 4; + optional uint32 owner = 5; +} + +message CPlayer_RecordDisconnectedPlaytime_Response { +} + +message CPlayer_RemoveFriend_Request { + optional fixed64 steamid = 1; +} + +message CPlayer_RemoveFriend_Response { + optional uint32 friend_relationship = 1; +} + +message CPlayer_SetAnimatedAvatar_Request { + optional uint64 communityitemid = 1; +} + +message CPlayer_SetAnimatedAvatar_Response { +} + +message CPlayer_SetAvatarFrame_Request { + optional uint64 communityitemid = 1; +} + +message CPlayer_SetAvatarFrame_Response { +} + +message CPlayer_SetCommunityPreferences_Request { + optional .CPlayer_CommunityPreferences preferences = 1; +} + +message CPlayer_SetCommunityPreferences_Response { +} + +message CPlayer_SetEquippedProfileItemFlags_Request { + optional uint64 communityitemid = 1; + optional uint32 flags = 2; +} + +message CPlayer_SetEquippedProfileItemFlags_Response { +} + +message CPlayer_SetFavoriteBadge_Request { + optional uint64 communityitemid = 1; + optional uint32 badgeid = 2; +} + +message CPlayer_SetFavoriteBadge_Response { +} + +message CPlayer_SetMiniProfileBackground_Request { + optional uint64 communityitemid = 1; +} + +message CPlayer_SetMiniProfileBackground_Response { +} + +message CPlayer_SetPerFriendPreferences_Request { + optional .PerFriendPreferences preferences = 1; +} + +message CPlayer_SetPerFriendPreferences_Response { +} + +message CPlayer_SetProfileBackground_Request { + optional uint64 communityitemid = 1; +} + +message CPlayer_SetProfileBackground_Response { +} + +message CPlayer_SetProfilePreferences_Request { + optional .ProfilePreferences profile_preferences = 1; +} + +message CPlayer_SetProfilePreferences_Response { +} + +message CPlayer_SetProfileTheme_Request { + optional string theme_id = 1; +} + +message CPlayer_SetProfileTheme_Response { +} + +message CPlayer_SetSteamDeckKeyboardSkin_Request { + optional uint64 communityitemid = 1; +} + +message CPlayer_SetSteamDeckKeyboardSkin_Response { +} + +message CPlayer_TextFilterWords { + repeated string text_filter_custom_banned_words = 1; + repeated string text_filter_custom_clean_words = 2; + optional uint32 text_filter_words_revision = 3; +} + +message CPlayer_TextFilterWordsChanged_Notification { + optional .CPlayer_TextFilterWords words = 1; +} + +message CPlayer_UpdateSteamAnnouncementLastRead_Request { + optional uint64 announcement_gid = 1; + optional uint32 time_posted = 2; +} + +message CPlayer_UpdateSteamAnnouncementLastRead_Response { +} + +message CPrivacySettings { + optional int32 privacy_state = 1; + optional int32 privacy_state_inventory = 2; + optional int32 privacy_state_gifts = 3; + optional int32 privacy_state_ownedgames = 4; + optional int32 privacy_state_playtime = 5; + optional int32 privacy_state_friendslist = 6; +} + +message PerFriendPreferences { + optional fixed32 accountid = 1; + optional string nickname = 2; + optional int32 notifications_showingame = 3 [(.description) = "enum"]; + optional int32 notifications_showonline = 4 [(.description) = "enum"]; + optional int32 notifications_showmessages = 5 [(.description) = "enum"]; + optional int32 sounds_showingame = 6 [(.description) = "enum"]; + optional int32 sounds_showonline = 7 [(.description) = "enum"]; + optional int32 sounds_showmessages = 8 [(.description) = "enum"]; + optional int32 notifications_sendmobile = 9 [(.description) = "enum"]; +} + +message ProfileCustomization { + optional int32 customization_type = 1 [(.description) = "enum"]; + optional bool large = 2; + repeated .ProfileCustomizationSlot slots = 3; + optional bool active = 4; + optional int32 customization_style = 5 [(.description) = "enum"]; + optional uint64 purchaseid = 6; + optional uint32 level = 7; +} + +message ProfileCustomizationSlot { + optional uint32 slot = 1; + optional uint32 appid = 2; + optional uint64 publishedfileid = 3; + optional uint64 item_assetid = 4; + optional uint64 item_contextid = 5; + optional string notes = 6; + optional string title = 7; + optional uint32 accountid = 8; + optional uint32 badgeid = 9; + optional uint32 border_color = 10; + optional uint64 item_classid = 11; + optional uint64 item_instanceid = 12; + optional int32 ban_check_result = 13 [(.description) = "enum"]; + optional uint32 replay_year = 14; +} + +message ProfileItem { + optional uint64 communityitemid = 1; + optional string image_small = 2; + optional string image_large = 3; + optional string name = 4; + optional string item_title = 5; + optional string item_description = 6; + optional uint32 appid = 7; + optional uint32 item_type = 8; + optional uint32 item_class = 9; + optional string movie_webm = 10; + optional string movie_mp4 = 11; + optional uint32 equipped_flags = 12; + optional string movie_webm_small = 13; + optional string movie_mp4_small = 14; + repeated .ProfileItem_ProfileColor profile_colors = 15; +} + +message ProfileItem_ProfileColor { + optional string style_name = 1; + optional string color = 2; +} + +message ProfilePreferences { + optional bool hide_profile_awards = 1; +} + +message ProfileTheme { + optional string theme_id = 1; + optional string title = 2; +} + +service Player { + rpc AcceptSSA (.CPlayer_AcceptSSA_Request) returns (.CPlayer_AcceptSSA_Response); + rpc AddFriend (.CPlayer_AddFriend_Request) returns (.CPlayer_AddFriend_Response); + rpc ClientGetLastPlayedTimes (.CPlayer_GetLastPlayedTimes_Request) returns (.CPlayer_GetLastPlayedTimes_Response); + rpc DeletePostedStatus (.CPlayer_DeletePostedStatus_Request) returns (.CPlayer_DeletePostedStatus_Response); + rpc GetAchievementsProgress (.CPlayer_GetAchievementsProgress_Request) returns (.CPlayer_GetAchievementsProgress_Response); + rpc GetAnimatedAvatar (.CPlayer_GetAnimatedAvatar_Request) returns (.CPlayer_GetAnimatedAvatar_Response); + rpc GetAvatarFrame (.CPlayer_GetAvatarFrame_Request) returns (.CPlayer_GetAvatarFrame_Response); + rpc GetCommunityBadgeProgress (.CPlayer_GetCommunityBadgeProgress_Request) returns (.CPlayer_GetCommunityBadgeProgress_Response); + rpc GetCommunityPreferences (.CPlayer_GetCommunityPreferences_Request) returns (.CPlayer_GetCommunityPreferences_Response); + rpc GetDurationControl (.CPlayer_GetDurationControl_Request) returns (.CPlayer_GetDurationControl_Response); + rpc GetEmoticonList (.CPlayer_GetEmoticonList_Request) returns (.CPlayer_GetEmoticonList_Response); + rpc GetFavoriteBadge (.CPlayer_GetFavoriteBadge_Request) returns (.CPlayer_GetFavoriteBadge_Response); + rpc GetFriendsAppsActivity (.CPlayer_GetFriendsAppsActivity_Request) returns (.CPlayer_GetFriendsAppsActivity_Response); + rpc GetFriendsGameplayInfo (.CPlayer_GetFriendsGameplayInfo_Request) returns (.CPlayer_GetFriendsGameplayInfo_Response); + rpc GetGameAchievements (.CPlayer_GetGameAchievements_Request) returns (.CPlayer_GetGameAchievements_Response); + rpc GetGameBadgeLevels (.CPlayer_GetGameBadgeLevels_Request) returns (.CPlayer_GetGameBadgeLevels_Response); + rpc GetMiniProfileBackground (.CPlayer_GetMiniProfileBackground_Request) returns (.CPlayer_GetMiniProfileBackground_Response); + rpc GetMutualFriendsForIncomingInvites (.CPlayer_GetMutualFriendsForIncomingInvites_Request) returns (.CPlayer_GetMutualFriendsForIncomingInvites_Response); + rpc GetNewSteamAnnouncementState (.CPlayer_GetNewSteamAnnouncementState_Request) returns (.CPlayer_GetNewSteamAnnouncementState_Response); + rpc GetNicknameList (.CPlayer_GetNicknameList_Request) returns (.CPlayer_GetNicknameList_Response); + rpc GetOwnedGames (.CPlayer_GetOwnedGames_Request) returns (.CPlayer_GetOwnedGames_Response); + rpc GetPerFriendPreferences (.CPlayer_GetPerFriendPreferences_Request) returns (.CPlayer_GetPerFriendPreferences_Response); + rpc GetPlayerLinkDetails (.CPlayer_GetPlayerLinkDetails_Request) returns (.CPlayer_GetPlayerLinkDetails_Response); + rpc GetPlayNext (.CPlayer_GetPlayNext_Request) returns (.CPlayer_GetPlayNext_Response); + rpc GetPostedStatus (.CPlayer_GetPostedStatus_Request) returns (.CPlayer_GetPostedStatus_Response); + rpc GetPrivacySettings (.CPlayer_GetPrivacySettings_Request) returns (.CPlayer_GetPrivacySettings_Response); + rpc GetProfileBackground (.CPlayer_GetProfileBackground_Request) returns (.CPlayer_GetProfileBackground_Response); + rpc GetProfileCustomization (.CPlayer_GetProfileCustomization_Request) returns (.CPlayer_GetProfileCustomization_Response); + rpc GetProfileItemsEquipped (.CPlayer_GetProfileItemsEquipped_Request) returns (.CPlayer_GetProfileItemsEquipped_Response); + rpc GetProfileItemsOwned (.CPlayer_GetProfileItemsOwned_Request) returns (.CPlayer_GetProfileItemsOwned_Response); + rpc GetProfileThemesAvailable (.CPlayer_GetProfileThemesAvailable_Request) returns (.CPlayer_GetProfileThemesAvailable_Response); + rpc GetPurchasedAndUpgradedProfileCustomizations (.CPlayer_GetPurchasedAndUpgradedProfileCustomizations_Request) returns (.CPlayer_GetPurchasedAndUpgradedProfileCustomizations_Response); + rpc GetPurchasedProfileCustomizations (.CPlayer_GetPurchasedProfileCustomizations_Request) returns (.CPlayer_GetPurchasedProfileCustomizations_Response); + rpc GetRecentPlaytimeSessionsForChild (.CPlayer_GetRecentPlaytimeSessionsForChild_Request) returns (.CPlayer_GetRecentPlaytimeSessionsForChild_Response); + rpc GetSteamDeckKeyboardSkin (.CPlayer_GetSteamDeckKeyboardSkin_Request) returns (.CPlayer_GetSteamDeckKeyboardSkin_Response); + rpc GetTextFilterWords (.CPlayer_GetTextFilterWords_Request) returns (.CPlayer_GetTextFilterWords_Response); + rpc GetTimeSSAAccepted (.CPlayer_GetTimeSSAAccepted_Request) returns (.CPlayer_GetTimeSSAAccepted_Response); + rpc GetTopAchievementsForGames (.CPlayer_GetTopAchievementsForGames_Request) returns (.CPlayer_GetTopAchievementsForGames_Response); + rpc IgnoreFriend (.CPlayer_IgnoreFriend_Request) returns (.CPlayer_IgnoreFriend_Response); + rpc PostStatusToFriends (.CPlayer_PostStatusToFriends_Request) returns (.CPlayer_PostStatusToFriends_Response); + rpc RecordDisconnectedPlaytime (.CPlayer_RecordDisconnectedPlaytime_Request) returns (.CPlayer_RecordDisconnectedPlaytime_Response); + rpc RemoveFriend (.CPlayer_RemoveFriend_Request) returns (.CPlayer_RemoveFriend_Response); + rpc SetAnimatedAvatar (.CPlayer_SetAnimatedAvatar_Request) returns (.CPlayer_SetAnimatedAvatar_Response); + rpc SetAvatarFrame (.CPlayer_SetAvatarFrame_Request) returns (.CPlayer_SetAvatarFrame_Response); + rpc SetCommunityPreferences (.CPlayer_SetCommunityPreferences_Request) returns (.CPlayer_SetCommunityPreferences_Response); + rpc SetEquippedProfileItemFlags (.CPlayer_SetEquippedProfileItemFlags_Request) returns (.CPlayer_SetEquippedProfileItemFlags_Response); + rpc SetFavoriteBadge (.CPlayer_SetFavoriteBadge_Request) returns (.CPlayer_SetFavoriteBadge_Response); + rpc SetMiniProfileBackground (.CPlayer_SetMiniProfileBackground_Request) returns (.CPlayer_SetMiniProfileBackground_Response); + rpc SetPerFriendPreferences (.CPlayer_SetPerFriendPreferences_Request) returns (.CPlayer_SetPerFriendPreferences_Response); + rpc SetProfileBackground (.CPlayer_SetProfileBackground_Request) returns (.CPlayer_SetProfileBackground_Response); + rpc SetProfilePreferences (.CPlayer_SetProfilePreferences_Request) returns (.CPlayer_SetProfilePreferences_Response); + rpc SetProfileTheme (.CPlayer_SetProfileTheme_Request) returns (.CPlayer_SetProfileTheme_Response); + rpc SetSteamDeckKeyboardSkin (.CPlayer_SetSteamDeckKeyboardSkin_Request) returns (.CPlayer_SetSteamDeckKeyboardSkin_Response); + rpc UpdateSteamAnnouncementLastRead (.CPlayer_UpdateSteamAnnouncementLastRead_Request) returns (.CPlayer_UpdateSteamAnnouncementLastRead_Response); +} + +service PlayerClient { + rpc NotifyCommunityPreferencesChanged (.CPlayer_CommunityPreferencesChanged_Notification) returns (.NoResponse); + rpc NotifyFriendEquippedProfileItemsChanged (.CPlayer_FriendEquippedProfileItemsChanged_Notification) returns (.NoResponse); + rpc NotifyFriendNicknameChanged (.CPlayer_FriendNicknameChanged_Notification) returns (.NoResponse); + rpc NotifyLastPlayedTimes (.CPlayer_LastPlayedTimes_Notification) returns (.NoResponse); + rpc NotifyNewSteamAnnouncementState (.CPlayer_NewSteamAnnouncementState_Notification) returns (.NoResponse); + rpc NotifyPerFriendPreferencesChanged (.CPlayer_PerFriendPreferencesChanged_Notification) returns (.NoResponse); + rpc NotifyPrivacyPrivacySettingsChanged (.CPlayer_PrivacySettingsChanged_Notification) returns (.NoResponse); + rpc NotifyTextFilterWordsChanged (.CPlayer_TextFilterWordsChanged_Notification) returns (.NoResponse); +} + diff --git a/Protobufs/webui/service_playtest.proto b/Protobufs/webui/service_playtest.proto new file mode 100644 index 0000000..acb0c21 --- /dev/null +++ b/Protobufs/webui/service_playtest.proto @@ -0,0 +1,33 @@ +import "common_base.proto"; + +message CPlaytest_GetInvites_Request { + optional uint64 invite_id = 1; +} + +message CPlaytest_GetInvites_Response { + repeated .CPlaytest_GetInvites_Response_Invite invites = 1; +} + +message CPlaytest_GetInvites_Response_Invite { + optional uint64 invite_id = 1; + optional uint32 appid = 2; + optional fixed64 steamid_inviter = 3; + optional int32 status = 4 [(.description) = "enum"]; + optional uint32 time_created = 5; + optional string app_name = 6; +} + +message CPlaytest_UpdateInvites_Request { + repeated uint64 invite_ids = 1; + optional int32 status = 2 [(.description) = "enum"]; +} + +message CPlaytest_UpdateInvites_Response { + optional uint32 invites_updated = 1; +} + +service Playtest { + rpc GetInvites (.CPlaytest_GetInvites_Request) returns (.CPlaytest_GetInvites_Response); + rpc UpdateInvites (.CPlaytest_UpdateInvites_Request) returns (.CPlaytest_UpdateInvites_Response); +} + diff --git a/Protobufs/webui/service_promotioneventinvites.proto b/Protobufs/webui/service_promotioneventinvites.proto new file mode 100644 index 0000000..7af2025 --- /dev/null +++ b/Protobufs/webui/service_promotioneventinvites.proto @@ -0,0 +1,114 @@ +import "common_base.proto"; + +message CPromotionEventInvitation { + optional fixed64 inviteid = 1; + optional uint32 appid = 2; + optional uint32 invite_account = 3; + optional uint32 rtinvitetime = 4; + optional uint32 rtexpiretime = 5; + optional int32 type = 6 [(.description) = "enum"]; + optional uint32 accept_account = 7; + optional uint32 rtaccepttime = 8; + optional uint32 rtdatechosen = 9; + optional uint32 discount_eventid = 10; + optional uint32 packageid = 11; + optional uint32 bundleid = 12; + optional uint32 primary_partnerid = 13; + optional .CPromotionRequirements deadlines = 14; + optional bool notify_partner = 15; + repeated string additional_email = 16; + optional string promotion_id = 17; + optional bool cancelled = 18; + optional uint32 rtime32_cancel_time = 19; + optional bool require_sale_page = 20; + optional int32 require_sale_page_type = 21 [(.description) = "enum"]; + optional string admin_notes = 22; + optional string partner_notes = 23; +} + +message CPromotionEventInviteReceive { + optional uint32 accountid = 1; + optional uint32 partnerid = 2; + optional string email_address = 3; +} + +message CPromotionEventInvites_AcceptInvite_Request { + optional fixed64 inviteid = 1; + optional uint32 rtdatechosen = 2; + optional uint32 discount_days = 3; + optional string discount_info = 4; + optional bool skip_discount_event = 5; +} + +message CPromotionEventInvites_AcceptInvite_Response { + optional fixed64 gid = 1; +} + +message CPromotionEventInvites_CancelInvite_Request { + optional fixed64 inviteid = 1; +} + +message CPromotionEventInvites_CancelInvite_Response { +} + +message CPromotionEventInvites_GetAllActiveInvites_Response { + repeated .CPromotionEventInvitation invites = 1; +} + +message CPromotionEventInvites_GetEmailTargets_Request { + optional fixed64 inviteid = 1; +} + +message CPromotionEventInvites_GetEmailTargets_Response { + repeated .CPromotionEventInviteReceive targets = 1; + repeated string additional_email_address = 2; + repeated uint32 valve_account_ids = 3; + optional string operation_email = 4; +} + +message CPromotionEventInvites_GetInvite_Request { + optional fixed64 inviteid = 1; + optional uint32 appid = 2; + optional uint32 packageid = 3; + optional uint32 bundleid = 4; + optional uint32 partnerid = 5; + optional string promotion_id = 6; +} + +message CPromotionEventInvites_GetInvite_Response { + repeated .CPromotionEventInvitation invites = 1; +} + +message CPromotionEventInvites_ResendEmailInvite_Request { + optional fixed64 inviteid = 1; + optional bool only_notify_additional_email = 2; +} + +message CPromotionEventInvites_ResendEmailInvite_Response { +} + +message CPromotionEventInvites_SetInvite_Request { + optional .CPromotionEventInvitation invite = 1; + optional bool queue_email_to_send = 2; +} + +message CPromotionEventInvites_SetInvite_Response { + optional fixed64 inviteid = 1; +} + +message CPromotionRequirements { + optional uint32 spotlight_due_date = 1; + optional uint32 marketing_message_due_date = 2; + optional uint32 discount_event_due_date = 3; +} + +service PromotionEventInvites { + rpc AcceptInvite (.CPromotionEventInvites_AcceptInvite_Request) returns (.CPromotionEventInvites_AcceptInvite_Response); + rpc CancelInvite (.CPromotionEventInvites_CancelInvite_Request) returns (.CPromotionEventInvites_CancelInvite_Response); + rpc GetAllActiveInvites (.NotImplemented) returns (.CPromotionEventInvites_GetAllActiveInvites_Response); + rpc GetEmailTargets (.CPromotionEventInvites_GetEmailTargets_Request) returns (.CPromotionEventInvites_GetEmailTargets_Response); + rpc GetInvite (.CPromotionEventInvites_GetInvite_Request) returns (.CPromotionEventInvites_GetInvite_Response); + rpc ResendEmailInvite (.CPromotionEventInvites_ResendEmailInvite_Request) returns (.CPromotionEventInvites_ResendEmailInvite_Response); + rpc SetInvite (.CPromotionEventInvites_SetInvite_Request) returns (.CPromotionEventInvites_SetInvite_Response); +} + diff --git a/Protobufs/webui/service_promotionplanning.proto b/Protobufs/webui/service_promotionplanning.proto new file mode 100644 index 0000000..0efe6cd --- /dev/null +++ b/Protobufs/webui/service_promotionplanning.proto @@ -0,0 +1,360 @@ +import "common_base.proto"; + +message CPromotionNotificationResults { + optional fixed64 notification_id = 1; + optional fixed64 tracking_id = 2; + optional string email_address = 3; + optional uint32 accountid = 4; + optional uint32 status = 5; + optional int32 type = 6 [(.description) = "enum"]; + optional uint32 rt_send_time = 7; +} + +message CPromotionPlan { + optional fixed64 promotion_id = 1; + optional string admin_jsondata = 2; + optional string partner_jsondata = 3; + optional string input_jsondata = 4; + optional uint32 rtime32_start_time = 5; + optional uint32 rtime32_end_time = 6; + optional uint32 partner_id = 7; + optional string input_access_key = 8; + optional uint32 last_update_time = 9; + optional string partner_readonly_jsondata = 10; + optional string partner_writable_jsondata = 11; + optional string assets_readonly_jsondata = 12; + optional string assets_writable_jsondata = 13; +} + +message CPromotionPlan_CreateSalePageForPromo_Request { + optional uint32 clan_account_id = 1; + optional fixed64 clan_event_gid = 2; + optional uint32 rtime_sale_start = 3; + optional uint32 rtime_sale_end = 4; + optional fixed64 daily_deal_gid = 5; + optional fixed64 promotion_gid = 6; + optional bool create_asset_request = 7; + optional uint32 partner_id = 8; + optional uint32 advertising_appid = 9; +} + +message CPromotionPlan_CreateSalePageForPromo_Response { + optional uint32 clan_account_id = 1; + optional fixed64 clan_event_gid = 2; + optional fixed64 daily_deal_gid = 3; + optional fixed64 promotion_gid = 4; + optional fixed64 asset_request_gid = 5; + optional uint32 advertising_appid = 6; +} + +message CPromotionPlanning_CreatePlan_Request { + optional .CPromotionPlan plan = 1; +} + +message CPromotionPlanning_CreatePlan_Response { + optional fixed64 promotion_id = 1; + optional string input_access_key = 2; +} + +message CPromotionPlanning_DeletePlan_Request { + optional fixed64 promotion_id = 1; +} + +message CPromotionPlanning_DeletePlan_Response { +} + +message CPromotionPlanning_GetAdvertisingAppsForPartner_Request { + optional uint32 partner_id = 1; +} + +message CPromotionPlanning_GetAdvertisingAppsForPartner_Response { + repeated .CPromotionPlanning_GetAdvertisingAppsForPartner_Response_advertising_app advertising_apps = 1; +} + +message CPromotionPlanning_GetAdvertisingAppsForPartner_Response_advertising_app { + optional uint32 appid = 1; + optional string app_name = 2; + optional uint32 itemid = 3; +} + +message CPromotionPlanning_GetAllActivePlan_Request { +} + +message CPromotionPlanning_GetAllActivePlan_Response { + repeated .CPromotionPlan plan = 1; +} + +message CPromotionPlanning_GetAllPlansForApps_Request { + repeated uint32 appids = 1; + optional bool exclude_sales = 2; + optional bool exclude_direct_featuring = 3; +} + +message CPromotionPlanning_GetAllPlansForApps_Response { + repeated .CPromotionPlan plans = 1; + repeated .CPromotionPlanning_GetAllPlansForApps_Response_CAppIncludedInSales apps_included_in_sales = 2; +} + +message CPromotionPlanning_GetAllPlansForApps_Response_CAppIncludedInSales { + repeated uint32 appids = 1; + optional fixed64 clan_event_gid = 2; +} + +message CPromotionPlanning_GetAllPlansForPartner_Request { + optional uint32 partnerid = 1; + optional bool show_hidden = 4; + optional uint32 start_date = 5; + optional uint32 end_date = 6; +} + +message CPromotionPlanning_GetAllPlansForPartner_Response { + repeated .CPromotionPlan plans = 1; +} + +message CPromotionPlanning_GetAvailableWeekSlots_Request { + optional uint32 publisherid = 1; + optional uint32 rtime_start = 2; +} + +message CPromotionPlanning_GetAvailableWeekSlots_Response { + repeated uint32 rt_weeklong_deals = 1; + repeated uint32 rt_weekend_deals = 2; +} + +message CPromotionPlanning_GetPlan_Request { + optional fixed64 promotion_id = 1; +} + +message CPromotionPlanning_GetPlan_Response { + optional .CPromotionPlan plan = 1; +} + +message CPromotionPlanning_GetPlanByInputAccessKey_Request { + optional string input_access_key = 1; +} + +message CPromotionPlanning_GetPlanByInputAccessKey_Response { + optional .CPromotionPlan plan = 1; +} + +message CPromotionPlanning_GetPlanCompletedInDateRange_Request { + optional uint32 oldest_rtime = 1; + optional uint32 newest_rtime = 2; + repeated string promotion_types = 3; +} + +message CPromotionPlanning_GetPlanCompletedInDateRange_Response { + repeated .CPromotionPlan plans = 1; +} + +message CPromotionPlanning_GetPlansUpdatedSince_Request { + optional uint32 rtime = 1; + optional uint32 upto_rtime = 2; +} + +message CPromotionPlanning_GetPlansUpdatedSince_Response { + repeated .CPromotionPlan plans = 1; + repeated fixed64 deleted_plan_ids = 2; +} + +message CPromotionPlanning_GetPromotionPlanForSalePages_Request { + repeated .CPromotionPlanning_GetPromotionPlanForSalePages_Request_CSalePage request_list = 1; +} + +message CPromotionPlanning_GetPromotionPlanForSalePages_Request_CSalePage { + optional uint32 clan_account_id = 1; + optional fixed64 gid_clan_event = 2; +} + +message CPromotionPlanning_GetPromotionPlanForSalePages_Response { + repeated .CPromotionPlan plans = 1; +} + +message CPromotionPlanning_GetPromotionPlanPackageSales_Request { + optional uint64 promotion_id = 1; + optional uint32 partnerid = 2; +} + +message CPromotionPlanning_GetPromotionPlanPackageSales_Response { + repeated .CPromotionPlanning_GetPromotionPlanPackageSales_Response_PromotionPlanPackageSalesDetails promo_plan_package_sales_details = 1; +} + +message CPromotionPlanning_GetPromotionPlanPackageSales_Response_PromotionPlanPackageSalesDetails { + optional string date = 1; + optional uint32 packageid = 2; + optional uint32 primary_app_id = 3; + optional bool is_dlc = 4; + optional int32 gross_units_sold = 5; + optional int64 gross_sales_usdx100 = 6; +} + +message CPromotionPlanning_GetPromotionPlanSummarySales_Request { + optional uint32 num_weeks = 1; + repeated string promotion_types = 2; +} + +message CPromotionPlanning_GetPromotionPlanSummarySales_Response { + repeated .CPromotionPlanning_GetPromotionPlanSummarySales_Response_CSummaryResults results = 1; +} + +message CPromotionPlanning_GetPromotionPlanSummarySales_Response_CSummaryResults { + optional string promotion_type = 1; + optional int64 gross_sales_minimum_usdx100 = 2; + optional int64 gross_sales_median_usdx100 = 3; + optional int64 gross_sales_average_usdx100 = 4; + optional int64 gross_sales_maximum_usdx100 = 5; + optional int32 num_weeks = 6; +} + +message CPromotionPlanning_GetSalePageCandidatesForPromo_Request { + optional uint32 account_id = 1; + optional bool include_published = 2; +} + +message CPromotionPlanning_GetSalePageCandidatesForPromo_Response { + repeated .CPromotionPlanning_GetSalePageCandidatesForPromo_Response_clan clans = 1; +} + +message CPromotionPlanning_GetSalePageCandidatesForPromo_Response_clan { + optional uint32 clan_account_id = 1; + optional string clan_name = 2; + optional bool is_creator_home = 3; + repeated .CPromotionPlanning_GetSalePageCandidatesForPromo_Response_salepage sale_pages = 4; +} + +message CPromotionPlanning_GetSalePageCandidatesForPromo_Response_salepage { + optional uint32 clan_account_id = 1; + optional fixed64 gid_clan_event = 2; + optional string name = 3; + optional bool published = 4; + optional uint32 start_time = 5; + optional uint32 end_time = 6; + optional uint32 external_sale_event_type = 7; +} + +message CPromotionPlanning_GetSentNotification_Request { + optional fixed64 promotion_id = 1; + optional fixed64 notification_id = 2; +} + +message CPromotionPlanning_GetSentNotification_Response { + repeated .CPromotionNotificationResults results = 1; +} + +message CPromotionPlanning_GetUpcomingScheduledDiscounts_Request { + optional uint32 rtstart = 1; + optional uint32 rtend = 2; + optional bool include_packages = 3; + optional bool filter_modified_sales_rank = 4 [default = true]; +} + +message CPromotionPlanning_GetUpcomingScheduledDiscounts_Response { + repeated .CPromotionPlanning_GetUpcomingScheduledDiscounts_Response_CUpcomingPackageDiscountInfo package_details = 1; + repeated .CPromotionPlanning_GetUpcomingScheduledDiscounts_Response_CUpcomingAppDiscountInfo app_details = 2; +} + +message CPromotionPlanning_GetUpcomingScheduledDiscounts_Response_CUpcomingAppDiscountInfo { + optional uint32 appid = 1; + optional uint32 cheapest_package_id = 3; + optional uint32 cheapest_discount_id = 4; + optional string cheapest_discount_name = 5; + optional uint32 package_original_price_usd = 6; + optional uint32 discounted_price_usd = 7; + optional uint32 discount_percentage = 8; + optional uint32 rtime_discount_start = 9; + optional uint32 rtime_discount_end = 10; + optional uint32 num_discounted_packages = 11; + optional uint32 modified_sales_rank = 12; +} + +message CPromotionPlanning_GetUpcomingScheduledDiscounts_Response_CUpcomingPackageDiscountInfo { + optional uint32 package_id = 1; + optional uint32 discount_id = 2; + optional string discount_name = 3; + optional uint32 discount_percentage = 4; + optional uint32 original_price_usd = 5; + optional uint32 discount_price_usd = 6; + optional uint32 rtime_discount_start = 7; + optional uint32 rtime_discount_end = 8; +} + +message CPromotionPlanning_MarkLocalizationAssetComplete_Request { + optional fixed64 promotion_id = 1; + optional bool value = 2; +} + +message CPromotionPlanning_MarkLocalizationAssetComplete_Response { +} + +message CPromotionPlanning_ResendNotification_Request { + optional fixed64 promotion_id = 1; + optional fixed64 notification_id = 2; +} + +message CPromotionPlanning_ResendNotification_Response { +} + +message CPromotionPlanning_SearchPlan_Request { + optional string token = 1; +} + +message CPromotionPlanning_SearchPlan_Response { + repeated .CPromotionPlan plan = 1; +} + +message CPromotionPlanning_SendNotification_Request { + optional fixed64 promotion_id = 1; + optional int32 notification_type = 2 [(.description) = "enum"]; + optional bool only_explicit_email_addresses = 3; +} + +message CPromotionPlanning_SendNotification_Response { +} + +message CPromotionPlanning_SetPromotionEmailTarget_Request { + optional fixed64 promotion_id = 1; + optional bool add = 2; + optional string email_address = 3; +} + +message CPromotionPlanning_SetPromotionEmailTarget_Response { +} + +message CPromotionPlanning_UpdatePlan_Request { + optional .CPromotionPlan plan = 1; + optional fixed64 promotion_id = 2; +} + +message CPromotionPlanning_UpdatePlan_Response { +} + +service PromotionPlanning { + rpc CreatePlan (.CPromotionPlanning_CreatePlan_Request) returns (.CPromotionPlanning_CreatePlan_Response); + rpc CreateSalePageForPromo (.CPromotionPlan_CreateSalePageForPromo_Request) returns (.CPromotionPlan_CreateSalePageForPromo_Response); + rpc CreateTentativePlan (.CPromotionPlanning_CreatePlan_Request) returns (.CPromotionPlanning_CreatePlan_Response); + rpc DeletePlan (.CPromotionPlanning_DeletePlan_Request) returns (.CPromotionPlanning_DeletePlan_Response); + rpc GetAdvertisingAppsForPartner (.CPromotionPlanning_GetAdvertisingAppsForPartner_Request) returns (.CPromotionPlanning_GetAdvertisingAppsForPartner_Response); + rpc GetAllActivePlan (.CPromotionPlanning_GetAllActivePlan_Request) returns (.CPromotionPlanning_GetAllActivePlan_Response); + rpc GetAllPlansForApps (.CPromotionPlanning_GetAllPlansForApps_Request) returns (.CPromotionPlanning_GetAllPlansForApps_Response); + rpc GetAllPlansForPartner (.CPromotionPlanning_GetAllPlansForPartner_Request) returns (.CPromotionPlanning_GetAllPlansForPartner_Response); + rpc GetAvailableWeekSlots (.CPromotionPlanning_GetAvailableWeekSlots_Request) returns (.CPromotionPlanning_GetAvailableWeekSlots_Response); + rpc GetPlan (.CPromotionPlanning_GetPlan_Request) returns (.CPromotionPlanning_GetPlan_Response); + rpc GetPlanByInputAccessKey (.CPromotionPlanning_GetPlanByInputAccessKey_Request) returns (.CPromotionPlanning_GetPlanByInputAccessKey_Response); + rpc GetPlanCompletedInDateRange (.CPromotionPlanning_GetPlanCompletedInDateRange_Request) returns (.CPromotionPlanning_GetPlanCompletedInDateRange_Response); + rpc GetPlansUpdatedSince (.CPromotionPlanning_GetPlansUpdatedSince_Request) returns (.CPromotionPlanning_GetPlansUpdatedSince_Response); + rpc GetPromotionPlanForSalePages (.CPromotionPlanning_GetPromotionPlanForSalePages_Request) returns (.CPromotionPlanning_GetPromotionPlanForSalePages_Response); + rpc GetPromotionPlanPackageSales (.CPromotionPlanning_GetPromotionPlanPackageSales_Request) returns (.CPromotionPlanning_GetPromotionPlanPackageSales_Response); + rpc GetPromotionPlanSummarySales (.CPromotionPlanning_GetPromotionPlanSummarySales_Request) returns (.CPromotionPlanning_GetPromotionPlanSummarySales_Response); + rpc GetSalePageCandidatesForPromo (.CPromotionPlanning_GetSalePageCandidatesForPromo_Request) returns (.CPromotionPlanning_GetSalePageCandidatesForPromo_Response); + rpc GetSentNotification (.CPromotionPlanning_GetSentNotification_Request) returns (.CPromotionPlanning_GetSentNotification_Response); + rpc GetUpcomingScheduledDiscounts (.CPromotionPlanning_GetUpcomingScheduledDiscounts_Request) returns (.CPromotionPlanning_GetUpcomingScheduledDiscounts_Response); + rpc MarkLocalizationAssetComplete (.CPromotionPlanning_MarkLocalizationAssetComplete_Request) returns (.CPromotionPlanning_MarkLocalizationAssetComplete_Response); + rpc ResendNotification (.CPromotionPlanning_ResendNotification_Request) returns (.CPromotionPlanning_ResendNotification_Response); + rpc SearchPlan (.CPromotionPlanning_SearchPlan_Request) returns (.CPromotionPlanning_SearchPlan_Response); + rpc SendNotification (.CPromotionPlanning_SendNotification_Request) returns (.CPromotionPlanning_SendNotification_Response); + rpc SetPromotionEmailTarget (.CPromotionPlanning_SetPromotionEmailTarget_Request) returns (.CPromotionPlanning_SetPromotionEmailTarget_Response); + rpc UpdatePlan (.CPromotionPlanning_UpdatePlan_Request) returns (.CPromotionPlanning_UpdatePlan_Response); + rpc UpdatePlanInputData (.CPromotionPlanning_UpdatePlan_Request) returns (.CPromotionPlanning_UpdatePlan_Response); + rpc UpdatePlanPartnerInfo (.CPromotionPlanning_UpdatePlan_Request) returns (.CPromotionPlanning_UpdatePlan_Response); +} + diff --git a/Protobufs/webui/service_promotionstats.proto b/Protobufs/webui/service_promotionstats.proto new file mode 100644 index 0000000..2a71ffa --- /dev/null +++ b/Protobufs/webui/service_promotionstats.proto @@ -0,0 +1,26 @@ + +message CPromotionStats_GetOptInDemoStats_Request { + optional string opt_in_name = 1; + optional uint32 partner_id = 2; +} + +message CPromotionStats_GetOptInDemoStats_Response { + repeated .CPromotionStats_GetOptInDemoStats_Response_PerAppStats stats = 1; + repeated uint32 appid_without_permissions = 2; +} + +message CPromotionStats_GetOptInDemoStats_Response_PerAppStats { + optional uint32 appid = 1; + optional uint32 demo_appid = 2; + optional uint32 rt_start_time = 3; + optional uint32 rt_end_time = 4; + optional uint32 demo_player_count = 5; + optional uint32 wishlist_count = 6; + optional uint32 player_wishlist_count = 7; + optional uint32 rt_last_update_time = 9; +} + +service PromotionStats { + rpc GetOptInDemoStats (.CPromotionStats_GetOptInDemoStats_Request) returns (.CPromotionStats_GetOptInDemoStats_Response); +} + diff --git a/Protobufs/webui/service_publishedfile.proto b/Protobufs/webui/service_publishedfile.proto new file mode 100644 index 0000000..bd68d79 --- /dev/null +++ b/Protobufs/webui/service_publishedfile.proto @@ -0,0 +1,737 @@ +import "common_base.proto"; + +message CPublishedFile_AddAppRelationship_Request { + optional uint64 publishedfileid = 1; + optional uint32 appid = 2; + optional uint32 relationship = 3; +} + +message CPublishedFile_AddAppRelationship_Response { +} + +message CPublishedFile_AddChild_Request { + optional uint64 publishedfileid = 1; + optional uint64 child_publishedfileid = 2; +} + +message CPublishedFile_AddChild_Response { +} + +message CPublishedFile_AreFilesInSubscriptionList_Request { + optional uint32 appid = 1; + repeated fixed64 publishedfileids = 2; + optional uint32 listtype = 3; + optional uint32 filetype = 4; + optional uint32 workshopfiletype = 5; +} + +message CPublishedFile_AreFilesInSubscriptionList_Response { + repeated .CPublishedFile_AreFilesInSubscriptionList_Response_InList files = 1; +} + +message CPublishedFile_AreFilesInSubscriptionList_Response_InList { + optional fixed64 publishedfileid = 1; + optional bool inlist = 2; +} + +message CPublishedFile_CanSubscribe_Request { + optional uint64 publishedfileid = 1; +} + +message CPublishedFile_CanSubscribe_Response { + optional bool can_subscribe = 1; +} + +message CPublishedFile_Delete_Request { + optional fixed64 publishedfileid = 1; + optional uint32 appid = 5; +} + +message CPublishedFile_Delete_Response { +} + +message CPublishedFile_FileDeleted_Client_Notification { + optional fixed64 published_file_id = 1; + optional uint32 app_id = 2; +} + +message CPublishedFile_FileSubscribed_Notification { + optional fixed64 published_file_id = 1; + optional uint32 app_id = 2; + optional fixed64 file_hcontent = 3; + optional uint32 file_size = 4; + optional uint32 rtime_subscribed = 5; + optional bool is_depot_content = 6; + optional uint32 rtime_updated = 7; + repeated .CPublishedFile_FileSubscribed_Notification_RevisionData revisions = 8; + optional int32 revision = 9 [(.description) = "enum"]; +} + +message CPublishedFile_FileSubscribed_Notification_RevisionData { + optional int32 revision = 1 [(.description) = "enum"]; + optional fixed64 file_hcontent = 2; + optional uint32 rtime_updated = 3; + optional string game_branch_min = 4; + optional string game_branch_max = 5; +} + +message CPublishedFile_FileUnsubscribed_Notification { + optional fixed64 published_file_id = 1; + optional uint32 app_id = 2; +} + +message CPublishedFile_GetAppRelationships_Request { + optional uint64 publishedfileid = 1; +} + +message CPublishedFile_GetAppRelationships_Response { + repeated .CPublishedFile_GetAppRelationships_Response_AppRelationship app_relationships = 3; +} + +message CPublishedFile_GetAppRelationships_Response_AppRelationship { + optional uint32 appid = 1; + optional uint32 relationship = 2; +} + +message CPublishedFile_GetAppRelationshipsBatched_Request { + repeated uint64 publishedfileids = 1; + optional uint32 filter_relationship = 2; +} + +message CPublishedFile_GetAppRelationshipsBatched_Response { + repeated .CPublishedFile_GetAppRelationshipsBatched_Response_PublishedFileAppRelationship relationships = 1; +} + +message CPublishedFile_GetAppRelationshipsBatched_Response_AppRelationship { + optional uint32 appid = 1; + optional uint32 relationship = 2; +} + +message CPublishedFile_GetAppRelationshipsBatched_Response_PublishedFileAppRelationship { + optional uint64 publishedfileid = 1; + optional uint32 result = 2; + repeated .CPublishedFile_GetAppRelationshipsBatched_Response_AppRelationship app_relationships = 3; +} + +message CPublishedFile_GetChangeHistory_Request { + optional fixed64 publishedfileid = 1; + optional bool total_only = 2; + optional uint32 startindex = 3; + optional uint32 count = 4; + optional int32 language = 5 [default = 0]; +} + +message CPublishedFile_GetChangeHistory_Response { + repeated .CPublishedFile_GetChangeHistory_Response_ChangeLog changes = 1; + optional uint32 total = 2; +} + +message CPublishedFile_GetChangeHistory_Response_ChangeLog { + optional uint32 timestamp = 1; + optional string change_description = 2; + optional int32 language = 3; + optional bool saved_snapshot = 4; + optional string snapshot_game_branch_min = 5; + optional string snapshot_game_branch_max = 6; + optional fixed64 manifest_id = 7; +} + +message CPublishedFile_GetChangeHistoryEntry_Request { + optional fixed64 publishedfileid = 1; + optional uint32 timestamp = 2; + optional int32 language = 3; +} + +message CPublishedFile_GetChangeHistoryEntry_Response { + optional string change_description = 1; + optional int32 language = 2; + optional bool saved_snapshot = 3; + optional string snapshot_game_branch_min = 4; + optional string snapshot_game_branch_max = 5; + optional fixed64 manifest_id = 6; +} + +message CPublishedFile_GetContentDescriptors_Request { + optional fixed64 publishedfileid = 1; +} + +message CPublishedFile_GetContentDescriptors_Response { + repeated .CPublishedFile_GetContentDescriptors_Response_ContentDescriptor content_descriptors = 1; +} + +message CPublishedFile_GetContentDescriptors_Response_ContentDescriptor { + optional int32 descriptorid = 1 [(.description) = "enum"]; + optional uint32 accountid = 2; + optional uint32 timestamp = 3; + optional bool moderator_set = 4; +} + +message CPublishedFile_GetDetails_Request { + repeated fixed64 publishedfileids = 1; + optional bool includetags = 2; + optional bool includeadditionalpreviews = 3; + optional bool includechildren = 4; + optional bool includekvtags = 5; + optional bool includevotes = 6; + optional bool short_description = 8; + optional bool includeforsaledata = 10; + optional bool includemetadata = 11; + optional int32 language = 12 [default = 0]; + optional uint32 return_playtime_stats = 13; + optional uint32 appid = 14; + optional bool strip_description_bbcode = 15; + optional int32 desired_revision = 16 [default = 0, (.description) = "enum"]; + optional bool includereactions = 17 [default = false]; + optional bool admin_query = 18; +} + +message CPublishedFile_GetDetails_Response { + repeated .PublishedFileDetails publishedfiledetails = 1; +} + +message CPublishedFile_GetItemChanges_Request { + optional uint32 appid = 1; + optional uint32 last_time_updated = 2; + optional uint32 num_items_max = 3; + optional int32 desired_revision = 4 [(.description) = "enum"]; +} + +message CPublishedFile_GetItemChanges_Response { + optional uint32 update_time = 1; + repeated .CPublishedFile_GetItemChanges_Response_WorkshopItemInfo workshop_items = 2; +} + +message CPublishedFile_GetItemChanges_Response_WorkshopItemInfo { + optional fixed64 published_file_id = 1; + optional uint32 time_updated = 2; + optional fixed64 manifest_id = 3; + repeated .PublishedFileAuthorSnapshot author_snapshots = 4; +} + +message CPublishedFile_GetItemInfo_Request { + optional uint32 appid = 1; + optional uint32 last_time_updated = 2; + repeated .CPublishedFile_GetItemInfo_Request_WorkshopItem workshop_items = 3; +} + +message CPublishedFile_GetItemInfo_Request_WorkshopItem { + optional fixed64 published_file_id = 1; + optional uint32 time_updated = 2; + optional int32 desired_revision = 3 [default = 0, (.description) = "enum"]; +} + +message CPublishedFile_GetItemInfo_Response { + optional uint32 update_time = 1; + repeated .CPublishedFile_GetItemInfo_Response_WorkshopItemInfo workshop_items = 2; + repeated fixed64 private_items = 3; +} + +message CPublishedFile_GetItemInfo_Response_WorkshopItemInfo { + optional fixed64 published_file_id = 1; + optional uint32 time_updated = 2; + optional fixed64 manifest_id = 3; + optional uint32 flags = 4; + optional int32 revision = 5 [(.description) = "enum"]; + repeated .PublishedFileAuthorSnapshot author_snapshots = 6; +} + +message CPublishedFile_GetSubSectionData_Request { + optional uint64 publishedfileid = 1; + optional bool for_table_of_contents = 2; + optional uint64 specific_sectionid = 3; + optional int32 desired_revision = 4 [default = 0, (.description) = "enum"]; +} + +message CPublishedFile_GetSubSectionData_Response { + repeated .PublishedFileSubSection sub_sections = 1; +} + +message CPublishedFile_GetUserFiles_Request { + optional fixed64 steamid = 1; + optional uint32 appid = 2; + optional uint32 shortcutid = 3; + optional uint32 page = 4 [default = 1]; + optional uint32 numperpage = 5 [default = 1]; + optional string type = 6 [default = "myfiles"]; + optional string sortmethod = 7 [default = "lastupdated"]; + optional uint32 privacy = 9; + repeated string requiredtags = 10; + repeated string excludedtags = 11; + optional uint32 filetype = 14; + optional uint32 creator_appid = 15; + optional string match_cloud_filename = 16; + optional bool totalonly = 17; + optional bool ids_only = 18; + optional bool return_vote_data = 19 [default = true]; + optional bool return_tags = 20; + optional bool return_kv_tags = 21 [default = true]; + optional bool return_previews = 22; + optional bool return_children = 23; + optional bool return_short_description = 24 [default = true]; + optional uint32 startindex_override = 25; + optional bool return_for_sale_data = 26; + optional uint32 cache_max_age_seconds = 27 [default = 0]; + optional bool return_metadata = 28 [default = false]; + optional int32 language = 29 [default = 0]; + repeated .CPublishedFile_GetUserFiles_Request_KVTag required_kv_tags = 30; + optional uint32 return_playtime_stats = 31; + optional bool strip_description_bbcode = 32; + optional int32 desired_revision = 33 [default = 0, (.description) = "enum"]; + repeated .CPublishedFile_GetUserFiles_Request_TagGroup taggroups = 34; + optional bool return_reactions = 35 [default = false]; + optional bool return_apps = 36; + repeated int32 excluded_content_descriptors = 37 [(.description) = "enum"]; + optional bool admin_query = 38; +} + +message CPublishedFile_GetUserFiles_Request_KVTag { + optional string key = 1; + optional string value = 2; +} + +message CPublishedFile_GetUserFiles_Request_TagGroup { + repeated string tags = 1; +} + +message CPublishedFile_GetUserFiles_Response { + optional uint32 total = 1; + optional uint32 startindex = 2; + repeated .PublishedFileDetails publishedfiledetails = 3; + repeated .CPublishedFile_GetUserFiles_Response_App apps = 4; +} + +message CPublishedFile_GetUserFiles_Response_App { + optional uint32 appid = 1; + optional string name = 2; + optional uint32 shortcutid = 3; + optional bool private = 4; +} + +message CPublishedFile_GetUserVoteSummary_Request { + repeated fixed64 publishedfileids = 1; +} + +message CPublishedFile_GetUserVoteSummary_Response { + repeated .CPublishedFile_GetUserVoteSummary_Response_VoteSummary summaries = 1; +} + +message CPublishedFile_GetUserVoteSummary_Response_VoteSummary { + optional fixed64 publishedfileid = 1; + optional bool vote_for = 2; + optional bool vote_against = 3; + optional bool reported = 4; +} + +message CPublishedFile_Publish_Request { + optional uint32 appid = 1; + optional uint32 consumer_appid = 2; + optional string cloudfilename = 3; + optional string preview_cloudfilename = 4; + optional string title = 5; + optional string file_description = 6; + optional uint32 file_type = 7; + optional string consumer_shortcut_name = 8; + optional string youtube_username = 9; + optional string youtube_videoid = 10; + optional uint32 visibility = 11; + optional string redirect_uri = 12; + repeated string tags = 13; + optional string collection_type = 14; + optional string game_type = 15; + optional string url = 16; +} + +message CPublishedFile_Publish_Response { + optional uint64 publishedfileid = 1; + optional string redirect_uri = 2; +} + +message CPublishedFile_QueryFiles_Request { + optional uint32 query_type = 1; + optional uint32 page = 2; + optional uint32 numperpage = 3 [default = 1]; + optional uint32 creator_appid = 4; + optional uint32 appid = 5; + repeated string requiredtags = 6; + repeated string excludedtags = 7; + optional bool match_all_tags = 8 [default = true]; + repeated string required_flags = 9; + repeated string omitted_flags = 10; + optional string search_text = 11; + optional uint32 filetype = 12; + optional fixed64 child_publishedfileid = 13; + optional uint32 days = 14; + optional bool include_recent_votes_only = 15; + optional bool totalonly = 16; + optional bool return_vote_data = 17; + optional bool return_tags = 18; + optional bool return_kv_tags = 19; + optional bool return_previews = 20; + optional bool return_children = 21; + optional bool return_short_description = 22; + optional bool return_for_sale_data = 30; + optional uint32 cache_max_age_seconds = 31 [default = 0]; + optional bool return_metadata = 32 [default = false]; + optional int32 language = 33 [default = 0]; + repeated .CPublishedFile_QueryFiles_Request_KVTag required_kv_tags = 34; + optional bool ids_only = 35; + optional uint32 return_playtime_stats = 36; + optional bool return_details = 37; + optional bool strip_description_bbcode = 38; + optional string cursor = 39; + optional int32 desired_revision = 40 [default = 0, (.description) = "enum"]; + repeated .CPublishedFile_QueryFiles_Request_TagGroup taggroups = 42; + optional bool return_reactions = 43 [default = false]; + optional .CPublishedFile_QueryFiles_Request_DateRange date_range_created = 44; + optional .CPublishedFile_QueryFiles_Request_DateRange date_range_updated = 45; + repeated int32 excluded_content_descriptors = 46 [(.description) = "enum"]; + optional bool admin_query = 47; +} + +message CPublishedFile_QueryFiles_Request_DateRange { + optional uint32 timestamp_start = 1; + optional uint32 timestamp_end = 2; +} + +message CPublishedFile_QueryFiles_Request_KVTag { + optional string key = 1; + optional string value = 2; +} + +message CPublishedFile_QueryFiles_Request_TagGroup { + repeated string tags = 1; +} + +message CPublishedFile_QueryFiles_Response { + optional uint32 total = 1; + repeated .PublishedFileDetails publishedfiledetails = 2; + optional string next_cursor = 3; +} + +message CPublishedFile_RefreshVotingQueue_Request { + optional uint32 appid = 1; + optional uint32 matching_file_type = 2; + repeated string tags = 3; + optional bool match_all_tags = 4 [default = true]; + repeated string excluded_tags = 5; + optional uint32 desired_queue_size = 6; + optional int32 desired_revision = 8 [default = 0, (.description) = "enum"]; +} + +message CPublishedFile_RefreshVotingQueue_Response { +} + +message CPublishedFile_RemoveAppRelationship_Request { + optional uint64 publishedfileid = 1; + optional uint32 appid = 2; + optional uint32 relationship = 3; +} + +message CPublishedFile_RemoveAppRelationship_Response { +} + +message CPublishedFile_RemoveChild_Request { + optional uint64 publishedfileid = 1; + optional uint64 child_publishedfileid = 2; +} + +message CPublishedFile_RemoveChild_Response { +} + +message CPublishedFile_SetCollectionChildren_Request { + optional uint32 appid = 1; + optional uint64 publishedfileid = 2; + repeated uint64 children = 3; +} + +message CPublishedFile_SetCollectionChildren_Response { +} + +message CPublishedFile_SetPlaytimeForControllerConfigs_Request { + optional uint32 appid = 1; + repeated .CPublishedFile_SetPlaytimeForControllerConfigs_Request_ControllerConfigUsage controller_config_usage = 2; +} + +message CPublishedFile_SetPlaytimeForControllerConfigs_Request_ControllerConfigUsage { + optional uint64 publishedfileid = 1; + optional float seconds_active = 2; +} + +message CPublishedFile_SetPlaytimeForControllerConfigs_Response { +} + +message CPublishedFile_SetSubscriptionListFromCollection_Request { + optional uint32 appid = 1; + optional uint32 list_type = 2; + optional uint64 publishedfileid = 3; + optional bool add_only = 4; +} + +message CPublishedFile_SetSubscriptionListFromCollection_Response { +} + +message CPublishedFile_StartPlaytimeTracking_Request { + optional uint32 appid = 1; + repeated uint64 publishedfileids = 2; +} + +message CPublishedFile_StartPlaytimeTracking_Response { +} + +message CPublishedFile_StopPlaytimeTracking_Request { + optional uint32 appid = 1; + repeated uint64 publishedfileids = 2; +} + +message CPublishedFile_StopPlaytimeTracking_Response { +} + +message CPublishedFile_StopPlaytimeTrackingForAllAppItems_Request { + optional uint32 appid = 1; +} + +message CPublishedFile_StopPlaytimeTrackingForAllAppItems_Response { +} + +message CPublishedFile_Subscribe_Request { + optional uint64 publishedfileid = 1; + optional uint32 list_type = 2; + optional int32 appid = 3; + optional bool notify_client = 4; + optional bool include_dependencies = 5; +} + +message CPublishedFile_Subscribe_Response { +} + +message CPublishedFile_Unsubscribe_Request { + optional uint64 publishedfileid = 1; + optional uint32 list_type = 2; + optional int32 appid = 3; + optional bool notify_client = 4; +} + +message CPublishedFile_Unsubscribe_Response { +} + +message CPublishedFile_Update_Request { + optional uint32 appid = 1; + optional fixed64 publishedfileid = 2; + optional string title = 3; + optional string file_description = 4; + optional uint32 visibility = 5; + repeated string tags = 6; + optional string filename = 7; + optional string preview_filename = 8; + optional bool spoiler_tag = 10; + optional uint32 image_width = 15; + optional uint32 image_height = 16; + optional int32 language = 17; +} + +message CPublishedFile_Update_Response { +} + +message CPublishedFile_UpdateContentDescriptors_Request { + optional fixed64 publishedfileid = 1; + repeated int32 descriptors_to_add = 2 [(.description) = "enum"]; + repeated int32 descriptors_to_remove = 3 [(.description) = "enum"]; +} + +message CPublishedFile_UpdateContentDescriptors_Response { + optional uint32 timestamp_updated = 1; +} + +message CPublishedFile_Vote_Request { + optional uint64 publishedfileid = 1; + optional bool vote_up = 2; +} + +message CPublishedFile_Vote_Response { +} + +message PublishedFileAuthorSnapshot { + optional uint32 timestamp = 1; + optional string game_branch_min = 2; + optional string game_branch_max = 3; + optional fixed64 manifestid = 4; +} + +message PublishedFileDetails { + optional uint32 result = 1; + optional uint64 publishedfileid = 2; + optional fixed64 creator = 3; + optional uint32 creator_appid = 4; + optional uint32 consumer_appid = 5; + optional uint32 consumer_shortcutid = 6; + optional string filename = 7; + optional uint64 file_size = 8; + optional uint64 preview_file_size = 9; + optional string file_url = 10; + optional string preview_url = 11; + optional string youtubevideoid = 12; + optional string url = 13; + optional fixed64 hcontent_file = 14; + optional fixed64 hcontent_preview = 15; + optional string title = 16; + optional string file_description = 17; + optional string short_description = 18; + optional uint32 time_created = 19; + optional uint32 time_updated = 20; + optional uint32 visibility = 21; + optional uint32 flags = 22; + optional bool workshop_file = 23; + optional bool workshop_accepted = 24; + optional bool show_subscribe_all = 25; + optional int32 num_comments_developer = 26; + optional int32 num_comments_public = 27; + optional bool banned = 28; + optional string ban_reason = 29; + optional fixed64 banner = 30; + optional bool can_be_deleted = 31; + optional bool incompatible = 32; + optional string app_name = 33; + optional uint32 file_type = 34; + optional bool can_subscribe = 35; + optional uint32 subscriptions = 36; + optional uint32 favorited = 37; + optional uint32 followers = 38; + optional uint32 lifetime_subscriptions = 39; + optional uint32 lifetime_favorited = 40; + optional uint32 lifetime_followers = 41; + optional uint32 views = 42; + optional uint32 image_width = 43; + optional uint32 image_height = 44; + optional string image_url = 45; + optional bool spoiler_tag = 46; + optional uint32 shortcutid = 47; + optional string shortcutname = 48; + optional uint32 num_children = 49; + optional uint32 num_reports = 50; + repeated .PublishedFileDetails_Preview previews = 51; + repeated .PublishedFileDetails_Tag tags = 52; + repeated .PublishedFileDetails_Child children = 53; + repeated .PublishedFileDetails_KVTag kvtags = 54; + optional .PublishedFileDetails_VoteData vote_data = 55; + optional uint32 time_subscribed = 56; + optional .PublishedFileDetails_ForSaleData for_sale_data = 57; + optional string metadata = 58; + optional int32 language = 61 [default = 0]; + optional uint64 lifetime_playtime = 62; + optional uint64 lifetime_playtime_sessions = 63; + optional .PublishedFileDetails_PlaytimeStats playtime_stats = 64; + optional bool maybe_inappropriate_sex = 65; + optional bool maybe_inappropriate_violence = 66; + optional uint64 revision_change_number = 67; + optional int32 revision = 68 [(.description) = "enum"]; + repeated int32 available_revisions = 69 [(.description) = "enum"]; + repeated .PublishedFileDetails_Reaction reactions = 70; + optional int32 ban_text_check_result = 71 [(.description) = "enum"]; + repeated int32 content_descriptorids = 72 [(.description) = "enum"]; + optional float search_score = 73; + optional uint64 external_asset_id = 74; + repeated .PublishedFileAuthorSnapshot author_snapshots = 75; +} + +message PublishedFileDetails_Child { + optional uint64 publishedfileid = 1; + optional uint32 sortorder = 2; + optional uint32 file_type = 3; +} + +message PublishedFileDetails_ForSaleData { + optional bool is_for_sale = 1; + optional uint32 price_category = 2; + optional int32 estatus = 3 [(.description) = "enum"]; + optional uint32 price_category_floor = 4; + optional bool price_is_pay_what_you_want = 5; + optional uint32 discount_percentage = 6; +} + +message PublishedFileDetails_KVTag { + optional string key = 1; + optional string value = 2; +} + +message PublishedFileDetails_PlaytimeStats { + optional uint64 playtime_seconds = 1; + optional uint64 num_sessions = 2; +} + +message PublishedFileDetails_Preview { + optional uint64 previewid = 1; + optional uint32 sortorder = 2; + optional string url = 3; + optional uint32 size = 4; + optional string filename = 5; + optional string youtubevideoid = 6; + optional uint32 preview_type = 7; + optional string external_reference = 8; +} + +message PublishedFileDetails_Reaction { + optional uint32 reactionid = 1; + optional uint32 count = 2; +} + +message PublishedFileDetails_Tag { + optional string tag = 1; + optional bool adminonly = 2; + optional string display_name = 3; +} + +message PublishedFileDetails_VoteData { + optional float score = 1; + optional uint32 votes_up = 2; + optional uint32 votes_down = 3; +} + +message PublishedFileSubSection { + optional uint64 sectionid = 1; + optional string title = 2; + optional string description_text = 3; + optional uint32 sort_order = 4; +} + +service PublishedFile { + rpc AddAppRelationship (.CPublishedFile_AddAppRelationship_Request) returns (.CPublishedFile_AddAppRelationship_Response); + rpc AddChild (.CPublishedFile_AddChild_Request) returns (.CPublishedFile_AddChild_Response); + rpc AreFilesInSubscriptionList (.CPublishedFile_AreFilesInSubscriptionList_Request) returns (.CPublishedFile_AreFilesInSubscriptionList_Response); + rpc CanSubscribe (.CPublishedFile_CanSubscribe_Request) returns (.CPublishedFile_CanSubscribe_Response); + rpc Delete (.CPublishedFile_Delete_Request) returns (.CPublishedFile_Delete_Response); + rpc GetAppRelationships (.CPublishedFile_GetAppRelationships_Request) returns (.CPublishedFile_GetAppRelationships_Response); + rpc GetAppRelationshipsBatched (.CPublishedFile_GetAppRelationshipsBatched_Request) returns (.CPublishedFile_GetAppRelationshipsBatched_Response); + rpc GetChangeHistory (.CPublishedFile_GetChangeHistory_Request) returns (.CPublishedFile_GetChangeHistory_Response); + rpc GetChangeHistoryEntry (.CPublishedFile_GetChangeHistoryEntry_Request) returns (.CPublishedFile_GetChangeHistoryEntry_Response); + rpc GetContentDescriptors (.CPublishedFile_GetContentDescriptors_Request) returns (.CPublishedFile_GetContentDescriptors_Response); + rpc GetDetails (.CPublishedFile_GetDetails_Request) returns (.CPublishedFile_GetDetails_Response); + rpc GetItemChanges (.CPublishedFile_GetItemChanges_Request) returns (.CPublishedFile_GetItemChanges_Response); + rpc GetItemInfo (.CPublishedFile_GetItemInfo_Request) returns (.CPublishedFile_GetItemInfo_Response); + rpc GetSubSectionData (.CPublishedFile_GetSubSectionData_Request) returns (.CPublishedFile_GetSubSectionData_Response); + rpc GetUserFileCount (.CPublishedFile_GetUserFiles_Request) returns (.CPublishedFile_GetUserFiles_Response); + rpc GetUserFiles (.CPublishedFile_GetUserFiles_Request) returns (.CPublishedFile_GetUserFiles_Response); + rpc GetUserVoteSummary (.CPublishedFile_GetUserVoteSummary_Request) returns (.CPublishedFile_GetUserVoteSummary_Response); + rpc Publish (.CPublishedFile_Publish_Request) returns (.CPublishedFile_Publish_Response); + rpc QueryFiles (.CPublishedFile_QueryFiles_Request) returns (.CPublishedFile_QueryFiles_Response); + rpc RefreshVotingQueue (.CPublishedFile_RefreshVotingQueue_Request) returns (.CPublishedFile_RefreshVotingQueue_Response); + rpc RemoveAppRelationship (.CPublishedFile_RemoveAppRelationship_Request) returns (.CPublishedFile_RemoveAppRelationship_Response); + rpc RemoveChild (.CPublishedFile_RemoveChild_Request) returns (.CPublishedFile_RemoveChild_Response); + rpc SetCollectionChildren (.CPublishedFile_SetCollectionChildren_Request) returns (.CPublishedFile_SetCollectionChildren_Response); + rpc SetPlaytimeForControllerConfigs (.CPublishedFile_SetPlaytimeForControllerConfigs_Request) returns (.CPublishedFile_SetPlaytimeForControllerConfigs_Response); + rpc SetSubscriptionListFromCollection (.CPublishedFile_SetSubscriptionListFromCollection_Request) returns (.CPublishedFile_SetSubscriptionListFromCollection_Response); + rpc StartPlaytimeTracking (.CPublishedFile_StartPlaytimeTracking_Request) returns (.CPublishedFile_StartPlaytimeTracking_Response); + rpc StopPlaytimeTracking (.CPublishedFile_StopPlaytimeTracking_Request) returns (.CPublishedFile_StopPlaytimeTracking_Response); + rpc StopPlaytimeTrackingForAllAppItems (.CPublishedFile_StopPlaytimeTrackingForAllAppItems_Request) returns (.CPublishedFile_StopPlaytimeTrackingForAllAppItems_Response); + rpc Subscribe (.CPublishedFile_Subscribe_Request) returns (.CPublishedFile_Subscribe_Response); + rpc Unsubscribe (.CPublishedFile_Unsubscribe_Request) returns (.CPublishedFile_Unsubscribe_Response); + rpc Update (.CPublishedFile_Update_Request) returns (.CPublishedFile_Update_Response); + rpc UpdateContentDescriptors (.CPublishedFile_UpdateContentDescriptors_Request) returns (.CPublishedFile_UpdateContentDescriptors_Response); + rpc Vote (.CPublishedFile_Vote_Request) returns (.CPublishedFile_Vote_Response); +} + +service PublishedFileClient { + rpc NotifyFileDeleted (.CPublishedFile_FileDeleted_Client_Notification) returns (.NoResponse); + rpc NotifyFileSubscribed (.CPublishedFile_FileSubscribed_Notification) returns (.NoResponse); + rpc NotifyFileUnsubscribed (.CPublishedFile_FileUnsubscribed_Notification) returns (.NoResponse); +} + diff --git a/Protobufs/webui/service_publishing.proto b/Protobufs/webui/service_publishing.proto new file mode 100644 index 0000000..86c8dc1 --- /dev/null +++ b/Protobufs/webui/service_publishing.proto @@ -0,0 +1,201 @@ +import "common_base.proto"; + +message CPartnerAppOptInData { + optional uint32 appid = 1; + optional bool opt_in = 2; + optional string opt_in_name = 3; + optional string jsondata = 4; + optional int32 type = 5 [(.description) = "enum"]; + optional uint32 accountid_add = 6; + optional uint32 time_opted_in = 7; + optional uint32 time_updated = 8; + optional uint32 accountid_lastmod = 9; + optional bool invited = 10; + optional uint32 accountid_remove = 11; + optional uint32 time_opted_out = 12; + optional bool pruned = 13; + optional uint32 accountid_prune = 14; + optional uint32 time_pruned = 15; + optional bool additional_featuring = 16; + optional uint32 feature_day = 17; + optional uint32 accountid_invited = 18; + optional bool no_planned_discount = 19; + optional uint32 pending_review = 20; + optional int32 appeal_state = 21 [(.description) = "enum"]; + optional uint32 accountid_appeal = 22; + optional uint32 time_appeal_decision = 23; +} + +message CPartnerAppOptInEmailDef { + optional string opt_in_name = 1; + optional fixed64 targeting_flag = 2; + optional fixed64 settings_flag = 3; + optional string email_templates = 4; + optional uint32 start_rtime = 5; + optional uint32 end_rtime = 6; + optional .CPartnerAppOptInEmailStats stats = 7; + optional uint32 creator_accountid = 8; + optional uint32 create_time = 9; + optional uint32 last_update_time = 10; + optional fixed64 email_def_id = 11; + optional bool completed = 12; + optional bool aborted = 13; + optional bool deleted = 14; + optional bool reviewed = 15; +} + +message CPartnerAppOptInEmailStats { + optional uint32 accounts_examined = 1; + optional uint32 accounts_emailed = 2; + optional uint32 accounts_not_emailed_opted_out = 3; + optional uint32 accounts_email_failed = 4; + optional bool completed = 5; + optional uint32 rt_last_updated = 6; +} + +message CPartnerOptInEmailTracking { + optional uint32 accountid = 1; + optional uint32 appid = 2; + optional uint32 partnerid = 3; + optional uint32 rtime_notified = 4; + optional bool ignored_unverified_email = 5; + optional bool ignored_email_optout = 6; + optional uint32 status = 7; + optional uint32 send_rtime = 8; +} + +message CPublishing_CreatePartnerAppOptInEmail_Request { + optional string opt_in_name = 1; + optional fixed64 targeting_flag = 2; + optional fixed64 settings_flag = 3; + optional string email_templates = 4; + optional uint32 start_rtime = 5 [default = 0]; + optional uint32 end_rtime = 6 [default = 0]; +} + +message CPublishing_CreatePartnerAppOptInEmail_Response { + optional fixed64 email_def_id = 1; +} + +message CPublishing_GetEstimatePartnerAppOptInEmail_Request { + optional fixed64 email_def_id = 1; +} + +message CPublishing_GetEstimatePartnerAppOptInEmail_Response { + optional .CPartnerAppOptInEmailStats stats = 1; +} + +message CPublishing_GetOptInAppealsSummaryStats_Request { + repeated string opt_in_names = 1; +} + +message CPublishing_GetOptInAppealsSummaryStats_Response { + repeated .CPublishing_GetOptInAppealsSummaryStats_Response_CSummary summary = 1; +} + +message CPublishing_GetOptInAppealsSummaryStats_Response_CSummary { + optional string opt_in_name = 1; + optional uint32 open_appeals = 2; + optional uint32 reject_appeals = 3; + optional uint32 accepted_appeals = 4; + optional uint32 appeal_account_id = 5; +} + +message CPublishing_GetOptInEmailTracking_Request { + optional fixed64 email_def_id = 1; +} + +message CPublishing_GetOptInEmailTracking_Response { + optional fixed64 email_def_id = 1; + repeated .CPartnerOptInEmailTracking results = 2; +} + +message CPublishing_GetPartnerAppOptInEmailDefAndStats_Request { + optional string opt_in_name = 1; +} + +message CPublishing_GetPartnerAppOptInEmailDefAndStats_Response { + repeated .CPartnerAppOptInEmailDef defs = 1; +} + +message CPublishing_GetPartnerOptInInvites_Response { + repeated .CPartnerAppOptInData data = 1; +} + +message CPublishing_GetPartnerPaidGivenPackageList_Request { + repeated uint32 packageids = 1; +} + +message CPublishing_GetPartnerPaidGivenPackageList_Response { + repeated .CPublishing_GetPartnerPaidGivenPackageList_Response_CPackageAndPartnerPair paid = 1; +} + +message CPublishing_GetPartnerPaidGivenPackageList_Response_CPackageAndPartnerPair { + optional uint32 partnerid = 1; + optional uint32 packageid = 2; +} + +message CPublishing_GetSinglePartnerAppOptIns_Request { + optional uint32 appid = 1; +} + +message CPublishing_GetSinglePartnerAppOptIns_Response { + repeated .CPartnerAppOptInData data = 1; +} + +message CPublishing_SendPartnerAppOptInEmailAndWait_Request { + optional fixed64 email_def_id = 1; + optional bool force_resend = 2; +} + +message CPublishing_SendPartnerAppOptInEmailAndWait_Response { + optional .CPartnerAppOptInEmailStats results = 1; +} + +message CPublishing_SetFeaturingOnPartnerAppOptIn_Request { + repeated uint32 appids = 1; + optional bool additional_featuring = 2 [default = true]; + optional string opt_in_name = 3; +} + +message CPublishing_SetFeaturingOnPartnerAppOptIn_Response { + repeated uint32 appids = 1; +} + +message CPublishing_TestFirePartnerAppOptInEmail_Request { + optional fixed64 email_def_id = 1; + optional uint32 appid = 2; + optional uint32 partnerid = 3; +} + +message CPublishing_TestFirePartnerAppOptInEmail_Response { +} + +message CPublishing_UpdatePartnerAppOptInEmail_Request { + optional fixed64 email_def_id = 1; + optional fixed64 targeting_flag = 2; + optional fixed64 settings_flag = 3; + optional string email_templates = 4; + optional uint32 start_rtime = 5 [default = 0]; + optional uint32 end_rtime = 6 [default = 0]; + optional bool reviewed = 7 [default = false]; +} + +message CPublishing_UpdatePartnerAppOptInEmail_Response { +} + +service Publishing { + rpc CreatePartnerAppOptInEmails (.CPublishing_CreatePartnerAppOptInEmail_Request) returns (.CPublishing_CreatePartnerAppOptInEmail_Response); + rpc GetEstimatePartnerAppOptInEmail (.CPublishing_GetEstimatePartnerAppOptInEmail_Request) returns (.CPublishing_GetEstimatePartnerAppOptInEmail_Response); + rpc GetOptInAppealsSummaryStats (.CPublishing_GetOptInAppealsSummaryStats_Request) returns (.CPublishing_GetOptInAppealsSummaryStats_Response); + rpc GetOptInEmailTracking (.CPublishing_GetOptInEmailTracking_Request) returns (.CPublishing_GetOptInEmailTracking_Response); + rpc GetPartnerAppOptInEmailDefAndStats (.CPublishing_GetPartnerAppOptInEmailDefAndStats_Request) returns (.CPublishing_GetPartnerAppOptInEmailDefAndStats_Response); + rpc GetPartnerOptInInvites (.NotImplemented) returns (.CPublishing_GetPartnerOptInInvites_Response); + rpc GetPartnerPaidGivenPackageList (.CPublishing_GetPartnerPaidGivenPackageList_Request) returns (.CPublishing_GetPartnerPaidGivenPackageList_Response); + rpc GetSinglePartnerAppOptIn (.CPublishing_GetSinglePartnerAppOptIns_Request) returns (.CPublishing_GetSinglePartnerAppOptIns_Response); + rpc SendPartnerOptInEmailAndWait (.CPublishing_SendPartnerAppOptInEmailAndWait_Request) returns (.CPublishing_SendPartnerAppOptInEmailAndWait_Response); + rpc SetFeaturingOnPartnerAppOptIn (.CPublishing_SetFeaturingOnPartnerAppOptIn_Request) returns (.CPublishing_SetFeaturingOnPartnerAppOptIn_Response); + rpc TestFirePartnerAppOptInEmail (.CPublishing_TestFirePartnerAppOptInEmail_Request) returns (.CPublishing_TestFirePartnerAppOptInEmail_Response); + rpc UpdatePartnerAppOptInEmails (.CPublishing_UpdatePartnerAppOptInEmail_Request) returns (.CPublishing_UpdatePartnerAppOptInEmail_Response); +} + diff --git a/Protobufs/webui/service_quest.proto b/Protobufs/webui/service_quest.proto new file mode 100644 index 0000000..393250f --- /dev/null +++ b/Protobufs/webui/service_quest.proto @@ -0,0 +1,127 @@ +import "common_base.proto"; + +message CQuest_ActivateProfileModifierItem_Request { + optional uint32 appid = 1; + optional uint64 communityitemid = 2; + optional bool activate = 3; +} + +message CQuest_ActivateProfileModifierItem_Response { +} + +message CQuest_CommunityItem { + optional uint64 communityitemid = 1; + optional uint32 item_type = 2; + optional uint32 appid = 3; + optional uint32 owner = 4; + repeated .CQuest_CommunityItem_Attribute attributes = 5; + optional bool used = 6; + optional uint32 owner_origin = 7; + optional int64 amount = 8; +} + +message CQuest_CommunityItem_Attribute { + optional uint32 attributeid = 1; + optional uint64 value = 2; +} + +message CQuest_GetCommunityInventory_Request { + repeated uint32 filter_appids = 1; +} + +message CQuest_GetCommunityInventory_Response { + repeated .CQuest_CommunityItem items = 1; +} + +message CQuest_GetCommunityItemDefinitions_Request { + optional uint32 appid = 1; + optional uint32 item_type = 3; + optional string language = 4; + optional uint64 broadcast_channel_id = 5; + optional bool keyvalues_as_json = 6; +} + +message CQuest_GetCommunityItemDefinitions_Response { + repeated .CQuest_GetCommunityItemDefinitions_Response_ItemDefinition item_definitions = 1; +} + +message CQuest_GetCommunityItemDefinitions_Response_ItemDefinition { + optional uint32 item_type = 1; + optional uint32 appid = 2; + optional string item_name = 3; + optional string item_title = 4; + optional string item_description = 5; + optional string item_image_small = 6; + optional string item_image_large = 7; + optional string item_key_values = 8; + optional uint32 item_series = 9; + optional uint32 item_class = 10; + optional uint32 editor_accountid = 11; + optional bool active = 12; + optional string item_image_composed = 13; + optional string item_image_composed_foil = 14; + optional bool deleted = 15; + optional uint32 item_last_changed = 16; + optional uint64 broadcast_channel_id = 17; + optional string item_movie_webm = 18; + optional string item_movie_mp4 = 19; + optional string item_movie_webm_small = 20; + optional string item_movie_mp4_small = 21; + optional string item_internal_name = 22; +} + +message CQuest_GetNumTradingCardsEarned_Request { + optional uint32 timestamp_start = 1 [default = 0]; + optional uint32 timestamp_end = 2 [default = 4294967295]; +} + +message CQuest_GetNumTradingCardsEarned_Response { + optional uint32 num_trading_cards = 1; +} + +message CQuest_SetVirtualItemRewardDefinition_Request { + optional int32 eventid = 1 [(.description) = "enum"]; + repeated .CVirtualItemRewardDefinition itemsdefs = 2; + optional int32 action = 3 [(.description) = "enum"]; +} + +message CQuest_SetVirtualItemRewardDefinition_Response { +} + +message CQuest_VirtualItemRewardDefinition_Request { + optional int32 eventid = 1 [(.description) = "enum"]; + optional bool include_inactive = 2; +} + +message CQuest_VirtualItemRewardDefinition_Response { + repeated .CVirtualItemRewardDefinition rewards = 1; +} + +message CVirtualItemRewardDefinition { + optional int32 eventid = 1 [(.description) = "enum"]; + optional uint32 item_bucket = 2; + optional uint32 appid = 3; + optional bool active = 4; + optional uint32 rarity = 5; + optional uint32 package_to_grant = 6; + optional fixed64 game_item_id = 7; + optional int32 community_item_class = 8; + optional uint32 community_item_type = 9; + optional uint32 loyalty_point_type = 10; + optional int64 amount = 11; + optional uint32 rtime_time_active = 12; + optional uint32 loyalty_reward_defid = 13; + optional uint32 user_badge_to_grant = 14; + optional uint32 user_badge_level = 15; + optional uint32 virtual_item_def_id = 16; +} + +service Quest { + rpc ActivateProfileModifierItem (.CQuest_ActivateProfileModifierItem_Request) returns (.CQuest_ActivateProfileModifierItem_Response); + rpc GetCommunityInventory (.CQuest_GetCommunityInventory_Request) returns (.CQuest_GetCommunityInventory_Response); + rpc GetCommunityItemDefinitions (.CQuest_GetCommunityItemDefinitions_Request) returns (.CQuest_GetCommunityItemDefinitions_Response); + rpc GetNumTradingCardsEarned (.CQuest_GetNumTradingCardsEarned_Request) returns (.CQuest_GetNumTradingCardsEarned_Response); + rpc GetVirtualItemRewardDefinition (.CQuest_VirtualItemRewardDefinition_Request) returns (.CQuest_VirtualItemRewardDefinition_Response); + rpc SetVirtualItemRewardDefinition (.CQuest_SetVirtualItemRewardDefinition_Request) returns (.CQuest_SetVirtualItemRewardDefinition_Response); +} + diff --git a/Protobufs/webui/service_remote.proto b/Protobufs/webui/service_remote.proto new file mode 100644 index 0000000..50fc5ad --- /dev/null +++ b/Protobufs/webui/service_remote.proto @@ -0,0 +1,94 @@ +import "common.proto"; + +message CRemoteClient_AllocateRelayServer_Request { + optional uint32 cellid = 1; + optional string credentials = 2; +} + +message CRemoteClient_AllocateRelayServer_Response { + optional string relay_server = 1; +} + +message CRemoteClient_AllocateSDR_Request { + optional uint32 appid = 1; +} + +message CRemoteClient_AllocateSDR_Response { +} + +message CRemoteClient_ClientDetails { + optional fixed64 remote_client_id = 1; + optional .CRemoteClient_DeviceDetails device_details = 2; + optional uint64 last_seen = 4; + optional string city = 5; + optional string state = 6; + optional string country = 7; + optional bool is_online = 8; +} + +message CRemoteClient_CreateRemotePlayTogetherInvitation_Request { + optional uint32 appid = 1; + optional string launch_parameters = 2; +} + +message CRemoteClient_CreateRemotePlayTogetherInvitation_Response { + optional string invitation_code = 1; +} + +message CRemoteClient_DeleteRemotePlayTogetherInvitation_Request { + optional string invitation_code = 1; +} + +message CRemoteClient_DeleteRemotePlayTogetherInvitation_Response { +} + +message CRemoteClient_GetPairingInfo_Request { + optional uint32 pin = 1; +} + +message CRemoteClient_GetPairingInfo_Response { + optional fixed64 session_id = 1; + optional fixed64 device_id = 2; + optional bytes request = 3; +} + +message CRemoteClient_GetRecentClients_Request { +} + +message CRemoteClient_GetRecentClients_Response { + repeated .CRemoteClient_ClientDetails clients = 1; +} + +message CRemoteClient_MarkTaskComplete_Request { + optional fixed64 remote_client_id = 1; + optional fixed64 task_id = 2; + optional string content_id = 3; +} + +message CRemoteClient_MarkTaskComplete_Response { +} + +message CRemotePlay_SessionStarted_Request { + optional uint32 host_account_id = 1; + optional uint32 client_account_id = 2; + optional uint32 appid = 3; + optional int32 device_form_factor = 4; + optional bool remote_play_together = 5; + optional bool guest_session = 6; +} + +message CRemotePlay_SessionStarted_Response { + optional fixed64 record_id = 1; +} + +service RemoteClient { + rpc AllocateRelayServer (.CRemoteClient_AllocateRelayServer_Request) returns (.CRemoteClient_AllocateRelayServer_Response); + rpc AllocateSDR (.CRemoteClient_AllocateSDR_Request) returns (.CRemoteClient_AllocateSDR_Response); + rpc CreateRemotePlayTogetherInvitation (.CRemoteClient_CreateRemotePlayTogetherInvitation_Request) returns (.CRemoteClient_CreateRemotePlayTogetherInvitation_Response); + rpc DeleteRemotePlayTogetherInvitation (.CRemoteClient_DeleteRemotePlayTogetherInvitation_Request) returns (.CRemoteClient_DeleteRemotePlayTogetherInvitation_Response); + rpc GetPairingInfo (.CRemoteClient_GetPairingInfo_Request) returns (.CRemoteClient_GetPairingInfo_Response); + rpc GetRecentClients (.CRemoteClient_GetRecentClients_Request) returns (.CRemoteClient_GetRecentClients_Response); + rpc MarkTaskComplete (.CRemoteClient_MarkTaskComplete_Request) returns (.CRemoteClient_MarkTaskComplete_Response); + rpc SendRemotePlaySessionStarted (.CRemotePlay_SessionStarted_Request) returns (.CRemotePlay_SessionStarted_Response); +} + diff --git a/Protobufs/webui/service_remoteclientsteam.proto b/Protobufs/webui/service_remoteclientsteam.proto new file mode 100644 index 0000000..6a13262 --- /dev/null +++ b/Protobufs/webui/service_remoteclientsteam.proto @@ -0,0 +1,91 @@ +import "common_base.proto"; + +message CRemoteClient_RegisterStatusUpdate_Notification { + optional fixed64 session_id = 1; + optional fixed64 steamid = 2; + optional fixed64 device_id = 3; +} + +message CRemoteClient_RemotePacket_Notification { + optional fixed64 session_id = 1; + optional fixed64 steamid = 2; + optional bytes payload = 4; +} + +message CRemoteClient_SteamBroadcast_Notification { + optional fixed64 steamid = 1; + optional fixed64 clientid = 2; + optional bytes payload = 3; +} + +message CRemoteClient_SteamToSteam_Notification { + optional fixed64 steamid = 1; + optional fixed64 src_clientid = 2; + optional fixed64 dst_clientid = 3; + optional uint32 secretid = 4; + optional bytes encrypted_payload = 5; +} + +message CRemoteClient_Task { + optional int32 type = 1 [(.description) = "enum"]; + optional fixed64 task_id = 2; + optional string url = 3; + optional int64 file_id = 4; +} + +message CRemoteClient_TaskList_Notification { + optional fixed64 remote_client_id = 1; + repeated .CRemoteClient_Task tasklist = 2; +} + +message CRemoteClient_UnregisterStatusUpdate_Notification { + optional fixed64 session_id = 1; + optional fixed64 steamid = 2; +} + +message CRemotePlayTogether_Notification { + optional fixed64 steamid = 1; + optional .CRemotePlayTogether_Notification_GroupUpdated group_updated = 2; +} + +message CRemotePlayTogether_Notification_ControllerSlot { + optional uint32 slotid = 1; + optional .CRemotePlayTogether_Notification_Player player = 2; + optional int32 controller_type = 3; +} + +message CRemotePlayTogether_Notification_ControllerSlot_obsolete { + optional uint32 slotid = 1; + optional fixed64 steamid = 2; +} + +message CRemotePlayTogether_Notification_GroupUpdated { + optional fixed64 host_steamid = 1; + optional fixed64 host_clientid = 2; + repeated fixed64 players_obsolete = 3; + optional fixed64 host_gameid = 4; + repeated .CRemotePlayTogether_Notification_ControllerSlot_obsolete controller_slots_obsolete = 5; + optional bool has_new_players = 6; + repeated .CRemotePlayTogether_Notification_Player player_slots = 7; + repeated .CRemotePlayTogether_Notification_ControllerSlot controller_slots = 8; +} + +message CRemotePlayTogether_Notification_Player { + optional fixed64 steamid = 1; + optional uint32 guestid = 2; + optional bytes avatar_hash = 3; + optional bool keyboard_enabled = 4; + optional bool mouse_enabled = 5; + optional bool controller_enabled = 6; +} + +service RemoteClientSteamClient { + rpc NotifyRegisterStatusUpdate (.CRemoteClient_RegisterStatusUpdate_Notification) returns (.NoResponse); + rpc NotifyRemotePacket (.CRemoteClient_RemotePacket_Notification) returns (.NoResponse); + rpc NotifyRemotePlayTogetherPacket (.CRemotePlayTogether_Notification) returns (.NoResponse); + rpc NotifySteamBroadcastPacket (.CRemoteClient_SteamBroadcast_Notification) returns (.NoResponse); + rpc NotifySteamToSteamPacket (.CRemoteClient_SteamToSteam_Notification) returns (.NoResponse); + rpc NotifyTaskList (.CRemoteClient_TaskList_Notification) returns (.NoResponse); + rpc NotifyUnregisterStatusUpdate (.CRemoteClient_UnregisterStatusUpdate_Notification) returns (.NoResponse); +} + diff --git a/Protobufs/webui/service_salefeature.proto b/Protobufs/webui/service_salefeature.proto new file mode 100644 index 0000000..81d654d --- /dev/null +++ b/Protobufs/webui/service_salefeature.proto @@ -0,0 +1,373 @@ +import "common_base.proto"; + +message CAchievementDetails { + optional uint32 statid = 1; + optional uint32 fieldid = 2; + optional string achievement_name_internal = 3; + optional uint32 rtime_unlocked = 4; +} + +message CFriendSharedYearInView { + optional fixed64 steamid = 1; + optional int32 privacy_state = 3 [(.description) = "enum"]; + optional uint32 rt_privacy_updated = 4; +} + +message CGameAchievements { + optional uint32 appid = 1; + repeated .CAchievementDetails achievements = 2; + optional uint32 all_time_unlocked_achievements = 3; + optional bool unlocked_more_in_future = 4; +} + +message CGamePlaytimeStats { + optional uint32 appid = 1; + optional .CPlaytimeStats stats = 2; + optional .CPlaytimeStreak playtime_streak = 3; + optional .CPlaytimeRanks playtime_ranks = 4; + optional uint32 rtime_first_played = 5; + optional .CPlaytimeStats relative_game_stats = 6; +} + +message CGameRank { + optional uint32 appid = 1; + optional uint32 rank = 2; +} + +message CGameRankings { + optional .CRankingCategory overall_ranking = 1; + optional .CRankingCategory vr_ranking = 2; + optional .CRankingCategory deck_ranking = 3; + optional .CRankingCategory controller_ranking = 4; + optional .CRankingCategory linux_ranking = 5; + optional .CRankingCategory mac_ranking = 6; + optional .CRankingCategory windows_ranking = 7; +} + +message CGameSummary { + optional uint32 appid = 1; + optional bool new_this_year = 2; + optional uint32 rtime_first_played_lifetime = 3; + optional bool demo = 4; + optional bool playtest = 5; + optional bool played_during_early_access = 6; + optional bool played_vr = 7; + optional bool played_deck = 8; + optional bool played_controller = 9; + optional bool played_linux = 10; + optional bool played_mac = 11; + optional bool played_windows = 12; + optional uint32 total_playtime_percentagex100 = 13; + optional uint32 total_sessions = 14; + optional uint32 rtime_release_date = 15; +} + +message CGlobalPercentiles { + optional uint32 median_achievements = 1; + optional uint32 median_games = 2; + optional uint32 median_streak = 3; +} + +message CGlobalPlaytimeDistribution { + optional uint32 new_releases = 1; + optional uint32 recent_releases = 2; + optional uint32 classic_releases = 3; + optional uint32 recent_cutoff_year = 4; +} + +message CMonthlyPlaytimeStats { + optional uint32 rtime_month = 1; + optional .CPlaytimeStats stats = 2; + optional .CPlaytimeStreak playtime_streak = 3; + repeated .CGamePlaytimeStats appid = 4; + optional .CPlaytimeStats relative_monthly_stats = 5; + repeated .CSimpleGameSummary game_summary = 6; +} + +message CMonthlyProgress { + optional uint32 year = 1; + optional uint32 month = 2; + optional uint32 rt_processing_start = 3; + optional uint32 rt_queue_complete = 4; + optional uint32 rt_queue_emptied = 5; + optional uint32 rt_platform_summary = 6; + optional uint32 accounts_queued = 7; + optional uint32 largest_account_id = 8; +} + +message CPlaytimeByNumbers { + optional uint32 screenshots_shared = 1; + optional uint32 gifts_sent = 2; + optional uint32 loyalty_reactions = 3; + optional uint32 written_reviews = 4; + optional uint32 guides_submitted = 5; + optional uint32 workshop_contributions = 6; + optional uint32 badges_earned = 7; + optional uint32 friends_added = 8; + optional uint32 forum_posts = 9; + optional uint32 workshop_subscriptions = 10; + optional uint32 guide_subscribers = 11; + optional uint32 workshop_subscribers = 12; + optional uint32 games_played_pct = 13; + optional uint32 achievements_pct = 14; + optional uint32 game_streak_pct = 15; + optional uint32 games_played_avg = 16; + optional uint32 achievements_avg = 17; + optional uint32 game_streak_avg = 18; +} + +message CPlaytimeRanks { + optional uint32 overall_rank = 1; + optional uint32 vr_rank = 2; + optional uint32 deck_rank = 3; + optional uint32 controller_rank = 4; + optional uint32 linux_rank = 5; + optional uint32 mac_rank = 6; + optional uint32 windows_rank = 7; +} + +message CPlaytimeStats { + optional uint32 total_playtime_seconds = 1; + optional uint32 total_sessions = 20; + optional uint32 vr_sessions = 21; + optional uint32 deck_sessions = 22; + optional uint32 controller_sessions = 23; + optional uint32 linux_sessions = 24; + optional uint32 macos_sessions = 25; + optional uint32 windows_sessions = 26; + optional uint32 total_playtime_percentagex100 = 27; + optional uint32 vr_playtime_percentagex100 = 28; + optional uint32 deck_playtime_percentagex100 = 29; + optional uint32 controller_playtime_percentagex100 = 30; + optional uint32 linux_playtime_percentagex100 = 31; + optional uint32 macos_playtime_percentagex100 = 32; + optional uint32 windows_playtime_percentagex100 = 33; +} + +message CPlaytimeStreak { + optional uint32 longest_consecutive_days = 1; + optional uint32 rtime_start = 2; + repeated .CPlaytimeStreakGame streak_games = 3; +} + +message CPlaytimeStreakGame { + optional uint32 appid = 1; +} + +message CRankingCategory { + optional string category = 1; + repeated .CGameRank rankings = 2; +} + +message CSaleFeature_GetFriendsSharedYearInReview_Request { + optional fixed64 steamid = 1; + optional uint32 year = 2; + optional bool return_private = 3; +} + +message CSaleFeature_GetFriendsSharedYearInReview_Response { + repeated .CFriendSharedYearInView friend_shares = 1; + optional uint32 year = 2; +} + +message CSaleFeature_GetUpdateProcessingProgress_Request { + optional uint32 year = 1; +} + +message CSaleFeature_GetUpdateProcessingProgress_Response { + repeated .CMonthlyProgress results = 1; +} + +message CSaleFeature_GetUserActionData_Request { + optional fixed64 steamid = 1; + optional fixed64 gid = 2; + optional int32 type = 3 [(.description) = "enum"]; +} + +message CSaleFeature_GetUserActionData_Response { + optional string jsondata = 1; +} + +message CSaleFeature_GetUserSharingPermissions_Request { + optional fixed64 steamid = 1; + optional uint32 year = 2; +} + +message CSaleFeature_GetUserSharingPermissions_Response { + optional int32 privacy_state = 1 [(.description) = "enum"]; + optional bool generated_value = 2; + optional fixed64 steamid = 3; + optional uint32 rt_privacy_updated = 4; +} + +message CSaleFeature_GetUserYearAchievements_Request { + optional fixed64 steamid = 1; + optional uint32 year = 2; + repeated uint32 appids = 3; + optional bool total_only = 4; +} + +message CSaleFeature_GetUserYearAchievements_Response { + repeated .CGameAchievements game_achievements = 1; + optional uint32 total_achievements = 2; + optional uint32 total_rare_achievements = 3; + optional uint32 total_games_with_achievements = 4; +} + +message CSaleFeature_GetUserYearInReview_Request { + optional fixed64 steamid = 1; + optional uint32 year = 2; + optional bool force_regenerate = 3; + optional int32 access_source = 4; +} + +message CSaleFeature_GetUserYearInReview_Response { + optional .CUserYearInReviewStats stats = 1; + optional .CYearInReviewPerformanceStats performance_stats = 2; + optional .CGlobalPercentiles percentiles = 3; + optional .CGlobalPlaytimeDistribution distribution = 4; +} + +message CSaleFeature_GetUserYearInReviewShareImage_Request { + optional fixed64 steamid = 1; + optional uint32 year = 2; + optional string language = 3; +} + +message CSaleFeature_GetUserYearInReviewShareImage_Response { + repeated .CSaleFeature_GetUserYearInReviewShareImage_Response_Image images = 1; +} + +message CSaleFeature_GetUserYearInReviewShareImage_Response_Image { + optional string name = 1; + optional string url_path = 2; +} + +message CSaleFeature_GetUserYearScreenshots_Request { + optional fixed64 steamid = 1; + optional uint32 year = 2; + repeated uint32 appids = 3; +} + +message CSaleFeature_GetUserYearScreenshots_Response { + repeated .CSaleFeature_GetUserYearScreenshots_Response_ScreenshotsByApp apps = 1; +} + +message CSaleFeature_GetUserYearScreenshots_Response_Screenshot { + optional string image_url = 1; + optional string preview_url = 2; + optional uint32 image_width = 3; + optional uint32 image_height = 4; + optional bool maybe_inappropriate_sex = 5; + optional bool maybe_inappropriate_violence = 6; + optional uint32 visibility = 7; + optional bool spoiler_tag = 8; +} + +message CSaleFeature_GetUserYearScreenshots_Response_ScreenshotsByApp { + optional uint32 appid = 1; + repeated .CSaleFeature_GetUserYearScreenshots_Response_Screenshot screenshots = 2; +} + +message CSaleFeature_GetYIRCurrentMonthlySummary_Request { + optional fixed64 steamid = 1; +} + +message CSaleFeature_GetYIRCurrentMonthlySummary_Response { + optional uint32 year = 1; + optional uint32 month = 2; + optional uint32 games_played = 4; + optional uint32 top_played_appid = 5; + optional uint32 longest_streak_days = 6; + optional uint32 rt_streak_start = 7; + optional uint32 achievements = 8; + optional uint32 screenshots = 9; +} + +message CSaleFeature_SetUserActionData_Request { + optional fixed64 steamid = 1; + optional fixed64 gid = 2; + optional int32 type = 3 [(.description) = "enum"]; + optional string jsondata = 4; +} + +message CSaleFeature_SetUserActionData_Response { +} + +message CSaleFeature_SetUserSharingPermissions_Request { + optional fixed64 steamid = 1; + optional uint32 year = 2; + optional int32 privacy_state = 3 [(.description) = "enum"]; +} + +message CSaleFeature_SetUserSharingPermissions_Response { + optional int32 privacy_state = 1 [(.description) = "enum"]; +} + +message CSimpleGameSummary { + optional uint32 appid = 1; + optional uint32 total_playtime_percentagex100 = 2; + optional uint32 relative_playtime_percentagex100 = 3; +} + +message CUserPlaytimeStats { + optional .CPlaytimeStats total_stats = 1; + repeated .CGamePlaytimeStats games = 2; + optional .CPlaytimeStreak playtime_streak = 3; + repeated .CMonthlyPlaytimeStats months = 5; + repeated .CGameSummary game_summary = 6; + optional uint32 demos_played = 7; + optional .CGameRankings game_rankings = 8; + optional uint32 playtests_played = 9; + optional .CUserPlaytimeSummaryStats summary_stats = 10; + optional bool substantial = 11 [default = true]; + optional .CUserTagStats tag_stats = 12; + optional .CPlaytimeByNumbers by_numbers = 13; +} + +message CUserPlaytimeSummaryStats { + optional uint32 total_achievements = 2; + optional uint32 total_games_with_achievements = 3; + optional uint32 total_rare_achievements = 4; +} + +message CUserTagStats { + repeated .CUserTagStats_Tag stats = 1; +} + +message CUserTagStats_Tag { + optional uint32 tag_id = 1; + optional float tag_weight = 2; + optional float tag_weight_pre_selection = 3; +} + +message CUserYearInReviewStats { + optional uint32 account_id = 1; + optional uint32 year = 2; + optional .CUserPlaytimeStats playtime_stats = 3; + optional int32 privacy_state = 4 [(.description) = "enum"]; +} + +message CYearInReviewPerformanceStats { + optional bool from_dbo = 1; + optional uint64 overall_time_ms = 2; + optional uint64 dbo_load_ms = 3; + optional uint64 query_execution_ms = 4; + optional uint64 message_population_ms = 5; + optional uint64 dbo_lock_load_ms = 6; +} + +service SaleFeature { + rpc GetFriendsSharedYearInReview (.CSaleFeature_GetFriendsSharedYearInReview_Request) returns (.CSaleFeature_GetFriendsSharedYearInReview_Response); + rpc GetUpdateProcessingProgress (.CSaleFeature_GetUpdateProcessingProgress_Request) returns (.CSaleFeature_GetUpdateProcessingProgress_Response); + rpc GetUserActionData (.CSaleFeature_GetUserActionData_Request) returns (.CSaleFeature_GetUserActionData_Response); + rpc GetUserSharingPermissions (.CSaleFeature_GetUserSharingPermissions_Request) returns (.CSaleFeature_GetUserSharingPermissions_Response); + rpc GetUserYearAchievements (.CSaleFeature_GetUserYearAchievements_Request) returns (.CSaleFeature_GetUserYearAchievements_Response); + rpc GetUserYearInReview (.CSaleFeature_GetUserYearInReview_Request) returns (.CSaleFeature_GetUserYearInReview_Response); + rpc GetUserYearInReviewShareImage (.CSaleFeature_GetUserYearInReviewShareImage_Request) returns (.CSaleFeature_GetUserYearInReviewShareImage_Response); + rpc GetUserYearScreenshots (.CSaleFeature_GetUserYearScreenshots_Request) returns (.CSaleFeature_GetUserYearScreenshots_Response); + rpc GetYIRCurrentMonthlySummary (.CSaleFeature_GetYIRCurrentMonthlySummary_Request) returns (.CSaleFeature_GetYIRCurrentMonthlySummary_Response); + rpc SetUserActionData (.CSaleFeature_SetUserActionData_Request) returns (.CSaleFeature_SetUserActionData_Response); + rpc SetUserSharingPermissions (.CSaleFeature_SetUserSharingPermissions_Request) returns (.CSaleFeature_SetUserSharingPermissions_Response); +} + diff --git a/Protobufs/webui/service_saleitemrewards.proto b/Protobufs/webui/service_saleitemrewards.proto new file mode 100644 index 0000000..1fee86d --- /dev/null +++ b/Protobufs/webui/service_saleitemrewards.proto @@ -0,0 +1,54 @@ +import "common_base.proto"; +import "common.proto"; + +message CSaleItemRewards_CanClaimItem_Request { + optional string language = 1; +} + +message CSaleItemRewards_CanClaimItem_Response { + optional bool can_claim = 1; + optional uint32 next_claim_time = 2; + optional .LoyaltyRewardDefinition reward_item = 3; +} + +message CSaleItemRewards_ClaimItem_Request { + optional string language = 1; +} + +message CSaleItemRewards_ClaimItem_Response { + optional uint64 communityitemid = 1; + optional uint32 next_claim_time = 2; + optional .LoyaltyRewardDefinition reward_item = 3; +} + +message CSaleItemRewards_GetRewardDefinitions_Request { + optional uint32 virtual_item_reward_event_id = 1; +} + +message CSaleItemRewards_GetRewardDefinitions_Response { + repeated .CSteamItemRewardDefinition definitions = 1; +} + +message CSaleItemRewards_SetRewardDefinitions_Request { + repeated .CSteamItemRewardDefinition definitions = 1; + optional int32 action = 2 [(.description) = "enum"]; +} + +message CSaleItemRewards_SetRewardDefinitions_Response { +} + +message CSteamItemRewardDefinition { + optional uint32 sale_reward_def_id = 1; + optional uint32 appid = 2; + optional uint32 virtual_item_reward_event_id = 3; + optional uint32 rtime_start_time = 4; + optional uint32 rtime_end_time = 5; +} + +service SaleItemRewards { + rpc CanClaimItem (.CSaleItemRewards_CanClaimItem_Request) returns (.CSaleItemRewards_CanClaimItem_Response); + rpc ClaimItem (.CSaleItemRewards_ClaimItem_Request) returns (.CSaleItemRewards_ClaimItem_Response); + rpc GetRewardDefinitions (.CSaleItemRewards_GetRewardDefinitions_Request) returns (.CSaleItemRewards_GetRewardDefinitions_Response); + rpc SetRewardDefinitions (.CSaleItemRewards_SetRewardDefinitions_Request) returns (.CSaleItemRewards_SetRewardDefinitions_Response); +} + diff --git a/Protobufs/webui/service_sharedjscontext.proto b/Protobufs/webui/service_sharedjscontext.proto new file mode 100644 index 0000000..8e4c0ff --- /dev/null +++ b/Protobufs/webui/service_sharedjscontext.proto @@ -0,0 +1,25 @@ + +message CMsgSteamUIBrowserWindow { + optional int32 id = 1; + optional int32 pid = 2; + optional int32 browser_id = 3; + optional int32 window_type = 4; + optional int32 x = 5; + optional int32 y = 6; + optional uint64 appid = 7; + optional uint64 parent_window_handle = 8; + optional string app_name = 9; + optional bool gamepadui_via_gamescope = 10; +} + +message CSharedJSContext_GetDesiredSteamUIWindows_Request { +} + +message CSharedJSContext_GetDesiredSteamUIWindows_Response { + repeated .CMsgSteamUIBrowserWindow windows = 1; +} + +service SharedJSContext { + rpc GetDesiredSteamUIWindows (.CSharedJSContext_GetDesiredSteamUIWindows_Request) returns (.CSharedJSContext_GetDesiredSteamUIWindows_Response); +} + diff --git a/Protobufs/webui/service_shoppingcart.proto b/Protobufs/webui/service_shoppingcart.proto new file mode 100644 index 0000000..5493a0f --- /dev/null +++ b/Protobufs/webui/service_shoppingcart.proto @@ -0,0 +1,152 @@ + +message CShoppingCart_AddBundle_Request { + optional uint64 gidshoppingcart = 1; + optional uint32 bundleid = 2; + optional uint64 browserid = 3; + optional string store_country = 5; + optional uint32 quantity = 6; + optional bool beta_mode = 7 [default = false]; +} + +message CShoppingCart_AddBundle_Response { + optional .CShoppingCart_Contents contents = 1; + repeated uint32 result_details = 2; +} + +message CShoppingCart_AddPackages_Request { + optional uint64 gidshoppingcart = 1; + optional uint64 browserid = 2; + repeated .CShoppingCart_PackageItem cart_items = 4; + optional string store_country_code = 5; + optional bool beta_mode = 6 [default = false]; +} + +message CShoppingCart_AddPackages_Response { + optional uint64 gidshoppingcart = 1; + optional .CShoppingCart_Contents contents = 2; + repeated uint32 result_details = 3; +} + +message CShoppingCart_Amount { + optional int64 amount = 1; + optional uint32 currencycode = 2; +} + +message CShoppingCart_AvailableCoupon { + optional uint32 couponid = 1; + optional uint64 gidcoupon = 2; + optional uint64 gidlineitem = 3; +} + +message CShoppingCart_BundleItem { + optional uint32 bundleid = 1; + optional uint32 quantity = 2; +} + +message CShoppingCart_Contents { + repeated .CShoppingCart_Item lineitems = 1; + repeated .CShoppingCart_RelationShip treeview = 2; + optional .CShoppingCart_Potentials potentials = 3; +} + +message CShoppingCart_CouponItem { + optional uint32 couponid = 1; + optional uint64 gidcoupontarget = 2; + optional uint32 packageid = 3; + optional uint64 gidcoupon = 4; +} + +message CShoppingCart_CreateNew_Request { + optional fixed64 steamid_requester = 1; + optional uint64 purchase_request_id = 2; +} + +message CShoppingCart_CreateNew_Response { + optional uint64 gidshoppingcart = 1; +} + +message CShoppingCart_GetContents_Request { + optional uint64 gidshoppingcart = 1; +} + +message CShoppingCart_GetContents_Response { + optional uint64 gidshoppingcart = 1; + optional .CShoppingCart_Contents contents = 2; + optional uint32 time_created = 3; + optional bool merged_into_account_cart = 4; + optional fixed64 steamid_requester = 5; + optional uint64 purchase_request_id = 6; +} + +message CShoppingCart_Item { + optional uint64 gidlineitem = 1; + optional .CShoppingCart_PackageItem package_item = 2; + optional .CShoppingCart_WalletCreditItem wallet_credit_item = 3; + optional .CShoppingCart_CouponItem coupon_item = 4; + optional .CShoppingCart_MicroTxnAsset micro_item = 5; + optional .CShoppingCart_BundleItem bundle_item = 7; + optional .CShoppingCart_LoyaltyRewardItem loyalty_item = 8; +} + +message CShoppingCart_LoyaltyRewardItem { + optional int32 reward_id = 1; +} + +message CShoppingCart_MicroTxnAsset { + optional uint32 microtxnappid = 1; + optional uint64 microtxnassetclassid = 2; +} + +message CShoppingCart_PackageItem { + optional uint32 packageid = 1; + optional .CShoppingCart_Amount costwhenadded = 2; + optional bool is_gift = 3; + optional uint64 gidbundle = 4; + optional uint32 quantity = 5; +} + +message CShoppingCart_Potentials { + repeated .CShoppingCart_AvailableCoupon coupons = 1; +} + +message CShoppingCart_RelationShip { + optional uint64 gidparent = 1; + repeated .CShoppingCart_RelationShip children = 2; +} + +message CShoppingCart_RemoveLineItems_Request { + optional uint64 gidshoppingcart = 1; + repeated uint64 gidlineitems = 2; + optional uint64 browserid = 3; +} + +message CShoppingCart_RemoveLineItems_Response { + optional .CShoppingCart_Contents contents = 1; + repeated uint32 result_details = 2; +} + +message CShoppingCart_UpdatePackageQuantity_Request { + optional uint64 gidshoppingcart = 1; + optional uint64 gidlineitem = 2; + optional uint32 quantity = 3; +} + +message CShoppingCart_UpdatePackageQuantity_Response { + optional uint64 gidshoppingcart = 1; + optional .CShoppingCart_Contents contents = 2; + repeated uint32 result_details = 3; +} + +message CShoppingCart_WalletCreditItem { + optional .CShoppingCart_Amount walletcredit = 1; +} + +service ShoppingCart { + rpc AddBundle (.CShoppingCart_AddBundle_Request) returns (.CShoppingCart_AddBundle_Response); + rpc AddPackages (.CShoppingCart_AddPackages_Request) returns (.CShoppingCart_AddPackages_Response); + rpc CreateNewShoppingCart (.CShoppingCart_CreateNew_Request) returns (.CShoppingCart_CreateNew_Response); + rpc GetShoppingCartContents (.CShoppingCart_GetContents_Request) returns (.CShoppingCart_GetContents_Response); + rpc RemoveLineItems (.CShoppingCart_RemoveLineItems_Request) returns (.CShoppingCart_RemoveLineItems_Response); + rpc UpdatePackageQuantity (.CShoppingCart_UpdatePackageQuantity_Request) returns (.CShoppingCart_UpdatePackageQuantity_Response); +} + diff --git a/Protobufs/webui/service_steamawards.proto b/Protobufs/webui/service_steamawards.proto new file mode 100644 index 0000000..28cf408 --- /dev/null +++ b/Protobufs/webui/service_steamawards.proto @@ -0,0 +1,76 @@ +import "common_base.proto"; + +message CSteamAwards_GetNominationRecommendations_Request { + optional uint32 category_id = 1; +} + +message CSteamAwards_GetNominationRecommendations_Response { + repeated .CSteamAwards_GetNominationRecommendations_Response_PlayedApps played_app = 1; + repeated .CSteamAwards_GetNominationRecommendations_Response_SuggestedEvent suggested_events = 2; + repeated .CSteamAwards_GetNominationRecommendations_Response_SuggestedApp suggested_apps = 3; +} + +message CSteamAwards_GetNominationRecommendations_Response_PlayedApps { + optional uint32 appid = 1; + optional int32 playtime = 2; +} + +message CSteamAwards_GetNominationRecommendations_Response_SuggestedApp { + optional uint32 appid = 1; +} + +message CSteamAwards_GetNominationRecommendations_Response_SuggestedEvent { + optional uint32 clanid = 1; + optional uint64 event_gid = 2; + optional uint32 appid = 3; +} + +message CSteamAwards_GetNominationShareLink_Request { + optional bool generate_new = 1; +} + +message CSteamAwards_GetNominationShareLink_Response { + optional fixed64 code = 1; +} + +message CSteamAwards_GetOtherUserNominations_Request { + optional fixed64 steamid = 1; + optional fixed64 code = 2; +} + +message CSteamAwards_GetUserNominations_Request { +} + +message CSteamAwards_GetUserNominations_Response { + repeated .CSteamAwardsNomination nominations = 1; +} + +message CSteamAwards_Nominate_Request { + optional uint32 category_id = 1; + optional uint32 nominated_id = 2; + optional int32 source = 3 [(.description) = "enum"]; +} + +message CSteamAwards_Nominate_Response { + repeated .CSteamAwardsNomination nominations = 1; +} + +message CSteamAwardsNomination { + optional uint32 category_id = 1; + optional string category_name = 2; + //optional uint32 appid = 2; + optional uint32 appid__field_3 = 3; + //optional uint32 last_updated = 3; + optional string write_in_name = 4; + optional uint32 store_appid = 5; + optional uint32 developer_id = 6; +} + +service SteamAwards { + rpc GetNominationRecommendations (.CSteamAwards_GetNominationRecommendations_Request) returns (.CSteamAwards_GetNominationRecommendations_Response); + rpc GetNominationShareLink (.CSteamAwards_GetNominationShareLink_Request) returns (.CSteamAwards_GetNominationShareLink_Response); + rpc GetOtherUserNominations (.CSteamAwards_GetOtherUserNominations_Request) returns (.CSteamAwards_GetUserNominations_Response); + rpc GetUserNominations (.CSteamAwards_GetUserNominations_Request) returns (.CSteamAwards_GetUserNominations_Response); + rpc Nominate (.CSteamAwards_Nominate_Request) returns (.CSteamAwards_Nominate_Response); +} + diff --git a/Protobufs/webui/service_steamcharts.proto b/Protobufs/webui/service_steamcharts.proto new file mode 100644 index 0000000..2028ad9 --- /dev/null +++ b/Protobufs/webui/service_steamcharts.proto @@ -0,0 +1,96 @@ +import "common_base.proto"; +import "common.proto"; + +message CSteamCharts_GetBestOfYearPages_Request { +} + +message CSteamCharts_GetBestOfYearPages_Response { + repeated .CSteamCharts_GetBestOfYearPages_Response_BestOfYearPage pages = 1; +} + +message CSteamCharts_GetBestOfYearPages_Response_BestOfYearPage { + optional string name = 1; + optional string url_path = 2; + repeated string banner_url = 3; + repeated string banner_url_mobile = 4; + optional uint32 start_date = 5; +} + +message CSteamCharts_GetGamesByConcurrentPlayers_Request { + optional .StoreBrowseContext context = 1; + optional .StoreBrowseItemDataRequest data_request = 2; +} + +message CSteamCharts_GetGamesByConcurrentPlayers_Response { + optional uint32 last_update = 1; + repeated .CSteamCharts_GetGamesByConcurrentPlayers_Response_MostPlayedRank ranks = 2; +} + +message CSteamCharts_GetGamesByConcurrentPlayers_Response_MostPlayedRank { + optional int32 rank = 1; + optional uint32 appid = 2; + optional .StoreItem item = 3; + optional uint32 concurrent_in_game = 4; + optional uint32 peak_in_game = 5; +} + +message CSteamCharts_GetMostPlayedGames_Request { + optional .StoreBrowseContext context = 1; + optional .StoreBrowseItemDataRequest data_request = 2; +} + +message CSteamCharts_GetMostPlayedGames_Response { + optional uint32 rollup_date = 1; + repeated .CSteamCharts_GetMostPlayedGames_Response_MostPlayedRank ranks = 2; +} + +message CSteamCharts_GetMostPlayedGames_Response_MostPlayedRank { + optional int32 rank = 1; + optional uint32 appid = 2; + optional .StoreItem item = 3; + optional int32 last_week_rank = 4; + optional uint32 peak_in_game = 5; + optional uint32 daily_active_players = 6; +} + +message CSteamCharts_GetMostPlayedSteamDeckGames_Request { + optional .StoreBrowseContext context = 1; + optional .StoreBrowseItemDataRequest data_request = 2; + optional int32 top_played_period = 3 [(.description) = "enum"]; + optional int32 count = 4; +} + +message CSteamCharts_GetMostPlayedSteamDeckGames_Response { + repeated .CSteamCharts_GetMostPlayedSteamDeckGames_Response_MostPlayedRank ranks = 1; + optional int32 top_played_period = 2 [(.description) = "enum"]; +} + +message CSteamCharts_GetMostPlayedSteamDeckGames_Response_MostPlayedRank { + optional int32 rank = 1; + optional uint32 appid = 2; + optional .StoreItem item = 3; + optional int32 last_period_rank = 4; +} + +message CSteamCharts_GetTopReleasesPages_Request { +} + +message CSteamCharts_GetTopReleasesPages_Response { + repeated .CSteamCharts_GetTopReleasesPages_Response_TopReleasesPage pages = 1; +} + +message CSteamCharts_GetTopReleasesPages_Response_TopReleasesPage { + optional string name = 1; + optional uint32 start_of_month = 2; + optional string url_path = 3; + repeated .StoreItemID item_ids = 4; +} + +service SteamCharts { + rpc GetBestOfYearPages (.CSteamCharts_GetBestOfYearPages_Request) returns (.CSteamCharts_GetBestOfYearPages_Response); + rpc GetGamesByConcurrentPlayers (.CSteamCharts_GetGamesByConcurrentPlayers_Request) returns (.CSteamCharts_GetGamesByConcurrentPlayers_Response); + rpc GetMostPlayedGames (.CSteamCharts_GetMostPlayedGames_Request) returns (.CSteamCharts_GetMostPlayedGames_Response); + rpc GetMostPlayedSteamDeckGames (.CSteamCharts_GetMostPlayedSteamDeckGames_Request) returns (.CSteamCharts_GetMostPlayedSteamDeckGames_Response); + rpc GetTopReleasesPages (.CSteamCharts_GetTopReleasesPages_Request) returns (.CSteamCharts_GetTopReleasesPages_Response); +} + diff --git a/Protobufs/webui/service_steamengine.proto b/Protobufs/webui/service_steamengine.proto new file mode 100644 index 0000000..d896cf4 --- /dev/null +++ b/Protobufs/webui/service_steamengine.proto @@ -0,0 +1,42 @@ +import "common_base.proto"; + +message CSteamEngine_GetGameIDForPID_Request { + optional uint32 pid = 1; +} + +message CSteamEngine_GetGameIDForPID_Response { + optional uint64 gameid = 1; +} + +message CSteamEngine_GetTextFilterDictionary_Request { + optional string language = 1; + optional string type = 2; +} + +message CSteamEngine_GetTextFilterDictionary_Response { + optional string dictionary = 1; +} + +message CSteamEngine_SetOverlayEscapeKeyHandling_Notification { + optional uint64 gameid = 1; + optional bool should_handle = 2; +} + +message CSteamEngine_TextFilterDictionaryChanged_Notification { + optional string language = 1; + optional string type = 2; +} + +message CSteamEngine_UpdateTextFilterDictionary_Notification { + optional string language = 1; + optional string type = 2; +} + +service SteamEngine { + rpc GetGameIDForPID (.CSteamEngine_GetGameIDForPID_Request) returns (.CSteamEngine_GetGameIDForPID_Response); + rpc GetTextFilterDictionary (.CSteamEngine_GetTextFilterDictionary_Request) returns (.CSteamEngine_GetTextFilterDictionary_Response); + rpc NotifyTextFilterDictionaryChanged (.CSteamEngine_TextFilterDictionaryChanged_Notification) returns (.NoResponse); + rpc SetOverlayEscapeKeyHandling (.CSteamEngine_SetOverlayEscapeKeyHandling_Notification) returns (.NoResponse); + rpc UpdateTextFilterDictionary (.CSteamEngine_UpdateTextFilterDictionary_Notification) returns (.NoResponse); +} + diff --git a/Protobufs/webui/service_steaminputmanager.proto b/Protobufs/webui/service_steaminputmanager.proto new file mode 100644 index 0000000..e0e66c4 --- /dev/null +++ b/Protobufs/webui/service_steaminputmanager.proto @@ -0,0 +1,127 @@ +import "common_base.proto"; + +message ControllerGyroEulerAngles { + optional float pitch = 1; + optional float yaw = 2; + optional float roll = 3; +} + +message ControllerQuaternion { + optional float w = 1; + optional float x = 2; + optional float y = 3; + optional float z = 4; +} + +message ControllerVector2 { + optional float x = 1; + optional float y = 2; +} + +message ControllerVector3 { + optional float x = 1; + optional float y = 2; + optional float z = 3; +} + +message CSteamInputService_ControllerAxesStateChange_Notification { + optional uint32 controller_index = 1; + optional .ControllerVector2 joystick_left = 2; + optional .ControllerVector2 joystick_right = 3; + optional .ControllerVector2 trackpad_left = 4; + optional .ControllerVector2 trackpad_right = 5; + optional .ControllerVector2 trackpad_center = 6; + optional float trackpad_pressure_left = 7; + optional float trackpad_pressure_right = 8; + optional float trigger_left = 9; + optional float trigger_right = 10; +} + +message CSteamInputService_ControllerButtonStateChanged_Notification { + optional uint32 controller_index = 1; + optional bool dpad_up = 2; + optional bool dpad_down = 3; + optional bool dpad_left = 4; + optional bool dpad_right = 5; + optional bool button_south = 6; + optional bool button_east = 7; + optional bool button_west = 8; + optional bool button_north = 9; + optional bool button_back_view = 10; + optional bool button_start_options = 11; + optional bool button_steam = 12; + optional bool button_quick_access = 13; + optional bool button_mute_capture = 14; + optional bool left_stick_click = 15; + optional bool left_stick_touch = 16; + optional bool left_stick_deflect = 17; + optional bool right_stick_click = 18; + optional bool right_stick_touch = 19; + optional bool right_stick_deflect = 20; + optional bool center_trackpad_touch = 21; + optional bool center_trackpad_click = 22; + optional bool left_trackpad_touch = 23; + optional bool left_trackpad_click = 24; + optional bool right_trackpad_touch = 25; + optional bool right_trackpad_click = 26; + optional bool left_bumper = 27; + optional bool left_trigger = 28; + optional bool l4 = 29; + optional bool l5 = 30; + optional bool left_aux = 31; + optional bool right_bumper = 32; + optional bool right_trigger = 33; + optional bool r4 = 34; + optional bool r5 = 35; + optional bool right_aux = 36; +} + +message CSteamInputService_ControllerStateFlow_Request { + optional uint32 controller_index = 1; + optional uint32 flow_mode = 2; +} + +message CSteamInputService_ControllerStateFlow_Response { +} + +message CSteamInputService_GyroAccelerometerChanged_Notification { + optional uint32 controller_index = 1; + optional uint32 imu_index = 2; + optional .ControllerVector3 acceleromter_1g = 4; + optional .ControllerVector3 trusted_gravity_1g = 5; +} + +message CSteamInputService_GyroCalibration_Notification { + optional uint32 controller_index = 1; + optional uint32 imu_index = 2; + optional float acceleromter_noise = 3; + optional float gyroscope_noise = 4; + optional float calibration_progress = 5; +} + +message CSteamInputService_GyroQuaternionChanged_Notification { + optional uint32 controller_index = 1; + optional uint32 imu_index = 2; + optional .ControllerQuaternion gyro_raw_quaternion = 3; + optional .ControllerQuaternion gyro_filtered_quaternion = 4; + optional uint32 imu_sensor_delta_time = 5; +} + +message CSteamInputService_GyroSpeedChanged_Notification { + optional uint32 controller_index = 1; + optional uint32 imu_index = 2; + optional .ControllerGyroEulerAngles gyro_raw_speed = 3; + optional .ControllerGyroEulerAngles gyro_filtered_speed = 4; +} + +service SteamInputManager { + rpc EndControllerStateFlow (.CSteamInputService_ControllerStateFlow_Request) returns (.CSteamInputService_ControllerStateFlow_Response); + rpc NotifyAxesStateChanged (.CSteamInputService_ControllerAxesStateChange_Notification) returns (.NoResponse); + rpc NotifyButtonStateChanged (.CSteamInputService_ControllerButtonStateChanged_Notification) returns (.NoResponse); + rpc NotifyGyroAccelerometerStateChanged (.CSteamInputService_GyroAccelerometerChanged_Notification) returns (.NoResponse); + rpc NotifyGyroCalibrationStateChanged (.CSteamInputService_GyroCalibration_Notification) returns (.NoResponse); + rpc NotifyGyroQuaternionStateChanged (.CSteamInputService_GyroQuaternionChanged_Notification) returns (.NoResponse); + rpc NotifyGyroSpeedStateChanged (.CSteamInputService_GyroSpeedChanged_Notification) returns (.NoResponse); + rpc StartControllerStateFlow (.CSteamInputService_ControllerStateFlow_Request) returns (.CSteamInputService_ControllerStateFlow_Response); +} + diff --git a/Protobufs/webui/service_steamlearn.proto b/Protobufs/webui/service_steamlearn.proto new file mode 100644 index 0000000..7a84346 --- /dev/null +++ b/Protobufs/webui/service_steamlearn.proto @@ -0,0 +1,994 @@ +import "common_base.proto"; + +message CMsgSteamLearn_BatchOperation_Request { + repeated .CMsgSteamLearn_CacheData_Request cache_data_requests = 1; + repeated .CMsgSteamLearn_SnapshotProject_Request snapshot_requests = 2; + repeated .CMsgSteamLearn_Inference_Request inference_requests = 3; +} + +message CMsgSteamLearn_BatchOperation_Response { + repeated .CMsgSteamLearn_CacheData_Response cache_data_responses = 1; + repeated .CMsgSteamLearn_SnapshotProject_Response snapshot_responses = 2; + repeated .CMsgSteamLearn_Inference_Response inference_responses = 3; +} + +message CMsgSteamLearn_CacheData_Request { + optional string access_token = 1; + optional .CMsgSteamLearnData data = 3; +} + +message CMsgSteamLearn_CacheData_Response { + optional int32 cache_data_result = 1 [(.description) = "enum"]; +} + +message CMsgSteamLearn_CreateProject_Request { + optional string project_name = 1; + optional string project_description = 2; +} + +message CMsgSteamLearn_CreateProject_Response { + optional int32 result = 1 [(.description) = "enum"]; + optional .CMsgSteamLearnProject project = 2; +} + +message CMsgSteamLearn_EditProject_Request { + optional .CMsgSteamLearnProject project = 1; + optional uint32 published_version = 2; +} + +message CMsgSteamLearn_EditProject_Response { + optional int32 result = 1 [(.description) = "enum"]; +} + +message CMsgSteamLearn_GetAccessTokens_Request { + optional uint32 appid = 1; +} + +message CMsgSteamLearn_GetAccessTokens_Response { + optional int32 result = 1 [(.description) = "enum"]; + optional .CMsgSteamLearnAccessTokens access_tokens = 2; +} + +message CMsgSteamLearn_GetBatchedStatus_Request { + repeated .CMsgSteamLearn_GetFetchStatus_Request fetch_requests = 1; + repeated .CMsgSteamLearn_GetTrainStatus_Request train_requests = 2; +} + +message CMsgSteamLearn_GetBatchedStatus_Response { + optional int32 result = 1 [(.description) = "enum"]; + repeated .CMsgSteamLearn_GetFetchStatus_Response fetch_responses = 2; + repeated .CMsgSteamLearn_GetTrainStatus_Response train_responses = 3; +} + +message CMsgSteamLearn_GetDataSource_Request { + optional uint32 data_source_id = 1; +} + +message CMsgSteamLearn_GetDataSource_Response { + optional .CMsgSteamLearnDataSource data_source = 1; +} + +message CMsgSteamLearn_GetEmbeddingValues_Request { + optional uint32 project_id = 1; + optional uint32 published_version = 2; + optional uint32 train_id = 3; + optional string export_name = 4; + repeated uint32 numerical_values = 5; + optional uint32 fetch_id = 6; +} + +message CMsgSteamLearn_GetEmbeddingValues_Response { + optional int32 result = 1 [(.description) = "enum"]; + repeated .CMsgSteamLearn_GetEmbeddingValues_Response_EmbeddingData embedding_data = 2; +} + +message CMsgSteamLearn_GetEmbeddingValues_Response_EmbeddingData { + optional uint32 numerical_value = 1; + repeated float embedding_values = 2; +} + +message CMsgSteamLearn_GetFetchStatus_Request { + optional uint32 project_id = 1; + optional uint32 fetch_id = 2; +} + +message CMsgSteamLearn_GetFetchStatus_Response { + optional int32 result = 1 [(.description) = "enum"]; + optional uint32 fetch_id = 2; + optional int32 status = 3 [(.description) = "enum"]; + repeated .CMsgSteamLearn_GetFetchStatus_Response_Worker workers = 4; + optional uint32 total_rows_written = 5; + optional uint32 total_rows = 6; + optional uint32 start_time = 7; + optional uint32 end_time = 8; + optional uint32 total_rows_processed = 9; + optional string error_string = 10; + optional uint32 project_id = 11; + optional int32 metadata_phase = 12 [(.description) = "enum"]; + optional string metadata_phase_name = 13; + optional uint32 metadata_phase_value = 14; + optional bool cancel_pending = 15; +} + +message CMsgSteamLearn_GetFetchStatus_Response_Worker { + optional uint32 rows_written = 1; + optional bool complete = 2; + optional uint32 rows_processed = 3; +} + +message CMsgSteamLearn_GetFetchStatusVersions_Request { + optional uint32 project_id = 1; + optional uint32 published_version = 2; +} + +message CMsgSteamLearn_GetFetchStatusVersions_Response { + repeated uint32 versions = 1; +} + +message CMsgSteamLearn_GetLogEvents_Request { + optional uint32 start_timestamp = 1; + optional uint32 end_timestamp = 2; +} + +message CMsgSteamLearn_GetLogEvents_Response { + optional int32 result = 1 [(.description) = "enum"]; + repeated .CMsgSteamLearn_LogEvent event_list = 2; +} + +message CMsgSteamLearn_GetNearestEmbedding_Request { + optional uint32 project_id = 1; + optional uint32 published_version = 2; + optional uint32 train_id = 3; + optional string export_name = 4; + optional uint32 result_count = 5; + repeated float values = 6; + optional uint32 fetch_id = 7; + optional uint32 popularity_weight = 8; + optional uint32 focus_weight = 9; +} + +message CMsgSteamLearn_GetNearestEmbedding_Response { + optional int32 result = 1 [(.description) = "enum"]; + repeated .CMsgSteamLearn_GetNearestEmbedding_Response_NearEmbedding near_embeddings = 2; +} + +message CMsgSteamLearn_GetNearestEmbedding_Response_NearEmbedding { + optional uint32 value = 1; + optional float distance = 2; + repeated float embedding_values = 3; +} + +message CMsgSteamLearn_GetProject_Request { + optional uint32 project_id = 1; +} + +message CMsgSteamLearn_GetProject_Response { + optional .CMsgSteamLearnProject project = 1; +} + +message CMsgSteamLearn_GetTrainLogs_Request { + optional uint32 project_id = 1; + optional uint32 fetch_id = 2; + optional uint32 train_id = 3; +} + +message CMsgSteamLearn_GetTrainLogs_Response { + optional int32 result = 1 [(.description) = "enum"]; + optional string main_log = 2; + repeated string fetch_worker_logs = 3; + optional string gpu_log = 4; +} + +message CMsgSteamLearn_GetTrainStatus_Request { + optional uint32 project_id = 1; + optional uint32 train_id = 2; +} + +message CMsgSteamLearn_GetTrainStatus_Response { + optional int32 result = 1 [(.description) = "enum"]; + optional uint32 train_id = 2; + optional uint32 fetch_id = 3; + optional int32 status = 4 [(.description) = "enum"]; + repeated .CMsgSteamLearn_GetTrainStatus_Response_Epoch epochs = 5; + optional uint32 total_epochs = 6; + optional uint32 train_batch_count = 7; + optional uint32 validate_batch_count = 8; + optional uint32 test_batch_count = 9; + repeated .CMsgSteamLearn_GetTrainStatus_Response_Batch test_batches = 10; + optional float test_loss = 11; + repeated float test_accuracy = 12; + optional uint32 start_time = 13; + optional uint32 end_time = 14; + optional bool scheduled_train = 15; + optional bool live = 16; + optional bool active = 17; + optional uint32 project_id = 18; + optional bool cancel_pending = 19; +} + +message CMsgSteamLearn_GetTrainStatus_Response_Batch { + optional float loss = 1; + repeated float accuracy = 2; + optional uint32 batch_id = 3; +} + +message CMsgSteamLearn_GetTrainStatus_Response_Epoch { + optional uint32 epoch_number = 1; + optional float epoch_train_loss = 2; + repeated float epoch_train_accuracy = 3; + optional float epoch_validate_loss = 4; + repeated float epoch_validate_accuracy = 5; + repeated .CMsgSteamLearn_GetTrainStatus_Response_Batch train_batches = 6; + repeated .CMsgSteamLearn_GetTrainStatus_Response_Batch validate_batches = 7; + optional uint32 start_time = 8; + optional uint32 end_time = 9; +} + +message CMsgSteamLearn_GetTrainStatusVersions_Request { + optional uint32 project_id = 1; + optional uint32 published_version = 2; +} + +message CMsgSteamLearn_GetTrainStatusVersions_Response { + repeated uint32 versions = 1; +} + +message CMsgSteamLearn_Inference_Request { + optional string access_token = 1; + optional uint32 project_id = 3; + optional uint32 published_version = 4; + optional uint32 override_train_id = 5; + optional .CMsgSteamLearnDataList data = 6; + repeated float additional_data = 7; + repeated uint64 keys = 8; + optional string named_inference = 9; +} + +message CMsgSteamLearn_Inference_Response { + optional int32 inference_result = 1 [(.description) = "enum"]; + optional .CMsgSteamLearn_InferenceBackend_Response backend_response = 2; + repeated uint64 keys = 3; +} + +message CMsgSteamLearn_InferenceBackend_Request { + optional uint32 project_id = 1; + optional uint32 fetch_id = 2; + optional uint32 train_id = 3; + repeated .CMsgSteamLearnRawDataElement data = 4; + repeated uint64 keys = 6; + repeated float additional_data = 7; + optional string named_inference = 8; +} + +message CMsgSteamLearn_InferenceBackend_Response { + repeated .CMsgSteamLearn_InferenceBackend_Response_Output outputs = 1; +} + +message CMsgSteamLearn_InferenceBackend_Response_BinaryCrossEntropyOutput { + optional float value = 1; +} + +message CMsgSteamLearn_InferenceBackend_Response_CategoricalCrossEntropyOutput { + repeated float weight = 1; + repeated float value = 2; + repeated .CMsgSteamLearn_InferenceBackend_Response_Sequence value_sequence = 3; +} + +message CMsgSteamLearn_InferenceBackend_Response_MutliBinaryCrossEntropyOutput { + repeated float weight = 1; + repeated float value = 2; + repeated .CMsgSteamLearn_InferenceBackend_Response_Sequence value_sequence = 3; +} + +message CMsgSteamLearn_InferenceBackend_Response_Output { + optional .CMsgSteamLearn_InferenceBackend_Response_BinaryCrossEntropyOutput binary_crossentropy = 1; + optional .CMsgSteamLearn_InferenceBackend_Response_CategoricalCrossEntropyOutput categorical_crossentropy = 2; + optional .CMsgSteamLearn_InferenceBackend_Response_MutliBinaryCrossEntropyOutput multi_binary_crossentropy = 3; + optional .CMsgSteamLearn_InferenceBackend_Response_RegressionOutput regression = 4; +} + +message CMsgSteamLearn_InferenceBackend_Response_RegressionOutput { + repeated float value = 2; +} + +message CMsgSteamLearn_InferenceBackend_Response_Sequence { + repeated float value = 1; +} + +message CMsgSteamLearn_InferenceMetadata_Request { + optional string access_token = 1; + optional uint32 project_id = 3; + optional uint32 published_version = 4; + optional uint32 override_train_id = 5; +} + +message CMsgSteamLearn_InferenceMetadata_Response { + optional int32 inference_metadata_result = 1 [(.description) = "enum"]; + optional .CMsgSteamLearn_InferenceMetadata_Response_RowRange row_range = 2; + repeated .CMsgSteamLearn_InferenceMetadata_Response_Range ranges = 3; + repeated .CMsgSteamLearn_InferenceMetadata_Response_StdDev std_devs = 4; + repeated .CMsgSteamLearn_InferenceMetadata_Response_CompactTable compact_tables = 5; + repeated .CMsgSteamLearn_InferenceMetadata_Response_KMeans kmeans = 6; + optional .CMsgSteamLearn_InferenceMetadata_Response_SnapshotHistogram snapshot_histogram = 7; + repeated .CMsgSteamLearn_InferenceMetadata_Response_AppInfoEntry app_info = 8; + repeated .CMsgSteamLearn_InferenceMetadata_Response_SequenceTable sequence_tables = 9; +} + +message CMsgSteamLearn_InferenceMetadata_Response_AppInfo { + optional string country_allow = 1; + optional string country_deny = 2; + optional bool platform_win = 3; + optional bool platform_mac = 4; + optional bool platform_linux = 5; + optional bool adult_violence = 6; + optional bool adult_sex = 7; +} + +message CMsgSteamLearn_InferenceMetadata_Response_AppInfoEntry { + optional uint32 key = 1; + optional .CMsgSteamLearn_InferenceMetadata_Response_AppInfo value = 2; +} + +message CMsgSteamLearn_InferenceMetadata_Response_CompactTable { + optional string name = 1; + repeated .CMsgSteamLearn_InferenceMetadata_Response_CompactTable_MapValuesEntry map_values = 2; + repeated .CMsgSteamLearn_InferenceMetadata_Response_CompactTable_MapMappingsEntry map_mappings = 3; + optional uint64 total_count = 4; +} + +message CMsgSteamLearn_InferenceMetadata_Response_CompactTable_Entry { + optional uint32 value = 1; + optional uint32 mapping = 2; + optional uint64 count = 3; +} + +message CMsgSteamLearn_InferenceMetadata_Response_CompactTable_MapMappingsEntry { + optional uint32 key = 1; + optional .CMsgSteamLearn_InferenceMetadata_Response_CompactTable_Entry value = 2; +} + +message CMsgSteamLearn_InferenceMetadata_Response_CompactTable_MapValuesEntry { + optional uint32 key = 1; + optional .CMsgSteamLearn_InferenceMetadata_Response_CompactTable_Entry value = 2; +} + +message CMsgSteamLearn_InferenceMetadata_Response_KMeans { + optional string name = 1; + repeated .CMsgSteamLearn_InferenceMetadata_Response_KMeans_Cluster clusters = 2; +} + +message CMsgSteamLearn_InferenceMetadata_Response_KMeans_Cluster { + optional float x = 1; + optional float y = 2; + optional float radius = 3; + optional float radius_75pct = 4; + optional float radius_50pct = 5; + optional float radius_25pct = 6; +} + +message CMsgSteamLearn_InferenceMetadata_Response_Range { + optional string data_element_path = 1; + optional float min_value = 2; + optional float max_value = 3; +} + +message CMsgSteamLearn_InferenceMetadata_Response_RowRange { + optional uint64 min_row = 1; + optional uint64 max_row = 2; +} + +message CMsgSteamLearn_InferenceMetadata_Response_SequenceTable { + optional string name = 1; + repeated .CMsgSteamLearn_InferenceMetadata_Response_SequenceTable_MapValuesEntry map_values = 2; + repeated .CMsgSteamLearn_InferenceMetadata_Response_SequenceTable_MapMappingsEntry map_mappings = 3; + optional uint64 total_count = 4; +} + +message CMsgSteamLearn_InferenceMetadata_Response_SequenceTable_Entry { + repeated uint32 values = 1; + optional uint32 crc = 2; + optional uint32 count = 3; +} + +message CMsgSteamLearn_InferenceMetadata_Response_SequenceTable_MapMappingsEntry { + optional string key = 1; + optional .CMsgSteamLearn_InferenceMetadata_Response_SequenceTable_Entry value = 2; +} + +message CMsgSteamLearn_InferenceMetadata_Response_SequenceTable_MapValuesEntry { + optional uint32 key = 1; + optional .CMsgSteamLearn_InferenceMetadata_Response_SequenceTable_Entry value = 2; +} + +message CMsgSteamLearn_InferenceMetadata_Response_SnapshotHistogram { + optional float min_value = 1; + optional float max_value = 2; + optional uint32 num_buckets = 3; + repeated uint32 bucket_counts = 4; +} + +message CMsgSteamLearn_InferenceMetadata_Response_StdDev { + optional string data_element_path = 1; + optional float mean = 2; + optional float std_dev = 3; +} + +message CMsgSteamLearn_ListDataSources_Request { +} + +message CMsgSteamLearn_ListDataSources_Response { + repeated .CMsgSteamLearnDataSource data_sources = 1; +} + +message CMsgSteamLearn_ListProjects_Request { + optional uint32 appid = 1; +} + +message CMsgSteamLearn_ListProjects_Response { + repeated .CMsgSteamLearnProject projects = 1; +} + +message CMsgSteamLearn_LogEvent { + optional int32 event_type = 1 [(.description) = "enum"]; + optional uint32 timestamp = 2; + optional .CMsgSteamLearn_LogEvent_TrainStarted train_started = 3; + optional .CMsgSteamLearn_LogEvent_TrainEnded train_ended = 4; + optional .CMsgSteamLearn_LogEvent_TrainSetLive train_set_live = 5; + optional .CMsgSteamLearn_LogEvent_ScheduledTrain scheduled_train = 6; +} + +message CMsgSteamLearn_LogEvent_ScheduledTrain { + optional uint32 project_id = 1; + optional uint32 fetch_id = 2; + optional uint32 train_id = 3; +} + +message CMsgSteamLearn_LogEvent_TrainEnded { + optional uint32 project_id = 1; + optional uint32 fetch_id = 2; + optional uint32 train_id = 3; + optional float loss = 4; + optional float accuracy = 5; +} + +message CMsgSteamLearn_LogEvent_TrainSetLive { + optional uint32 project_id = 1; + optional uint32 fetch_id = 2; + optional uint32 train_id = 3; + optional bool manual_set_live = 4; + optional float accuracy_difference = 5; + optional float accuracy_threshold = 6; +} + +message CMsgSteamLearn_LogEvent_TrainStarted { + optional uint32 project_id = 1; + optional uint32 fetch_id = 2; + optional uint32 train_id = 3; +} + +message CMsgSteamLearn_PublishProject_Request { + optional uint32 project_id = 1; +} + +message CMsgSteamLearn_PublishProject_Response { + optional int32 result = 1 [(.description) = "enum"]; +} + +message CMsgSteamLearn_RegisterDataSource_Request { + optional string access_token = 1; + optional .CMsgSteamLearnDataSource data_source = 3; +} + +message CMsgSteamLearn_RegisterDataSource_Response { + optional int32 result = 1 [(.description) = "enum"]; + optional .CMsgSteamLearnDataSource data_source = 2; +} + +message CMsgSteamLearn_SetTrainLive_Request { + optional uint32 project_id = 1; + optional uint32 published_version = 2; + optional uint32 train_id = 3; + optional bool from_scheduled = 4; + optional bool deactivate = 5; +} + +message CMsgSteamLearn_SetTrainLive_Response { + optional int32 result = 1 [(.description) = "enum"]; +} + +message CMsgSteamLearn_SnapshotProject_Request { + optional string access_token = 1; + optional uint32 project_id = 3; + repeated uint64 keys = 4; + repeated .CMsgSteamLearnData data = 5; + optional uint32 pending_data_limit_seconds = 6; + optional uint32 published_version = 7; +} + +message CMsgSteamLearn_SnapshotProject_Response { + optional int32 snapshot_result = 1 [(.description) = "enum"]; +} + +message CMsgSteamLearn_Train_Request { + optional .CMsgSteamLearnProjectConfig project_config = 1; + optional .CMsgSteamLearn_Train_Request_Fetch fetch = 2; + optional .CMsgSteamLearn_Train_Request_Train train = 3; +} + +message CMsgSteamLearn_Train_Request_Fetch { + optional uint32 fetch_id = 1; + optional bool request_cancel = 2; +} + +message CMsgSteamLearn_Train_Request_Train { + optional uint32 train_id = 1; + optional bool request_cancel = 2; + optional bool scheduled_train = 3; +} + +message CMsgSteamLearn_Train_Response { + optional int32 result = 1 [(.description) = "enum"]; +} + +message CMsgSteamLearnAccessTokens { + optional string register_data_source_access_token = 1; + repeated .CMsgSteamLearnAccessTokens_CacheDataAccessToken cache_data_access_tokens = 2; + repeated .CMsgSteamLearnAccessTokens_SnapshotProjectAccessToken snapshot_project_access_tokens = 3; + repeated .CMsgSteamLearnAccessTokens_InferenceAccessToken inference_access_tokens = 4; +} + +message CMsgSteamLearnAccessTokens_CacheDataAccessToken { + optional uint32 data_source_id = 1; + optional string access_token = 2; +} + +message CMsgSteamLearnAccessTokens_InferenceAccessToken { + optional uint32 project_id = 1; + optional string access_token = 2; +} + +message CMsgSteamLearnAccessTokens_SnapshotProjectAccessToken { + optional uint32 project_id = 1; + optional string access_token = 2; +} + +message CMsgSteamLearnData { + optional uint32 data_source_id = 1; + repeated uint64 keys = 2; + optional .CMsgSteamLearnDataObject data_object = 3; +} + +message CMsgSteamLearnDataElement { + optional string name = 1; + repeated int32 data_int32s = 20; + repeated float data_floats = 21; + repeated bool data_bools = 22; + repeated string data_strings = 23; + repeated .CMsgSteamLearnDataObject data_objects = 24; +} + +message CMsgSteamLearnDataList { + repeated .CMsgSteamLearnData data = 1; +} + +message CMsgSteamLearnDataObject { + repeated .CMsgSteamLearnDataElement elements = 1; +} + +message CMsgSteamLearnDataRetentionConfig { + optional uint32 snapshot_keep_duration_days = 1; + optional uint32 fetch_keep_count = 2; +} + +message CMsgSteamLearnDataSource { + optional uint32 id = 1; + optional string name = 2; + optional uint32 version = 3; + optional string source_description = 4; + optional .CMsgSteamLearnDataSourceDescObject structure = 5; + optional uint32 structure_crc = 6; + optional uint32 cache_duration_seconds = 7; +} + +message CMsgSteamLearnDataSourceDescElement { + optional string name = 1; + optional int32 data_type = 2 [(.description) = "enum"]; + optional .CMsgSteamLearnDataSourceDescObject object = 3; + optional uint32 count = 4; +} + +message CMsgSteamLearnDataSourceDescObject { + repeated .CMsgSteamLearnDataSourceDescElement elements = 1; +} + +message CMsgSteamLearnDataSourceElementUsage { + optional uint32 data_source_id = 1; + optional string data_element_path = 2; + optional bool is_string = 3; + optional uint32 input = 4; + optional uint32 sql_column = 5; + optional int32 preprocessing_type = 6 [(.description) = "enum"]; + optional float min_range = 7; + optional float max_range = 8; + optional float std_dev = 9; + optional string compact_table = 10; + optional uint32 compact_table_count = 11; + optional string sequence_table = 12; + optional uint32 sequence_table_count = 13; + optional bool sort_sequence = 14; + optional uint32 sequence_min_length = 15; +} + +message CMsgSteamLearnFetchInfo { + optional uint32 fetch_id = 1; +} + +message CMsgSteamLearnModelNodeBatchNormalization { +} + +message CMsgSteamLearnModelNodeCombine { +} + +message CMsgSteamLearnModelNodeConcatenate { + optional uint32 axis = 1; +} + +message CMsgSteamLearnModelNodeConditionalExtract { + optional int32 extract_filter_type = 10 [(.description) = "enum"]; + optional int32 extract_weight_type = 11 [(.description) = "enum"]; + optional .CMsgSteamLearnModelNodeConditionalExtract_FilterInfo filter_info = 12; + optional .CMsgSteamLearnModelNodeConditionalExtract_WeightInfo weight_info = 13; + optional string compact_table = 14; + optional string extracted_compact_table = 15; +} + +message CMsgSteamLearnModelNodeConditionalExtract_FilterInfo { + optional uint32 appid_release_recency_months = 1; + optional uint32 appid_publisher_id = 2; + optional uint32 appid_featured_tag_id = 3; + optional uint32 appid_theme_tag_id = 4; +} + +message CMsgSteamLearnModelNodeConditionalExtract_WeightInfo { + optional float appid_release_recency_bias = 1; + optional uint32 input_number = 2; + optional float input_strength = 3; +} + +message CMsgSteamLearnModelNodeConditionalSwap { +} + +message CMsgSteamLearnModelNodeConv1D { + optional uint32 filters = 1; + optional uint32 kernel_size = 2; + optional uint32 strides = 3; + optional int32 activation = 4 [(.description) = "enum"]; +} + +message CMsgSteamLearnModelNodeDense { + optional int32 activation = 1 [(.description) = "enum"]; + optional uint32 width = 2; + optional int32 regularization = 3 [(.description) = "enum"]; +} + +message CMsgSteamLearnModelNodeDenseStack { + optional int32 activation = 1 [(.description) = "enum"]; + repeated uint32 width = 2; + optional uint32 dropout_pct = 3; + optional int32 regularization = 4 [(.description) = "enum"]; +} + +message CMsgSteamLearnModelNodeDot { + optional bool normalize = 1; +} + +message CMsgSteamLearnModelNodeDropout { + optional uint32 dropout_pct = 1; +} + +message CMsgSteamLearnModelNodeEmbedding { + optional uint32 max_value = 1; + optional string compact_table = 2; + optional uint32 embedding_width = 3; + optional bool flatten = 4; + optional string export_name = 5; + optional string embed_name = 6; +} + +message CMsgSteamLearnModelNodeExplode { +} + +message CMsgSteamLearnModelNodeExternalEmbedding { + optional uint32 project_id = 1; + optional uint32 published_version = 2; + optional string embedding_name = 3; + optional string compact_table = 4; +} + +message CMsgSteamLearnModelNodeExtract { + optional int32 input_type = 1 [(.description) = "enum"]; + optional int32 mode = 2 [(.description) = "enum"]; + optional int32 exclusion = 3 [(.description) = "enum"]; + optional int32 selection = 4 [(.description) = "enum"]; + optional float bias_start = 5; + optional float bias_end = 6; + optional uint32 input_bias_input_number = 7; + optional float input_bias_strength = 8; + optional uint32 positive_sample_percent = 9; + optional string compact_table = 10; + optional string extracted_compact_table = 11; + optional uint32 recency_months = 12; +} + +message CMsgSteamLearnModelNodeFlatten { +} + +message CMsgSteamLearnModelNodeGlobalAvgPooling1D { +} + +message CMsgSteamLearnModelNodeGlobalMaxPooling1D { +} + +message CMsgSteamLearnModelNodeInput { + optional uint32 input_num = 1; +} + +message CMsgSteamLearnModelNodeKMeansCluster { + optional uint32 num_clusters = 1; + optional string name = 2; + optional bool generate_clusters = 3; +} + +message CMsgSteamLearnModelNodeMaxPooling1D { + optional uint32 pool_size = 1; + optional uint32 strides = 2; +} + +message CMsgSteamLearnModelNodeNamedInference { + optional string name = 1; + optional bool only_inference = 2; +} + +message CMsgSteamLearnModelNodeNormalize { +} + +message CMsgSteamLearnModelNodeOnehot { + optional uint32 width = 1; + optional string compact_table = 2; + optional bool multi_hot = 3; +} + +message CMsgSteamLearnModelNodeSequenceSplit { + optional uint32 head_split_chance = 1; + optional uint32 mid_split_chance = 2; + optional uint32 tail_split_chance = 3; + optional string sequence_table_name = 4; + optional string compact_table_name = 5; +} + +message CMsgSteamLearnModelNodeShuffle { + optional bool exclude_zeroes = 1; +} + +message CMsgSteamLearnModelNodeSyncedShuffle { + optional bool exclude_zeroes = 1; +} + +message CMsgSteamLearnModelNodeTextVectorization { + optional uint32 vocabulary_size = 1; + optional int32 standardize = 2 [(.description) = "enum"]; + optional int32 output = 3 [(.description) = "enum"]; + optional uint32 sequence_length = 4; + optional int32 split = 5 [(.description) = "enum"]; + optional uint32 ngrams = 6; +} + +message CMsgSteamLearnModelNodeTimeDistributedDense { + optional int32 activation = 1 [(.description) = "enum"]; + optional uint32 width = 2; +} + +message CMsgSteamLearnModelNodeTrain { + optional uint32 input_count = 1; + optional int32 activation = 2 [(.description) = "enum"]; + optional uint32 width = 3; + optional string compact_table = 4; + optional int32 loss = 6 [(.description) = "enum"]; + optional float learning_rate = 7; +} + +message CMsgSteamLearnModelNodeTransformer { + optional uint32 num_heads = 1; + optional uint32 feedforward_size = 3; + optional uint32 dropout_pct = 4; + optional uint32 num_internal_blocks = 5; + optional int32 regularization = 6 [(.description) = "enum"]; +} + +message CMsgSteamLearnModelNodeWeightedAverage { + optional uint32 axis = 1; + optional bool use_weights = 2; +} + +message CMsgSteamLearnProject { + optional uint32 project_id = 1; + optional string project_name = 2; + optional string project_description = 3; + optional uint32 creator_account_id = 4; + optional uint32 create_time = 5; + optional .CMsgSteamLearnProjectConfig unpublished_config = 6; + repeated .CMsgSteamLearnProjectConfig published_configs = 7; +} + +message CMsgSteamLearnProjectConfig { + optional uint32 project_id = 1; + optional uint32 publish_time = 2; + optional uint32 published_version = 3; + repeated uint32 data_source_ids = 4; + repeated .CMsgSteamLearnDataSourceElementUsage data_source_element_usages = 5; + repeated .CMsgSteamLearnProjectNode project_nodes = 6; + optional .CMsgSteamLearnProjectSnapshotConfig snapshot_config = 7; + optional .CMsgSteamLearnTrainConfig train_config = 8; + optional .CMsgSteamLearnProjectSnapshotFilter snapshot_filter = 11; + repeated .CMsgSteamLearnProjectConfig_MapDataElementSqlColumnEntry map_data_element_sql_column = 12; + optional uint32 total_sql_columns = 13; + optional .CMsgSteamLearnDataRetentionConfig data_retention_config = 14; + optional .CMsgSteamLearnScheduledTrainConfig scheduled_train_config = 16; + repeated .CMsgSteamLearnFetchInfo fetch_infos = 17; + repeated .CMsgSteamLearnTrainInfo train_infos = 18; +} + +message CMsgSteamLearnProjectConfig_MapDataElementSqlColumnEntry { + optional string key = 1; + optional int32 value = 2; +} + +message CMsgSteamLearnProjectNode { + optional uint32 node_id = 1; + optional int32 location_x = 2; + optional int32 location_y = 3; + optional string comment = 4; + optional int32 type = 5 [(.description) = "enum"]; + repeated .CMsgSteamLearnProjectNodeConnector connectors = 6; + optional .CMsgSteamLearnModelNodeInput input = 10; + optional .CMsgSteamLearnModelNodeDense dense = 11; + optional .CMsgSteamLearnModelNodeDenseStack dense_stack = 12; + optional .CMsgSteamLearnModelNodeDropout dropout = 13; + optional .CMsgSteamLearnModelNodeEmbedding embedding = 14; + optional .CMsgSteamLearnModelNodeTrain train = 15; + optional .CMsgSteamLearnModelNodeConditionalExtract conditional_extract = 16; + optional .CMsgSteamLearnModelNodeConcatenate concatenate = 17; + optional .CMsgSteamLearnModelNodeShuffle shuffle = 18; + optional .CMsgSteamLearnModelNodeSyncedShuffle synced_shuffle = 19; + optional .CMsgSteamLearnModelNodeOnehot onehot = 20; + optional .CMsgSteamLearnModelNodeExplode explode = 21; + optional .CMsgSteamLearnModelNodeConditionalSwap conditional_swap = 22; + optional .CMsgSteamLearnModelNodeKMeansCluster kmeans = 23; + optional .CMsgSteamLearnModelNodeCombine combine = 24; + optional .CMsgSteamLearnModelNodeTextVectorization text_vectorization = 25; + optional .CMsgSteamLearnModelNodeBatchNormalization batch_normalization = 26; + optional .CMsgSteamLearnModelNodeNormalize normalize = 27; + optional .CMsgSteamLearnModelNodeNamedInference named_inference = 28; + optional .CMsgSteamLearnModelNodeDot dot = 29; + optional .CMsgSteamLearnModelNodeExtract extract = 30; + optional .CMsgSteamLearnModelNodeConv1D conv_1d = 31; + optional .CMsgSteamLearnModelNodeMaxPooling1D max_pooling_1d = 32; + optional .CMsgSteamLearnModelNodeFlatten flatten = 33; + optional .CMsgSteamLearnModelNodeGlobalMaxPooling1D global_max_pooling = 34; + optional .CMsgSteamLearnModelNodeTransformer transformer = 35; + optional .CMsgSteamLearnModelNodeExternalEmbedding external_embedding = 36; + optional .CMsgSteamLearnModelNodeTimeDistributedDense time_distributed_dense = 37; + optional .CMsgSteamLearnModelNodeSequenceSplit sequence_split = 38; + optional .CMsgSteamLearnModelNodeWeightedAverage weighted_average = 39; + optional .CMsgSteamLearnModelNodeGlobalAvgPooling1D global_avg_pooling_1d = 40; +} + +message CMsgSteamLearnProjectNodeConnector { + optional uint32 connector_id = 1; + repeated uint32 linked_connector_ids = 2; + optional bool is_input_connector = 3; +} + +message CMsgSteamLearnProjectSnapshotConfig { + optional int32 snapshot_type = 1 [(.description) = "enum"]; + optional .CMsgSteamLearnProjectSnapshotConfigAccountIDs config_account_ids = 2; + optional .CMsgSteamLearnProjectSnapshotConfigAppIDs config_app_ids = 3; + optional .CMsgSteamLearnProjectSnapshotConfigOtherProject config_other_project = 4; + optional int32 snapshot_schedule_type = 5 [(.description) = "enum"]; + optional uint32 snapshot_schedule_day_of_week = 6; + optional uint32 snapshot_schedule_day_of_month = 7; + optional bool compress = 8; + optional uint32 job_count = 9; + optional uint32 snapshot_schedule_hour_of_day = 10; +} + +message CMsgSteamLearnProjectSnapshotConfigAccountIDs { + optional uint32 percent = 1; + optional uint32 activity_recency_days = 2; + optional int32 filter = 3 [(.description) = "enum"]; +} + +message CMsgSteamLearnProjectSnapshotConfigAppIDs { + optional uint32 percent = 1; + optional uint32 release_recency_days = 2; +} + +message CMsgSteamLearnProjectSnapshotConfigOtherProject { + optional uint32 project_id = 1; + optional uint32 published_version = 2; +} + +message CMsgSteamLearnProjectSnapshotFilter { + optional uint32 sample_reduce_percent = 1; + optional .CMsgSteamLearnProjectSnapshotFilterHistogram histogram = 2; +} + +message CMsgSteamLearnProjectSnapshotFilterHistogram { + optional string data_element_path = 1; + optional float min_value = 2; + optional float max_value = 3; + optional uint32 num_buckets = 4; +} + +message CMsgSteamLearnRawDataElement { + optional float float_value = 1; + optional string string_value = 2; +} + +message CMsgSteamLearnScheduledTrainConfig { + optional int32 scheduled_type = 1 [(.description) = "enum"]; + optional uint32 scheduled_minute = 2; + optional uint32 scheduled_hour = 3; + optional uint32 scheduled_day_of_week = 4; + optional uint32 scheduled_day_of_month = 5; + optional float auto_activate_accuracy_threshold = 6; +} + +message CMsgSteamLearnTrainConfig { + optional uint32 fetch_workers = 1; + optional uint32 fetch_chunk_size = 2; + optional uint32 train_batch_size = 3; + optional uint32 train_epoch_count = 4; + optional float train_loss_improvement_threshold = 5; + optional uint32 train_no_loss_improvement_epoch_limit = 6; + optional int32 train_optimizer = 7 [(.description) = "enum"]; + optional float train_learning_rate = 8; + optional int32 train_gpu = 9 [(.description) = "enum"]; +} + +message CMsgSteamLearnTrainInfo { + optional uint32 fetch_id = 1; + optional uint32 train_id = 2; + optional bool scheduled_train = 3; + optional bool auto_snapshot_pending = 4; +} + +service SteamLearn { + rpc BatchOperation (.CMsgSteamLearn_BatchOperation_Request) returns (.CMsgSteamLearn_BatchOperation_Response); + rpc CacheData (.CMsgSteamLearn_CacheData_Request) returns (.CMsgSteamLearn_CacheData_Response); + rpc CreateProject (.CMsgSteamLearn_CreateProject_Request) returns (.CMsgSteamLearn_CreateProject_Response); + rpc EditProject (.CMsgSteamLearn_EditProject_Request) returns (.CMsgSteamLearn_EditProject_Response); + rpc GetAccessTokensWeb (.CMsgSteamLearn_GetAccessTokens_Request) returns (.CMsgSteamLearn_GetAccessTokens_Response); + rpc GetBatchedStatus (.CMsgSteamLearn_GetBatchedStatus_Request) returns (.CMsgSteamLearn_GetBatchedStatus_Response); + rpc GetDataSource (.CMsgSteamLearn_GetDataSource_Request) returns (.CMsgSteamLearn_GetDataSource_Response); + rpc GetEmbeddingValues (.CMsgSteamLearn_GetEmbeddingValues_Request) returns (.CMsgSteamLearn_GetEmbeddingValues_Response); + rpc GetFetchStatus (.CMsgSteamLearn_GetFetchStatus_Request) returns (.CMsgSteamLearn_GetFetchStatus_Response); + rpc GetFetchStatusVersions (.CMsgSteamLearn_GetFetchStatusVersions_Request) returns (.CMsgSteamLearn_GetFetchStatusVersions_Response); + rpc GetLogEvents (.CMsgSteamLearn_GetLogEvents_Request) returns (.CMsgSteamLearn_GetLogEvents_Response); + rpc GetNearestEmbedding (.CMsgSteamLearn_GetNearestEmbedding_Request) returns (.CMsgSteamLearn_GetNearestEmbedding_Response); + rpc GetProject (.CMsgSteamLearn_GetProject_Request) returns (.CMsgSteamLearn_GetProject_Response); + rpc GetTrainLogs (.CMsgSteamLearn_GetTrainLogs_Request) returns (.CMsgSteamLearn_GetTrainLogs_Response); + rpc GetTrainStatus (.CMsgSteamLearn_GetTrainStatus_Request) returns (.CMsgSteamLearn_GetTrainStatus_Response); + rpc GetTrainStatusVersions (.CMsgSteamLearn_GetTrainStatusVersions_Request) returns (.CMsgSteamLearn_GetTrainStatusVersions_Response); + rpc Inference (.CMsgSteamLearn_Inference_Request) returns (.CMsgSteamLearn_Inference_Response); + rpc InferenceBackend (.CMsgSteamLearn_InferenceBackend_Request) returns (.CMsgSteamLearn_InferenceBackend_Response); + rpc InferenceMetadata (.CMsgSteamLearn_InferenceMetadata_Request) returns (.CMsgSteamLearn_InferenceMetadata_Response); + rpc ListDataSources (.CMsgSteamLearn_ListDataSources_Request) returns (.CMsgSteamLearn_ListDataSources_Response); + rpc ListProjects (.CMsgSteamLearn_ListProjects_Request) returns (.CMsgSteamLearn_ListProjects_Response); + rpc PublishProject (.CMsgSteamLearn_PublishProject_Request) returns (.CMsgSteamLearn_PublishProject_Response); + rpc RegisterDataSource (.CMsgSteamLearn_RegisterDataSource_Request) returns (.CMsgSteamLearn_RegisterDataSource_Response); + rpc SetTrainLive (.CMsgSteamLearn_SetTrainLive_Request) returns (.CMsgSteamLearn_SetTrainLive_Response); + rpc SnapshotProject (.CMsgSteamLearn_SnapshotProject_Request) returns (.CMsgSteamLearn_SnapshotProject_Response); + rpc Train (.CMsgSteamLearn_Train_Request) returns (.CMsgSteamLearn_Train_Response); +} + diff --git a/Protobufs/webui/service_steamnotification.proto b/Protobufs/webui/service_steamnotification.proto new file mode 100644 index 0000000..1ccc292 --- /dev/null +++ b/Protobufs/webui/service_steamnotification.proto @@ -0,0 +1,73 @@ +import "common_base.proto"; + +message CSteamNotification_GetPreferences_Request { +} + +message CSteamNotification_GetPreferences_Response { + repeated .SteamNotificationPreference preferences = 1; +} + +message CSteamNotification_GetSteamNotifications_Request { + optional bool include_hidden = 1 [default = false]; + optional int32 language = 2 [default = 0]; + optional bool include_confirmation_count = 3 [default = true]; + optional bool include_pinned_counts = 4 [default = false]; + optional bool include_read = 5 [default = true]; + optional bool count_only = 6 [default = false]; +} + +message CSteamNotification_GetSteamNotifications_Response { + repeated .SteamNotificationData notifications = 1; + optional int32 confirmation_count = 2; + optional uint32 pending_gift_count = 3; + optional uint32 pending_friend_count = 5; + optional uint32 unread_count = 6; + optional uint32 pending_family_invite_count = 7; +} + +message CSteamNotification_NotificationsReceived_Notification { + repeated .SteamNotificationData notifications = 1; + optional uint32 pending_gift_count = 2; + optional uint32 pending_friend_count = 3; + optional uint32 pending_family_invite_count = 4; +} + +message CSteamNotification_PreferencesUpdated_Notification { + repeated .SteamNotificationPreference preferences = 1; +} + +message CSteamNotification_SetPreferences_Request { + repeated .SteamNotificationPreference preferences = 1; +} + +message CSteamNotification_SetPreferences_Response { +} + +message SteamNotificationData { + optional uint64 notification_id = 1; + optional uint32 notification_targets = 2; + optional int32 notification_type = 3 [(.description) = "enum"]; + optional string body_data = 4; + optional bool read = 7; + optional uint32 timestamp = 8; + optional bool hidden = 9; + optional uint32 expiry = 10; + optional uint32 viewed = 11; +} + +message SteamNotificationPreference { + optional int32 notification_type = 1 [(.description) = "enum"]; + optional uint32 notification_targets = 2; +} + +service SteamNotification { + rpc GetPreferences (.CSteamNotification_GetPreferences_Request) returns (.CSteamNotification_GetPreferences_Response); + rpc GetSteamNotifications (.CSteamNotification_GetSteamNotifications_Request) returns (.CSteamNotification_GetSteamNotifications_Response); + rpc SetPreferences (.CSteamNotification_SetPreferences_Request) returns (.CSteamNotification_SetPreferences_Response); +} + +service SteamNotificationClient { + rpc NotificationsReceived (.CSteamNotification_NotificationsReceived_Notification) returns (.NoResponse); + rpc PreferencesUpdated (.CSteamNotification_PreferencesUpdated_Notification) returns (.NoResponse); +} + diff --git a/Protobufs/webui/service_steamosmanager.proto b/Protobufs/webui/service_steamosmanager.proto new file mode 100644 index 0000000..e6a2118 --- /dev/null +++ b/Protobufs/webui/service_steamosmanager.proto @@ -0,0 +1,63 @@ +import "common_base.proto"; + +message CMsgFactoryResetState { + optional bool is_running = 1; + optional int32 progress = 2; + optional bool is_restart_pending = 3; + optional fixed32 rtime_estimated_completion = 4; +} + +message CSteamOSManager_ApplyMandatoryUpdate_Request { +} + +message CSteamOSManager_ApplyMandatoryUpdate_Response { +} + +message CSteamOSManager_FactoryReset_Request { + optional bool reset_os = 1; + optional bool reset_user_data = 2; +} + +message CSteamOSManager_FactoryReset_Response { +} + +message CSteamOSManager_GetState_Request { +} + +message CSteamOSManager_GetState_Response { + optional .CSteamOSManagerState state = 1; +} + +message CSteamOSManager_OptOutOfSideloadedClient_Request { +} + +message CSteamOSManager_OptOutOfSideloadedClient_Response { +} + +message CSteamOSManager_StateChanged_Notification { +} + +message CSteamOSManagerState { + optional bool is_service_available = 1; + optional string os_version = 2; + optional bool is_mandatory_update_available = 3; + optional int32 startup_movie_variant = 4 [(.description) = "enum"]; + optional bool is_status_led_control_available = 5; + optional .CMsgFactoryResetState factory_reset_state = 6; + optional bool is_tdp_limit_available = 7; + optional int32 tdp_limit_min = 8; + optional int32 tdp_limit_max = 9; + optional bool is_cec_available = 10; + optional bool is_wifi_debug_supported = 11; + optional bool is_wifi_debug_force_disabled = 12; + optional bool is_wifi_force_wpa_supplicant_supported = 13; +} + +service SteamOSManager { + rpc ApplyMandatoryUpdate (.CSteamOSManager_ApplyMandatoryUpdate_Request) returns (.CSteamOSManager_ApplyMandatoryUpdate_Response); + rpc FactoryReset (.CSteamOSManager_FactoryReset_Request) returns (.CSteamOSManager_FactoryReset_Response); + rpc GetState (.CSteamOSManager_GetState_Request) returns (.CSteamOSManager_GetState_Response); + rpc NotifyStateChanged (.CSteamOSManager_StateChanged_Notification) returns (.NoResponse); + rpc OptOutOfSideloadedClient (.CSteamOSManager_OptOutOfSideloadedClient_Request) returns (.CSteamOSManager_OptOutOfSideloadedClient_Response); +} + diff --git a/Protobufs/webui/service_steamossls.proto b/Protobufs/webui/service_steamossls.proto new file mode 100644 index 0000000..5d97393 --- /dev/null +++ b/Protobufs/webui/service_steamossls.proto @@ -0,0 +1,46 @@ +import "common_base.proto"; + +message CSteamOSSLS_GetState_Request { +} + +message CSteamOSSLS_GetState_Response { + optional .CSteamOSSLSState state = 1; +} + +message CSteamOSSLS_SetEnabled_Request { + optional bool enabled = 1; +} + +message CSteamOSSLS_SetEnabled_Response { +} + +message CSteamOSSLS_SetPluginEnabled_Request { + optional int32 etype = 1 [(.description) = "enum"]; + optional bool enabled = 2; +} + +message CSteamOSSLS_SetPluginEnabled_Response { +} + +message CSteamOSSLS_StateChanged_Notification { +} + +message CSteamOSSLSPlugin { + optional int32 etype = 1 [(.description) = "enum"]; + optional bool is_available = 2; + optional bool is_enabled = 3; +} + +message CSteamOSSLSState { + optional bool is_available = 1; + optional bool is_enabled = 2; + repeated .CSteamOSSLSPlugin plugins = 3; +} + +service SteamOSSLS { + rpc GetState (.CSteamOSSLS_GetState_Request) returns (.CSteamOSSLS_GetState_Response); + rpc NotifyStateChanged (.CSteamOSSLS_StateChanged_Notification) returns (.NoResponse); + rpc SetEnabled (.CSteamOSSLS_SetEnabled_Request) returns (.CSteamOSSLS_SetEnabled_Response); + rpc SetPluginEnabled (.CSteamOSSLS_SetPluginEnabled_Request) returns (.CSteamOSSLS_SetPluginEnabled_Response); +} + diff --git a/Protobufs/webui/service_steamtv.proto b/Protobufs/webui/service_steamtv.proto new file mode 100644 index 0000000..9f8e80f --- /dev/null +++ b/Protobufs/webui/service_steamtv.proto @@ -0,0 +1,495 @@ +import "common_base.proto"; + +message CSteamTV_AddChatBan_Request { + optional fixed64 broadcast_channel_id = 1; + optional fixed64 chatter_steamid = 2; + optional uint32 duration = 3; + optional bool permanent = 4; + optional bool undo = 5; +} + +message CSteamTV_AddChatBan_Response { +} + +message CSteamTV_AddChatModerator_Request { + optional fixed64 broadcast_channel_id = 1; + optional fixed64 moderator_steamid = 2; + optional bool undo = 3; +} + +message CSteamTV_AddChatModerator_Response { +} + +message CSteamTV_AddWordBan_Request { + optional fixed64 broadcast_channel_id = 1; + optional string word = 2; + optional bool undo = 3; +} + +message CSteamTV_AddWordBan_Response { +} + +message CSteamTV_AppCheer_Request { + optional uint32 app_id = 1; + optional fixed64 cheer_target_id = 2; + repeated .CSteamTV_AppCheer_SingleCheerType cheers = 3; +} + +message CSteamTV_AppCheer_Response { + optional uint32 aggregation_delay_ms = 1; +} + +message CSteamTV_AppCheer_SingleCheerType { + optional uint32 cheer_type = 1; + optional uint32 cheer_amount = 2; +} + +message CSteamTV_BroadcastClipInfo { + optional uint64 broadcast_clip_id = 1; + optional uint64 channel_id = 2; + optional uint32 app_id = 3; + optional fixed64 broadcaster_steamid = 4; + optional fixed64 creator_steamid = 5; + optional string video_description = 6; + optional uint32 live_time = 7; + optional uint32 length_ms = 8; + optional string thumbnail_path = 9; +} + +message CSteamTV_ChatBan { + optional fixed64 issuer_steamid = 1; + optional fixed64 chatter_steamid = 2; + optional string time_expires = 3; + optional bool permanent = 4; + optional string name = 5; +} + +message CSteamTV_ChatModerator { + optional fixed64 steamid = 1; + optional string name = 2; +} + +message CSteamTV_CreateBroadcastChannel_Request { + optional string unique_name = 1; +} + +message CSteamTV_CreateBroadcastChannel_Response { + optional fixed64 broadcast_channel_id = 1; +} + +message CSteamTV_FollowBroadcastChannel_Request { + optional fixed64 broadcast_channel_id = 1; + optional bool undo = 2; +} + +message CSteamTV_FollowBroadcastChannel_Response { + optional bool is_followed = 1; +} + +message CSteamTV_Game { + optional uint32 appid = 1; + optional string name = 2; + optional string image = 3; + optional uint64 viewers = 4; + repeated .GetBroadcastChannelEntry channels = 5; + optional string release_date = 6; + optional string developer = 7; + optional string publisher = 8; +} + +message CSteamTV_GetBroadcastChannelBroadcasters_Request { + optional fixed64 broadcast_channel_id = 1; +} + +message CSteamTV_GetBroadcastChannelBroadcasters_Response { + repeated .CSteamTV_GetBroadcastChannelBroadcasters_Response_Broadcaster broadcasters = 1; +} + +message CSteamTV_GetBroadcastChannelBroadcasters_Response_Broadcaster { + optional fixed64 steamid = 1; + optional string name = 2; + optional string rtmp_token = 3; +} + +message CSteamTV_GetBroadcastChannelClips_Request { + optional fixed64 broadcast_channel_id = 1; +} + +message CSteamTV_GetBroadcastChannelClips_Response { + repeated .CSteamTV_BroadcastClipInfo clips = 1; + optional string thumbnail_host = 2; +} + +message CSteamTV_GetBroadcastChannelID_Request { + optional string unique_name = 1; +} + +message CSteamTV_GetBroadcastChannelID_Response { + optional fixed64 broadcast_channel_id = 1; + optional string unique_name = 2; + optional fixed64 steamid = 3; +} + +message CSteamTV_GetBroadcastChannelImages_Request { + optional fixed64 broadcast_channel_id = 1; + repeated int32 image_types = 2 [(.description) = "enum"]; +} + +message CSteamTV_GetBroadcastChannelImages_Response { + repeated .CSteamTV_GetBroadcastChannelImages_Response_Images images = 1; +} + +message CSteamTV_GetBroadcastChannelImages_Response_Images { + optional int32 image_type = 1 [(.description) = "enum"]; + optional string image_path = 2; + optional uint32 image_index = 3; +} + +message CSteamTV_GetBroadcastChannelInteraction_Request { + optional fixed64 broadcast_channel_id = 1; +} + +message CSteamTV_GetBroadcastChannelInteraction_Response { + optional bool is_followed = 1; + optional bool is_subscribed = 2; +} + +message CSteamTV_GetBroadcastChannelLinks_Request { + optional fixed64 broadcast_channel_id = 1; +} + +message CSteamTV_GetBroadcastChannelLinks_Response { + repeated .CSteamTV_GetBroadcastChannelLinks_Response_Links links = 1; +} + +message CSteamTV_GetBroadcastChannelLinks_Response_Links { + optional uint32 link_index = 1; + optional string url = 2; + optional string link_description = 3; + optional uint32 left = 4; + optional uint32 top = 5; + optional uint32 width = 6; + optional uint32 height = 7; +} + +message CSteamTV_GetBroadcastChannelProfile_Request { + optional fixed64 broadcast_channel_id = 1; +} + +message CSteamTV_GetBroadcastChannelProfile_Response { + optional string unique_name = 1; + optional fixed64 owner_steamid = 2; + optional string name = 3; + optional string language = 4; + optional string headline = 5; + optional string summary = 6; + optional string schedule = 7; + optional string rules = 8; + optional string panels = 9; + optional bool is_partnered = 10; +} + +message CSteamTV_GetBroadcastChannelStatus_Request { + optional fixed64 broadcast_channel_id = 1; +} + +message CSteamTV_GetBroadcastChannelStatus_Response { + optional bool is_live = 1; + optional bool is_disabled = 2; + optional uint32 appid = 3; + optional uint64 viewers = 4; + optional uint64 views = 5; + optional fixed64 broadcaster_steamid = 6; + optional string thumbnail_url = 7; + optional uint64 followers = 8; + optional uint64 subscribers = 9; + optional string unique_name = 10; + optional uint64 broadcast_session_id = 11; +} + +message CSteamTV_GetChannels_Request { + optional int32 algorithm = 1 [(.description) = "enum"]; + optional uint32 count = 2; + optional uint32 appid = 3; +} + +message CSteamTV_GetChannels_Response { + repeated .GetBroadcastChannelEntry results = 1; +} + +message CSteamTV_GetChatBans_Request { + optional fixed64 broadcast_channel_id = 1; +} + +message CSteamTV_GetChatBans_Response { + repeated .CSteamTV_ChatBan results = 1; +} + +message CSteamTV_GetChatModerators_Request { + optional fixed64 broadcast_channel_id = 1; +} + +message CSteamTV_GetChatModerators_Response { + repeated .CSteamTV_ChatModerator results = 1; +} + +message CSteamTV_GetFollowedChannels_Request { +} + +message CSteamTV_GetFollowedChannels_Response { + repeated .GetBroadcastChannelEntry results = 1; +} + +message CSteamTV_GetGames_Request { + optional uint32 appid = 1; + optional int32 algorithm = 2 [(.description) = "enum"]; + optional uint32 count = 3; +} + +message CSteamTV_GetGames_Response { + repeated .CSteamTV_Game results = 1; +} + +message CSteamTV_GetHomePageContents_Request { +} + +message CSteamTV_GetHomePageContents_Response { + repeated .CSteamTV_HomePageContentRow rows = 1; +} + +message CSteamTV_GetMyBroadcastChannels_Request { +} + +message CSteamTV_GetMyBroadcastChannels_Response { + repeated .GetBroadcastChannelEntry results = 1; +} + +message CSteamTV_GetSteamTVUserSettings_Request { +} + +message CSteamTV_GetSteamTVUserSettings_Response { + optional bool stream_live_email = 1; + optional bool stream_live_notification = 2; +} + +message CSteamTV_GetSubscribedChannels_Request { +} + +message CSteamTV_GetSubscribedChannels_Response { + repeated .GetBroadcastChannelEntry results = 1; +} + +message CSteamTV_GetWordBans_Request { + optional fixed64 broadcast_channel_id = 1; +} + +message CSteamTV_GetWordBans_Response { + repeated string results = 1; +} + +message CSteamTV_HomePageContentRow { + optional int32 template_type = 1 [(.description) = "enum"]; + optional .CSteamTV_HomePageTemplate_Takeover takeover = 2; + optional .CSteamTV_HomePageTemplate_SingleGame single_game = 3; + optional .CSteamTV_HomePageTemplate_GameList game_list = 4; + optional .CSteamTV_HomePageTemplate_QuickExplore quick_explore = 5; + optional .CSteamTV_HomePageTemplate_ConveyorBelt conveyor_belt = 6; + optional .CSteamTV_HomePageTemplate_WatchParty watch_party = 7; + optional .CSteamTV_HomePageTemplate_Developer developer = 8; + optional .CSteamTV_HomePageTemplate_Event event = 9; +} + +message CSteamTV_HomePageTemplate_ConveyorBelt { + repeated .GetBroadcastChannelEntry broadcasts = 1; + optional string title = 2; +} + +message CSteamTV_HomePageTemplate_Developer { + optional .GetBroadcastChannelEntry broadcast = 1; + optional string title = 2; +} + +message CSteamTV_HomePageTemplate_Event { + optional string title = 1; +} + +message CSteamTV_HomePageTemplate_GameList { + repeated .GameListEntry entries = 1; + optional string title = 2; +} + +message CSteamTV_HomePageTemplate_QuickExplore { + repeated .GetBroadcastChannelEntry broadcasts = 1; + optional string title = 2; +} + +message CSteamTV_HomePageTemplate_SingleGame { + repeated .GetBroadcastChannelEntry broadcasts = 1; + optional uint32 appid = 2; + optional string title = 3; +} + +message CSteamTV_HomePageTemplate_Takeover { + repeated .GetBroadcastChannelEntry broadcasts = 1; +} + +message CSteamTV_HomePageTemplate_WatchParty { + optional .GetBroadcastChannelEntry broadcast = 1; + optional string title = 2; + optional uint64 chat_group_id = 3; +} + +message CSteamTV_JoinChat_Request { + optional fixed64 broadcast_channel_id = 1; +} + +message CSteamTV_JoinChat_Response { + optional fixed64 chat_id = 1; + optional string view_url_template = 2; + repeated uint64 flair_group_ids = 3; +} + +message CSteamTV_ReportBroadcastChannel_Request { + optional fixed64 broadcast_channel_id = 1; + optional string reason = 2; +} + +message CSteamTV_ReportBroadcastChannel_Response { +} + +message CSteamTV_Search_Request { + optional string term = 1; +} + +message CSteamTV_Search_Response { + repeated .GetBroadcastChannelEntry results = 1; +} + +message CSteamTV_SetBroadcastChannelImage_Request { + optional fixed64 broadcast_channel_id = 1; + optional int32 image_type = 2 [(.description) = "enum"]; + optional uint32 image_index = 3; + optional uint32 image_width = 4; + optional uint32 image_height = 5; + optional uint32 file_size = 6; + optional string file_extension = 7; + optional string file_hash = 8; + optional bool undo = 9; +} + +message CSteamTV_SetBroadcastChannelImage_Response { + optional string replace_image_hash = 1; +} + +message CSteamTV_SetBroadcastChannelLinkRegions_Request { + optional fixed64 broadcast_channel_id = 1; + repeated .CSteamTV_SetBroadcastChannelLinkRegions_Request_Links links = 2; +} + +message CSteamTV_SetBroadcastChannelLinkRegions_Request_Links { + optional uint32 link_index = 1; + optional string url = 2; + optional string link_description = 3; + optional uint32 left = 4; + optional uint32 top = 5; + optional uint32 width = 6; + optional uint32 height = 7; +} + +message CSteamTV_SetBroadcastChannelLinkRegions_Response { +} + +message CSteamTV_SetBroadcastChannelProfile_Request { + optional fixed64 broadcast_channel_id = 1; + optional string name = 2; + optional string language = 3; + optional string headline = 4; + optional string summary = 5; + optional string avatar_hash = 6; + optional string schedule = 7; + optional string rules = 8; + optional string panels = 9; +} + +message CSteamTV_SetBroadcastChannelProfile_Response { +} + +message CSteamTV_SetSteamTVUserSettings_Request { + optional bool stream_live_email = 1; + optional bool stream_live_notification = 2; +} + +message CSteamTV_SetSteamTVUserSettings_Response { +} + +message CSteamTV_SubscribeBroadcastChannel_Request { + optional fixed64 broadcast_channel_id = 1; +} + +message CSteamTV_SubscribeBroadcastChannel_Response { + optional bool is_subscribed = 1; +} + +message GameListEntry { + optional uint32 appid = 1; + optional string game_name = 2; + optional .GetBroadcastChannelEntry broadcast = 3; +} + +message GetBroadcastChannelEntry { + optional fixed64 broadcast_channel_id = 1; + optional string unique_name = 2; + optional string name = 3; + optional uint32 appid = 4; + optional uint64 viewers = 5; + optional uint64 views = 6; + optional string thumbnail_url = 7; + optional uint64 followers = 8; + optional string headline = 9; + optional string avatar_url = 10; + optional fixed64 broadcaster_steamid = 11; + optional uint64 subscribers = 12; + optional string background_url = 13; + optional bool is_featured = 14; + optional bool is_disabled = 15; + optional bool is_live = 16; + optional string language = 17; + optional uint32 reports = 18; + optional bool is_partnered = 19; +} + +service SteamTV { + rpc AddChatBan (.CSteamTV_AddChatBan_Request) returns (.CSteamTV_AddChatBan_Response); + rpc AddChatModerator (.CSteamTV_AddChatModerator_Request) returns (.CSteamTV_AddChatModerator_Response); + rpc AddWordBan (.CSteamTV_AddWordBan_Request) returns (.CSteamTV_AddWordBan_Response); + rpc AppCheer (.CSteamTV_AppCheer_Request) returns (.CSteamTV_AppCheer_Response); + rpc CreateBroadcastChannel (.CSteamTV_CreateBroadcastChannel_Request) returns (.CSteamTV_CreateBroadcastChannel_Response); + rpc FollowBroadcastChannel (.CSteamTV_FollowBroadcastChannel_Request) returns (.CSteamTV_FollowBroadcastChannel_Response); + rpc GetBroadcastChannelBroadcasters (.CSteamTV_GetBroadcastChannelBroadcasters_Request) returns (.CSteamTV_GetBroadcastChannelBroadcasters_Response); + rpc GetBroadcastChannelClips (.CSteamTV_GetBroadcastChannelClips_Request) returns (.CSteamTV_GetBroadcastChannelClips_Response); + rpc GetBroadcastChannelID (.CSteamTV_GetBroadcastChannelID_Request) returns (.CSteamTV_GetBroadcastChannelID_Response); + rpc GetBroadcastChannelImages (.CSteamTV_GetBroadcastChannelImages_Request) returns (.CSteamTV_GetBroadcastChannelImages_Response); + rpc GetBroadcastChannelInteraction (.CSteamTV_GetBroadcastChannelInteraction_Request) returns (.CSteamTV_GetBroadcastChannelInteraction_Response); + rpc GetBroadcastChannelLinks (.CSteamTV_GetBroadcastChannelLinks_Request) returns (.CSteamTV_GetBroadcastChannelLinks_Response); + rpc GetBroadcastChannelProfile (.CSteamTV_GetBroadcastChannelProfile_Request) returns (.CSteamTV_GetBroadcastChannelProfile_Response); + rpc GetBroadcastChannelStatus (.CSteamTV_GetBroadcastChannelStatus_Request) returns (.CSteamTV_GetBroadcastChannelStatus_Response); + rpc GetChannels (.CSteamTV_GetChannels_Request) returns (.CSteamTV_GetChannels_Response); + rpc GetChatBans (.CSteamTV_GetChatBans_Request) returns (.CSteamTV_GetChatBans_Response); + rpc GetChatModerators (.CSteamTV_GetChatModerators_Request) returns (.CSteamTV_GetChatModerators_Response); + rpc GetFollowedChannels (.CSteamTV_GetFollowedChannels_Request) returns (.CSteamTV_GetFollowedChannels_Response); + rpc GetGames (.CSteamTV_GetGames_Request) returns (.CSteamTV_GetGames_Response); + rpc GetHomePageContents (.CSteamTV_GetHomePageContents_Request) returns (.CSteamTV_GetHomePageContents_Response); + rpc GetMyBroadcastChannels (.CSteamTV_GetMyBroadcastChannels_Request) returns (.CSteamTV_GetMyBroadcastChannels_Response); + rpc GetSteamTVUserSettings (.CSteamTV_GetSteamTVUserSettings_Request) returns (.CSteamTV_GetSteamTVUserSettings_Response); + rpc GetSubscribedChannels (.CSteamTV_GetSubscribedChannels_Request) returns (.CSteamTV_GetSubscribedChannels_Response); + rpc GetWordBans (.CSteamTV_GetWordBans_Request) returns (.CSteamTV_GetWordBans_Response); + rpc JoinChat (.CSteamTV_JoinChat_Request) returns (.CSteamTV_JoinChat_Response); + rpc ReportBroadcastChannel (.CSteamTV_ReportBroadcastChannel_Request) returns (.CSteamTV_ReportBroadcastChannel_Response); + rpc Search (.CSteamTV_Search_Request) returns (.CSteamTV_Search_Response); + rpc SetBroadcastChannelImage (.CSteamTV_SetBroadcastChannelImage_Request) returns (.CSteamTV_SetBroadcastChannelImage_Response); + rpc SetBroadcastChannelLinkRegions (.CSteamTV_SetBroadcastChannelLinkRegions_Request) returns (.CSteamTV_SetBroadcastChannelLinkRegions_Response); + rpc SetBroadcastChannelProfile (.CSteamTV_SetBroadcastChannelProfile_Request) returns (.CSteamTV_SetBroadcastChannelProfile_Response); + rpc SetSteamTVUserSettings (.CSteamTV_SetSteamTVUserSettings_Request) returns (.CSteamTV_SetSteamTVUserSettings_Response); + rpc SubscribeBroadcastChannel (.CSteamTV_SubscribeBroadcastChannel_Request) returns (.CSteamTV_SubscribeBroadcastChannel_Response); +} + diff --git a/Protobufs/webui/service_steamvrvoicechat.proto b/Protobufs/webui/service_steamvrvoicechat.proto new file mode 100644 index 0000000..9d5e2aa --- /dev/null +++ b/Protobufs/webui/service_steamvrvoicechat.proto @@ -0,0 +1,67 @@ +import "common_base.proto"; + +message CSteamVR_Vector3 { + optional float x = 1; + optional float y = 2; + optional float z = 3; +} + +message CSteamVR_VoiceChat_Active_Notification { +} + +message CSteamVR_VoiceChat_GroupName_Notification { + optional string name = 1; +} + +message CSteamVR_VoiceChat_Inactive_Notification { +} + +message CSteamVR_VoiceChat_NewGroupChatMsgAdded_Notification { + optional uint64 chat_group_id = 1; + optional uint64 chat_room_id = 2; + optional uint32 sender_accountid = 3; + optional uint32 timestamp = 4; + optional uint32 ordinal = 5; + optional string message = 6; +} + +message CSteamVR_VoiceChat_PerUserGainValue_Notification { + optional uint32 accountid = 1; + optional bool muted = 2; + optional float gain = 3; +} + +message CSteamVR_VoiceChat_PerUserVoiceStatus_Notification { + optional uint32 accountid = 1; + optional bool mic_muted_locally = 2; + optional bool output_muted_locally = 3; +} + +message CSteamVR_VoiceChat_SetDefaultSession_Notification { + optional uint64 chat_group_id = 1; + optional uint64 chat_room_id = 2; +} + +message CSteamVR_VoiceChat_SetSpatialAudioListener_Notification { + optional .CSteamVR_Vector3 position = 1; + optional .CSteamVR_Vector3 forward = 2; + optional .CSteamVR_Vector3 up = 3; +} + +message CSteamVR_VoiceChat_SetSpatialAudioSource_Notification { + optional fixed64 steamid = 1; + optional .CSteamVR_Vector3 position = 2; +} + +service SteamVRVoiceChat { + rpc Active (.CSteamVR_VoiceChat_Active_Notification) returns (.NoResponse); + rpc GroupName (.CSteamVR_VoiceChat_GroupName_Notification) returns (.NoResponse); + rpc Inactive (.CSteamVR_VoiceChat_Inactive_Notification) returns (.NoResponse); + rpc NewGroupChatMsgAdded (.CSteamVR_VoiceChat_NewGroupChatMsgAdded_Notification) returns (.NoResponse); + rpc PerUserGainValue (.CSteamVR_VoiceChat_PerUserGainValue_Notification) returns (.NoResponse); + rpc PerUserVoiceStatus (.CSteamVR_VoiceChat_PerUserVoiceStatus_Notification) returns (.NoResponse); + rpc SetDefaultSession (.CSteamVR_VoiceChat_SetDefaultSession_Notification) returns (.NoResponse); + rpc SetSpatialAudioListener (.CSteamVR_VoiceChat_SetSpatialAudioListener_Notification) returns (.NoResponse); + rpc SetSpatialAudioSource (.CSteamVR_VoiceChat_SetSpatialAudioSource_Notification) returns (.NoResponse); +} + diff --git a/Protobufs/webui/service_steamvrwebrtc.proto b/Protobufs/webui/service_steamvrwebrtc.proto new file mode 100644 index 0000000..82abce3 --- /dev/null +++ b/Protobufs/webui/service_steamvrwebrtc.proto @@ -0,0 +1,48 @@ +import "common_base.proto"; + +message CSteamVR_Header { + optional int32 type = 1 [(.description) = "enum"]; + optional uint32 id = 2; +} + +message CSteamVR_WebRTC_Active_Notification { +} + +message CSteamVR_WebRTC_DataChannel_Close_Notification { + optional uint32 channel_id = 1; +} + +message CSteamVR_WebRTC_DataChannel_Error_Notification { + optional uint32 channel_id = 1; + optional string reason = 2; +} + +message CSteamVR_WebRTC_DataChannel_Message_Notification { + optional uint32 channel_id = 1; + optional bytes data = 2; +} + +message CSteamVR_WebRTC_DataChannel_Open_Notification { + optional uint32 channel_id = 1; +} + +message CSteamVR_WebRTC_Inactive_Notification { +} + +message CSteamVR_WebRTC_OnDataChannel_Notification { + optional fixed64 source_steamid = 1; + optional uint32 channel_id = 2; + optional string label = 3; +} + +service SteamVRWebRTC { + rpc Active (.CSteamVR_WebRTC_Active_Notification) returns (.NoResponse); + rpc Header (.CSteamVR_Header) returns (.NoResponse); + rpc Inactive (.CSteamVR_WebRTC_Inactive_Notification) returns (.NoResponse); + rpc Notify_DataChannelClose (.CSteamVR_WebRTC_DataChannel_Close_Notification) returns (.NoResponse); + rpc Notify_DataChannelError (.CSteamVR_WebRTC_DataChannel_Error_Notification) returns (.NoResponse); + rpc Notify_DataChannelMessage (.CSteamVR_WebRTC_DataChannel_Message_Notification) returns (.NoResponse); + rpc Notify_DataChannelOpen (.CSteamVR_WebRTC_DataChannel_Open_Notification) returns (.NoResponse); + rpc Notify_OnDataChannel (.CSteamVR_WebRTC_OnDataChannel_Notification) returns (.NoResponse); +} + diff --git a/Protobufs/webui/service_storagedevicemanager.proto b/Protobufs/webui/service_storagedevicemanager.proto new file mode 100644 index 0000000..9393564 --- /dev/null +++ b/Protobufs/webui/service_storagedevicemanager.proto @@ -0,0 +1,106 @@ +import "common_base.proto"; + +message CStorageDeviceManager_Adopt_Request { + optional uint32 drive_id = 1; + optional string label = 2; + optional bool validate = 3; +} + +message CStorageDeviceManager_Adopt_Response { +} + +message CStorageDeviceManager_Eject_Request { + optional uint32 drive_id = 1; +} + +message CStorageDeviceManager_Eject_Response { +} + +message CStorageDeviceManager_Format_Request { + optional uint32 block_device_id = 1; +} + +message CStorageDeviceManager_Format_Response { +} + +message CStorageDeviceManager_GetState_Request { +} + +message CStorageDeviceManager_GetState_Response { + optional .CStorageDeviceManagerState state = 1; +} + +message CStorageDeviceManager_IsServiceAvailable_Request { +} + +message CStorageDeviceManager_IsServiceAvailable_Response { + optional bool is_available = 1; +} + +message CStorageDeviceManager_StateChanged_Notification { +} + +message CStorageDeviceManager_TrimAll_Request { +} + +message CStorageDeviceManager_TrimAll_Response { +} + +message CStorageDeviceManager_Unmount_Request { + optional uint32 block_device_id = 1; +} + +message CStorageDeviceManager_Unmount_Response { +} + +message CStorageDeviceManagerBlockDevice { + optional uint32 id = 1 [default = 0]; + optional uint32 drive_id = 2 [default = 0]; + optional string path = 3; + optional string friendly_path = 4; + optional string label = 5; + optional uint64 size_bytes = 6; + optional bool is_formattable = 7; + optional bool is_read_only = 8; + optional bool is_root_device = 9; + optional int32 content_type = 10 [(.description) = "enum"]; + optional int32 filesystem_type = 11 [(.description) = "enum"]; + repeated string mount_paths = 12; + optional bool is_unmounting = 13; + optional bool has_steam_library = 14; +} + +message CStorageDeviceManagerDrive { + optional uint32 id = 1 [default = 0]; + optional string model = 2; + optional string vendor = 3; + optional string serial = 4; + optional bool is_ejectable = 5; + optional uint64 size_bytes = 6; + optional int32 media_type = 7 [(.description) = "enum"]; + optional bool is_unformatted = 8; + optional int32 adopt_stage = 9 [(.description) = "enum"]; + optional bool is_formattable = 10; + optional bool is_media_available = 11; +} + +message CStorageDeviceManagerState { + repeated .CStorageDeviceManagerDrive drives = 1; + repeated .CStorageDeviceManagerBlockDevice block_devices = 2; + optional bool is_unmount_supported = 3; + optional bool is_trim_supported = 4; + optional bool is_trim_running = 5; + optional bool is_adopt_supported = 6; +} + +service StorageDeviceManager { + rpc Adopt (.CStorageDeviceManager_Adopt_Request) returns (.CStorageDeviceManager_Adopt_Response); + rpc Eject (.CStorageDeviceManager_Eject_Request) returns (.CStorageDeviceManager_Eject_Response); + rpc Format (.CStorageDeviceManager_Format_Request) returns (.CStorageDeviceManager_Format_Response); + rpc GetState (.CStorageDeviceManager_GetState_Request) returns (.CStorageDeviceManager_GetState_Response); + rpc IsServiceAvailable (.CStorageDeviceManager_IsServiceAvailable_Request) returns (.CStorageDeviceManager_IsServiceAvailable_Response); + rpc NotifyStateChanged (.CStorageDeviceManager_StateChanged_Notification) returns (.NoResponse); + rpc TrimAll (.CStorageDeviceManager_TrimAll_Request) returns (.CStorageDeviceManager_TrimAll_Response); + rpc Unmount (.CStorageDeviceManager_Unmount_Request) returns (.CStorageDeviceManager_Unmount_Response); +} + diff --git a/Protobufs/webui/service_store.proto b/Protobufs/webui/service_store.proto new file mode 100644 index 0000000..f2ea811 --- /dev/null +++ b/Protobufs/webui/service_store.proto @@ -0,0 +1,380 @@ +import "common_base.proto"; +import "common.proto"; + +message CPackageReservationStatus { + optional uint32 packageid = 1; + optional int32 reservation_state = 2; + optional int32 queue_position = 3; + optional int32 total_queue_size = 4; + optional string reservation_country_code = 5; + optional bool expired = 6; + optional uint32 time_expires = 7; + optional uint32 time_reserved = 8; + optional uint32 rtime_estimated_notification = 9; + optional string notificaton_token = 10; +} + +message CReservationPositionMessage { + optional uint32 edistributor = 1; + optional string product_identifier = 2; + optional uint32 start_queue_position = 3; + optional uint32 rtime_estimated_notification = 4; + optional string localization_token = 5; + optional uint32 accountid = 6; + optional uint32 rtime_created = 7; +} + +message CSteamDeckCompatibility_SetFeedback_Request { + optional uint32 appid = 1; + optional int32 feedback = 2 [(.description) = "enum"]; +} + +message CSteamDeckCompatibility_SetFeedback_Response { +} + +message CSteamDeckCompatibility_ShouldPrompt_Request { + optional uint32 appid = 1; +} + +message CSteamDeckCompatibility_ShouldPrompt_Response { + optional bool prompt = 1; + optional bool feedback_eligible = 2; + optional int32 existing_feedback = 3 [(.description) = "enum"]; +} + +message CStore_DeleteReservationPositionMessage_Request { + optional uint32 edistributor = 1; + optional string product_identifier = 2; + optional uint32 start_queue_position = 3; +} + +message CStore_DeleteReservationPositionMessage_Response { +} + +message CStore_GetAllReservationPositionMessages_Request { +} + +message CStore_GetAllReservationPositionMessages_Response { + repeated .CReservationPositionMessage settings = 1; +} + +message CStore_GetDiscoveryQueue_Request { + optional int32 queue_type = 1 [(.description) = "enum"]; + optional string country_code = 2; + optional bool rebuild_queue = 3; + optional bool settings_changed = 4; + optional .CStoreDiscoveryQueueSettings settings = 5; + optional bool rebuild_queue_if_stale = 6; + optional bool ignore_user_preferences = 8; + optional bool no_experimental_results = 9; + optional uint32 experimental_cohort = 10; + optional bool debug_get_solr_query = 11; + optional .CStorePageFilter store_page_filter = 12; +} + +message CStore_GetDiscoveryQueue_Response { + repeated uint32 appids = 1; + optional string country_code = 2; + optional .CStoreDiscoveryQueueSettings settings = 3; + optional int32 skipped = 4; + optional bool exhausted = 5; + optional uint32 experimental_cohort = 6; + optional string debug_solr_query = 7; +} + +message CStore_GetDiscoveryQueueSettings_Request { + optional int32 queue_type = 1 [(.description) = "enum"]; + optional .CStorePageFilter store_page_filter = 2; +} + +message CStore_GetDiscoveryQueueSettings_Response { + optional string country_code = 1; + optional .CStoreDiscoveryQueueSettings settings = 2; +} + +message CStore_GetDiscoveryQueueSkippedApps_Request { + optional fixed64 steamid = 1; + optional int32 queue_type = 2 [(.description) = "enum"]; + optional .CStorePageFilter store_page_filter = 3; +} + +message CStore_GetDiscoveryQueueSkippedApps_Response { + repeated uint32 appids = 1; +} + +message CStore_GetLocalizedNameForTags_Request { + optional string language = 1; + repeated uint32 tagids = 2; +} + +message CStore_GetLocalizedNameForTags_Response { + repeated .CStore_GetLocalizedNameForTags_Response_Tag tags = 1; +} + +message CStore_GetLocalizedNameForTags_Response_Tag { + optional uint32 tagid = 1; + optional string english_name = 2; + optional string name = 3; + optional string normalized_name = 4; +} + +message CStore_GetMostPopularTags_Request { + optional string language = 1; +} + +message CStore_GetMostPopularTags_Response { + repeated .CStore_GetMostPopularTags_Response_Tag tags = 1; +} + +message CStore_GetMostPopularTags_Response_Tag { + optional uint32 tagid = 1; + optional string name = 2; +} + +message CStore_GetStorePreferences_Request { +} + +message CStore_GetStorePreferences_Response { + optional .CStore_UserPreferences preferences = 1; + optional .CStore_UserTagPreferences tag_preferences = 2; + optional .CStore_UserContentDescriptorPreferences content_descriptor_preferences = 3; + //optional .UserContentDescriptorPreferences content_descriptor_preferences = 3; +} + +message CStore_GetTagList_Request { + optional string language = 1; + optional string have_version_hash = 2; +} + +message CStore_GetTagList_Response { + optional string version_hash = 1; + repeated .CStore_GetTagList_Response_Tag tags = 2; +} + +message CStore_GetTagList_Response_Tag { + optional uint32 tagid = 1; + optional string name = 2; +} + +message CStore_GetTrendingAppsAmongFriends_Request { + optional uint32 num_apps = 1; + optional uint32 num_top_friends = 2; +} + +message CStore_GetTrendingAppsAmongFriends_Response { + repeated .CStore_GetTrendingAppsAmongFriends_Response_TrendingAppData trending_apps = 1; +} + +message CStore_GetTrendingAppsAmongFriends_Response_TrendingAppData { + optional uint32 appid = 1; + repeated uint64 steamids_top_friends = 2; + optional uint32 total_friends = 3; +} + +message CStore_GetUserGameInterestState_Request { + optional uint32 appid = 1; + optional uint32 store_appid = 2; + optional uint32 beta_appid = 3; +} + +message CStore_GetUserGameInterestState_Response { + optional bool owned = 1; + optional bool wishlist = 2; + optional bool ignored = 3; + optional bool following = 4; + repeated int32 in_queues = 5 [(.description) = "enum"]; + repeated int32 queues_with_skip = 6 [(.description) = "enum"]; + repeated int32 queue_items_remaining = 7; + repeated uint32 queue_items_next_appid = 8; + optional bool temporarily_owned = 9; + repeated .CStore_GetUserGameInterestState_Response_InQueue queues = 10; + optional int32 ignored_reason = 11; + optional int32 beta_status = 12 [(.description) = "enum"]; +} + +message CStore_GetUserGameInterestState_Response_InQueue { + optional int32 type = 1 [(.description) = "enum"]; + optional bool skipped = 2; + optional int32 items_remaining = 3; + optional uint32 next_appid = 4; + optional uint32 experimental_cohort = 5; +} + +message CStore_GetWishlistDemoEmailStatus_Request { + optional uint32 appid = 1; + optional uint32 demo_appid = 2; +} + +message CStore_GetWishlistDemoEmailStatus_Response { + optional bool can_fire = 1 [default = false]; + optional uint32 time_staged = 2; + optional uint32 demo_release_date = 3; +} + +message CStore_PurchaseReceiptInfo { + optional uint64 transactionid = 1; + optional uint32 packageid = 2; + optional uint32 purchase_status = 3; + optional uint32 result_detail = 4; + optional uint32 transaction_time = 5; + optional uint32 payment_method = 6; + optional uint64 base_price = 7; + optional uint64 total_discount = 8; + optional uint64 tax = 9; + optional uint64 shipping = 10; + optional uint32 currency_code = 11; + optional string country_code = 12; + optional string error_headline = 13; + optional string error_string = 14; + optional string error_link_text = 15; + optional string error_link_url = 16; + optional uint32 error_appid = 17; + repeated .CStore_PurchaseReceiptInfo_LineItem line_items = 18; +} + +message CStore_PurchaseReceiptInfo_LineItem { + optional uint32 packageid = 1; + optional uint32 appid = 2; + optional string line_item_description = 3; +} + +message CStore_QueueWishlistDemoEmailToFire_Request { + optional uint32 appid = 1; + optional uint32 demo_appid = 2; +} + +message CStore_QueueWishlistDemoEmailToFire_Response { +} + +message CStore_RegisterCDKey_Request { + optional string activation_code = 1; + optional int32 purchase_platform = 2; + optional bool is_request_from_client = 3; +} + +message CStore_RegisterCDKey_Response { + optional int32 purchase_result_details = 1; + optional .CStore_PurchaseReceiptInfo purchase_receipt_info = 2; +} + +message CStore_ReportApp_Request { + optional uint32 appid = 1; + optional int32 report_type = 2 [(.description) = "enum"]; + optional string report = 3; +} + +message CStore_ReportApp_Response { +} + +message CStore_SetReservationPositionMessage_Request { + repeated .CReservationPositionMessage settings = 1; +} + +message CStore_SetReservationPositionMessage_Response { +} + +message CStore_SkipDiscoveryQueueItem_Request { + optional int32 queue_type = 1 [(.description) = "enum"]; + optional uint32 appid = 2; + optional .CStorePageFilter store_page_filter = 3; +} + +message CStore_SkipDiscoveryQueueItem_Response { +} + +message CStore_StorePreferencesChanged_Notification { + optional .CStore_UserPreferences preferences = 1; + optional .CStore_UserTagPreferences tag_preferences = 2; + optional .CStore_UserContentDescriptorPreferences content_descriptor_preferences = 3; + //optional .UserContentDescriptorPreferences content_descriptor_preferences = 3; +} + +message CStore_UpdatePackageReservations_Request { + repeated uint32 packages_to_reserve = 1; + repeated uint32 packages_to_unreserve = 2; + optional string country_code = 3; +} + +message CStore_UpdatePackageReservations_Response { + repeated .CPackageReservationStatus reservation_status = 1; +} + +message CStore_UserContentDescriptorPreferences { + repeated .CStore_UserContentDescriptorPreferences_ContentDescriptor content_descriptors_to_exclude = 1; +} + +message CStore_UserContentDescriptorPreferences_ContentDescriptor { + optional uint32 content_descriptorid = 1; + optional uint32 timestamp_added = 2; +} + +message CStore_UserPreferences { + optional int32 primary_language = 1; + //optional uint32 primary_language = 1; + optional uint32 secondary_languages = 2; + optional bool platform_windows = 3; + optional bool platform_mac = 4; + optional bool platform_linux = 5; + optional bool hide_adult_content_violence = 6; + optional bool hide_adult_content_sex = 7; + optional uint32 timestamp_updated = 8; + optional bool hide_store_broadcast = 9; + optional int32 review_score_preference = 10 [(.description) = "enum"]; + optional int32 timestamp_content_descriptor_preferences_updated = 11; + optional int32 provide_deck_feedback = 12 [(.description) = "enum"]; + optional string additional_languages = 13; +} + +message CStore_UserTagPreferences { + repeated .CStore_UserTagPreferences_Tag tags_to_exclude = 1; +} + +message CStore_UserTagPreferences_Tag { + optional uint32 tagid = 1; + optional string name = 2; + optional uint32 timestamp_added = 3; +} + +message CStoreDiscoveryQueueSettings { + optional bool os_win = 4; + optional bool os_mac = 5; + optional bool os_linux = 6; + optional bool full_controller_support = 7; + optional bool native_steam_controller = 8; + optional bool include_coming_soon = 9; + repeated uint32 excluded_tagids = 10; + optional bool exclude_early_access = 11; + optional bool exclude_videos = 12; + optional bool exclude_software = 13; + optional bool exclude_dlc = 14; + optional bool exclude_soundtracks = 15; + repeated uint32 featured_tagids = 16; +} + +service Store { + rpc DeleteReservationPositionMessage (.CStore_DeleteReservationPositionMessage_Request) returns (.CStore_DeleteReservationPositionMessage_Response); + rpc GetAllReservationPositionMessages (.CStore_GetAllReservationPositionMessages_Request) returns (.CStore_GetAllReservationPositionMessages_Response); + rpc GetDiscoveryQueue (.CStore_GetDiscoveryQueue_Request) returns (.CStore_GetDiscoveryQueue_Response); + rpc GetDiscoveryQueueSettings (.CStore_GetDiscoveryQueueSettings_Request) returns (.CStore_GetDiscoveryQueueSettings_Response); + rpc GetDiscoveryQueueSkippedApps (.CStore_GetDiscoveryQueueSkippedApps_Request) returns (.CStore_GetDiscoveryQueueSkippedApps_Response); + rpc GetLocalizedNameForTags (.CStore_GetLocalizedNameForTags_Request) returns (.CStore_GetLocalizedNameForTags_Response); + rpc GetMostPopularTags (.CStore_GetMostPopularTags_Request) returns (.CStore_GetMostPopularTags_Response); + rpc GetStorePreferences (.CStore_GetStorePreferences_Request) returns (.CStore_GetStorePreferences_Response); + rpc GetTagList (.CStore_GetTagList_Request) returns (.CStore_GetTagList_Response); + rpc GetTrendingAppsAmongFriends (.CStore_GetTrendingAppsAmongFriends_Request) returns (.CStore_GetTrendingAppsAmongFriends_Response); + rpc GetUserGameInterestState (.CStore_GetUserGameInterestState_Request) returns (.CStore_GetUserGameInterestState_Response); + rpc GetWishlistDemoEmailStatus (.CStore_GetWishlistDemoEmailStatus_Request) returns (.CStore_GetWishlistDemoEmailStatus_Response); + rpc QueueWishlistDemoEmailToFire (.CStore_QueueWishlistDemoEmailToFire_Request) returns (.CStore_QueueWishlistDemoEmailToFire_Response); + rpc RegisterCDKey (.CStore_RegisterCDKey_Request) returns (.CStore_RegisterCDKey_Response); + rpc ReportApp (.CStore_ReportApp_Request) returns (.CStore_ReportApp_Response); + rpc SetCompatibilityFeedback (.CSteamDeckCompatibility_SetFeedback_Request) returns (.CSteamDeckCompatibility_SetFeedback_Response); + rpc SetReservationPositionMessage (.CStore_SetReservationPositionMessage_Request) returns (.CStore_SetReservationPositionMessage_Response); + rpc ShouldPromptForCompatibilityFeedback (.CSteamDeckCompatibility_ShouldPrompt_Request) returns (.CSteamDeckCompatibility_ShouldPrompt_Response); + rpc SkipDiscoveryQueueItem (.CStore_SkipDiscoveryQueueItem_Request) returns (.CStore_SkipDiscoveryQueueItem_Response); + rpc UpdatePackageReservations (.CStore_UpdatePackageReservations_Request) returns (.CStore_UpdatePackageReservations_Response); +} + +service StoreClient { + rpc NotifyStorePreferencesChanged (.CStore_StorePreferencesChanged_Notification) returns (.NoResponse); +} + diff --git a/Protobufs/webui/service_storeappsimilarity.proto b/Protobufs/webui/service_storeappsimilarity.proto new file mode 100644 index 0000000..87aed33 --- /dev/null +++ b/Protobufs/webui/service_storeappsimilarity.proto @@ -0,0 +1,76 @@ +import "common_base.proto"; +import "common.proto"; + +message CStoreAppSimilarity_IdentifyClustersFromPlaytime_Request { + optional fixed64 steamid = 1; + optional int32 sort = 2 [default = 1, (.description) = "enum"]; + optional int32 clusters_to_return = 3; + optional int32 cluster_index = 4; + optional .StoreBrowseContext context = 10; + optional .StoreBrowseItemDataRequest data_request = 11; +} + +message CStoreAppSimilarity_IdentifyClustersFromPlaytime_Response { + repeated .CStoreAppSimilarity_IdentifyClustersFromPlaytime_Response_Cluster clusters = 1; +} + +message CStoreAppSimilarity_IdentifyClustersFromPlaytime_Response_Cluster { + optional int32 cluster_id = 1; + optional int32 playtime_forever = 2; + optional int32 playtime_2weeks = 3; + optional uint32 last_played = 4; + repeated int32 played_appids = 5; + repeated int32 similar_items_appids = 6; + repeated .StoreItem similar_items = 7; + optional double similar_item_popularity_score = 8; +} + +message CStoreAppSimilarity_PrioritizeAppsForUser_Request { + optional fixed64 steamid = 1; + optional string country_code = 2; + repeated .StoreItemID ids = 3; + optional .StoreAppSimilarityPriorityOptions options = 4; + optional bool debug = 5; + optional bool include_owned_games = 6; +} + +message CStoreAppSimilarity_PrioritizeAppsForUser_Response { + repeated .CStoreAppSimilarity_PrioritizeAppsForUser_Response_ResultItem items = 1; +} + +message CStoreAppSimilarity_PrioritizeAppsForUser_Response_ResultItem { + optional .StoreItemID id = 1; + optional bool already_owned = 2; + optional double weight = 3; + optional double weight_before_dedupe = 4; + repeated .CStoreAppSimilarity_PrioritizeAppsForUser_Response_ResultItem_MatchDebugInfo debug_matches = 50; + optional .CStoreAppSimilarity_PrioritizeAppsForUser_Response_ResultItem_PopularityDebugInfo debug_popularity = 51; +} + +message CStoreAppSimilarity_PrioritizeAppsForUser_Response_ResultItem_MatchDebugInfo { + optional int32 source_app = 1; + optional double weight = 2; + optional double similarity = 3; +} + +message CStoreAppSimilarity_PrioritizeAppsForUser_Response_ResultItem_PopularityDebugInfo { + optional uint32 rank = 1; + optional double popularity_factor = 2; + optional double weight_before_popularity = 3; +} + +message StoreAppSimilarityPriorityOptions { + optional double tag_score_factor = 1 [default = 1]; + optional int32 playtime_max_seconds = 10 [default = 360000]; + optional int32 playtime_max_games = 11 [default = 3]; + optional double playtime_score_factor = 12 [default = 0.9]; + optional int32 popularity_factor = 20 [default = 5, (.description) = "enum"]; + optional int32 popularity_reciprocal = 21 [default = 10000]; + optional int64 popularity_base_score = 22 [default = 5000000]; +} + +service StoreAppSimilarity { + rpc IdentifyClustersFromPlaytime (.CStoreAppSimilarity_IdentifyClustersFromPlaytime_Request) returns (.CStoreAppSimilarity_IdentifyClustersFromPlaytime_Response); + rpc PrioritizeAppsForUser (.CStoreAppSimilarity_PrioritizeAppsForUser_Request) returns (.CStoreAppSimilarity_PrioritizeAppsForUser_Response); +} + diff --git a/Protobufs/webui/service_storebrowse.proto b/Protobufs/webui/service_storebrowse.proto new file mode 100644 index 0000000..3fe0d9e --- /dev/null +++ b/Protobufs/webui/service_storebrowse.proto @@ -0,0 +1,103 @@ +import "common.proto"; +import "common_base.proto"; + +message CHardwarePackageDetails { + optional uint32 packageid = 1; + optional bool inventory_available = 3; + optional bool high_pending_orders = 4; + optional bool account_restricted_from_purchasing = 5; + optional bool requires_reservation = 6; + optional uint32 rtime_estimated_notification = 7; + optional string notificaton_token = 8; + optional int32 reservation_state = 9; + optional bool expired = 10; + optional uint32 time_expires = 11; + optional uint32 time_reserved = 12; + optional bool allow_quantity_purchase = 13; + optional int32 max_quantity_per_purchase = 14; + optional bool allow_purchase_in_country = 15; + optional uint32 estimated_delivery_soonest_business_days = 17; + optional uint32 estimated_delivery_latest_business_days = 18; +} + +message CStoreBrowse_GetDLCForApps_Request { + optional .StoreBrowseContext context = 1; + optional .CStorePageFilter store_page_filter = 2; + repeated .StoreItemID appids = 3; + optional uint64 steamid = 4; +} + +message CStoreBrowse_GetDLCForApps_Response { + repeated .CStoreBrowse_GetDLCForApps_Response_DLCData dlc_data = 1; + repeated .CStoreBrowse_GetDLCForApps_Response_PlaytimeForApp playtime = 2; +} + +message CStoreBrowse_GetDLCForApps_Response_DLCData { + optional uint32 appid = 1; + optional uint32 parentappid = 2; + optional uint32 release_date = 3; + optional bool coming_soon = 4; + optional int64 price = 5; + optional uint32 discount = 6; + optional bool free = 7; +} + +message CStoreBrowse_GetDLCForApps_Response_PlaytimeForApp { + optional uint32 appid = 1; + optional uint32 playtime = 2; + optional uint32 last_played = 3; +} + +message CStoreBrowse_GetDLCForAppsSolr_Request { + optional .StoreBrowseContext context = 1; + repeated uint32 appids = 2; + optional string flavor = 3; + optional uint32 count = 4; + optional .CStorePageFilter store_page_filter = 5; +} + +message CStoreBrowse_GetDLCForAppsSolr_Response { + repeated .CStoreBrowse_GetDLCForAppsSolr_Response_DLCList dlc_lists = 1; +} + +message CStoreBrowse_GetDLCForAppsSolr_Response_DLCList { + optional uint32 parent_appid = 1; + repeated uint32 dlc_appids = 2; +} + +message CStoreBrowse_GetHardwareItems_Request { + repeated uint32 packageid = 1; + optional .StoreBrowseContext context = 2; +} + +message CStoreBrowse_GetHardwareItems_Response { + repeated .CHardwarePackageDetails details = 1; +} + +message CStoreBrowse_GetStoreCategories_Request { + optional string language = 1; + optional int32 elanguage = 2 [default = -1]; +} + +message CStoreBrowse_GetStoreCategories_Response { + repeated .CStoreBrowse_GetStoreCategories_Response_Category categories = 1; +} + +message CStoreBrowse_GetStoreCategories_Response_Category { + optional uint32 categoryid = 1; + optional int32 type = 2 [(.description) = "enum"]; + optional string internal_name = 3; + optional string display_name = 4; + optional string image_url = 5; + optional bool show_in_search = 6; + optional bool computed = 7; +} + +service StoreBrowse { + rpc GetDLCForApps (.CStoreBrowse_GetDLCForApps_Request) returns (.CStoreBrowse_GetDLCForApps_Response); + rpc GetDLCForAppsSolr (.CStoreBrowse_GetDLCForAppsSolr_Request) returns (.CStoreBrowse_GetDLCForAppsSolr_Response); + rpc GetHardwareItems (.CStoreBrowse_GetHardwareItems_Request) returns (.CStoreBrowse_GetHardwareItems_Response); + rpc GetItems (.CStoreBrowse_GetItems_Request) returns (.CStoreBrowse_GetItems_Response); + rpc GetStoreCategories (.CStoreBrowse_GetStoreCategories_Request) returns (.CStoreBrowse_GetStoreCategories_Response); +} + diff --git a/Protobufs/webui/service_storecatalog.proto b/Protobufs/webui/service_storecatalog.proto new file mode 100644 index 0000000..2ac230a --- /dev/null +++ b/Protobufs/webui/service_storecatalog.proto @@ -0,0 +1,19 @@ + +message CDeveloperPageToApps { + optional uint32 clan_account_id = 1; + repeated uint32 appid_list = 2; +} + +message CStoreCatalog_GetDevPageAllAppsLinked_Request { + repeated uint32 clan_account_ids = 1; + optional bool ignore_dlc = 2; +} + +message CStoreCatalog_GetDevPageAllAppsLinked_Response { + repeated .CDeveloperPageToApps results = 1; +} + +service StoreCatalog { + rpc GetDevPageAllAppsLinked (.CStoreCatalog_GetDevPageAllAppsLinked_Request) returns (.CStoreCatalog_GetDevPageAllAppsLinked_Response); +} + diff --git a/Protobufs/webui/service_storemarketing.proto b/Protobufs/webui/service_storemarketing.proto new file mode 100644 index 0000000..609d9a0 --- /dev/null +++ b/Protobufs/webui/service_storemarketing.proto @@ -0,0 +1,44 @@ +import "common.proto"; + +message CStoreMarketing_GetItemsToFeature_Request { + optional .StoreBrowseContext context = 1; + optional .StoreBrowseItemDataRequest data_request = 2; + optional .CStoreMarketing_GetItemsToFeature_Request_SpotlightFilter include_spotlights = 5; + optional bool include_dailydeals = 6; + optional int32 include_top_specials_count = 7; + optional bool include_purchase_recommendations = 8; + repeated .StoreItemID additional_purchase_item_ids = 9; +} + +message CStoreMarketing_GetItemsToFeature_Request_SpotlightFilter { + optional string location = 1; + optional string category = 2; + optional int32 genre_id = 3; +} + +message CStoreMarketing_GetItemsToFeature_Response { + repeated .CStoreMarketing_GetItemsToFeature_Response_Spotlight spotlights = 1; + repeated .CStoreMarketing_GetItemsToFeature_Response_FeaturedItem daily_deals = 2; + repeated .CStoreMarketing_GetItemsToFeature_Response_FeaturedItem specials = 3; + repeated .CStoreMarketing_GetItemsToFeature_Response_FeaturedItem purchase_recommendations = 4; +} + +message CStoreMarketing_GetItemsToFeature_Response_FeaturedItem { + optional .StoreItemID item_id = 1; + optional .StoreItem item = 2; +} + +message CStoreMarketing_GetItemsToFeature_Response_Spotlight { + optional .StoreItemID item_id = 1; + optional .StoreItem associated_item = 2; + optional string spotlight_template = 3; + optional string spotlight_title = 4; + optional string spotlight_body = 5; + optional string asset_url = 6; + optional string spotlight_link_url = 7; +} + +service StoreMarketing { + rpc GetItemsToFeature (.CStoreMarketing_GetItemsToFeature_Request) returns (.CStoreMarketing_GetItemsToFeature_Response); +} + diff --git a/Protobufs/webui/service_storequery.proto b/Protobufs/webui/service_storequery.proto new file mode 100644 index 0000000..461deec --- /dev/null +++ b/Protobufs/webui/service_storequery.proto @@ -0,0 +1,128 @@ +import "common.proto"; +import "common_base.proto"; + +message CStoreQuery_GetItemsByUserRecommendedTags_Request { + optional .CStorePageFilter filters = 2; + optional .StoreBrowseContext context = 5; + repeated .CStoreQuery_GetItemsByUserRecommendedTags_Request_Section sections = 6; +} + +message CStoreQuery_GetItemsByUserRecommendedTags_Request_Section { + optional int32 sort = 1 [default = 0, (.description) = "enum"]; + optional uint32 min_items = 2; + optional bool randomize = 3; + optional bool include_packages = 4 [default = false]; + optional bool include_bundles = 5 [default = false]; +} + +message CStoreQuery_GetItemsByUserRecommendedTags_Response { + repeated .CStoreQuery_GetItemsByUserRecommendedTags_Response_Section sections = 1; +} + +message CStoreQuery_GetItemsByUserRecommendedTags_Response_Section { + optional uint32 tagid = 1; + repeated .StoreItemID store_item_ids = 2; + optional string tag_name = 3; +} + +message CStoreQuery_Query_Request { + optional string query_name = 1; + optional .CStoreQueryParams query = 2; + optional .StoreBrowseContext context = 3; + optional .StoreBrowseItemDataRequest data_request = 4; + optional string override_country_code = 5; +} + +message CStoreQuery_Query_Response { + optional .CStoreQueryResultMetadata metadata = 1; + repeated .StoreItemID ids = 2; + repeated .StoreItem store_items = 3; +} + +message CStoreQuery_SearchSuggestions_Request { + optional string query_name = 1; + optional .StoreBrowseContext context = 2; + optional string search_term = 3; + optional uint32 max_results = 4; + optional .CStoreQueryFilters filters = 5; + optional .StoreBrowseItemDataRequest data_request = 6; + optional bool use_spellcheck = 7; + optional bool search_tags = 8; + optional bool search_creators = 9; + optional bool prefilter_creators = 10; +} + +message CStoreQuery_SearchSuggestions_Response { + optional .CStoreQueryResultMetadata metadata = 1; + repeated .StoreItemID ids = 2; + repeated .StoreItem store_items = 3; +} + +message CStoreQueryFilters { + optional bool released_only = 1; + optional bool coming_soon_only = 2; + optional .CStoreQueryFilters_TypeFilters type_filters = 3; + repeated .CStoreQueryFilters_TagFilter tagids_must_match = 10; + repeated int32 tagids_exclude = 11; + optional .CStoreQueryFilters_PriceFilters price_filters = 12; + repeated int32 content_descriptors_must_match = 15 [(.description) = "enum"]; + repeated int32 content_descriptors_excluded = 16 [(.description) = "enum"]; + optional int32 regional_top_n_sellers = 40; + optional int32 global_top_n_sellers = 41; + optional int32 regional_long_term_top_n_sellers = 42; + optional int32 global_long_term_top_n_sellers = 43; + optional .CStorePageFilter store_page_filter = 44; + repeated uint32 parent_appids = 45; +} + +message CStoreQueryFilters_PriceFilters { + optional bool only_free_items = 1; + optional bool exclude_free_items = 2; +} + +message CStoreQueryFilters_TagFilter { + repeated int32 tagids = 1; +} + +message CStoreQueryFilters_TypeFilters { + optional bool include_apps = 1; + optional bool include_packages = 2; + optional bool include_bundles = 3; + optional bool include_games = 10; + optional bool include_demos = 11; + optional bool include_mods = 12; + optional bool include_dlc = 13; + optional bool include_software = 14; + optional bool include_video = 15; + optional bool include_hardware = 16; + optional bool include_series = 17; + optional bool include_music = 18; +} + +message CStoreQueryParams { + optional int32 start = 1 [default = 0]; + optional int32 count = 2 [default = 10]; + optional int32 sort = 10 [default = 0, (.description) = "enum"]; + optional .CStoreQueryFilters filters = 20; +} + +message CStoreQueryPerResultMetadata { + optional .StoreItemID id = 1; + optional double score = 2; + optional bool spellcheck_generated_result = 3; +} + +message CStoreQueryResultMetadata { + optional int32 total_matching_records = 1; + optional int32 start = 2; + optional int32 count = 3; + repeated .CStoreQueryPerResultMetadata per_result_metadata = 4; + repeated string spellcheck_suggestions = 5; +} + +service StoreQuery { + rpc GetItemsByUserRecommendedTags (.CStoreQuery_GetItemsByUserRecommendedTags_Request) returns (.CStoreQuery_GetItemsByUserRecommendedTags_Response); + rpc Query (.CStoreQuery_Query_Request) returns (.CStoreQuery_Query_Response); + rpc SearchSuggestions (.CStoreQuery_SearchSuggestions_Request) returns (.CStoreQuery_SearchSuggestions_Response); +} + diff --git a/Protobufs/webui/service_storesales.proto b/Protobufs/webui/service_storesales.proto new file mode 100644 index 0000000..39d2b45 --- /dev/null +++ b/Protobufs/webui/service_storesales.proto @@ -0,0 +1,87 @@ +import "common_base.proto"; + +message CStore_GetUserVotes_Request { + optional uint32 sale_appid = 1; +} + +message CStore_GetUserVotes_Response { + repeated .SteamAwardsUserVote user_votes = 1; +} + +message CStore_GetVoteDefinitions_Request { + optional string language = 1; + optional uint32 sale_appid = 2; +} + +message CStore_GetVoteDefinitions_Response { + repeated .CStore_VoteDefinition votes = 1; +} + +message CStore_GetVoteDefinitionsForEvents_Response { + repeated .CStore_GetVoteDefinitionsForEvents_Response_Vote_Defintion definitions = 1; +} + +message CStore_GetVoteDefinitionsForEvents_Response_Vote_Defintion { + optional int32 voteid = 1; + optional uint32 appid = 2; +} + +message CStore_SetVote_Request { + optional int32 voteid = 1; + optional uint32 appid = 2; + optional uint32 sale_appid = 3; +} + +message CStore_SetVote_Response { + repeated .SteamAwardsUserVote user_votes = 1; +} + +message CStore_VoteDefinition { + optional int32 voteid = 1; + optional bool active = 2; + optional uint32 start_time = 3; + optional uint32 end_time = 4; + repeated .CStore_VoteDefinition_AppDefinition app_discounts = 5; + optional uint32 grouped_vote_options = 6; + repeated .CStore_VoteDefinition_GroupDefinition groups = 7; + optional string internal_name = 8; + optional .CStore_VoteDefinition_Localization localization = 9; + optional uint32 reveal_time = 10; + optional uint32 release_date_min = 11; + optional uint32 winner_appid = 12; + optional int32 flag = 13 [(.description) = "enum"]; + optional uint32 release_date_max = 14; + optional uint32 item_type = 15; +} + +message CStore_VoteDefinition_AppDefinition { + optional uint32 appid = 1; + optional uint32 discount = 2; +} + +message CStore_VoteDefinition_GroupDefinition { + optional uint32 groupid = 1; + optional string group_name = 2; + repeated .CStore_VoteDefinition_AppDefinition app_discounts = 3; +} + +message CStore_VoteDefinition_Localization { + optional string title = 1; + optional string title_linebreak = 2; + optional string title_award = 3; + optional string award_description = 4; +} + +message SteamAwardsUserVote { + optional uint32 voteid = 1; + optional uint32 appid = 2; + optional uint64 communityitemid = 3; +} + +service StoreSales { + rpc GetUserVotes (.CStore_GetUserVotes_Request) returns (.CStore_GetUserVotes_Response); + rpc GetVoteDefinitions (.CStore_GetVoteDefinitions_Request) returns (.CStore_GetVoteDefinitions_Response); + rpc GetVoteDefinitionsForEvents (.NotImplemented) returns (.CStore_GetVoteDefinitionsForEvents_Response); + rpc SetVote (.CStore_SetVote_Request) returns (.CStore_SetVote_Response); +} + diff --git a/Protobufs/webui/service_storetopsellers.proto b/Protobufs/webui/service_storetopsellers.proto new file mode 100644 index 0000000..fc80dac --- /dev/null +++ b/Protobufs/webui/service_storetopsellers.proto @@ -0,0 +1,44 @@ +import "common.proto"; + +message CStoreTopSellers_GetCountryList_Request { + optional string language = 1; +} + +message CStoreTopSellers_GetCountryList_Response { + repeated .CStoreTopSellers_GetCountryList_Response_Country countries = 1; +} + +message CStoreTopSellers_GetCountryList_Response_Country { + optional string country_code = 1; + optional string name = 2; +} + +message CStoreTopSellers_GetWeeklyTopSellers_Request { + optional string country_code = 1; + optional .StoreBrowseContext context = 2; + optional .StoreBrowseItemDataRequest data_request = 3; + optional uint32 start_date = 4; + optional int32 page_start = 5; + optional int32 page_count = 6 [default = 20]; +} + +message CStoreTopSellers_GetWeeklyTopSellers_Response { + optional uint32 start_date = 1; + repeated .CStoreTopSellers_GetWeeklyTopSellers_Response_TopSellersRank ranks = 2; + optional int32 next_page_start = 3; +} + +message CStoreTopSellers_GetWeeklyTopSellers_Response_TopSellersRank { + optional int32 rank = 1; + optional int32 appid = 2; + optional .StoreItem item = 3; + optional int32 last_week_rank = 4; + optional int32 consecutive_weeks = 5; + optional bool first_top100 = 6; +} + +service StoreTopSellers { + rpc GetCountryList (.CStoreTopSellers_GetCountryList_Request) returns (.CStoreTopSellers_GetCountryList_Response); + rpc GetWeeklyTopSellers (.CStoreTopSellers_GetWeeklyTopSellers_Request) returns (.CStoreTopSellers_GetWeeklyTopSellers_Response); +} + diff --git a/Protobufs/webui/service_systemmanager.proto b/Protobufs/webui/service_systemmanager.proto new file mode 100644 index 0000000..4849708 --- /dev/null +++ b/Protobufs/webui/service_systemmanager.proto @@ -0,0 +1,20 @@ + +message CSystemManager_Hibernate_Request { +} + +message CSystemManager_Hibernate_Response { +} + +message CSystemManager_WriteFile_Request { + optional string path = 1; + optional bytes data = 2; +} + +message CSystemManager_WriteFile_Response { +} + +service SystemManager { + rpc Hibernate (.CSystemManager_Hibernate_Request) returns (.CSystemManager_Hibernate_Response); + rpc WriteFile (.CSystemManager_WriteFile_Request) returns (.CSystemManager_WriteFile_Response); +} + diff --git a/Protobufs/webui/service_test_transporterror.proto b/Protobufs/webui/service_test_transporterror.proto new file mode 100644 index 0000000..73d6f1a --- /dev/null +++ b/Protobufs/webui/service_test_transporterror.proto @@ -0,0 +1,6 @@ +import "common.proto"; + +service Test_TransportError { + rpc InvalidService (.CTransportValidation_AppendToString_Request) returns (.CTransportValidation_AppendToString_Response); +} + diff --git a/Protobufs/webui/service_transportauth.proto b/Protobufs/webui/service_transportauth.proto new file mode 100644 index 0000000..9b56187 --- /dev/null +++ b/Protobufs/webui/service_transportauth.proto @@ -0,0 +1,17 @@ +import "common_base.proto"; + +message CTransportAuth_Authenticate_Request { + optional string auth_key = 1; +} + +message CTransportAuth_Authenticate_Response { +} + +message CTransportAuth_StartShutdown_Notification { +} + +service TransportAuth { + rpc Authenticate (.CTransportAuth_Authenticate_Request) returns (.CTransportAuth_Authenticate_Response); + rpc NotifyStartShutdown (.CTransportAuth_StartShutdown_Notification) returns (.NoResponse); +} + diff --git a/Protobufs/webui/service_transportvalidation.proto b/Protobufs/webui/service_transportvalidation.proto new file mode 100644 index 0000000..fa53eda --- /dev/null +++ b/Protobufs/webui/service_transportvalidation.proto @@ -0,0 +1,115 @@ +import "common.proto"; +import "common_base.proto"; + +message CTransportValidation_AddNumbers_Request { + repeated int32 numbers = 1; +} + +message CTransportValidation_AddNumbers_Response { + optional int32 accumulated = 1; +} + +message CTransportValidation_CountOrderedBytes_Request { + optional bytes ordered_bytes = 1; +} + +message CTransportValidation_CountOrderedBytes_Response { + optional int32 byte_count = 1; +} + +message CTransportValidation_GetLargeResponse_Request { + optional uint32 data_size = 1; +} + +message CTransportValidation_GetLargeResponse_Response { + optional bytes data = 1; +} + +message CTransportValidation_GetLastNotifyNumber_Request { +} + +message CTransportValidation_GetLastNotifyNumber_Response { + optional int32 last_notify_number = 1; +} + +message CTransportValidation_NotifyCount_Notification { + optional int32 num = 1; +} + +message CTransportValidation_NotifyLarge_Notification { + optional bytes data = 1; +} + +message CTransportValidation_NotifyNumber_Notification { + optional int32 number = 1; +} + +message CTransportValidation_NotifySyntheticEvent_Notification { + optional int32 sequence = 1; +} + +message CTransportValidation_NotifyText_Notification { + optional string text = 1; +} + +message CTransportValidation_RequestInvalidBool_Request { +} + +message CTransportValidation_RequestInvalidBool_Response { + optional int32 before = 1; + optional bool output = 2; + optional int32 after = 3; +} + +message CTransportValidation_RequestLargeNotification_Request { + optional uint32 data_size = 1; +} + +message CTransportValidation_RequestLargeNotification_Response { +} + +message CTransportValidation_ThreadedCount_Request { + optional int32 start_num = 1; + optional int32 end_num = 2; +} + +message CTransportValidation_ThreadedCount_Response { +} + +message CTransportValidation_TriggerSyntheticEvents_Request { + optional int32 count = 1; +} + +message CTransportValidation_TriggerSyntheticEvents_Response { +} + +message CTransportValidationClient_AddNumbers_Request { + repeated int32 numbers = 1; +} + +message CTransportValidationClient_AddNumbers_Response { + optional int32 accumulated = 1; +} + +service TransportValidation { + rpc AddNumbers (.CTransportValidation_AddNumbers_Request) returns (.CTransportValidation_AddNumbers_Response); + rpc AddNumbersStatic (.CTransportValidation_AddNumbers_Request) returns (.CTransportValidation_AddNumbers_Response); + rpc AppendToString (.CTransportValidation_AppendToString_Request) returns (.CTransportValidation_AppendToString_Response); + rpc CountOrderedBytes (.CTransportValidation_CountOrderedBytes_Request) returns (.CTransportValidation_CountOrderedBytes_Response); + rpc GetLargeResponse (.CTransportValidation_GetLargeResponse_Request) returns (.CTransportValidation_GetLargeResponse_Response); + rpc GetLastNotifyNumber (.CTransportValidation_GetLastNotifyNumber_Request) returns (.CTransportValidation_GetLastNotifyNumber_Response); + rpc NotifyCount (.CTransportValidation_NotifyCount_Notification) returns (.NoResponse); + rpc NotifyLarge (.CTransportValidation_NotifyLarge_Notification) returns (.NoResponse); + rpc NotifyNumber (.CTransportValidation_NotifyNumber_Notification) returns (.NoResponse); + rpc NotifySyntheticEvent (.CTransportValidation_NotifySyntheticEvent_Notification) returns (.NoResponse); + rpc NotifyText (.CTransportValidation_NotifyText_Notification) returns (.NoResponse); + rpc RequestInvalidBool (.CTransportValidation_RequestInvalidBool_Request) returns (.CTransportValidation_RequestInvalidBool_Response); + rpc RequestLargeNotification (.CTransportValidation_RequestLargeNotification_Request) returns (.CTransportValidation_RequestLargeNotification_Response); + rpc ThreadedCount (.CTransportValidation_ThreadedCount_Request) returns (.CTransportValidation_ThreadedCount_Response); + rpc TriggerSyntheticEvents (.CTransportValidation_TriggerSyntheticEvents_Request) returns (.CTransportValidation_TriggerSyntheticEvents_Response); +} + +service TransportValidationClient { + rpc AddNumbers (.CTransportValidationClient_AddNumbers_Request) returns (.CTransportValidationClient_AddNumbers_Response); +} + diff --git a/Protobufs/webui/service_twofactor.proto b/Protobufs/webui/service_twofactor.proto new file mode 100644 index 0000000..0ff5c4b --- /dev/null +++ b/Protobufs/webui/service_twofactor.proto @@ -0,0 +1,170 @@ +import "common_base.proto"; + +message CRemoveAuthenticatorViaChallengeContinue_Replacement_Token { + optional bytes shared_secret = 1; + optional fixed64 serial_number = 2; + optional string revocation_code = 3; + optional string uri = 4; + optional uint64 server_time = 5; + optional string account_name = 6; + optional string token_gid = 7; + optional bytes identity_secret = 8; + optional bytes secret_1 = 9; + optional int32 status = 10; + optional uint32 steamguard_scheme = 11; + optional fixed64 steamid = 12; +} + +message CTwoFactor_AddAuthenticator_Request { + optional fixed64 steamid = 1; + optional uint64 authenticator_time = 2; + optional fixed64 serial_number = 3; + optional uint32 authenticator_type = 4; + optional string device_identifier = 5; + repeated string http_headers = 7; + optional uint32 version = 8 [default = 1]; +} + +message CTwoFactor_AddAuthenticator_Response { + optional bytes shared_secret = 1; + optional fixed64 serial_number = 2; + optional string revocation_code = 3; + optional string uri = 4; + optional uint64 server_time = 5; + optional string account_name = 6; + optional string token_gid = 7; + optional bytes identity_secret = 8; + optional bytes secret_1 = 9; + optional int32 status = 10; + optional string phone_number_hint = 11; + optional int32 confirm_type = 12; +} + +message CTwoFactor_CreateEmergencyCodes_Response { + repeated string codes = 1; +} + +message CTwoFactor_DestroyEmergencyCodes_Response { +} + +message CTwoFactor_FinalizeAddAuthenticator_Request { + optional fixed64 steamid = 1; + optional string authenticator_code = 2; + optional uint64 authenticator_time = 3; + optional string activation_code = 4; + repeated string http_headers = 5; + optional bool validate_sms_code = 6; +} + +message CTwoFactor_FinalizeAddAuthenticator_Response { + optional bool success = 1; + optional bool want_more = 2; + optional uint64 server_time = 3; + optional int32 status = 4; +} + +message CTwoFactor_RemoveAuthenticator_Request { + optional string revocation_code = 2; + optional uint32 revocation_reason = 5; + optional uint32 steamguard_scheme = 6; + optional bool remove_all_steamguard_cookies = 7; +} + +message CTwoFactor_RemoveAuthenticator_Response { + optional bool success = 1; + optional uint64 server_time = 3; + optional uint32 revocation_attempts_remaining = 5; +} + +message CTwoFactor_RemoveAuthenticatorViaChallengeContinue_Request { + optional string sms_code = 1; + optional bool generate_new_token = 2; + optional uint32 version = 3 [default = 1]; +} + +message CTwoFactor_RemoveAuthenticatorViaChallengeContinue_Response { + optional bool success = 1; + optional .CRemoveAuthenticatorViaChallengeContinue_Replacement_Token replacement_token = 2; +} + +message CTwoFactor_RemoveAuthenticatorViaChallengeStart_Request { +} + +message CTwoFactor_RemoveAuthenticatorViaChallengeStart_Response { + optional bool success = 1; +} + +message CTwoFactor_SendEmail_Request { + optional fixed64 steamid = 1; + optional uint32 email_type = 2; + optional bool include_activation_code = 3; +} + +message CTwoFactor_SendEmail_Response { +} + +message CTwoFactor_Status_Request { + optional fixed64 steamid = 1; +} + +message CTwoFactor_Status_Response { + optional uint32 state = 1; + optional uint32 inactivation_reason = 2; + optional uint32 authenticator_type = 3; + optional bool authenticator_allowed = 4; + optional uint32 steamguard_scheme = 5; + optional string token_gid = 6; + optional bool email_validated = 7; + optional string device_identifier = 8; + optional uint32 time_created = 9; + optional uint32 revocation_attempts_remaining = 10; + optional string classified_agent = 11; + optional bool allow_external_authenticator = 12; + optional uint32 time_transferred = 13; + optional uint32 version = 14; +} + +message CTwoFactor_Time_Request { + optional uint64 sender_time = 1; +} + +message CTwoFactor_Time_Response { + optional uint64 server_time = 1; + optional uint64 skew_tolerance_seconds = 2; + optional uint64 large_time_jink = 3; + optional uint32 probe_frequency_seconds = 4; + optional uint32 adjusted_time_probe_frequency_seconds = 5; + optional uint32 hint_probe_frequency_seconds = 6; + optional uint32 sync_timeout = 7; + optional uint32 try_again_seconds = 8; + optional uint32 max_attempts = 9; +} + +message CTwoFactor_UpdateTokenVersion_Request { + optional fixed64 steamid = 1; + optional uint32 version = 2; + optional bytes signature = 3; +} + +message CTwoFactor_UpdateTokenVersion_Response { +} + +message CTwoFactor_ValidateToken_Response { + optional bool valid = 1; +} + +service TwoFactor { + rpc AddAuthenticator (.CTwoFactor_AddAuthenticator_Request) returns (.CTwoFactor_AddAuthenticator_Response); + rpc CreateEmergencyCodes (.NotImplemented) returns (.CTwoFactor_CreateEmergencyCodes_Response); + rpc DestroyEmergencyCodes (.NotImplemented) returns (.CTwoFactor_DestroyEmergencyCodes_Response); + rpc FinalizeAddAuthenticator (.CTwoFactor_FinalizeAddAuthenticator_Request) returns (.CTwoFactor_FinalizeAddAuthenticator_Response); + rpc QueryStatus (.CTwoFactor_Status_Request) returns (.CTwoFactor_Status_Response); + rpc QueryTime (.CTwoFactor_Time_Request) returns (.CTwoFactor_Time_Response); + rpc RemoveAuthenticator (.CTwoFactor_RemoveAuthenticator_Request) returns (.CTwoFactor_RemoveAuthenticator_Response); + rpc RemoveAuthenticatorViaChallengeContinue (.CTwoFactor_RemoveAuthenticatorViaChallengeContinue_Request) returns (.CTwoFactor_RemoveAuthenticatorViaChallengeContinue_Response); + rpc RemoveAuthenticatorViaChallengeStart (.CTwoFactor_RemoveAuthenticatorViaChallengeStart_Request) returns (.CTwoFactor_RemoveAuthenticatorViaChallengeStart_Response); + rpc SendEmail (.CTwoFactor_SendEmail_Request) returns (.CTwoFactor_SendEmail_Response); + rpc UpdateTokenVersion (.CTwoFactor_UpdateTokenVersion_Request) returns (.CTwoFactor_UpdateTokenVersion_Response); + rpc ValidateToken (.NotImplemented) returns (.CTwoFactor_ValidateToken_Response); +} + diff --git a/Protobufs/webui/service_useraccount.proto b/Protobufs/webui/service_useraccount.proto new file mode 100644 index 0000000..fbbefe4 --- /dev/null +++ b/Protobufs/webui/service_useraccount.proto @@ -0,0 +1,142 @@ + +message CUserAccount_CancelLicenseForApp_Request { + optional uint32 appid = 1; +} + +message CUserAccount_CancelLicenseForApp_Response { +} + +message CUserAccount_CreateFriendInviteToken_Request { + optional uint32 invite_limit = 1; + optional uint32 invite_duration = 2; + optional string invite_note = 3; +} + +message CUserAccount_CreateFriendInviteToken_Response { + optional string invite_token = 1; + optional uint64 invite_limit = 2; + optional uint64 invite_duration = 3; + optional fixed32 time_created = 4; + optional bool valid = 5; +} + +message CUserAccount_GetAccountLinkStatus_Request { +} + +message CUserAccount_GetAccountLinkStatus_Response { + optional uint32 pwid = 1; + optional uint32 identity_verification = 2; + optional bool performed_age_verification = 3; +} + +message CUserAccount_GetAvailableValveDiscountPromotions_Request { + optional string country_code = 1; +} + +message CUserAccount_GetAvailableValveDiscountPromotions_Response { + repeated .CUserAccount_GetAvailableValveDiscountPromotions_Response_ValveDiscountPromotionDetails promotions = 1; +} + +message CUserAccount_GetAvailableValveDiscountPromotions_Response_ValveDiscountPromotionDetails { + optional uint32 promotionid = 1; + optional string promotion_description = 2; + optional int64 minimum_cart_amount = 3; + optional int64 minimum_cart_amount_for_display = 4; + optional int64 discount_amount = 5; + optional int32 currency_code = 6; + optional int32 available_use_count = 7; + optional int32 promotional_discount_type = 8; + optional int32 loyalty_reward_id = 9; + optional string localized_name_token = 10; + optional int32 max_use_count = 11; +} + +message CUserAccount_GetClientWalletDetails_Request { + optional bool include_balance_in_usd = 1; + optional int32 wallet_region = 2 [default = 1]; + optional bool include_formatted_balance = 3; +} + +message CUserAccount_GetFriendInviteTokens_Request { +} + +message CUserAccount_GetFriendInviteTokens_Response { + repeated .CUserAccount_CreateFriendInviteToken_Response tokens = 1; +} + +message CUserAccount_GetUserCountry_Request { + optional fixed64 steamid = 1; +} + +message CUserAccount_GetUserCountry_Response { + optional string country = 1; +} + +message CUserAccount_GetWalletDetails_Response { + optional bool has_wallet = 1; + optional string user_country_code = 2; + optional string wallet_country_code = 3; + optional string wallet_state = 4; + optional int64 balance = 5; + optional int64 delayed_balance = 6; + optional int32 currency_code = 7; + optional uint32 time_most_recent_txn = 8; + optional uint64 most_recent_txnid = 9; + optional int64 balance_in_usd = 10; + optional int64 delayed_balance_in_usd = 11; + optional bool has_wallet_in_other_regions = 12; + repeated int32 other_regions = 13; + optional string formatted_balance = 14; + optional string formatted_delayed_balance = 15; + optional int32 delayed_balance_available_min_time = 16; + optional int32 delayed_balance_available_max_time = 17; + optional int32 delayed_balance_newest_source = 18; +} + +message CUserAccount_RedeemFriendInviteToken_Request { + optional fixed64 steamid = 1; + optional string invite_token = 2; +} + +message CUserAccount_RedeemFriendInviteToken_Response { +} + +message CUserAccount_RegisterCompatTool_Request { + optional uint32 compat_tool = 1; +} + +message CUserAccount_RegisterCompatTool_Response { +} + +message CUserAccount_RevokeFriendInviteToken_Request { + optional string invite_token = 1; +} + +message CUserAccount_RevokeFriendInviteToken_Response { +} + +message CUserAccount_ViewFriendInviteToken_Request { + optional fixed64 steamid = 1; + optional string invite_token = 2; +} + +message CUserAccount_ViewFriendInviteToken_Response { + optional bool valid = 1; + optional uint64 steamid = 2; + optional uint64 invite_duration = 3; +} + +service UserAccount { + rpc CancelLicenseForApp (.CUserAccount_CancelLicenseForApp_Request) returns (.CUserAccount_CancelLicenseForApp_Response); + rpc CreateFriendInviteToken (.CUserAccount_CreateFriendInviteToken_Request) returns (.CUserAccount_CreateFriendInviteToken_Response); + rpc GetAccountLinkStatus (.CUserAccount_GetAccountLinkStatus_Request) returns (.CUserAccount_GetAccountLinkStatus_Response); + rpc GetAvailableValveDiscountPromotions (.CUserAccount_GetAvailableValveDiscountPromotions_Request) returns (.CUserAccount_GetAvailableValveDiscountPromotions_Response); + rpc GetClientWalletDetails (.CUserAccount_GetClientWalletDetails_Request) returns (.CUserAccount_GetWalletDetails_Response); + rpc GetFriendInviteTokens (.CUserAccount_GetFriendInviteTokens_Request) returns (.CUserAccount_GetFriendInviteTokens_Response); + rpc GetUserCountry (.CUserAccount_GetUserCountry_Request) returns (.CUserAccount_GetUserCountry_Response); + rpc RedeemFriendInviteToken (.CUserAccount_RedeemFriendInviteToken_Request) returns (.CUserAccount_RedeemFriendInviteToken_Response); + rpc RegisterCompatTool (.CUserAccount_RegisterCompatTool_Request) returns (.CUserAccount_RegisterCompatTool_Response); + rpc RevokeFriendInviteToken (.CUserAccount_RevokeFriendInviteToken_Request) returns (.CUserAccount_RevokeFriendInviteToken_Response); + rpc ViewFriendInviteToken (.CUserAccount_ViewFriendInviteToken_Request) returns (.CUserAccount_ViewFriendInviteToken_Response); +} + diff --git a/Protobufs/webui/service_usergameactivity.proto b/Protobufs/webui/service_usergameactivity.proto new file mode 100644 index 0000000..1161cf3 --- /dev/null +++ b/Protobufs/webui/service_usergameactivity.proto @@ -0,0 +1,34 @@ +import "common_base.proto"; + +message CUserGameActivity_Event { + optional uint32 timestamp = 2; + optional int32 event_type = 3 [(.description) = "enum"]; + optional uint32 event_sub_type = 4; + optional int64 data1 = 5; + optional int64 data2 = 6; + optional int64 data3 = 7; + optional int64 data4 = 8; + optional uint32 item_appid = 10; + optional uint64 item_contextid = 11; + optional uint64 item_assetid = 12; + optional bytes proto_data = 13; +} + +message CUserGameActivity_GetActivity_Request { + optional fixed64 steamid = 1; + optional uint32 appid = 2; + optional int32 count = 3; + optional uint32 starttime = 4; + optional uint32 endtime = 5; +} + +message CUserGameActivity_GetActivity_Response { + optional fixed64 steamid = 1; + optional uint32 appid = 2; + repeated .CUserGameActivity_Event events = 3; +} + +service UserGameActivity { + rpc GetActivity (.CUserGameActivity_GetActivity_Request) returns (.CUserGameActivity_GetActivity_Response); +} + diff --git a/Protobufs/webui/service_usergamenotes.proto b/Protobufs/webui/service_usergamenotes.proto new file mode 100644 index 0000000..091af09 --- /dev/null +++ b/Protobufs/webui/service_usergamenotes.proto @@ -0,0 +1,70 @@ + +message CUserGameNote { + optional string id = 1; + optional uint32 appid = 2; + optional string shortcut_name = 3; + optional uint32 shortcutid = 4; + optional uint32 ordinal = 5; + optional uint32 time_created = 6; + optional uint32 time_modified = 7; + optional string title = 8; + optional string content = 9; +} + +message CUserGameNotes_DeleteNote_Request { + optional uint32 appid = 1; + optional string shortcut_name = 2; + optional uint32 shortcutid = 3; + optional string note_id = 4; +} + +message CUserGameNotes_DeleteNote_Response { +} + +message CUserGameNotes_GetGamesWithNotes_Request { +} + +message CUserGameNotes_GetGamesWithNotes_Response { + repeated .CUserGameNotes_GetGamesWithNotes_Response_GameWithNotes games_with_notes = 1; +} + +message CUserGameNotes_GetGamesWithNotes_Response_GameWithNotes { + optional uint32 appid = 1; + optional uint32 shortcutid = 2; + optional string shortcut_name = 3; + optional uint32 last_modified = 4; + optional uint32 note_count = 5; +} + +message CUserGameNotes_GetNotesForGame_Request { + optional uint32 appid = 1; + optional string shortcut_name = 2; + optional uint32 shortcutid = 3; + optional bool include_content = 4; +} + +message CUserGameNotes_GetNotesForGame_Response { + repeated .CUserGameNote notes = 1; +} + +message CUserGameNotes_SaveNote_Request { + optional uint32 appid = 1; + optional string shortcut_name = 2; + optional uint32 shortcutid = 3; + optional string note_id = 4; + optional bool create_new = 5; + optional string title = 6; + optional string content = 7; +} + +message CUserGameNotes_SaveNote_Response { + optional string note_id = 1; +} + +service UserGameNotes { + rpc DeleteNote (.CUserGameNotes_DeleteNote_Request) returns (.CUserGameNotes_DeleteNote_Response); + rpc GetGamesWithNotes (.CUserGameNotes_GetGamesWithNotes_Request) returns (.CUserGameNotes_GetGamesWithNotes_Response); + rpc GetNotesForGame (.CUserGameNotes_GetNotesForGame_Request) returns (.CUserGameNotes_GetNotesForGame_Response); + rpc SaveNote (.CUserGameNotes_SaveNote_Request) returns (.CUserGameNotes_SaveNote_Response); +} + diff --git a/Protobufs/webui/service_usernews.proto b/Protobufs/webui/service_usernews.proto new file mode 100644 index 0000000..9369a7b --- /dev/null +++ b/Protobufs/webui/service_usernews.proto @@ -0,0 +1,69 @@ + +message CUserNews_Event { + optional uint32 eventtype = 1; + optional uint32 eventtime = 2; + optional fixed64 steamid_actor = 3; + optional fixed64 steamid_target = 4; + optional fixed64 gameid = 5; + optional uint32 packageid = 6; + optional uint32 shortcutid = 7; + repeated string achievement_names = 8; + optional fixed64 clan_eventid = 9; + optional fixed64 clan_announcementid = 10; + optional fixed64 publishedfileid = 11; + optional uint32 event_last_mod_time = 12; + repeated uint32 appids = 13; + optional uint32 event_post_time = 14; +} + +message CUserNews_GetAppDetailsSpotlight_Request { + optional uint32 appid = 1; + optional bool include_already_seen = 2; +} + +message CUserNews_GetAppDetailsSpotlight_Response { + repeated .CUserNews_GetAppDetailsSpotlight_Response_FeaturedEvent events = 1; +} + +message CUserNews_GetAppDetailsSpotlight_Response_FeaturedEvent { + optional uint32 event_type = 1; + optional uint32 event_time = 2; + optional fixed64 clan_id = 3; + optional fixed64 clan_announcementid = 4; + optional uint32 appid = 5; + optional uint32 rtime32_last_modified = 6; +} + +message CUserNews_GetUserNews_Request { + optional uint32 count = 1; + optional uint32 starttime = 2; + optional uint32 endtime = 3; + optional string language = 4; + optional uint32 filterflags = 5; + optional uint32 filterappid = 6; +} + +message CUserNews_GetUserNews_Response { + repeated .CUserNews_Event news = 1; + repeated .CUserNewsAchievementDisplayData achievement_display_data = 2; +} + +message CUserNewsAchievementDisplayData { + optional uint32 appid = 1; + repeated .CUserNewsAchievementDisplayData_CAchievement achievements = 2; +} + +message CUserNewsAchievementDisplayData_CAchievement { + optional string name = 1; + optional string display_name = 2; + optional string display_description = 3; + optional string icon = 4; + optional float unlocked_pct = 5; + optional bool hidden = 6; +} + +service UserNews { + rpc GetAppDetailsSpotlight (.CUserNews_GetAppDetailsSpotlight_Request) returns (.CUserNews_GetAppDetailsSpotlight_Response); + rpc GetUserNews (.CUserNews_GetUserNews_Request) returns (.CUserNews_GetUserNews_Response); +} + diff --git a/Protobufs/webui/service_userreviews.proto b/Protobufs/webui/service_userreviews.proto new file mode 100644 index 0000000..0f9dae1 --- /dev/null +++ b/Protobufs/webui/service_userreviews.proto @@ -0,0 +1,103 @@ +import "common_base.proto"; + +message CUserReviews_GetFriendsRecommendedApp_Request { + optional uint32 appid = 1; +} + +message CUserReviews_GetFriendsRecommendedApp_Response { + repeated uint32 accountids_recommended = 1; + repeated uint32 accountids_not_recommended = 3; +} + +message CUserReviews_GetIndividualRecommendations_Request { + repeated .CUserReviews_GetIndividualRecommendations_Request_RecommendationRequest requests = 1; +} + +message CUserReviews_GetIndividualRecommendations_Request_RecommendationRequest { + optional uint64 steamid = 1; + optional uint32 appid = 2; +} + +message CUserReviews_GetIndividualRecommendations_Response { + repeated .RecommendationDetails recommendations = 1; +} + +message CUserReviews_Recommendation_LoyaltyReaction { + optional uint32 reaction_type = 1; + optional uint32 count = 2; +} + +message CUserReviews_Update_Request { + optional uint64 recommendationid = 1; + optional string review_text = 2; + optional bool voted_up = 3; + optional bool is_public = 4; + optional string language = 5; + optional bool is_in_early_access = 6; + optional bool received_compensation = 7; + optional bool comments_disabled = 8; + optional bool hide_in_steam_china = 9; +} + +message CUserReviews_Update_Response { +} + +message RecommendationDetails { + optional uint64 recommendationid = 1; + optional uint64 steamid = 2; + optional uint32 appid = 3; + optional string review = 4; + optional uint32 time_created = 5; + optional uint32 time_updated = 6; + optional uint32 votes_up = 7; + optional uint32 votes_down = 8; + optional float vote_score = 9; + optional string language = 10; + optional uint32 comment_count = 11; + optional bool voted_up = 12; + optional bool is_public = 13; + optional bool moderator_hidden = 14; + optional int32 flagged_by_developer = 15 [(.description) = "enum"]; + optional uint32 report_score = 16; + optional uint64 steamid_moderator = 17; + optional uint64 steamid_developer = 18; + optional uint64 steamid_dev_responder = 19; + optional string developer_response = 20; + optional uint32 time_developer_responded = 21; + optional bool developer_flag_cleared = 22; + optional bool written_during_early_access = 23; + optional uint32 votes_funny = 24; + optional bool received_compensation = 25; + optional bool unverified_purchase = 26; + repeated int32 review_qualities = 27 [(.description) = "enum"]; + //optional int32 review_quality = 27 [(.description) = "enum"]; + optional float weighted_vote_score = 28; + optional string moderation_note = 29; + optional int32 payment_method = 30; + optional int32 playtime_2weeks = 31; + optional int32 playtime_forever = 32; + optional int32 last_playtime = 33; + optional bool comments_disabled = 34; + optional int32 playtime_at_review = 35; + optional bool approved_for_china = 36; + optional int32 ban_check_result = 37 [(.description) = "enum"]; + optional bool refunded = 38; + optional int32 account_score_spend = 39; + repeated .CUserReviews_Recommendation_LoyaltyReaction reactions = 40; + optional string ipaddress = 41; + optional bool hidden_in_steam_china = 42; + optional string steam_china_location = 43; + optional uint32 category_ascii_pct = 44; + optional uint32 category_meme_pct = 45; + optional uint32 category_offtopic_pct = 46; + optional uint32 category_uninformative_pct = 47; + optional uint32 category_votefarming_pct = 48; + optional int32 deck_playtime_at_review = 49; +} + +service UserReviews { + rpc GetFriendsRecommendedApp (.CUserReviews_GetFriendsRecommendedApp_Request) returns (.CUserReviews_GetFriendsRecommendedApp_Response); + rpc GetIndividualRecommendations (.CUserReviews_GetIndividualRecommendations_Request) returns (.CUserReviews_GetIndividualRecommendations_Response); + rpc Update (.CUserReviews_Update_Request) returns (.CUserReviews_Update_Response); +} + diff --git a/Protobufs/webui/service_video.proto b/Protobufs/webui/service_video.proto new file mode 100644 index 0000000..1a9af72 --- /dev/null +++ b/Protobufs/webui/service_video.proto @@ -0,0 +1,50 @@ +import "common_base.proto"; + +message CVideo_ClientGetVideoURL_Request { + optional uint64 video_id = 1; + optional uint32 client_cellid = 2; +} + +message CVideo_ClientGetVideoURL_Response { + optional uint64 video_id = 1; + optional string video_url = 2; +} + +message CVideo_GetVideoBookmarks_Request { + repeated uint32 appids = 1; + optional uint32 updated_since = 2; +} + +message CVideo_GetVideoBookmarks_Response { + repeated .VideoBookmark bookmarks = 1; +} + +message CVideo_SetVideoBookmark_Notification { + repeated .VideoBookmark bookmarks = 1; +} + +message CVideo_UnlockedH264_Notification { + optional bytes encryption_key = 1; +} + +message VideoBookmark { + optional uint32 app_id = 1; + optional uint32 playback_position_in_seconds = 2; + optional uint64 video_track_id = 3; + optional uint64 audio_track_id = 4; + optional uint64 timedtext_track_id = 5; + optional uint32 last_modified = 6; + optional bool hide_from_watch_history = 7 [default = false]; + optional bool hide_from_library = 8 [default = false]; +} + +service Video { + rpc ClientGetVideoURL (.CVideo_ClientGetVideoURL_Request) returns (.CVideo_ClientGetVideoURL_Response); + rpc GetVideoBookmarks (.CVideo_GetVideoBookmarks_Request) returns (.CVideo_GetVideoBookmarks_Response); + rpc SetVideoBookmark (.CVideo_SetVideoBookmark_Notification) returns (.NoResponse); +} + +service VideoClient { + rpc NotifyUnlockedH264 (.CVideo_UnlockedH264_Notification) returns (.NoResponse); +} + diff --git a/Protobufs/webui/service_videoclip.proto b/Protobufs/webui/service_videoclip.proto new file mode 100644 index 0000000..5e955e9 --- /dev/null +++ b/Protobufs/webui/service_videoclip.proto @@ -0,0 +1,62 @@ +import "common.proto"; + +message CVideo_BeginGameRecordingSegmentsUpload_Request { + optional uint64 recording_id = 1; + optional string component_name = 2; + optional string representation_name = 3; + repeated .CVideo_GameRecordingSegmentInfo segments_to_store = 4; +} + +message CVideo_BeginGameRecordingSegmentsUpload_Response { + repeated .CVideo_GameRecordingSegmentUploadInfo segments_needed = 1; + optional bool call_again = 2; +} + +message CVideo_CommitGameRecordingSegmentsUpload_Request { + optional uint64 recording_id = 1; + optional string component_name = 2; + optional string representation_name = 3; + optional uint32 first_segment_number = 4; + optional uint32 num_segments = 5; + optional uint32 upload_result = 6; +} + +message CVideo_CommitGameRecordingSegmentsUpload_Response { +} + +message CVideo_GameRecordingCommitSegmentUploads_Request { + optional uint64 recording_id = 1; + repeated .CVideo_GameRecordingSegmentInfo segments_uploaded = 2; +} + +message CVideo_GameRecordingCommitSegmentUploads_Response { +} + +message CVideo_GameRecordingGetNextBatchOfSegmentsToUpload_Request { + optional uint64 recording_id = 1; +} + +message CVideo_GameRecordingGetNextBatchOfSegmentsToUpload_Response { + repeated .CVideo_GameRecordingSegmentUploadInfo segments_needed = 1; +} + +message CVideo_GameRecordingSegmentUploadInfo { + optional .CVideo_GameRecordingSegmentInfo segment_info = 1; + optional string url_host = 2; + optional string url_path = 3; + optional bool use_https = 4; + repeated .CVideo_GameRecordingSegmentUploadInfo_HTTPHeaders request_headers = 5; +} + +message CVideo_GameRecordingSegmentUploadInfo_HTTPHeaders { + optional string name = 1; + optional string value = 2; +} + +service VideoClip { + rpc BeginGameRecordingSegmentsUpload (.CVideo_BeginGameRecordingSegmentsUpload_Request) returns (.CVideo_BeginGameRecordingSegmentsUpload_Response); + rpc CommitGameRecordingSegmentsUpload (.CVideo_CommitGameRecordingSegmentsUpload_Request) returns (.CVideo_CommitGameRecordingSegmentsUpload_Response); + rpc CommitSegmentUploads (.CVideo_GameRecordingCommitSegmentUploads_Request) returns (.CVideo_GameRecordingCommitSegmentUploads_Response); + rpc GetNextBatchOfSegmentsToUpload (.CVideo_GameRecordingGetNextBatchOfSegmentsToUpload_Request) returns (.CVideo_GameRecordingGetNextBatchOfSegmentsToUpload_Response); +} + diff --git a/Protobufs/webui/service_voicechat.proto b/Protobufs/webui/service_voicechat.proto new file mode 100644 index 0000000..33db1c3 --- /dev/null +++ b/Protobufs/webui/service_voicechat.proto @@ -0,0 +1,152 @@ +import "common_base.proto"; + +message CVoiceChat_AllMembersStatus_Notification { + optional fixed64 voice_chatid = 1; + repeated .CVoiceChat_UserVoiceStatus_Notification users = 2; +} + +message CVoiceChat_AnswerOneOnOneChat_Request { + optional fixed64 voice_chatid = 1; + optional fixed64 steamid_partner = 2; + optional bool accepted_request = 3; +} + +message CVoiceChat_AnswerOneOnOneChat_Response { +} + +message CVoiceChat_EndOneOnOneChat_Request { + optional fixed64 steamid_partner = 1; +} + +message CVoiceChat_EndOneOnOneChat_Response { +} + +message CVoiceChat_LeaveOneOnOneChat_Request { + optional fixed64 steamid_partner = 1; + optional fixed64 voice_chatid = 2; +} + +message CVoiceChat_LeaveOneOnOneChat_Response { +} + +message CVoiceChat_LeaveVoiceChat_Request { + optional fixed64 voice_chatid = 1; +} + +message CVoiceChat_LeaveVoiceChat_Response { +} + +message CVoiceChat_OneOnOneChatRequested_Notification { + optional fixed64 voice_chatid = 1; + optional fixed64 steamid_partner = 2; +} + +message CVoiceChat_OneOnOneChatRequestResponse_Notification { + optional fixed64 voicechat_id = 1; + optional fixed64 steamid_partner = 2; + optional bool accepted_request = 3; +} + +message CVoiceChat_RequestOneOnOneChat_Request { + optional fixed64 steamid_partner = 1; +} + +message CVoiceChat_RequestOneOnOneChat_Response { + optional fixed64 voice_chatid = 1; +} + +message CVoiceChat_UpdateUserVideoStatus_Request { + optional fixed64 voice_chatid = 1; + optional fixed64 user_steamid = 2; + optional bool accept_webrtc_video = 3; +} + +message CVoiceChat_UpdateUserVideoStatus_Response { +} + +message CVoiceChat_UpdateVoiceChatWebRTCData_Request { + optional fixed64 voice_chatid = 1; + optional uint32 ip_webrtc_server = 2; + optional uint32 port_webrtc_server = 3; + optional uint32 ip_webrtc_client = 4; + optional uint32 port_webrtc_client = 5; + optional uint32 ssrc_my_sending_stream = 6; + optional string user_agent = 7; + optional bool has_audio_worklets_support = 8; + optional bool has_webrtc_data_channel = 9; + optional bool accepts_webrtc_video = 10; + optional bool sends_webrtc_video = 11; +} + +message CVoiceChat_UpdateVoiceChatWebRTCData_Response { + optional bool send_client_voice_logs = 1; +} + +message CVoiceChat_UploadClientVoiceChatLogs_Request { + optional fixed64 voice_chatid = 1; + optional string client_voice_logs_new_lines = 2; +} + +message CVoiceChat_UploadClientVoiceChatLogs_Response { +} + +message CVoiceChat_UserJoinedVoiceChat_Notification { + optional fixed64 voice_chatid = 1; + optional fixed64 user_steamid = 2; + optional uint64 chatid = 3; + optional fixed64 one_on_one_steamid_lower = 4; + optional fixed64 one_on_one_steamid_higher = 5; + optional uint64 chat_group_id = 6; + optional uint32 user_sessionid = 7; +} + +message CVoiceChat_UserLeftVoiceChat_Notification { + optional fixed64 voice_chatid = 1; + optional fixed64 user_steamid = 2; + optional uint64 chatid = 3; + optional fixed64 one_on_one_steamid_lower = 4; + optional fixed64 one_on_one_steamid_higher = 5; + optional uint64 chat_group_id = 6; + optional uint32 user_sessionid = 7; +} + +message CVoiceChat_UserVoiceStatus_Notification { + optional fixed64 voice_chatid = 1; + optional fixed64 user_steamid = 2; + optional bool user_muted_mic_locally = 3; + optional bool user_muted_output_locally = 4; + optional bool user_has_no_mic_for_session = 5; + optional int32 user_webaudio_sample_rate = 6; + optional bool user_sends_video = 7; +} + +message CVoiceChat_VoiceChatEnded_Notification { + optional fixed64 voice_chatid = 1; + optional fixed64 one_on_one_steamid_lower = 2; + optional fixed64 one_on_one_steamid_higher = 3; + optional uint64 chatid = 4; + optional uint64 chat_group_id = 5; +} + +service VoiceChat { + rpc AnswerOneOnOneChat (.CVoiceChat_AnswerOneOnOneChat_Request) returns (.CVoiceChat_AnswerOneOnOneChat_Response); + rpc EndOneOnOneChat (.CVoiceChat_EndOneOnOneChat_Request) returns (.CVoiceChat_EndOneOnOneChat_Response); + rpc LeaveOneOnOneChat (.CVoiceChat_LeaveOneOnOneChat_Request) returns (.CVoiceChat_LeaveOneOnOneChat_Response); + rpc LeaveVoiceChat (.CVoiceChat_LeaveVoiceChat_Request) returns (.CVoiceChat_LeaveVoiceChat_Response); + rpc NotifyUserVoiceStatus (.CVoiceChat_UserVoiceStatus_Notification) returns (.NoResponse); + rpc RequestOneOnOneChat (.CVoiceChat_RequestOneOnOneChat_Request) returns (.CVoiceChat_RequestOneOnOneChat_Response); + rpc UpdateUserVideoStatus (.CVoiceChat_UpdateUserVideoStatus_Request) returns (.CVoiceChat_UpdateUserVideoStatus_Response); + rpc UpdateVoiceChatWebRTCData (.CVoiceChat_UpdateVoiceChatWebRTCData_Request) returns (.CVoiceChat_UpdateVoiceChatWebRTCData_Response); + rpc UploadClientVoiceChatLogs (.CVoiceChat_UploadClientVoiceChatLogs_Request) returns (.CVoiceChat_UploadClientVoiceChatLogs_Response); +} + +service VoiceChatClient { + rpc NotifyAllUsersVoiceStatus (.CVoiceChat_AllMembersStatus_Notification) returns (.NoResponse); + rpc NotifyOneOnOneChatRequested (.CVoiceChat_OneOnOneChatRequested_Notification) returns (.NoResponse); + rpc NotifyOneOnOneChatResponse (.CVoiceChat_OneOnOneChatRequestResponse_Notification) returns (.NoResponse); + rpc NotifyUserJoinedVoiceChat (.CVoiceChat_UserJoinedVoiceChat_Notification) returns (.NoResponse); + rpc NotifyUserLeftVoiceChat (.CVoiceChat_UserLeftVoiceChat_Notification) returns (.NoResponse); + rpc NotifyUserVoiceStatus (.CVoiceChat_UserVoiceStatus_Notification) returns (.NoResponse); + rpc NotifyVoiceChatEnded (.CVoiceChat_VoiceChatEnded_Notification) returns (.NoResponse); +} + diff --git a/Protobufs/webui/service_webrtc.proto b/Protobufs/webui/service_webrtc.proto new file mode 100644 index 0000000..7347851 --- /dev/null +++ b/Protobufs/webui/service_webrtc.proto @@ -0,0 +1,65 @@ +import "common_base.proto"; + +message CWebRTC_WebRTCSessionConnected_Notification { + optional uint32 ssrc = 1; + optional uint32 client_ip = 2; + optional uint32 client_port = 3; + optional uint32 server_ip = 4; + optional uint32 server_port = 5; +} + +message CWebRTC_WebRTCUpdateRemoteDescription_Notification { + optional string remote_description = 1; + optional uint64 remote_description_version = 2; + repeated .CWebRTC_WebRTCUpdateRemoteDescription_Notification_CSSRCToAccountIDMapping ssrcs_to_accountids = 3; +} + +message CWebRTC_WebRTCUpdateRemoteDescription_Notification_CSSRCToAccountIDMapping { + optional uint32 ssrc = 1; + optional uint32 accountid = 2; +} + +message CWebRTCClient_AcknowledgeUpdatedRemoteDescription_Request { + optional uint32 ip_webrtc_server = 1; + optional uint32 port_webrtc_server = 2; + optional uint32 ip_webrtc_session_client = 3; + optional uint32 port_webrtc_session_client = 4; + optional uint64 remote_description_version = 5; +} + +message CWebRTCClient_AcknowledgeUpdatedRemoteDescription_Response { +} + +message CWebRTCClient_InitiateWebRTCConnection_Request { + optional string sdp = 1; + optional string browser_name = 2; + optional string browser_version = 3; +} + +message CWebRTCClient_InitiateWebRTCConnection_Response { + optional string remote_description = 1; +} + +message CWebRTCClient_UpdateWebRTCConnection_Request { + optional uint32 ip_webrtc_server = 1; + optional uint32 port_webrtc_server = 2; + optional uint32 ip_webrtc_session_client = 3; + optional uint32 port_webrtc_session_client = 4; + optional string sdp = 5; +} + +message CWebRTCClient_UpdateWebRTCConnection_Response { + optional string remote_description = 1; +} + +service WebRTCClient { + rpc AcknowledgeUpdatedRemoteDescription (.CWebRTCClient_AcknowledgeUpdatedRemoteDescription_Request) returns (.CWebRTCClient_AcknowledgeUpdatedRemoteDescription_Response); + rpc InitiateWebRTCConnection (.CWebRTCClient_InitiateWebRTCConnection_Request) returns (.CWebRTCClient_InitiateWebRTCConnection_Response); + rpc UpdateWebRTCConnection (.CWebRTCClient_UpdateWebRTCConnection_Request) returns (.CWebRTCClient_UpdateWebRTCConnection_Response); +} + +service WebRTCClientNotifications { + rpc NotifyWebRTCSessionConnected (.CWebRTC_WebRTCSessionConnected_Notification) returns (.NoResponse); + rpc NotifyWebRTCUpdateRemoteDescription (.CWebRTC_WebRTCUpdateRemoteDescription_Notification) returns (.NoResponse); +} + diff --git a/Protobufs/webui/service_wishlist.proto b/Protobufs/webui/service_wishlist.proto new file mode 100644 index 0000000..c6b9f43 --- /dev/null +++ b/Protobufs/webui/service_wishlist.proto @@ -0,0 +1,20 @@ +import "common.proto"; + +message CWishlist_GetWishlistItemsOnSale_Request { + optional .StoreBrowseContext context = 1; + optional .StoreBrowseItemDataRequest data_request = 2; +} + +message CWishlist_GetWishlistItemsOnSale_Response { + repeated .CWishlist_GetWishlistItemsOnSale_Response_WishlistItem items = 1; +} + +message CWishlist_GetWishlistItemsOnSale_Response_WishlistItem { + optional uint32 appid = 1; + optional .StoreItem store_item = 2; +} + +service Wishlist { + rpc GetWishlistItemsOnSale (.CWishlist_GetWishlistItemsOnSale_Request) returns (.CWishlist_GetWishlistItemsOnSale_Response); +} + diff --git a/README.md b/README.md new file mode 100644 index 0000000..af0ccfd --- /dev/null +++ b/README.md @@ -0,0 +1,6 @@ +# CSDemo +A parser for cs2 demo files + +## Requirements +- `protoc` needs to be installed locally +- `Protobufs` submodule needs to be checked out using git as well diff --git a/build.rs b/build.rs new file mode 100644 index 0000000..8bdc552 --- /dev/null +++ b/build.rs @@ -0,0 +1,15 @@ +use std::io::Result; + +fn main() -> Result<()> { + prost_build::compile_protos( + &[ + "Protobufs/csgo/demo.proto", + "Protobufs/csgo/networkbasetypes.proto", + "Protobufs/csgo/netmessages.proto", + "Protobufs/csgo/gameevents.proto", + "Protobufs/csgo/cstrike15_usermessages.proto", + ], + &["Protobufs/csgo"], + )?; + Ok(()) +} diff --git a/src/bitreader.rs b/src/bitreader.rs new file mode 100644 index 0000000..f4be38b --- /dev/null +++ b/src/bitreader.rs @@ -0,0 +1,200 @@ +use bitter::BitReader; +use bitter::LittleEndianReader; + +pub struct Bitreader<'a> { + pub reader: LittleEndianReader<'a>, + pub bits_left: u32, + pub bits: u64, + pub total_bits_left: u32, +} + +#[derive(Debug)] +pub enum BitReadError { + FailedByteRead(String), + MalformedMessage, +} + +impl<'a> Bitreader<'a> { + pub fn new(bytes: &'a [u8]) -> Bitreader<'a> { + let b = Bitreader { + reader: LittleEndianReader::new(bytes), + bits: 0, + bits_left: 0, + total_bits_left: 0, + }; + b + } + #[inline(always)] + pub fn consume(&mut self, n: u32) { + self.bits_left -= n; + self.bits >>= n; + self.reader.consume(n); + } + #[inline(always)] + pub fn peek(&mut self, n: u32) -> u64 { + self.bits & ((1 << n) - 1) + } + #[inline(always)] + pub fn refill(&mut self) { + self.reader.refill_lookahead(); + let refilled = self.reader.lookahead_bits(); + if refilled > 0 { + self.bits = self.reader.peek(refilled); + } + self.bits_left = refilled; + } + #[inline(always)] + pub fn bits_remaining(&mut self) -> Option { + Some(self.reader.bits_remaining()?) + } + #[inline(always)] + pub fn read_nbits(&mut self, n: u32) -> Result { + if self.bits_left < n { + self.refill(); + } + let b = self.peek(n); + self.consume(n); + return Ok(b as u32); + } + #[inline(always)] + pub fn read_u_bit_var(&mut self) -> Result { + let bits = self.read_nbits(6)?; + match bits & 0b110000 { + 0b10000 => return Ok((bits & 0b1111) | (self.read_nbits(4)? << 4)), + 0b100000 => return Ok((bits & 0b1111) | (self.read_nbits(8)? << 4)), + 0b110000 => return Ok((bits & 0b1111) | (self.read_nbits(28)? << 4)), + _ => return Ok(bits), + } + } + #[inline(always)] + pub fn read_varint32(&mut self) -> Result { + let x = self.read_varint()? as i32; + let mut y = x >> 1; + if x & 1 != 0 { + y = !y; + } + Ok(y as i32) + } + #[inline(always)] + pub fn read_varint(&mut self) -> Result { + let mut result: u32 = 0; + let mut count: i32 = 0; + let mut b: u32; + loop { + if count >= 5 { + return Ok(result); + } + b = self.read_nbits(8)?; + result |= (b & 127) << (7 * count); + count += 1; + if b & 0x80 == 0 { + break; + } + } + Ok(result) + } + #[inline(always)] + pub fn read_varint_u_64(&mut self) -> Result { + let mut result: u64 = 0; + let mut count: i32 = 0; + let mut b: u32; + let mut s = 0; + loop { + b = self.read_nbits(8)?; + if b < 0x80 { + if count > 9 || count == 9 && b > 1 { + return Err(BitReadError::MalformedMessage); + } + return Ok(result | (b as u64) << s); + } + result |= ((b as u64) & 127) << s; + count += 1; + if b & 0x80 == 0 { + break; + } + s += 7; + } + Ok(result) + } + #[inline(always)] + pub fn read_boolean(&mut self) -> Result { + Ok(self.read_nbits(1)? != 0) + } + pub fn read_n_bytes(&mut self, n: usize) -> Result, BitReadError> { + let mut bytes = vec![0_u8; n]; + match self.reader.read_bytes(&mut bytes) { + true => { + self.refill(); + Ok(bytes) + } + false => Err(BitReadError::FailedByteRead(format!( + "Failed to read message/command. bytes left in stream: {}, requested bytes: {}", + self.reader + .bits_remaining() + .unwrap_or(0) + .checked_div(8) + .unwrap_or(0), + n, + ))), + } + } + pub fn read_n_bytes_mut(&mut self, n: usize, buf: &mut [u8]) -> Result<(), BitReadError> { + if buf.len() < n { + return Err(BitReadError::MalformedMessage); + } + match self.reader.read_bytes(&mut buf[..n]) { + true => { + self.refill(); + Ok(()) + } + false => Err(BitReadError::FailedByteRead(format!( + "Failed to read message/command. bytes left in stream: {}, requested bytes: {}", + self.reader + .bits_remaining() + .unwrap_or(0) + .checked_div(8) + .unwrap_or(0), + n, + ))), + } + } + pub fn read_ubit_var_fp(&mut self) -> Result { + if self.read_boolean()? { + return Ok(self.read_nbits(2)?); + } + if self.read_boolean()? { + return Ok(self.read_nbits(4)?); + } + if self.read_boolean()? { + return Ok(self.read_nbits(10)?); + } + if self.read_boolean()? { + return Ok(self.read_nbits(17)?); + } + return Ok(self.read_nbits(31)?); + } + #[inline(always)] + pub fn read_bit_coord(&mut self) -> Result { + let mut int_val = 0; + let mut frac_val = 0; + let i2 = self.read_boolean()?; + let f2 = self.read_boolean()?; + if !i2 && !f2 { + return Ok(0.0); + } + let sign = self.read_boolean()?; + if i2 { + int_val = self.read_nbits(14)? + 1; + } + if f2 { + frac_val = self.read_nbits(5)?; + } + let resol: f64 = 1.0 / (1 << 5) as f64; + let result: f32 = (int_val as f64 + (frac_val as f64 * resol) as f64) as f32; + if sign { + Ok(-result) + } else { + Ok(result) + } + } +} diff --git a/src/container.rs b/src/container.rs new file mode 100644 index 0000000..fa5f5ee --- /dev/null +++ b/src/container.rs @@ -0,0 +1,44 @@ +#[derive(Debug)] +pub enum ParseContainerError { + MissingHeader, + InvalidMagic(core::str::Utf8Error), + MismatchedLength { + buffer_len: usize, + expected_len: usize, + }, + Other(&'static str), +} + +#[derive(Debug)] +pub struct Container<'b> { + pub magic: &'b str, + pub inner: &'b [u8], +} + +impl<'b> Container<'b> { + pub fn parse<'ib>(input: &'ib [u8]) -> Result + where + 'ib: 'b, + { + if input.len() < 16 { + return Err(ParseContainerError::MissingHeader); + } + + let magic = + core::str::from_utf8(&input[..8]).map_err(|e| ParseContainerError::InvalidMagic(e))?; + let raw_len: [u8; 4] = input[8..12] + .try_into() + .expect("We know that the input buffer is at least 16 bytes large"); + let len = u32::from_le_bytes(raw_len); + + let inner = &input[16..]; + if inner.len() != len as usize + 2 { + return Err(ParseContainerError::MismatchedLength { + buffer_len: inner.len(), + expected_len: len as usize + 2, + }); + } + + Ok(Self { magic, inner }) + } +} diff --git a/src/democmd.rs b/src/democmd.rs new file mode 100644 index 0000000..849d2fe --- /dev/null +++ b/src/democmd.rs @@ -0,0 +1,55 @@ +#[derive(Debug, PartialEq, Eq, Clone, Copy, Hash)] +pub enum DemoCommand { + Error, + Stop, + FileHeader, + FileInfo, + SyncTick, + SendTables, + ClassInfo, + StringTables, + Packet, + SignonPacket, + ConsoleCmd, + CustomData, + CustomDataCallbacks, + UserCmd, + FullPacket, + SaveGame, + SpawnGroups, + AnimationData, + AnimationHeader, + Max, + IsCompressed, +} + +impl TryFrom for DemoCommand { + type Error = i32; + + fn try_from(value: i32) -> Result { + match value { + -1 => Ok(Self::Error), + 0 => Ok(Self::Stop), + 1 => Ok(Self::FileHeader), + 2 => Ok(Self::FileInfo), + 3 => Ok(Self::SyncTick), + 4 => Ok(Self::SendTables), + 5 => Ok(Self::ClassInfo), + 6 => Ok(Self::StringTables), + 7 => Ok(Self::Packet), + 8 => Ok(Self::SignonPacket), + 9 => Ok(Self::ConsoleCmd), + 10 => Ok(Self::CustomData), + 11 => Ok(Self::CustomDataCallbacks), + 12 => Ok(Self::UserCmd), + 13 => Ok(Self::FullPacket), + 14 => Ok(Self::SaveGame), + 15 => Ok(Self::SpawnGroups), + 16 => Ok(Self::AnimationData), + 17 => Ok(Self::AnimationHeader), + 18 => Ok(Self::Max), + 64 => Ok(Self::IsCompressed), + unknown => Err(unknown), + } + } +} diff --git a/src/frame.rs b/src/frame.rs new file mode 100644 index 0000000..be35e93 --- /dev/null +++ b/src/frame.rs @@ -0,0 +1,91 @@ +pub struct Frame<'b> { + pub cmd: crate::DemoCommand, + pub tick: i32, + pub compressed: bool, + pub inner: std::borrow::Cow<'b, [u8]>, +} + +impl<'b> Frame<'b> { + pub fn parse<'ib>(input: &'ib [u8]) -> Result<(&'ib [u8], Self), ()> + where + 'ib: 'b, + { + let (input, raw_cmd) = crate::varint::parse_varint(input)?; + let (input, tick) = crate::varint::parse_varint(input)?; + let (input, size) = crate::varint::parse_varint(input)?; + + if input.len() < size as usize { + return Err(()); + } + + let demo_cmd = crate::DemoCommand::try_from((raw_cmd & !64) as i32).map_err(|e| ())?; + + Ok(( + &input[size as usize..], + Self { + tick: tick as i32, + cmd: demo_cmd, + compressed: (raw_cmd & 64) == 64, + inner: std::borrow::Cow::Borrowed(&input[..size as usize]), + }, + )) + } + + pub fn data(&self) -> Option<&[u8]> { + if self.compressed { + return None; + } + + Some(self.inner.as_ref()) + } + + pub fn decompress(&mut self) -> Result<(), ()> { + if !self.compressed { + return Ok(()); + } + + let decompressed = snap::raw::Decoder::new() + .decompress_vec(&self.inner.as_ref()) + .map_err(|e| ())?; + + self.compressed = false; + self.inner = std::borrow::Cow::Owned(decompressed); + + Ok(()) + } +} + +pub struct FrameIterator<'b> { + remaining: &'b [u8], +} + +impl<'b> FrameIterator<'b> { + pub fn parse<'ib>(input: &'ib [u8]) -> Self + where + 'ib: 'b, + { + Self { remaining: input } + } +} +impl<'b> Iterator for FrameIterator<'b> { + type Item = Frame<'b>; + + fn next(&mut self) -> Option { + if self.remaining.is_empty() { + return None; + } + + match Frame::parse(self.remaining) { + Ok((rem, frame)) => { + self.remaining = rem; + Some(frame) + } + Err(_e) => { + // TODO + // How do we handle errors? + self.remaining = &[]; + None + } + } + } +} diff --git a/src/game_event.rs b/src/game_event.rs new file mode 100644 index 0000000..33e7ff8 --- /dev/null +++ b/src/game_event.rs @@ -0,0 +1,293 @@ +use crate::csgo_proto; + +#[derive(Debug)] +pub enum RawValue { + String(String), + F32(f32), + I32(i32), + Bool(bool), + U64(u64), +} + +impl TryFrom for RawValue { + type Error = (); + + fn try_from(value: crate::csgo_proto::c_msg_source1_legacy_game_event::KeyT) -> Result { + match value.r#type() { + 1 if value.val_string.is_some() => Ok(Self::String(value.val_string.unwrap())), + 2 if value.val_float.is_some() => Ok(Self::F32(value.val_float.unwrap())), + 3 if value.val_long.is_some() => Ok(Self::I32(value.val_long.unwrap())), + 4 if value.val_short.is_some() => Ok(Self::I32(value.val_short.unwrap() as i32)), + 5 if value.val_byte.is_some() => Ok(Self::I32(value.val_byte.unwrap() as i32)), + 6 if value.val_bool.is_some() => Ok(Self::Bool(value.val_bool.unwrap())), + 7 if value.val_uint64.is_some() => Ok(Self::U64(value.val_uint64.unwrap())), + 8 if value.val_long.is_some() => Ok(Self::I32(value.val_long.unwrap())), + 9 if value.val_short.is_some() => Ok(Self::I32(value.val_short.unwrap() as i32)), + _ => Err(()), + } + } +} + +impl TryFrom for i32 { + type Error = (); + fn try_from(value: RawValue) -> Result { + match value { + RawValue::I32(v) => Ok(v), + _ => Err(()), + } + } +} +impl TryFrom for bool { + type Error = (); + fn try_from(value: RawValue) -> Result { + match value { + RawValue::Bool(v) => Ok(v), + _ => Err(()), + } + } +} +impl TryFrom for String { + type Error = (); + fn try_from(value: RawValue) -> Result { + match value { + RawValue::String(v) => Ok(v), + _ => Err(()), + } + } +} + +macro_rules! define_event { + ($name:ident, $target:path $(, ($field:ident, $field_ty:ty))*) => { + #[derive(Debug)] + #[allow(dead_code)] + pub struct $name { + $($field: Option<$field_ty>,)* + remaining: ::std::collections::HashMap, + } + + impl $name { + #[allow(unused_mut)] + fn parse(keys: &[crate::csgo_proto::csvc_msg_game_event_list::KeyT], event: crate::csgo_proto::CMsgSource1LegacyGameEvent) -> Result { + let mut fields: ::std::collections::HashMap<_,_> = keys.iter().zip(event.keys.into_iter()).map(|(k, f)| { + (k.name().to_owned(), f) + }).collect(); + + $(let $field: Option = fields.remove(stringify!($field)).map(|f| f.try_into().ok()).flatten();)* + + let value = $name { + $($field: $field.map(|f| f.try_into().ok()).flatten(),)* + remaining: fields, + }; + + Ok($target(value)) + } + } + }; +} + +define_event!(HltvVersionInfo, GameEvent::HltvVersionInfo); + +define_event!(ItemEquip, GameEvent::ItemEquip, (userid, i32), (hassilencer, bool), (hastracers, bool), (item, String), (issilenced, bool), (canzoom, bool), (ispainted, bool), (weptype, i32), (defindex, i32)); +define_event!(ItemPickup, GameEvent::ItemPickup, (userid, RawValue), (item, RawValue), (silent, RawValue), (defindex, RawValue)); + +define_event!(WeaponReload, GameEvent::WeaponReload, (userid, RawValue), (userid_pawn, RawValue)); +define_event!(WeaponZoom, GameEvent::WeaponZoom, (userid, RawValue), (userid_pawn, RawValue)); +define_event!(WeaponFire, GameEvent::WeaponFire, (userid, RawValue), (weapon, RawValue), (silenced, RawValue), (userid_pawn, RawValue)); + +define_event!(SmokeGrenadeDetonate, GameEvent::SmokeGrenadeDetonate); +define_event!(SmokeGrenadeExpired, GameEvent::SmokeGrenadeExpired); +define_event!(HEGrenadeDetonate, GameEvent::HEGrenadeDetonate); +define_event!(InfernoStartBurn, GameEvent::InfernoStartBurn); +define_event!(InfernoExpire, GameEvent::InfernoExpire); +define_event!(FlashbangDetonate, GameEvent::FlashbangDetonate); +define_event!(DecoyStarted, GameEvent::DecoyStarted); +define_event!(DecoyDetonate, GameEvent::DecoyDetonate); + +define_event!(PlayerConnect, GameEvent::PlayerConnect, (address, RawValue), (bot, RawValue), (name, RawValue), (userid, RawValue), (networkid, RawValue), (xuid, RawValue)); +define_event!(PlayerConnectFull, GameEvent::PlayerConnectFull, (userid, RawValue)); +define_event!(PlayerDisconnect, GameEvent::PlayerDisconnect, (userid, RawValue), (reason, RawValue), (name, RawValue), (networkid, RawValue), (xuid, RawValue)); +define_event!(PlayerFootstep, GameEvent::PlayerFootstep); +define_event!(PlayerJump, GameEvent::PlayerJump); +define_event!(PlayerHurt, GameEvent::PlayerHurt); +define_event!(PlayerDeath, GameEvent::PlayerDeath); +define_event!(PlayerSpawn, GameEvent::PlayerSpawn); +define_event!(PlayerBlind, GameEvent::PlayerBlind); +define_event!(PlayerTeam, GameEvent::PlayerTeam, (userid, RawValue), (team, RawValue), (oldteam, RawValue), (disconnect, RawValue), (silent, RawValue), (isbot, RawValue), (userid_pawn, RawValue)); + +define_event!(BulletDamage, GameEvent::BulletDamage); + +define_event!(OtherDeath, GameEvent::OtherDeath); + +define_event!(BombPickup, GameEvent::BombPickup); +define_event!(BombDropped, GameEvent::BombDropped); +define_event!(BombBeginPlant, GameEvent::BombBeginPlant); +define_event!(BombPlanted, GameEvent::BombPlanted); +define_event!(BombExploded, GameEvent::BombExploded); +define_event!(BombBeginDefuse, GameEvent::BombBeginDefuse); +define_event!(BombDefused, GameEvent::BombDefused); + +define_event!(BeginNewMatch, GameEvent::BeginNewMatch); +define_event!(RoundAnnounceMatchStart, GameEvent::RoundAnnounceMatchStart); +define_event!(RoundFreezeEnd, GameEvent::RoundFreezeEnd); +define_event!(RoundPreStart, GameEvent::RoundPreStart); +define_event!(RoundPostStart, GameEvent::RoundPostStart); +define_event!(RoundOfficiallyEnded, GameEvent::RoundOfficiallyEnded); +define_event!(RoundStartBeep, GameEvent::RoundStartBeep); +define_event!(RoundAnnounceMatchpoint, GameEvent::RoundAnnounceMatchpoint); +define_event!(RoundPreRestart, GameEvent::RoundPreRestart); +define_event!(RoundTimeWarning, GameEvent::RoundTimeWarning); +define_event!(RoundFinalBeep, GameEvent::RoundFinalBeep); +define_event!(BuyTimeEnded, GameEvent::BuyTimeEnded); +define_event!(RoundAnnounceLastRoundHalf, GameEvent::RoundAnnounceLastRoundHalf); +define_event!(AnnouncePhaseEnd, GameEvent::AnnouncePhaseEnd); + +define_event!(WinPanelMatch, GameEvent::WinPanelMatch); + +type ParseFn = fn(keys: &[csgo_proto::csvc_msg_game_event_list::KeyT], event: csgo_proto::CMsgSource1LegacyGameEvent) -> Result; + +#[derive(Debug)] +#[allow(dead_code)] +pub enum GameEvent { + HltvVersionInfo(HltvVersionInfo), + // + ItemEquip(ItemEquip), + ItemPickup(ItemPickup), + // + WeaponReload(WeaponReload), + WeaponZoom(WeaponZoom), + WeaponFire(WeaponFire), + // + SmokeGrenadeDetonate(SmokeGrenadeDetonate), + SmokeGrenadeExpired(SmokeGrenadeExpired), + HEGrenadeDetonate(HEGrenadeDetonate), + InfernoStartBurn(InfernoStartBurn), + InfernoExpire(InfernoExpire), + FlashbangDetonate(FlashbangDetonate), + DecoyStarted(DecoyStarted), + DecoyDetonate(DecoyDetonate), + // + PlayerConnect(PlayerConnect), + PlayerConnectFull(PlayerConnectFull), + PlayerDisconnect(PlayerDisconnect), + PlayerFootstep(PlayerFootstep), + PlayerJump(PlayerJump), + PlayerHurt(PlayerHurt), + PlayerDeath(PlayerDeath), + PlayerSpawn(PlayerSpawn), + PlayerBlind(PlayerBlind), + PlayerTeam(PlayerTeam), + // + BulletDamage(BulletDamage), + // + OtherDeath(OtherDeath), + // + BombPickup(BombPickup), + BombDropped(BombDropped), + BombBeginPlant(BombBeginPlant), + BombPlanted(BombPlanted), + BombExploded(BombExploded), + BombBeginDefuse(BombBeginDefuse), + BombDefused(BombDefused), + // + BeginNewMatch(BeginNewMatch), + RoundAnnounceMatchStart(RoundAnnounceMatchStart), + RoundFreezeEnd(RoundFreezeEnd), + RoundPreStart(RoundPreStart), + RoundPostStart(RoundPostStart), + RoundOfficiallyEnded(RoundOfficiallyEnded), + RoundStartBeep(RoundStartBeep), + RoundAnnounceMatchpoint(RoundAnnounceMatchpoint), + RoundPreRestart(RoundPreRestart), + RoundTimeWarning(RoundTimeWarning), + RoundFinalBeep(RoundFinalBeep), + BuyTimeEnded(BuyTimeEnded), + RoundAnnounceLastRoundHalf(RoundAnnounceLastRoundHalf), + AnnouncePhaseEnd(AnnouncePhaseEnd), + + WinPanelMatch(WinPanelMatch), +} + +#[derive(Debug)] +pub enum ParseGameEventError { + MismatchedKeysFields, +} + +pub static EVENT_PARSERS: phf::Map<&'static str, GameEventParser> = phf::phf_map! { + "hltv_versioninfo" => GameEventParser::new(HltvVersionInfo::parse), + + "item_equip" => GameEventParser::new(ItemEquip::parse), + "item_pickup" => GameEventParser::new(ItemPickup::parse), + + "weapon_reload" => GameEventParser::new(WeaponReload::parse), + "weapon_zoom" => GameEventParser::new(WeaponZoom::parse), + "weapon_fire" => GameEventParser::new(WeaponFire::parse), + + "smokegrenade_detonate" => GameEventParser::new(SmokeGrenadeDetonate::parse), + "smokegrenade_expired" => GameEventParser::new(SmokeGrenadeExpired::parse), + "hegrenade_detonate" => GameEventParser::new(HEGrenadeDetonate::parse), + "inferno_startburn" => GameEventParser::new(InfernoStartBurn::parse), + "inferno_expire" => GameEventParser::new(InfernoExpire::parse), + "flashbang_detonate" => GameEventParser::new(FlashbangDetonate::parse), + "decoy_started" => GameEventParser::new(DecoyStarted::parse), + "decoy_detonate" => GameEventParser::new(DecoyDetonate::parse), + + "player_connect" => GameEventParser::new(PlayerConnect::parse), + "player_connect_full" => GameEventParser::new(PlayerConnectFull::parse), + "player_disconnect" => GameEventParser::new(PlayerDisconnect::parse), + "player_footstep" => GameEventParser::new(PlayerFootstep::parse), + "player_jump" => GameEventParser::new(PlayerJump::parse), + "player_hurt" => GameEventParser::new(PlayerHurt::parse), + "player_death" => GameEventParser::new(PlayerDeath::parse), + "player_spawn" => GameEventParser::new(PlayerSpawn::parse), + "player_blind" => GameEventParser::new(PlayerBlind::parse), + "player_team" => GameEventParser::new(PlayerTeam::parse), + + "bullet_damage" => GameEventParser::new(BulletDamage::parse), + + "other_death" => GameEventParser::new(OtherDeath::parse), + + "bomb_pickup" => GameEventParser::new(BombPickup::parse), + "bomb_dropped" => GameEventParser::new(BombDropped::parse), + "bomb_beginplant" => GameEventParser::new(BombBeginPlant::parse), + "bomb_planted" => GameEventParser::new(BombPlanted::parse), + "bomb_exploded" => GameEventParser::new(BombExploded::parse), + "bomb_begindefuse" => GameEventParser::new(BombBeginDefuse::parse), + "bomb_defused" => GameEventParser::new(BombDefused::parse), + + "begin_new_match" => GameEventParser::new(BeginNewMatch::parse), + "round_announce_match_start" => GameEventParser::new(RoundAnnounceMatchStart::parse), + "round_freeze_end" => GameEventParser::new(RoundFreezeEnd::parse), + "round_prestart" => GameEventParser::new(RoundPreStart::parse), + "round_poststart" => GameEventParser::new(RoundPostStart::parse), + "round_officially_ended" => GameEventParser::new(RoundOfficiallyEnded::parse), + "cs_round_start_beep" => GameEventParser::new(RoundStartBeep::parse), + "round_announce_match_point" => GameEventParser::new(RoundAnnounceMatchpoint::parse), + "cs_pre_restart" => GameEventParser::new(RoundPreRestart::parse), + "round_time_warning" => GameEventParser::new(RoundTimeWarning::parse), + "cs_round_final_beep" => GameEventParser::new(RoundFinalBeep::parse), + "buytime_ended" => GameEventParser::new(BuyTimeEnded::parse), + "round_announce_last_round_half" => GameEventParser::new(RoundAnnounceLastRoundHalf::parse), + "announce_phase_end" => GameEventParser::new(AnnouncePhaseEnd::parse), + + "cs_win_panel_match" => GameEventParser::new(WinPanelMatch::parse), +}; + +pub struct GameEventParser { + inner: fn(keys: &[csgo_proto::csvc_msg_game_event_list::KeyT], event: csgo_proto::CMsgSource1LegacyGameEvent) -> Result, +} + +impl GameEventParser { + pub const fn new(func: ParseFn) -> Self { + Self { + inner: func, + } + } + + pub fn parse(&self, keys: &[csgo_proto::csvc_msg_game_event_list::KeyT], event: csgo_proto::CMsgSource1LegacyGameEvent) -> Result { + if keys.len() != event.keys.len() { + return Err(ParseGameEventError::MismatchedKeysFields); + } + + (self.inner)(keys, event) + } +} diff --git a/src/lib.rs b/src/lib.rs new file mode 100644 index 0000000..3236227 --- /dev/null +++ b/src/lib.rs @@ -0,0 +1,22 @@ +mod container; +pub use container::{Container, ParseContainerError}; + +mod frame; +pub use frame::{Frame, FrameIterator}; + +mod democmd; +pub use democmd::DemoCommand; + +mod netmessagetypes; + +mod bitreader; +mod varint; + +mod packet; +pub mod game_event; + +pub mod parser; + +pub mod csgo_proto { + include!(concat!(env!("OUT_DIR"), "/_.rs")); +} diff --git a/src/netmessagetypes.rs b/src/netmessagetypes.rs new file mode 100644 index 0000000..27d53ce --- /dev/null +++ b/src/netmessagetypes.rs @@ -0,0 +1,390 @@ +impl TryFrom for NetmessageType { + type Error = i32; + + fn try_from(value: i32) -> Result { + use NetmessageType::*; + + match value { + 0 => Ok(net_NOP), + 1 => Ok(net_Disconnect), + 3 => Ok(net_SplitScreenUser), + 4 => Ok(net_Tick), + 5 => Ok(net_StringCmd), + 6 => Ok(net_SetConVar), + 7 => Ok(net_SignonState), + 8 => Ok(net_SpawnGroup_Load), + 9 => Ok(net_SpawnGroup_ManifestUpdate), + 11 => Ok(net_SpawnGroup_SetCreationTick), + 12 => Ok(net_SpawnGroup_Unload), + 13 => Ok(net_SpawnGroup_LoadCompleted), + 15 => Ok(net_DebugOverlay), + 40 => Ok(svc_ServerInfo), + 41 => Ok(svc_FlattenedSerializer), + 42 => Ok(svc_ClassInfo), + 43 => Ok(svc_SetPause), + 44 => Ok(svc_CreateStringTable), + 45 => Ok(svc_UpdateStringTable), + 46 => Ok(svc_VoiceInit), + 47 => Ok(svc_VoiceData), + 48 => Ok(svc_Print), + 49 => Ok(svc_Sounds), + 50 => Ok(svc_SetView), + 51 => Ok(svc_ClearAllStringTables), + 52 => Ok(svc_CmdKeyValues), + 53 => Ok(svc_BSPDecal), + 54 => Ok(svc_SplitScreen), + 55 => Ok(svc_PacketEntities), + 56 => Ok(svc_Prefetch), + 57 => Ok(svc_Menu), + 58 => Ok(svc_GetCvarValue), + 59 => Ok(svc_StopSound), + 60 => Ok(svc_PeerList), + 61 => Ok(svc_PacketReliable), + 62 => Ok(svc_HLTVStatus), + 63 => Ok(svc_ServerSteamID), + 70 => Ok(svc_FullFrameSplit), + 71 => Ok(svc_RconServerDetails), + 72 => Ok(svc_UserMessage), + 73 => Ok(svc_HltvReplay), + 74 => Ok(svc_Broadcast_Command), + 75 => Ok(svc_HltvFixupOperatorStatus), + 76 => Ok(svc_UserCmds), + 101 => Ok(UM_AchievementEvent), + 102 => Ok(UM_CloseCaption), + 103 => Ok(UM_CloseCaptionDirect), + 104 => Ok(UM_CurrentTimescale), + 105 => Ok(UM_DesiredTimescale), + 106 => Ok(UM_Fade), + 107 => Ok(UM_GameTitle), + 110 => Ok(UM_HudMsg), + 111 => Ok(UM_HudText), + 113 => Ok(UM_ColoredText), + 114 => Ok(UM_RequestState), + 115 => Ok(UM_ResetHUD), + 116 => Ok(UM_Rumble), + 117 => Ok(UM_SayText), + 118 => Ok(UM_SayText2), + 119 => Ok(UM_SayTextChannel), + 120 => Ok(UM_Shake), + 121 => Ok(UM_ShakeDir), + 124 => Ok(UM_TextMsg), + 125 => Ok(UM_ScreenTilt), + 128 => Ok(UM_VoiceMask), + 130 => Ok(UM_SendAudio), + 131 => Ok(UM_ItemPickup), + 132 => Ok(UM_AmmoDenied), + 134 => Ok(UM_ShowMenu), + 135 => Ok(UM_CreditsMsg), + 142 => Ok(UM_CloseCaptionPlaceholder), + 143 => Ok(UM_CameraTransition), + 144 => Ok(UM_AudioParameter), + 145 => Ok(UM_ParticleManager), + 146 => Ok(UM_HudError), + 148 => Ok(UM_CustomGameEvent), + 149 => Ok(UM_AnimGraphUpdate), + 150 => Ok(UM_HapticsManagerPulse), + 151 => Ok(UM_HapticsManagerEffect), + 152 => Ok(UM_CommandQueueState), + 153 => Ok(UM_UpdateCssClasses), + 154 => Ok(UM_ServerFrameTime), + 155 => Ok(UM_LagCompensationError), + 156 => Ok(UM_RequestDllStatus), + 157 => Ok(UM_RequestUtilAction), + 158 => Ok(UM_UtilActionResponse), + 159 => Ok(UM_DllStatusResponse), + 160 => Ok(UM_RequestInventory), + 161 => Ok(UM_InventoryResponse), + 200 => Ok(GE_VDebugGameSessionIDEvent), + 201 => Ok(GE_PlaceDecalEvent), + 202 => Ok(GE_ClearWorldDecalsEvent), + 203 => Ok(GE_ClearEntityDecalsEvent), + 204 => Ok(GE_ClearDecalsForSkeletonInstanceEvent), + 205 => Ok(GE_Source1LegacyGameEventList), + 206 => Ok(GE_Source1LegacyListenEvents), + 207 => Ok(GE_Source1LegacyGameEvent), + 208 => Ok(GE_SosStartSoundEvent), + 209 => Ok(GE_SosStopSoundEvent), + 210 => Ok(GE_SosSetSoundEventParams), + 211 => Ok(GE_SosSetLibraryStackFields), + 212 => Ok(GE_SosStopSoundEventHash), + 301 => Ok(CS_UM_VGUIMenu), + 302 => Ok(CS_UM_Geiger), + 303 => Ok(CS_UM_Train), + 304 => Ok(CS_UM_HudText), + 305 => Ok(CS_UM_SayText), + 306 => Ok(CS_UM_SayText2), + 307 => Ok(CS_UM_TextMsg), + 308 => Ok(CS_UM_HudMsg), + 309 => Ok(CS_UM_ResetHud), + 310 => Ok(CS_UM_GameTitle), + 312 => Ok(CS_UM_Shake), + 313 => Ok(CS_UM_Fade), + 314 => Ok(CS_UM_Rumble), + 315 => Ok(CS_UM_CloseCaption), + 316 => Ok(CS_UM_CloseCaptionDirect), + 317 => Ok(CS_UM_SendAudio), + 318 => Ok(CS_UM_RawAudio), + 319 => Ok(CS_UM_VoiceMask), + 320 => Ok(CS_UM_RequestState), + 321 => Ok(CS_UM_Damage), + 322 => Ok(CS_UM_RadioText), + 323 => Ok(CS_UM_HintText), + 324 => Ok(CS_UM_KeyHintText), + 325 => Ok(CS_UM_ProcessSpottedEntityUpdate), + 326 => Ok(CS_UM_ReloadEffect), + 327 => Ok(CS_UM_AdjustMoney), + 328 => Ok(CS_UM_UpdateTeamMoney), + 329 => Ok(CS_UM_StopSpectatorMode), + 330 => Ok(CS_UM_KillCam), + 331 => Ok(CS_UM_DesiredTimescale), + 332 => Ok(CS_UM_CurrentTimescale), + 333 => Ok(CS_UM_AchievementEvent), + 334 => Ok(CS_UM_MatchEndConditions), + 335 => Ok(CS_UM_DisconnectToLobby), + 336 => Ok(CS_UM_PlayerStatsUpdate), + 338 => Ok(CS_UM_WarmupHasEnded), + 339 => Ok(CS_UM_ClientInfo), + 340 => Ok(CS_UM_XRankGet), + 341 => Ok(CS_UM_XRankUpd), + 345 => Ok(CS_UM_CallVoteFailed), + 346 => Ok(CS_UM_VoteStart), + 347 => Ok(CS_UM_VotePass), + 348 => Ok(CS_UM_VoteFailed), + 349 => Ok(CS_UM_VoteSetup), + 350 => Ok(CS_UM_ServerRankRevealAll), + 351 => Ok(CS_UM_SendLastKillerDamageToClient), + 352 => Ok(CS_UM_ServerRankUpdate), + 353 => Ok(CS_UM_ItemPickup), + 354 => Ok(CS_UM_ShowMenu), + 355 => Ok(CS_UM_BarTime), + 356 => Ok(CS_UM_AmmoDenied), + 357 => Ok(CS_UM_MarkAchievement), + 358 => Ok(CS_UM_MatchStatsUpdate), + 359 => Ok(CS_UM_ItemDrop), + 360 => Ok(CS_UM_GlowPropTurnOff), + 361 => Ok(CS_UM_SendPlayerItemDrops), + 362 => Ok(CS_UM_RoundBackupFilenames), + 363 => Ok(CS_UM_SendPlayerItemFound), + 364 => Ok(CS_UM_ReportHit), + 365 => Ok(CS_UM_XpUpdate), + 366 => Ok(CS_UM_QuestProgress), + 367 => Ok(CS_UM_ScoreLeaderboardData), + 368 => Ok(CS_UM_PlayerDecalDigitalSignature), + 369 => Ok(CS_UM_WeaponSound), + 370 => Ok(CS_UM_UpdateScreenHealthBar), + 371 => Ok(CS_UM_EntityOutlineHighlight), + 372 => Ok(CS_UM_SSUI), + 373 => Ok(CS_UM_SurvivalStats), + 374 => Ok(CS_UM_DisconnectToLobby2), + 375 => Ok(CS_UM_EndOfMatchAllPlayersData), + 376 => Ok(CS_UM_PostRoundDamageReport), + 379 => Ok(CS_UM_RoundEndReportData), + 380 => Ok(CS_UM_CurrentRoundOdds), + 381 => Ok(CS_UM_DeepStats), + 382 => Ok(CS_UM_UtilMsg), + 383 => Ok(CS_UM_ShootInfo), + // + 400 => Ok(TE_EffectDispatch), + 411 => Ok(TE_WorldDecal), + 419 => Ok(TE_Explosion), + 423 => Ok(TE_PhysicsProp), + // + 450 => Ok(CS_GE_PlayerAnimationEvent), + 451 => Ok(CS_GE_RadioIconEvent), + 452 => Ok(CS_GE_FireBullets), + other => Err(other), + } + } +} + +#[derive(Debug, PartialEq)] +#[allow(non_camel_case_types)] +pub enum NetmessageType { + net_NOP, + net_Disconnect, + net_SplitScreenUser, + net_Tick, + net_StringCmd, + net_SetConVar, + net_SignonState, + net_SpawnGroup_Load, + net_SpawnGroup_ManifestUpdate, + net_SpawnGroup_SetCreationTick, + net_SpawnGroup_Unload, + net_SpawnGroup_LoadCompleted, + net_DebugOverlay, + svc_ServerInfo, + svc_FlattenedSerializer, + svc_ClassInfo, + svc_SetPause, + svc_CreateStringTable, + svc_UpdateStringTable, + svc_VoiceInit, + svc_VoiceData, + svc_Print, + svc_Sounds, + svc_SetView, + svc_ClearAllStringTables, + svc_CmdKeyValues, + svc_BSPDecal, + svc_SplitScreen, + svc_PacketEntities, + svc_Prefetch, + svc_Menu, + svc_GetCvarValue, + svc_StopSound, + svc_PeerList, + svc_PacketReliable, + svc_HLTVStatus, + svc_ServerSteamID, + svc_FullFrameSplit, + svc_RconServerDetails, + svc_UserMessage, + svc_HltvReplay, + svc_Broadcast_Command, + svc_HltvFixupOperatorStatus, + svc_UserCmds, + GE_VDebugGameSessionIDEvent, + GE_PlaceDecalEvent, + GE_ClearWorldDecalsEvent, + GE_ClearEntityDecalsEvent, + GE_ClearDecalsForSkeletonInstanceEvent, + GE_Source1LegacyGameEventList, + GE_Source1LegacyListenEvents, + GE_Source1LegacyGameEvent, + GE_SosStartSoundEvent, + GE_SosStopSoundEvent, + GE_SosSetSoundEventParams, + GE_SosSetLibraryStackFields, + GE_SosStopSoundEventHash, + CS_UM_VGUIMenu, + CS_UM_Geiger, + CS_UM_Train, + CS_UM_HudText, + CS_UM_SayText, + CS_UM_SayText2, + CS_UM_TextMsg, + CS_UM_HudMsg, + CS_UM_ResetHud, + CS_UM_GameTitle, + CS_UM_Shake, + CS_UM_Fade, + CS_UM_Rumble, + CS_UM_CloseCaption, + CS_UM_CloseCaptionDirect, + CS_UM_SendAudio, + CS_UM_RawAudio, + CS_UM_VoiceMask, + CS_UM_RequestState, + CS_UM_Damage, + CS_UM_RadioText, + CS_UM_HintText, + CS_UM_KeyHintText, + CS_UM_ProcessSpottedEntityUpdate, + CS_UM_ReloadEffect, + CS_UM_AdjustMoney, + CS_UM_UpdateTeamMoney, + CS_UM_StopSpectatorMode, + CS_UM_KillCam, + CS_UM_DesiredTimescale, + CS_UM_CurrentTimescale, + CS_UM_AchievementEvent, + CS_UM_MatchEndConditions, + CS_UM_DisconnectToLobby, + CS_UM_PlayerStatsUpdate, + CS_UM_WarmupHasEnded, + CS_UM_ClientInfo, + CS_UM_XRankGet, + CS_UM_XRankUpd, + CS_UM_CallVoteFailed, + CS_UM_VoteStart, + CS_UM_VotePass, + CS_UM_VoteFailed, + CS_UM_VoteSetup, + CS_UM_ServerRankRevealAll, + CS_UM_SendLastKillerDamageToClient, + CS_UM_ServerRankUpdate, + CS_UM_ItemPickup, + CS_UM_ShowMenu, + CS_UM_BarTime, + CS_UM_AmmoDenied, + CS_UM_MarkAchievement, + CS_UM_MatchStatsUpdate, + CS_UM_ItemDrop, + CS_UM_GlowPropTurnOff, + CS_UM_SendPlayerItemDrops, + CS_UM_RoundBackupFilenames, + CS_UM_SendPlayerItemFound, + CS_UM_ReportHit, + CS_UM_XpUpdate, + CS_UM_QuestProgress, + CS_UM_ScoreLeaderboardData, + CS_UM_PlayerDecalDigitalSignature, + CS_UM_WeaponSound, + CS_UM_UpdateScreenHealthBar, + CS_UM_EntityOutlineHighlight, + CS_UM_SSUI, + CS_UM_SurvivalStats, + CS_UM_DisconnectToLobby2, + CS_UM_EndOfMatchAllPlayersData, + CS_UM_PostRoundDamageReport, + CS_UM_RoundEndReportData, + CS_UM_CurrentRoundOdds, + CS_UM_DeepStats, + CS_UM_UtilMsg, + CS_UM_ShootInfo, + UM_AchievementEvent, + UM_CloseCaption, + UM_CloseCaptionDirect, + UM_CurrentTimescale, + UM_DesiredTimescale, + UM_Fade, + UM_GameTitle, + UM_HudMsg, + UM_HudText, + UM_ColoredText, + UM_RequestState, + UM_ResetHUD, + UM_Rumble, + UM_SayText, + UM_SayText2, + UM_SayTextChannel, + UM_Shake, + UM_ShakeDir, + UM_TextMsg, + UM_ScreenTilt, + UM_VoiceMask, + UM_SendAudio, + UM_ItemPickup, + UM_AmmoDenied, + UM_ShowMenu, + UM_CreditsMsg, + UM_CloseCaptionPlaceholder, + UM_CameraTransition, + UM_AudioParameter, + UM_ParticleManager, + UM_HudError, + UM_CustomGameEvent, + UM_AnimGraphUpdate, + UM_HapticsManagerPulse, + UM_HapticsManagerEffect, + UM_CommandQueueState, + UM_UpdateCssClasses, + UM_ServerFrameTime, + UM_LagCompensationError, + UM_RequestDllStatus, + UM_RequestUtilAction, + UM_UtilActionResponse, + UM_DllStatusResponse, + UM_RequestInventory, + UM_InventoryResponse, + // + TE_EffectDispatch, + TE_WorldDecal, + TE_Explosion, + TE_PhysicsProp, + // + CS_GE_PlayerAnimationEvent, + CS_GE_RadioIconEvent, + CS_GE_FireBullets, +} diff --git a/src/packet.rs b/src/packet.rs new file mode 100644 index 0000000..d732508 --- /dev/null +++ b/src/packet.rs @@ -0,0 +1,10 @@ +use crate::csgo_proto; + +#[derive(Debug)] +pub enum DemoEvent { + GameEvent(crate::game_event::GameEvent), + ServerInfo(csgo_proto::CsvcMsgServerInfo), + Tick(csgo_proto::CnetMsgTick), + RankUpdate(csgo_proto::CcsUsrMsgServerRankUpdate), + RankReveal(csgo_proto::CcsUsrMsgServerRankRevealAll), +} diff --git a/src/parser.rs b/src/parser.rs new file mode 100644 index 0000000..36d02cb --- /dev/null +++ b/src/parser.rs @@ -0,0 +1,229 @@ +use crate::{packet::DemoEvent, DemoCommand, Frame}; + +#[derive(Debug)] +pub enum FirstPassError { + DecompressFrame, + NoDataFrame, + DecodeProtobuf(prost::DecodeError), + MissingFileHeader, + MissingFileInfo, + Bitreader(crate::bitreader::BitReadError), + ParseGameEventError(crate::game_event::ParseGameEventError) +} + +impl From for FirstPassError { + fn from(value: prost::DecodeError) -> Self { + Self::DecodeProtobuf(value) + } +} +impl From for FirstPassError { + fn from(value: crate::bitreader::BitReadError) -> Self { + Self::Bitreader(value) + } +} +impl From for FirstPassError { + fn from(value: crate::game_event::ParseGameEventError) -> Self { + Self::ParseGameEventError(value) + } +} + +#[derive(Debug)] +pub struct FirstPassOutput { + pub header: crate::csgo_proto::CDemoFileHeader, + pub info: crate::csgo_proto::CDemoFileInfo, + pub events: Vec, +} + +#[derive(Debug)] +struct GameEventMapping { + mapping: std::collections::HashMap)>, +} + +pub fn parse<'b, FI>(frames: FI) -> Result +where + FI: IntoIterator>, +{ + let mut header = None; + let mut file_info = None; + + let mut events = Vec::new(); + let mut event_mapping = GameEventMapping { + mapping: std::collections::HashMap::new(), + }; + + for mut frame in frames.into_iter() { + frame + .decompress() + .map_err(|e| FirstPassError::DecompressFrame)?; + let data = frame.data().ok_or(FirstPassError::NoDataFrame)?; + + match frame.cmd { + DemoCommand::FileHeader => { + let raw: crate::csgo_proto::CDemoFileHeader = prost::Message::decode(data)?; + header = Some(raw); + } + DemoCommand::FileInfo => { + let raw: crate::csgo_proto::CDemoFileInfo = prost::Message::decode(data)?; + file_info = Some(raw); + } + DemoCommand::SignonPacket | DemoCommand::Packet => { + parse_packet(data, &mut events, &mut event_mapping)?; + } + DemoCommand::FullPacket => { + parse_fullpacket(data, &mut events, &mut event_mapping)?; + } + _ => {} + } + } + + let header = header.ok_or(FirstPassError::MissingFileHeader)?; + let info = file_info.ok_or(FirstPassError::MissingFileInfo)?; + + Ok(FirstPassOutput { header, info, events }) +} + +fn parse_fullpacket( + data: &[u8], + events: &mut Vec, + event_mapper: &mut GameEventMapping, +) -> Result<(), FirstPassError> { + let raw: crate::csgo_proto::CDemoFullPacket = prost::Message::decode(data)?; + + // TODO + // Handle string table stuff + + match raw.packet { + Some(packet) => { + inner_parse_packet(&packet, events, event_mapper)?; + + Ok(()) + } + None => Ok(()), + } +} + +fn parse_packet( + data: &[u8], + events: &mut Vec, + event_mapper: &mut GameEventMapping, +) -> Result<(), FirstPassError> { + let raw: crate::csgo_proto::CDemoPacket = prost::Message::decode(data)?; + + inner_parse_packet(&raw, events, event_mapper)?; + + Ok(()) +} + +fn inner_parse_packet( + raw: &crate::csgo_proto::CDemoPacket, + events: &mut Vec, + event_mapper: &mut GameEventMapping, +) -> Result<(), FirstPassError> { + let mut bitreader = crate::bitreader::Bitreader::new(raw.data()); + + while bitreader.bits_remaining().unwrap_or(0) > 8 { + let msg_type = bitreader.read_u_bit_var()?; + let size = bitreader.read_varint()?; + let msg_bytes = bitreader.read_n_bytes(size as usize)?; + + let net_msg_type = match crate::netmessagetypes::NetmessageType::try_from(msg_type as i32) { + Ok(v) => v, + Err(e) => { + dbg!(e); + continue; + } + }; + + match net_msg_type { + crate::netmessagetypes::NetmessageType::svc_ClearAllStringTables => {} + crate::netmessagetypes::NetmessageType::svc_CreateStringTable => {} + crate::netmessagetypes::NetmessageType::svc_UpdateStringTable => {} + crate::netmessagetypes::NetmessageType::GE_Source1LegacyGameEventList => { + let event_list: crate::csgo_proto::CsvcMsgGameEventList = + prost::Message::decode(msg_bytes.as_slice())?; + + event_mapper.mapping.clear(); + for event in event_list.descriptors { + event_mapper + .mapping + .insert(event.eventid(), (event.name().to_owned(), event.keys)); + } + } + crate::netmessagetypes::NetmessageType::svc_ServerInfo => { + let raw: crate::csgo_proto::CsvcMsgServerInfo = + prost::Message::decode(msg_bytes.as_slice())?; + + events.push(DemoEvent::ServerInfo(raw)); + } + crate::netmessagetypes::NetmessageType::net_SignonState => {} + crate::netmessagetypes::NetmessageType::net_Tick => { + let raw: crate::csgo_proto::CnetMsgTick = + prost::Message::decode(msg_bytes.as_slice())?; + + events.push(DemoEvent::Tick(raw)); + } + crate::netmessagetypes::NetmessageType::net_SetConVar => {} + crate::netmessagetypes::NetmessageType::svc_ClassInfo => {} + crate::netmessagetypes::NetmessageType::svc_VoiceInit => {} + crate::netmessagetypes::NetmessageType::svc_PacketEntities => {} + crate::netmessagetypes::NetmessageType::svc_UserCmds => {} + crate::netmessagetypes::NetmessageType::GE_SosStartSoundEvent => {} + crate::netmessagetypes::NetmessageType::GE_SosStopSoundEvent => {} + crate::netmessagetypes::NetmessageType::CS_GE_PlayerAnimationEvent => {} + crate::netmessagetypes::NetmessageType::CS_GE_RadioIconEvent => {} + crate::netmessagetypes::NetmessageType::CS_GE_FireBullets => {} + crate::netmessagetypes::NetmessageType::GE_Source1LegacyGameEvent => { + let raw: crate::csgo_proto::CMsgSource1LegacyGameEvent = + prost::Message::decode(msg_bytes.as_slice())?; + + match event_mapper.mapping.get(&raw.eventid()) { + Some((name, keys)) => { + match crate::game_event::EVENT_PARSERS.get(&name) { + Some(parser) => { + let parsed = parser.parse(keys.as_slice(), raw.clone())?; + events.push(DemoEvent::GameEvent(parsed)); + } + None => { + println!("No parser for {:?}", name); + } + }; + } + None => { + println!("Unknown Event - ID: {}", raw.eventid()); + } + }; + } + crate::netmessagetypes::NetmessageType::UM_SayText2 => {} + crate::netmessagetypes::NetmessageType::CS_UM_XpUpdate => {} + crate::netmessagetypes::NetmessageType::CS_UM_ServerRankUpdate => { + let raw: crate::csgo_proto::CcsUsrMsgServerRankUpdate = + prost::Message::decode(msg_bytes.as_slice())?; + + events.push(DemoEvent::RankUpdate(raw)); + } + crate::netmessagetypes::NetmessageType::CS_UM_ServerRankRevealAll => { + let raw: crate::csgo_proto::CcsUsrMsgServerRankRevealAll = + prost::Message::decode(msg_bytes.as_slice())?; + + events.push(DemoEvent::RankReveal(raw)); + } + crate::netmessagetypes::NetmessageType::CS_UM_WeaponSound => {} + crate::netmessagetypes::NetmessageType::CS_UM_RadioText => {} + crate::netmessagetypes::NetmessageType::TE_WorldDecal => {} + crate::netmessagetypes::NetmessageType::TE_EffectDispatch => {} + crate::netmessagetypes::NetmessageType::CS_UM_PlayerStatsUpdate => {} + crate::netmessagetypes::NetmessageType::CS_UM_EndOfMatchAllPlayersData => {} + crate::netmessagetypes::NetmessageType::TE_PhysicsProp => {} + crate::netmessagetypes::NetmessageType::UM_TextMsg => {} + crate::netmessagetypes::NetmessageType::CS_UM_VoteFailed => {} + crate::netmessagetypes::NetmessageType::net_SpawnGroup_Load => {} + crate::netmessagetypes::NetmessageType::CS_UM_MatchEndConditions => {} + crate::netmessagetypes::NetmessageType::TE_Explosion => {} + unknown => { + dbg!(unknown); + } + }; + } + + Ok(()) +} diff --git a/src/varint.rs b/src/varint.rs new file mode 100644 index 0000000..3d36891 --- /dev/null +++ b/src/varint.rs @@ -0,0 +1,65 @@ +pub fn parse_varint(input: &[u8]) -> Result<(&[u8], u32), ()> { + let mut result: u32 = 0; + + for count in 0..5 { + let b = input.get(count).map(|c| *c as u32).ok_or(())?; + result |= (b & 127) << (7 * count); + + if b & 0x80 == 0 { + return Ok((&input[count + 1..], result)); + } + } + + Ok((&input[5..], result)) +} + +#[cfg(test)] +mod tests { + use super::*; + + #[test] + fn single_byte() { + let input = &[40, 0xff]; + + let (remaining, value) = parse_varint(input).unwrap(); + + assert_eq!(&[0xff], remaining); + assert_eq!(40, value); + } + + #[test] + fn double_byte() { + let input = &[0x87, 0x60, 0xff]; + + let (remaining, value) = parse_varint(input).unwrap(); + + assert_eq!(&[0xff], remaining); + } + + #[test] + fn three_byte() { + let input = &[0x87, 0x80, 0x61, 0xff]; + + let (remaining, value) = parse_varint(input).unwrap(); + + assert_eq!(&[0xff], remaining); + } + + #[test] + fn four_byte() { + let input = &[0x87, 0x80, 0x88, 0x61, 0xff]; + + let (remaining, value) = parse_varint(input).unwrap(); + + assert_eq!(&[0xff], remaining); + } + + #[test] + fn five_byte() { + let input = &[0x87, 0x80, 0x88, 0x89, 0x81, 0xff]; + + let (remaining, value) = parse_varint(input).unwrap(); + + assert_eq!(&[0xff], remaining); + } +} diff --git a/testfiles/mirage.dem b/testfiles/mirage.dem new file mode 100644 index 0000000..62f4e55 --- /dev/null +++ b/testfiles/mirage.dem @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5ff7263557bc0a065f712880a7cea95100d2aa51d2d4b8ae20db43b67f98da8b +size 254846170 diff --git a/tests/parse.rs b/tests/parse.rs new file mode 100644 index 0000000..3bd4b82 --- /dev/null +++ b/tests/parse.rs @@ -0,0 +1,15 @@ +#[test] +fn mirage_1() { + let content = std::fs::read("testfiles/mirage.dem").unwrap(); + + let container = csdemo::Container::parse(&content).unwrap(); + + let frame_iter = csdemo::FrameIterator::parse(container.inner); + assert_eq!(123333, frame_iter.count()); + + let output = csdemo::parser::parse(csdemo::FrameIterator::parse(container.inner)).unwrap(); + + assert_eq!("de_mirage", output.header.map_name()); + + todo!() +}