Initial version

This commit is contained in:
Lol3rrr
2024-09-15 05:09:15 +02:00
commit c7aa4dbe8c
489 changed files with 124650 additions and 0 deletions

View File

@@ -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 {
}

View File

@@ -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;
}

View File

@@ -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;
}

View File

@@ -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;
}

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -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;
}

View File

@@ -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;
}

View File

@@ -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;
}

File diff suppressed because it is too large Load Diff

View File

@@ -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;
}

File diff suppressed because it is too large Load Diff

View File

@@ -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;
}

View File

@@ -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;
}

View File

@@ -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;
}

View File

@@ -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;
}

View File

@@ -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;
}

View File

@@ -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"];
}

View File

@@ -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;
}

View File

@@ -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 {
}

View File

@@ -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;
}

View File

@@ -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;
}

View File

@@ -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;
}

View File

@@ -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;
}

View File

@@ -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;
}

View File

@@ -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.";
}
}

View File

@@ -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";
}
}

View File

@@ -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";
}
}

View File

@@ -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";
}
}

View File

@@ -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";
}
}

View File

@@ -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;
}

View File

@@ -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;
}

View File

@@ -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;
}

View File

@@ -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;
}

View File

@@ -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;
}

View File

@@ -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;
}

View File

@@ -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;
}

View File

@@ -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];
}