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

View File

@@ -0,0 +1,638 @@
import "dcg_gcmessages_common.proto";
option optimize_for = SPEED;
option cc_generic_services = false;
enum EDCGGameMessages {
k_EMsgGameBoardGameCommand = 1;
k_EMsgGameBoardGameState = 2;
k_EMsgGameBoardGameButton = 3;
k_EMsgGamePlayerRequestHandoff = 4;
k_EMsgGameHandoff = 5;
k_EMsgGameReplayActionMarker = 6;
k_EMsgGameClientToServerChatMsg = 7;
k_EMsgGameServerToClientChatMsg = 8;
k_EMsgGameClientToServerPauseTimer = 9;
k_EMsgGameServerToClientConnectionStatus = 10;
k_EMsgGameClientToServerGiveOpponentTime = 11;
k_EMsgGameServerToClientInitialGameState = 12;
k_EMsgGameServerToClientGameCompleted = 13;
k_EMsgGameClientToServerBoardGameStateAck = 14;
k_EMsgGameServerToClientGoodbye = 15;
k_EMsgTutorialEvent = 1000;
k_EMsgVenchatoquistEvent = 1001;
}
enum EScriptBlockType {
INVALID_SCRIPT_TYPE = 0;
CARD_PLAY_SCRIPT = 1;
GENERIC_TRIGGER_SCRIPT = 2;
SBE_UPDATE_SCRIPT = 3;
DEATH_CHECK_SCRIPT = 4;
COMBAT = 5;
CARD_DRAW_PHASE = 6;
END_OF_TURN_PHASE = 7;
COLLAPSE_LANE = 8;
CE_ADDED = 9;
CE_REMOVED = 10;
SURVIVED_DEATH = 11;
DEV_COMMAND = 12;
AFTER_COMBAT_PHASE = 13;
UPDATE_COMBAT_PREVIEW = 14;
UPDATE_OBJECT_ATTRIBUTES = 15;
TRIGGER_BLOCK = 16;
POST_SHOP_ITEM_PURCHASE = 17;
FLOP_DEPLOYMENT_TO_COMBAT = 18;
BEGINNING_OF_SPELLCASTING = 19;
PREGAME = 20;
RAPID_DEPLOYMENT = 21;
INITIAL_FLOP = 23;
CREEP_DEPLOYMENT = 24;
PREPARE_HEROES_FOR_LANE_ASSIGNMENT = 25;
SHOPPING_START = 26;
SHOPPING_UPDATE = 27;
SHOPPING_FINISHED = 28;
HERO_LANE_ASSIGNMENT = 29;
HERO_VS = 30;
PATHING_CARD_DEPLOYMENT = 31;
HACKED_EFFECT = 32;
EXPORT_CARD_SET_TO_IMAGES = 33;
GAME_OVER = 34;
TOKEN_DEPLOYED = 35;
}
enum EShoppingSlot {
eInvalidSlot = 0;
eMiddleShop = 1;
eSecretShop = 2;
eConsumableShop = 3;
}
enum EDCGDisconnectReason {
k_EDCGDisconnectReason_UserLeaveMatch = 1001;
k_EDCGDisconnectReason_UserQuitApp = 1002;
k_EDCGDisconnectReason_UserCancel = 1003;
k_EDCGDisconnectReason_Goodbye = 1004;
k_EDCGDisconnectReason_BadMessage = 2001;
k_EDCGDisconnectReason_GameDestroyedUnexpectedly = 2002;
k_EDCGDisconnectReason_ChangingServer = 2003;
k_EDCGDisconnectReason_OldConnection = 2004;
k_EDCGDisconnectReason_GoodbyeUnrecognizedGame = 2005;
}
message CMsgClientServerHeader {
optional uint64 game_instance_id = 1;
optional uint32 local_player_index = 2;
optional bytes payload = 3;
optional .EDCGGameMessages msg_id = 4 [default = k_EMsgGameBoardGameCommand];
}
message CMsgGameBoardGameCommand {
optional uint32 command_id = 1;
optional uint32 object_id = 2;
}
message CMsgGameBoardGameState {
optional bool is_diff = 1;
optional bool is_last = 2;
optional bytes payload = 3;
optional uint32 unpacked_state_size = 4;
optional uint32 network_group = 5;
optional uint32 server_time_ms = 6;
}
message CMsgGameBoardGameButton {
optional uint32 button_id = 1;
}
message CMsgGamePlayerRequestHandoff {
}
message CMsgGameHandoff {
optional uint32 player_count = 1;
optional bool is_spectator = 3;
optional .EDCGMatchMode game_mode = 4 [default = k_EDCGMatchMode_Unranked];
}
message CMsgGameServerToClientInitialGameState {
message CMsgDeckList {
optional uint32 owner_id = 1;
optional bytes deck_data = 2;
}
message CMsgCombatLogEntry {
optional uint32 type = 1;
optional uint32 target_object_id = 2;
optional uint32 target_card_id = 3;
optional uint32 value = 4;
optional uint32 secondary_value = 5;
optional uint32 sub_type = 6;
optional uint32 source_object_id = 7;
optional uint32 source_card_id = 8;
optional uint32 owner_id = 9;
optional uint32 lane_id = 10;
optional uint32 remaining_health = 11;
optional uint32 old_arrow_direction = 12;
optional .EShoppingSlot slot = 14 [default = eInvalidSlot];
}
repeated .CMsgGameServerToClientInitialGameState.CMsgDeckList decklist = 1;
repeated .CMsgGameServerToClientInitialGameState.CMsgCombatLogEntry combat_log_entry = 2;
}
message CMsgGameReplayActionMarker {
enum EActionType {
k_eActionType_TurnStart = 1;
k_eActionType_TurnEnd = 2;
k_eActionType_ShoppingStart = 3;
k_eActionType_ShoppingEnd = 4;
k_eActionType_HeroPlacementStart = 5;
k_eActionType_HeroPlacementEnd = 6;
k_eActionType_MatchComplete = 7;
k_eActionType_LaneStart = 8;
k_eActionType_LaneEnd = 9;
k_eActionType_LaneCombat = 10;
k_eActionType_PlayerAction = 11;
}
optional .CMsgGameReplayActionMarker.EActionType action = 1 [default = k_eActionType_TurnStart];
}
message CMsgTutorialEvent {
optional string type = 1;
optional uint32 object_id = 2;
optional string param1 = 3;
optional string param2 = 4;
optional string param3 = 5;
}
message CMsgVenchatoquistEvent {
enum EChatSource {
eObjectID = 1;
ePlayer = 2;
eDeckImp = 3;
}
optional string text = 1;
optional uint32 object_id = 2;
optional .CMsgVenchatoquistEvent.EChatSource chat_source = 3 [default = eObjectID];
optional string persona_name = 4;
optional uint32 user_id = 5;
optional uint32 line_id = 6;
optional bool toggle_mute = 7;
}
message CMsgGameClientToServerChatMsg {
optional .CExtraMsgBlock gc_chat_msg = 1;
}
message CMsgGameServerToClientChatMsg {
optional .CExtraMsgBlock gc_chat_response = 1;
}
message CMsgGameServerToClientGameCompleted {
}
message CMsgGameClientToServerBoardGameStateAck {
optional uint32 server_time_ms = 1;
}
message CMsgGameServerToClientGoodbye {
}
message CMsgGameClientToServerPauseTimer {
optional bool pause = 1;
}
message CMsgGameServerToClientConnectionStatus {
message Player {
optional uint32 player_id = 1;
optional .CMsgGameServerToClientConnectionStatus.EStatus status = 2 [default = k_EConnected];
optional bool inactivity_ticking = 3;
optional uint32 inactivity_ms_remaining = 4;
optional uint32 inactivity_anim_ms_remaining = 5;
}
enum EStatus {
k_EConnected = 1;
k_EDisconnected = 2;
}
repeated .CMsgGameServerToClientConnectionStatus.Player players = 1;
}
message CMsgGameClientToServerGiveOpponentTime {
}
message CClientReconnectInfo {
optional fixed64 server_steam_id = 1;
optional uint64 match_id = 2;
optional uint32 time_updated = 3;
}
message CMsgPostMatchStats {
message CStat {
optional uint32 card_id = 1;
optional uint32 stat_id = 2;
optional uint32 value = 3;
}
message CLane {
optional uint32 player = 1;
optional uint32 turn = 2;
optional uint32 lane = 3;
repeated .CMsgPostMatchStats.CStat stats = 4;
}
repeated .CMsgPostMatchStats.CLane lanes = 1;
}
message CMsgPostMatchCardAchievements {
repeated uint32 achievement_id = 1 [packed = true];
repeated uint32 base_values = 2 [packed = true];
repeated uint32 progress = 3 [packed = true];
}
message CMsgSerializeQuestProgress {
message LocalUnlock {
optional uint32 node_id = 1;
}
optional uint32 version = 1;
optional uint32 quest_id = 2;
optional uint32 account_id = 3;
optional bytes progress_msg = 4;
repeated .CMsgSerializeQuestProgress.LocalUnlock local_unlocks = 5;
}
message CMsg_Card {
optional uint32 card_id = 1;
optional uint32 source_effect_card_id = 2;
optional string color = 3;
}
message CTraceMsg_PathingCardChanged {
optional uint32 new_card_id = 1;
optional bool is_boundary_path = 2;
optional bool is_valid_path_target = 3;
}
message CTraceMsg_CardBought {
optional int32 turn_card_entered_hand = 1;
optional int32 order_card_entered_hand = 2;
}
message CTraceMsg_ChargesChanged {
optional int32 charge_delta = 1;
optional uint32 new_charges = 2;
}
message CTraceMsg_ShoppingCardAppeared {
optional .EShoppingSlot slot = 1 [default = eInvalidSlot];
}
message CTraceMsg_ShopAction {
}
message CTraceMsg_ShopHoldItemAvailable {
optional uint32 owner_id = 1;
optional bool is_available = 2;
}
message CTraceMsg_ShopCardRemoved {
}
message CTraceMsg_ShopEnded {
optional uint32 owner_id = 1;
}
message CTraceMsg_ShoppingCardShuffled {
optional uint32 shop_order = 1;
}
message CTraceMsg_UnitEnteringCombat {
optional uint32 new_lane_id = 1;
optional uint32 new_combat_position = 2;
optional uint32 owner_id = 4;
optional bool is_valid_path_target = 5;
optional bool is_boundary_path = 6;
}
message CTraceMsg_ImprovementEnteringPlay {
optional uint32 new_lane_id = 1;
optional uint32 new_improvement_position = 2;
optional .CMsg_Card card = 3;
optional uint32 owner_id = 4;
}
message CTraceMsg_UnitLeavingCombat {
optional uint32 lane_id = 1;
optional uint32 new_zone_id = 2;
}
message CTraceMsg_DeathShieldUsed {
}
message CTraceMsg_CardSurvivedDeath {
optional uint32 survival_chance = 1;
optional uint32 source_card_id = 2;
optional uint32 source_object_id = 3;
}
message CTraceMsg_TowerKilled {
optional uint32 owner_id = 1;
optional bool is_combat = 2;
optional bool is_defeat_for_owner = 3;
}
message CTraceMsg_CardKilled {
optional uint32 owner_id = 1;
optional bool is_creep = 2;
optional bool is_hero = 3;
optional bool is_combat = 4;
}
message CTraceMsg_ImprovementDestroyed {
optional uint32 owner_id = 1;
}
message CTraceMsg_CardReturnedToFountain {
}
message CTraceMsg_CardMovedToDeck {
optional uint32 previous_zone_id = 1;
optional uint32 owner_id = 2;
}
message CTraceMsg_CardMovedToHand {
optional uint32 previous_zone_id = 1;
}
message CTraceMsg_CardMovedToDeployment {
optional uint32 lane_id = 1;
optional uint32 this_turn_hero_deployment_order = 2;
}
message CTraceMsg_CardMovedToEffects {
}
message CTraceMsg_CardMovedToSpellStack {
}
message CTraceMsg_CardReturnedToGuardDeck {
}
message CTraceMsg_CardMovedToGraveyard {
}
message CTraceMsg_CardDuplicated {
optional uint32 source_object_id = 1;
optional uint32 copied_card_object_id = 2;
optional uint32 source_effect_card_id = 3;
optional uint32 lane_id = 4;
optional uint32 zone_id = 5;
}
message CTraceMsg_CardDrawn {
enum ECardDrawnSource {
k_eCardDrawnSource_Deck = 1;
k_eCardDrawnSource_ItemDeck = 2;
k_eCardDrawnSource_Nowhere = 3;
}
optional uint32 owner_id = 1;
optional int32 turn_card_entered_hand = 2;
optional int32 order_card_entered_hand = 3;
optional .CTraceMsg_CardDrawn.ECardDrawnSource drawn_source = 4 [default = k_eCardDrawnSource_Deck];
}
message CTraceMsg_CardPlayed {
}
message CTraceMsg_UnitCondemned {
optional uint32 source_object_id = 1;
}
message CTraceMsg_TriggerTriggered {
optional uint32 source_object_id = 1;
optional uint32 source_effect_card_id = 2;
optional int32 event_name = 3;
optional uint32 related_object_id = 4;
}
message CTraceMsg_EffectProcced {
optional uint32 source_object_id = 1;
}
message CTraceMsg_UnitTargeted {
optional uint32 source_object_id = 1;
optional uint32 target_group = 2;
optional uint32 target_group_number = 3;
}
message CTraceMsg_PlayerPassed {
optional uint32 player_id = 1;
optional bool pass_to_combat = 2;
}
message CTraceMsg_UnitUserTargeted {
}
message CTraceMsg_UnitLocked {
optional uint32 turns = 1;
optional uint32 source_object_id = 2;
}
message CTraceMsg_UnitReadiedForDeploymentUponDeath {
optional uint32 source_card_id = 1;
}
message CTraceMsg_DamageAttempted {
optional uint32 source_object_id = 1;
optional uint32 damage_attempted = 2;
optional uint32 damage_dealt = 3;
optional uint32 source_effect_card_id = 4;
optional .CMsg_Card card = 5;
optional int32 damage_type = 6;
optional int32 remaining_health = 7;
optional bool is_tower = 8;
optional bool is_combat = 9;
optional uint32 damage_prevented = 10;
}
message CTraceMsg_UnitHealed {
optional uint32 source_object_id = 1;
optional uint32 heal = 2;
optional uint32 source_effect_card_id = 3;
}
message CTraceMsg_UnitChangedCombatPosition {
optional uint32 new_combat_position = 1;
optional int32 old_combat_position = 2;
optional uint32 owner_id = 3;
optional uint32 lane_id = 4;
}
message CTraceMsg_UnitChangedCombatTarget {
optional uint32 new_combat_target = 1;
optional uint32 lane_id = 2;
optional uint32 old_arrow_direction = 3;
optional uint32 arrow_direction = 4;
optional uint32 old_combat_target = 5;
}
message CTraceMsg_RandomlySelectedSecondaryTarget {
}
message ContinuousEffectSingleProperty {
optional uint32 attr_token = 1;
optional int32 value_diff = 2;
}
message CTraceMsg_GainedAppliedEffectEx {
optional uint32 source_object_id = 1;
optional uint32 source_card_id = 2;
optional uint32 effect_source_card_id = 3;
repeated .ContinuousEffectSingleProperty properties = 4;
}
message CTraceMsg_LostAppliedEffectEx {
optional uint32 source_object_id = 1;
optional uint32 source_card_id = 2;
optional uint32 effect_source_card_id = 3;
repeated .ContinuousEffectSingleProperty properties = 4;
}
message CTraceMsg_ContinuousAppliedEffectChangedEx {
optional uint32 source_object_id = 1;
optional uint32 source_card_id = 2;
optional uint32 effect_source_card_id = 3;
repeated .ContinuousEffectSingleProperty properties = 4;
}
message CTraceMsg_AttributeValueChanged {
optional uint32 attr_token = 1;
optional int32 value_final = 2;
}
message CTraceMsg_GoldEarned {
optional uint32 owner_id = 1;
optional uint32 source_object_id = 2;
optional int32 amount = 3;
optional int32 available = 4;
}
message CTraceMsg_TowerHealed {
optional uint32 source_object_id = 1;
optional uint32 heal = 2;
optional uint32 source_effect_card_id = 3;
}
message CTraceMsg_TargetSelected {
}
message CTraceMsg_CardDiscarded {
optional uint32 source_card_object_id = 1;
optional uint32 template_card_id = 2;
optional bytes card_instance_attributes = 3;
optional bytes card_calculated_effects = 4;
}
message CTraceMsg_CardCreated {
optional uint32 owner_id = 1;
optional uint32 template_card_id = 2;
optional bytes card_instance_attributes = 3;
optional bytes card_calculated_effects = 4;
optional bool is_item = 5;
optional bool was_spawned_as_dire = 6;
optional uint32 spawn_duplicate_index = 7;
optional bool is_duplicate = 8;
}
message CTraceMsg_CardRevealed {
optional uint32 owner_id = 3;
optional uint32 template_card_id = 4;
optional bytes card_instance_attributes = 5;
optional bytes card_calculated_effects = 6;
}
message CTraceMsg_TowerManaRestored {
optional uint32 mana_amount_restored = 1;
optional uint32 mana_amount_restore_attempt = 2;
}
message CTraceMsg_InnerBlock {
optional uint32 block_id = 1;
optional uint32 card_id = 2;
optional uint32 script_type = 3;
optional uint32 object_id = 4;
}
message CTraceMsg_PreviewDeathResultChanged {
optional uint32 old_preview_death_result = 1;
optional uint32 new_preview_death_result = 2;
optional uint32 owner_id = 3;
optional bool is_creep = 4;
optional bool is_hero = 5;
optional bool is_tower = 6;
}
message CTraceMsg_PreviewDamageChanged {
optional uint32 old_preview_damage = 1;
optional uint32 new_preview_damage = 2;
optional uint32 owner_id = 3;
}
message CTraceMsg_ColorsPlayableChanged {
optional uint32 owner_id = 1;
optional uint32 lane_id = 2;
optional uint32 color_flags = 3;
optional uint32 prev_color_flags = 4;
}
message CTraceMsg_ItemEquipped {
optional uint32 hero_equipped_to_id = 1;
}
message CTraceMsg_StateBasedEffectsUpdateStart {
}
message CTraceMsg_StateBasedEffectsUpdateEnd {
}
message CTraceMsg_TowerManaSpent {
optional uint32 source_object_id = 1;
optional uint32 mana_spent = 2;
}
message CTraceMsg_CardEffectCalculation {
optional uint32 source_object_id = 1;
optional int32 value = 2;
}
message CTraceMsg_DeathSyncPoint {
}
message CTraceMsg_ScriptBlockBegin {
optional uint32 script_type = 1;
optional uint32 card_id = 2;
optional uint32 object_id = 3;
}
message CTraceMsg_ScriptBlockEnd {
optional uint32 script_type = 1;
}
message CTraceMsg_PrepareHeroForLaneAssignment {
optional uint32 script_type = 1;
optional uint32 card_id = 2;
}
message CTraceMsg_HeroVS {
repeated uint32 hero_ids = 1;
}
message CTraceMsg_PlayerResult {
optional uint32 owner_id = 1;
optional bool has_won = 2;
}

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,617 @@
import "steammessages.proto";
option optimize_for = SPEED;
option cc_generic_services = false;
enum EGCDCGCommonMessages {
k_EMsgAnyToGCReportAsserts = 7000;
k_EMsgAnyToGCReportAssertsResponse = 7001;
}
enum EDCGMatchMode {
k_EDCGMatchMode_Unranked = 2;
k_EDCGMatchMode_Gauntlet = 3;
k_EDCGMatchMode_PrivateLobby = 6;
k_EDCGMatchMode_Puzzle = 7;
k_EDCGMatchMode_AI = 8;
k_EDCGMatchMode_Tournament = 9;
}
enum EDCGLobbyTeam {
k_EDCGLobbyTeam_Team0 = 0;
k_EDCGLobbyTeam_Team1 = 1;
k_EDCGLobbyTeam_Spectator = 16;
}
enum EDCGLobbyTimer {
k_eDCGLobbyTimer_Unspecified = 0;
k_eDCGLobbyTimer_Disabled = 1;
k_eDCGLobbyTimer_Default = 2;
k_eDCGLobbyTimer_Tournament = 3;
k_eDCGLobbyTimer_TimeAttack = 4;
k_eDCGLobbyTimer_ShotClockOnly = 5;
}
enum ELobbyServerState {
k_eLobbyServerState_Assign = 0;
k_eLobbyServerState_InGame = 1;
k_eLobbyServerState_PostMatch = 2;
k_eLobbyServerState_SignedOut = 3;
k_eLobbyServerState_Abandoned = 4;
}
enum EGCLobbyData {
k_ELobbyData_PostMatchSurvey = 1;
}
enum DCG_COMBATLOG_TYPES {
DCG_COMBATLOG_INVALID = -1;
DCG_COMBATLOG_DAMAGE = 0;
DCG_COMBATLOG_HEAL = 1;
DCG_COMBATLOG_DRAW = 2;
DCG_COMBATLOG_PASS = 3;
DCG_COMBATLOG_COMBAT = 4;
DCG_COMBATLOG_PLAY_CREEP = 5;
DCG_COMBATLOG_PLAY_IMPROVEMENT = 6;
DCG_COMBATLOG_PLAY_SPELL = 7;
DCG_COMBATLOG_PLAY_EQUIPMENT = 8;
DCG_COMBATLOG_PLAY_ABILITY = 9;
DCG_COMBATLOG_GAIN_GOLD = 10;
DCG_COMBATLOG_BUY_ITEM = 11;
DCG_COMBATLOG_DISCARD = 12;
DCG_COMBATLOG_ADD_MODIFIER = 13;
DCG_COMBATLOG_REMOVE_MODIFIER = 14;
DCG_COMBATLOG_KILL = 15;
DCG_COMBATLOG_CARD_MOVE = 16;
DCG_COMBATLOG_CREEP_SPAWN = 17;
DCG_COMBATLOG_DEATH = 18;
DCG_COMBATLOG_COMBAT_OVER = 19;
DCG_COMBATLOG_BEGGINING_OF_SPELLCASTING = 20;
DCG_COMBATLOG_BEGGINING_OF_SPELLCASTING_END = 21;
DCG_COMBATLOG_UNIT_ENTERING_COMBAT = 22;
DCG_COMBATLOG_UNIT_LEAVING_COMBAT = 23;
DCG_COMBATLOG_TRIGGER_TRIGGERED = 24;
}
message CExtraMsgBlock {
optional uint32 msg_type = 1;
optional bytes contents = 2;
optional uint64 msg_key = 3;
optional bool is_compressed = 4;
}
message CSODCGLobby {
message GauntletInfo {
optional uint32 wins = 1;
optional uint32 losses = 2;
}
message Member {
optional uint32 account_id = 1;
optional string persona_name = 2;
optional .EDCGLobbyTeam team = 3 [default = k_EDCGLobbyTeam_Team0];
optional bool has_left = 4;
optional bool is_anonymous = 5;
optional .CSODCGLobby.GauntletInfo gauntlet_info = 6;
}
repeated .CSODCGLobby.Member members = 1;
repeated .CExtraMsgBlock extra_messages = 2;
optional fixed64 server_steam_id = 3;
optional uint64 lobby_id = 5;
optional uint64 match_id = 6;
optional uint32 gauntlet_id = 7;
optional .ELobbyServerState server_state = 8 [default = k_eLobbyServerState_Assign];
optional fixed32 replay_salt = 9;
optional .EDCGMatchMode match_mode = 10 [default = k_EDCGMatchMode_Unranked];
optional uint32 udp_connect_ip = 11;
optional uint32 udp_connect_port = 12;
optional uint64 tourney_id = 13;
optional uint32 tourney_phase_id = 14;
optional uint32 tourney_series_id = 15;
}
message CLobbyData_PostMatchSurvey {
message PlayerSurvey {
optional uint32 account_id = 1;
optional uint32 question_id = 2;
}
repeated .CLobbyData_PostMatchSurvey.PlayerSurvey surveys = 1;
}
message CSOGameAccountClient {
enum EFlags {
k_eDeveloper = 1;
k_eFreePlayer = 2;
}
optional uint32 account_id = 1 [(key_field) = true];
optional uint32 flags = 3;
optional uint32 initial_grant_ack_def = 5;
optional uint32 recycling_progress = 6;
optional uint32 progress_level = 7;
optional uint32 progress_xp = 8;
optional uint32 constructed_mmr_level = 9;
optional uint32 last_win_bounus_time = 10;
optional uint32 match_win_streak = 11;
optional uint32 bonus_period_wins = 12;
optional uint32 player_badge = 13;
optional uint32 draft_mmr_level = 14;
}
message CSOGauntlet {
optional uint32 account_id = 1 [(key_field) = true];
optional uint32 gauntlet_id = 2 [(key_field) = true];
optional uint64 active_lobby_id = 3;
optional uint32 abandoned_time = 4;
optional bytes deck_bytes = 5;
optional uint64 gauntlet_instance = 9;
optional uint32 entry_type = 10;
optional uint64 limited_instance = 11;
optional uint32 wins = 12;
optional uint32 losses = 13;
optional uint64 wins_mask = 14;
optional bool select_random_deck = 15;
}
message CSOPhantomItem {
optional uint32 account_id = 1;
optional uint64 limited_pool = 2;
optional uint32 def_index = 3;
optional uint64 phantom_id = 4;
}
message CSOCardAchievement {
optional uint32 account_id = 1;
optional uint32 achievement_id = 2;
optional uint32 progress = 3;
}
message CSOPlayerLimitedProgress {
optional uint32 account_id = 1;
optional uint64 limited_instance_id = 2;
optional uint64 limited_pool_id = 3;
optional uint32 limited_format = 4;
optional uint32 progress = 5;
optional uint32 flags = 6;
}
message CSOTourneyMembership {
enum EStatus {
k_eConfigure = 1;
k_eInvites = 2;
k_eSeeding = 3;
k_eLimited = 4;
k_eEditPhase = 5;
k_ePlaying = 6;
k_eWaiting = 7;
k_eClosed = 8;
k_eInvites_Registered = 9;
k_eLimited_Registered = 10;
}
optional uint32 account_id = 1;
optional uint64 tourney_id = 2;
optional uint32 player_status = 3;
optional .CSOTourneyMembership.EStatus tourney_status = 4 [default = k_eConfigure];
optional uint32 joined_time = 5;
optional uint32 open_tourney = 6;
}
message CSOTourneyInvite {
optional uint32 account_id = 1;
optional uint64 tourney_id = 2;
optional bool is_full = 3;
optional uint32 invited_by = 4;
optional uint32 rights_flags = 5;
}
message CMsgStartFindingMatchInfo {
optional uint32 gauntlet_id = 1;
optional string server_search_key = 2;
optional uint32 client_version = 3;
optional .EDCGMatchMode match_mode = 4 [default = k_EDCGMatchMode_Unranked];
optional bytes deck_code = 5;
optional bool is_anonymous = 7;
optional bytes collection_code = 8;
}
message CMsgDCGCombatLogEntry {
optional .DCG_COMBATLOG_TYPES type = 1 [default = DCG_COMBATLOG_INVALID];
optional uint32 target_card_id = 2;
optional uint32 target_object_id = 3;
optional uint32 target_owner = 4;
optional uint32 source_card_id = 5;
optional uint32 source_object_id = 6;
optional uint32 source_owner = 7;
optional uint32 value = 8;
optional int32 target_attack = 9;
optional int32 target_armor = 10;
optional int32 target_health = 11;
optional int32 source_attack = 12;
optional int32 source_armor = 13;
optional int32 source_health = 14;
optional uint32 turnstamp = 15;
optional uint32 source_lane = 16;
optional uint32 target_lane = 17;
optional uint32 source_parent_card_id = 18;
optional uint32 source_parent_object_id = 19;
optional uint32 modifier_type = 20;
optional bool piercing = 21;
optional string effect_name = 22;
optional uint32 target_combat_position = 23;
}
message CMsgDeckValidator {
message Deck {
optional bytes deck_bytes = 1;
optional string deck_name = 2;
optional uint32 deck_id = 3;
}
message CardLimit {
optional uint32 card_id = 1;
optional uint32 card_count = 2;
}
enum ERarity {
eRarity_Common = 1;
eRarity_Uncommon = 2;
eRarity_Rare = 3;
}
enum EColor {
eColor_Red = 0;
eColor_Blue = 1;
eColor_Green = 2;
eColor_Black = 3;
}
optional uint32 version = 1;
optional bool must_own_cards = 2;
repeated uint32 set_ids = 4;
optional uint32 main_min = 5;
optional uint32 main_max = 6;
optional uint32 items_min = 7;
optional uint32 items_max = 8;
optional uint32 main_max_instances = 9;
optional uint32 items_max_instances = 10;
optional uint32 hero_max_instances = 11;
repeated .CMsgDeckValidator.CardLimit card_limits = 12;
repeated .CMsgDeckValidator.CardLimit required_cards = 13;
optional bool include_active_sets = 14;
repeated .CMsgDeckValidator.ERarity blocked_rarities = 15;
optional uint32 min_deck_colors = 16;
optional uint32 max_deck_colors = 17;
repeated .CMsgDeckValidator.EColor blocked_colors = 18;
optional bool random_decks = 19;
repeated .CMsgDeckValidator.Deck deck_choices = 20;
}
message CMsgAnyToGCReportAsserts {
message TrackedAssert {
optional string filename = 1;
optional uint32 line_number = 2;
optional string sample_msg = 3;
optional string sample_stack = 4;
optional uint32 times_fired = 5;
optional string function_name = 6;
optional string condition = 7;
}
optional uint32 version = 1;
repeated .CMsgAnyToGCReportAsserts.TrackedAssert asserts = 2;
}
message CMsgAnyToGCReportAssertsResponse {
optional bool success = 1;
}
message CMsgGauntletConfig {
message RewardTier {
message Grant {
optional uint32 grant_id = 1;
optional uint32 quantity = 2;
}
repeated .CMsgGauntletConfig.RewardTier.Grant trophy_grant = 1;
repeated .CMsgGauntletConfig.RewardTier.Grant item_grant = 2;
optional uint32 min_wins = 3;
repeated string loot_list_rolls = 4;
}
message EntryType {
message ItemCost {
optional uint32 def_index = 1;
optional uint32 quantity = 2;
}
optional uint32 entry_id = 1;
repeated .CMsgGauntletConfig.EntryType.ItemCost item_costs = 2;
optional uint32 limited_format_overide = 3;
}
message GauntletPointsLeaderboard {
optional uint32 expiration_time = 1;
}
optional uint32 gauntlet_id = 1;
optional uint32 activate_time = 2;
optional uint32 max_wins = 3;
optional uint32 max_losses = 4;
optional uint32 max_games = 5;
repeated .CMsgGauntletConfig.RewardTier rewards = 7;
optional .CMsgDeckValidator validator = 8;
optional bool register_deck = 10;
optional bool auto_populate_deck = 12;
optional bool can_modify_deck = 14;
optional bool is_active = 15;
optional bool is_featured = 16;
repeated .CMsgGauntletConfig.EntryType entry_types = 17;
optional uint32 limited_format = 18;
optional uint32 expiration_time = 19;
optional uint32 close_join_time = 20;
optional uint32 close_mm_time = 21;
optional uint32 max_wins_trophy_id = 22;
optional uint32 cooldown_time = 23;
optional uint32 max_wins_per_deck_trophy_id = 24;
optional uint32 max_wins_random_mode_trophy_id = 25;
optional uint32 is_ai_gauntlet = 26;
repeated .CMsgDeckValidator ai_validators = 27;
repeated .CMsgGauntletConfig.GauntletPointsLeaderboard gauntlet_points_leaderboards = 29;
optional string timer = 30;
}
message CMsgLimitedFormat {
message LimitedStage {
optional .CMsgLimitedFormat.EGrantType grant_type = 1 [default = kGrant_Unknown];
optional uint32 grant_count = 2;
optional uint32 repeat_count = 3;
optional string display_msg = 4;
}
enum EGrantType {
kGrant_Unknown = 0;
kGrant_Hero = 1;
kGrant_Card = 2;
kGrant_Item = 3;
kGrant_Pack = 4;
}
optional uint32 limited_format_id = 1;
optional uint32 grant_stages = 2;
repeated .CMsgLimitedFormat.LimitedStage grant_stage_info = 3;
optional bool create_real_copies = 4;
}
message CSODCGPrivateLobby {
message Member {
optional uint32 account_id = 1;
optional string persona_name = 2;
optional .EDCGLobbyTeam team = 3 [default = k_EDCGLobbyTeam_Team0];
optional bool is_ready = 4;
optional bytes deck_bytes = 5;
optional bool has_deck = 7;
optional uint32 client_version = 8;
optional .CMsgRegionPingTimesClient ping_times = 9;
}
message Invite {
optional uint32 account_id = 1;
optional string persona_name = 2;
optional uint32 invited_by = 3;
}
message SharedDeck {
optional uint32 shared_by_account_id = 1;
optional bytes deck_bytes = 2;
optional string deck_name = 3;
}
message Match {
optional uint64 match_id = 1;
optional uint32 winning_account_id = 2;
}
optional uint64 private_lobby_id = 1;
repeated .CSODCGPrivateLobby.Member members = 2;
repeated .CSODCGPrivateLobby.Invite invites = 3;
repeated .CExtraMsgBlock extra_messages = 4;
optional bool in_match_making = 5;
optional string server_search_key = 6;
optional bool are_decks_visible = 7;
repeated .CSODCGPrivateLobby.Match match_list = 8;
optional .EDCGLobbyTimer timer_mode = 9 [default = k_eDCGLobbyTimer_Unspecified];
optional fixed64 match_lobby_id = 10;
repeated .CSODCGPrivateLobby.SharedDeck shared_decks = 11;
optional .CMsgDeckValidator deck_validator = 12;
optional uint32 min_client_version = 15;
optional uint32 max_client_version = 16;
optional uint64 steam_chat_group_id = 17;
optional fixed64 lobby_salt = 18;
optional uint32 validator_id = 19;
}
message CSODCGTourneyInvite {
optional uint32 account_id = 1 [(key_field) = true];
optional uint64 tourney_id = 2 [(key_field) = true];
optional bool is_full = 3;
}
message CSODCGTourneyNextMatch {
optional uint32 account_id = 1 [(key_field) = true];
optional uint64 tourney_id = 2 [(key_field) = true];
optional uint32 phase_id = 3 [(key_field) = true];
optional uint32 series_id = 4 [(key_field) = true];
}
message CDCGTourney {
message Match {
optional uint64 match_id = 1;
}
message Series {
optional uint32 series_id = 1;
optional uint32 account_1 = 2;
optional uint32 wins_1 = 3;
optional uint32 account_2 = 4;
optional uint32 wins_2 = 5;
optional uint32 ties = 6;
optional uint32 status = 7;
repeated .CDCGTourney.Match matches = 8;
optional fixed64 lobby_id = 9;
}
message Phase {
optional uint32 phase_id = 1;
optional .CDCGTourney.EFormat format = 2 [default = k_eFormat_Invalid];
optional .CDCGTourney.EPhaseStage stage = 3 [default = k_ePhaseStage_Pending];
repeated .CDCGTourney.Series series = 4;
optional uint32 limited_format = 5;
optional uint64 limited_instance_id = 6;
optional uint64 limited_pool_id = 7;
optional uint32 auto_advance_time = 9;
}
message PlayerDeck {
optional uint32 deck_index = 1;
optional bytes deck_bytes = 2;
optional uint32 phase_id = 3;
optional uint32 shared_by = 4;
}
message Member {
optional uint32 account_id = 1;
optional uint32 rights_flags = 2;
repeated .CDCGTourney.PlayerDeck public_registered_decks = 3;
optional uint32 initial_seed = 4;
optional uint32 initial_group = 5;
}
message Invite {
optional uint32 account_id = 1;
optional uint32 invited_by = 2;
optional uint32 invite_time = 3;
optional uint32 rights_flags = 4;
}
message ConfigVals {
optional uint32 val_id = 1;
optional uint32 phase_id = 2;
optional uint32 value = 3;
}
message SharedDeck {
optional uint32 shared_by = 1;
optional bytes deck_bytes = 2;
optional uint32 shared_slot = 3;
}
message EntryItem {
optional uint32 def_index = 1;
optional uint32 quantity = 2;
optional bool per_member = 3;
}
message PaidEntryItem {
optional uint32 def_index = 1;
optional uint32 target_account_id = 2;
optional uint32 owner_account_id = 3;
}
message Validator {
optional uint32 phase_id = 1;
optional .CMsgDeckValidator deck_validator = 2;
}
enum EStage {
k_eStage_Configure = 10;
k_eStage_Invites = 20;
k_eStage_Seeding = 30;
k_eStage_PlayPhases = 40;
k_eStage_Closed = 50;
}
enum EPhaseStage {
k_ePhaseStage_Pending = 10;
k_ePhaseStage_Limited = 20;
k_ePhaseStage_Edit = 30;
k_ePhaseStage_Playing = 40;
k_ePhaseStage_Complete = 50;
}
enum EFormat {
k_eFormat_Invalid = 0;
k_eFormat_Bracket_SingleElim = 1;
k_eFormat_Swiss = 2;
k_eFormat_FreeForAll = 3;
}
optional uint64 tourney_id = 1;
optional .CDCGTourney.EStage stage = 2 [default = k_eStage_Configure];
repeated .CDCGTourney.Validator validators = 3;
optional uint32 stage_time = 4;
optional uint32 stats_salt = 5;
optional string tourney_msg = 6;
optional string tourney_status = 7;
repeated .CDCGTourney.Phase phases = 8;
repeated .CDCGTourney.ConfigVals config_vals = 9;
repeated .CDCGTourney.Invite invites = 10;
repeated .CDCGTourney.Member members = 11;
optional string tourney_name = 12;
repeated .CDCGTourney.SharedDeck shared_decks = 13;
optional uint32 created_by = 14;
optional uint32 auto_close_time = 15;
optional uint64 steam_chat_room_id = 16;
repeated .CDCGTourney.PaidEntryItem paid_entry_items = 17;
repeated .CDCGTourney.EntryItem entry_items = 18;
optional uint32 created_time = 19;
}
message CMsgRegionPingTimesClient {
repeated fixed32 data_center_codes = 1 [packed = true];
repeated uint32 ping_times = 2 [packed = true];
}
message CMsgMarketPrices {
optional uint32 time_stamp = 1;
optional uint32 currency_id = 2;
repeated uint32 def_indices = 3 [packed = true];
repeated uint64 purchase_price = 4 [packed = true];
repeated uint64 sell_price = 5 [packed = true];
optional bool request_up_to_date = 6;
optional uint32 valid_through = 7;
}
message CMsgMatchData {
message PlayerInfo {
optional uint32 account_id = 1;
optional .EDCGLobbyTeam team = 2 [default = k_EDCGLobbyTeam_Team0];
optional uint32 player_slot = 3;
repeated uint32 hero_lineup = 4;
repeated uint32 tower_health = 5;
optional uint32 ancient_health = 6;
optional bool conceded = 8;
optional uint32 game_clock = 9;
repeated uint32 hero_ids = 10;
optional uint32 mmr = 11;
optional uint32 mmr_uncertainty = 12;
optional bytes deck_bytes = 13;
}
enum EEndReason {
k_EEndReason_TeamWin = 0;
k_EEndReason_Tie = 1;
k_EEndReason_AllAbandoned = 2;
k_EEndReason_NetworkIssues = 3;
k_EEndReason_MatchLength = 4;
k_EEndReason_PlayerNeverConnected = 5;
}
optional uint32 match_duration_s = 4;
optional uint32 game_turns = 5;
optional .CMsgMatchData.EEndReason end_reason = 6 [default = k_EEndReason_TeamWin];
optional .EDCGLobbyTeam winning_team = 7 [default = k_EDCGLobbyTeam_Team0];
repeated .CMsgMatchData.PlayerInfo players = 8;
}

View File

@@ -0,0 +1,395 @@
import "dcg_gcmessages_common.proto";
option optimize_for = SPEED;
option cc_generic_services = false;
enum EGCDCGServerMessages {
k_EMsgServerToGCMatchSignoutPermission = 10012;
k_EMsgServerToGCMatchSignoutPermissionResponse = 10013;
k_EMsgServerToGCMatchSignout = 10014;
k_EMsgServerToGCMatchSignoutResponse = 10015;
k_EMsgServerToGCIdlePing = 10018;
k_EMsgGCToServerRequestPing = 10019;
k_EMsgGCToServerAllocateForMatch = 10021;
k_EMsgGCToServerAllocateForMatchResponse = 10022;
k_EMsgServerToGCEnterMatchmaking = 10023;
k_EMsgGCToServerCancelAllocateForMatch = 10024;
k_EMsgServerToGCUpdateLobbyServerState = 10025;
k_EMsgServerToGCAbandonMatch = 10026;
k_EMsgServerToGCAbandonMatchResponse = 10027;
k_EMsgServerToGCTestConnection = 10028;
k_EMsgServerToGCTestConnectionResponse = 10029;
k_EMsgGCToServerRunTests = 10031;
k_EMsgGCToServerRunTestsResponse = 10032;
k_EMsgServerToGCTestResults = 10033;
k_EMsgGCToServerAddTourneySpectator = 10034;
k_EMsgGCToServerAddTourneySpectatorResponse = 10035;
}
enum EGCServerLobbyData {
k_EServerLobbyData_DeckValidator = 1;
k_EServerLobbyData_DraftCards = 3;
k_EServerLobbyData_PlayerDeck = 4;
k_EServerLobbyData_PlayerMMR = 5;
k_EServerLobbyData_CardAchievements = 6;
k_EServerLobbyData_GauntletInfo = 7;
k_EServerLobbyData_PlayerInfo = 8;
}
enum EGCServerSignoutData {
k_EServerSignoutData_PlayerProgress = 1;
k_EServerSignoutData_PlayerDecks = 2;
k_EServerSignoutData_LobbyInfo = 4;
k_EServerSignoutData_GameOptions = 9;
k_EServerSignoutData_CardAchievements = 11;
k_EServerSignoutData_PerformanceStats = 12;
k_EServerSignoutData_Disconnections = 13;
k_EServerSignoutData_MatchChatStats = 14;
}
message CMsgServerCrashSentinelFile {
message DCGGameInfo {
optional uint64 match_id = 1;
optional fixed64 lobby_id = 2;
optional uint32 gauntlet_id = 3;
optional uint32 server_state = 4;
repeated uint32 client_account_ids = 5;
}
optional uint32 version = 1;
optional fixed64 server_steam_id = 2;
optional fixed32 server_public_ip_addr = 3;
optional uint32 server_port = 4;
optional uint32 server_cluster = 5;
optional uint32 pid = 6;
optional uint32 saved_time = 7;
optional uint32 server_version = 8;
optional .CMsgServerCrashSentinelFile.DCGGameInfo dcg_info = 9;
optional uint32 server_private_ip_addr = 10;
optional uint32 instance_id = 11;
}
message CServerLobbyData_CardAchievements {
optional uint32 account_id = 1;
repeated uint32 achievement_ids = 2 [packed = true];
repeated uint32 progress = 3 [packed = true];
}
message CServerDraftCard {
optional uint32 def_index = 1;
}
message CServerLobbyData_DraftCards {
message Pack {
optional uint64 pack_item_id = 1;
repeated .CServerDraftCard pack_cards = 2;
}
message Player {
optional uint32 account_id = 1;
repeated .CServerLobbyData_DraftCards.Pack packs = 2;
optional bool cannot_trade = 3;
optional uint32 trade_restriction_time = 4;
}
repeated .CServerLobbyData_DraftCards.Player players = 1;
}
message CServerLobbyData_PlayerDeck {
optional bytes deck_code = 1;
optional bytes collection_code = 2;
}
message CServerLobbyData_PlayerMMR {
message Player {
optional uint32 account_id = 1;
optional uint32 mmr = 2;
optional uint32 uncertainty = 3;
}
repeated .CServerLobbyData_PlayerMMR.Player players = 1;
}
message CServerLobbyData_GauntletInfo {
optional .CMsgGauntletConfig gauntlet_config = 1;
}
message CServerLobbyData_DeckValidator {
optional .CMsgDeckValidator deck_validator = 1;
}
message CServerLobbyData_PlayerInfo {
optional uint32 account_id = 1;
optional uint32 progress_level = 2;
optional uint32 progress_xp = 3;
optional uint32 mmr_level = 4;
optional uint32 last_win_bonus_time = 5;
optional uint32 win_streak = 6;
optional uint32 bonus_period_wins = 7;
optional uint32 player_badge = 8;
}
message CSODCGServerLobby {
repeated .CExtraMsgBlock extra_messages = 1;
optional fixed64 server_steam_id = 2;
optional uint64 lobby_id = 3;
optional fixed32 replay_salt = 4;
optional fixed64 private_lobby_id = 5;
optional .EDCGLobbyTimer timer_mode = 6 [default = k_eDCGLobbyTimer_Unspecified];
}
message CMsgServerSignoutData_MatchChatStats {
message ChatStats {
optional uint32 account_id = 1;
optional uint32 total_messages = 2;
optional uint32 total_custom_messages = 3;
optional bool user_sent_custom_message_before_mute = 4;
optional uint32 total_messages_sent_while_muted = 5;
optional uint32 num_times_squelched = 6;
optional bool user_muted_opponent_before_receiving_message = 7;
optional bool user_was_muted_then_was_unmuted = 8;
optional bool user_was_muted_at_match_end = 9;
}
repeated .CMsgServerSignoutData_MatchChatStats.ChatStats chat_stats = 1;
}
message CMsgServerSignoutData_LobbyInfo {
optional uint64 match_id = 1;
optional uint32 start_time = 2;
optional uint32 gauntlet_id = 3;
optional uint32 server_version = 4;
optional uint32 replay_salt = 5;
optional .EDCGMatchMode match_mode = 6 [default = k_EDCGMatchMode_Unranked];
}
message CMsgServerSignoutData_PlayerDecks {
message Player {
message Hero {
optional uint32 card_id = 1;
optional uint32 hero_slot = 2;
}
message Card {
optional uint32 card_id = 1;
optional uint32 num_in_deck = 2;
optional uint32 num_in_hand = 3;
optional uint32 num_played = 4;
}
optional uint32 player_id = 1;
repeated .CMsgServerSignoutData_PlayerDecks.Player.Card cards = 2;
repeated .CMsgServerSignoutData_PlayerDecks.Player.Hero heroes = 3;
optional uint32 critical_life = 6;
optional uint32 total_gold = 7;
}
repeated .CMsgServerSignoutData_PlayerDecks.Player players = 1;
optional uint32 stats_version = 2;
}
message CMsgServerSignoutData_PlayerProgress {
message PointBonus {
optional uint32 bonus_id = 1;
optional uint32 bonus_points = 2;
}
optional uint32 account_id = 1;
optional uint32 xp_to_grant = 2;
repeated .CMsgServerSignoutData_PlayerProgress.PointBonus bonuses = 3;
optional uint32 weekly_bonus_reset_time = 5;
}
message CMsgServerToGCMatchSignoutPermission {
optional uint32 signout_start = 1;
optional uint64 match_id = 3;
optional .EDCGMatchMode match_mode = 4 [default = k_EDCGMatchMode_Unranked];
}
message CMsgServerToGCMatchSignoutPermissionResponse {
optional bool can_sign_out = 1;
optional uint32 retry_time_s = 2;
repeated .EGCServerSignoutData requested_data = 3;
}
message CMsgServerSignoutData_CardAchievements {
enum EAchievementGrantType {
k_EAchievementGrant_Add = 0;
k_EAchievementGrant_Max = 1;
k_EAchievementGrant_Set = 2;
}
optional uint32 account_id = 1;
repeated uint32 achievement_ids = 2 [packed = true];
repeated uint32 grant_amounts = 3 [packed = true];
repeated .CMsgServerSignoutData_CardAchievements.EAchievementGrantType grant_types = 4 [packed = true];
}
message CMsgServerSignoutData_PerformanceStats {
optional uint32 start_memory_bytes = 1;
optional uint32 peak_memory_bytes = 2;
optional uint32 end_memory_bytes = 3;
optional uint32 total_update_time_ms = 4;
optional uint32 total_match_time_ms = 5;
optional uint32 sent_messages = 6;
optional uint32 received_messages = 7;
optional uint32 sent_bytes = 8;
optional uint32 received_bytes = 9;
optional uint32 max_update_time_micros = 10;
optional uint32 num_updates = 11;
optional uint32 replay_size_bytes = 12;
}
message CMsgServerSignoutData_GameOptions {
message GameOption {
optional string key = 1;
optional string value = 2;
}
repeated .CMsgServerSignoutData_GameOptions.GameOption game_options = 1;
}
message CMsgMatchDisconnection {
optional uint32 account_id = 1;
optional uint32 disconnect_time = 2;
optional uint32 connection_state = 3;
optional uint32 reason_code = 4;
optional uint32 reconnect_delay = 5;
}
message CMsgServerSignoutData_Disconnections {
repeated .CMsgMatchDisconnection disconnections = 1;
}
message CMsgServerToGCMatchSignout {
repeated .CExtraMsgBlock additional_data = 1;
optional uint32 signout_attempt = 2;
optional uint64 lobby_id = 3;
optional uint32 cluster_id = 9;
optional .CMsgMatchData match_data = 10;
}
message CMsgServerToGCMatchSignoutResponse {
enum ESignoutResult {
k_ESignout_Failed_Retry = 1;
k_ESignout_Failed_NoRetry = 2;
k_ESignout_Failed_InFlight = 3;
k_ESignout_Success = 4;
k_ESignout_Success_AlreadySignedOut = 5;
}
optional .CMsgServerToGCMatchSignoutResponse.ESignoutResult result = 1 [default = k_ESignout_Failed_Retry];
}
message CMsgServerWelcomeDCG {
}
message CMsgServerToGCIdlePing {
optional uint32 server_version = 1;
}
message CMsgGCToServerRequestPing {
}
message CMsgGCToServerAllocateForMatch {
optional uint64 match_id = 1;
}
message CMsgGCToServerAllocateForMatchResponse {
optional bool success = 1;
}
message CMsgServerToGCEnterMatchmaking {
optional uint32 server_version = 1;
optional string search_key = 2;
optional uint32 region_id = 3;
optional uint32 cluster_id = 4;
optional uint32 server_public_ip = 5;
optional uint32 server_private_ip = 6;
optional uint32 server_port = 7;
optional bytes sdr_address = 9;
}
message CMsgGCToServerCancelAllocateForMatch {
optional uint64 match_id = 1;
}
message CMsgServerToGCUpdateLobbyServerState {
optional uint64 lobby_id = 1;
optional .ELobbyServerState server_state = 2 [default = k_eLobbyServerState_Assign];
}
message CMsgServerToGCAbandonMatch {
message Player {
optional uint32 account_id = 1;
optional uint64 additional_data = 2;
}
enum EReason {
eReason_ServerCrash = 1;
eReason_ClientsFailedToConnect = 2;
}
optional fixed64 server_steam_id = 1;
optional fixed64 lobby_id = 2;
optional uint32 cluster_id = 3;
optional .CMsgServerToGCAbandonMatch.EReason reason_code = 4 [default = eReason_ServerCrash];
optional uint64 additional_data = 5;
optional uint64 match_id = 6;
optional uint32 gauntlet_id = 7;
repeated .CMsgServerToGCAbandonMatch.Player players = 8;
optional fixed32 public_ip_address = 9;
optional uint32 port = 10;
optional uint32 server_version = 11;
optional uint32 pid = 12;
optional uint32 instance_id = 13;
optional uint32 private_ip_address = 14;
}
message CMsgServerToGCAbandonMatchResponse {
}
message CMsgServerToGCTestConnection {
}
message CMsgServerToGCTestConnectionResponse {
optional uint32 state = 1;
optional uint64 lobby_id = 2;
}
message CMsgGCToServerAddTourneySpectator {
optional uint64 lobby_id = 1;
optional uint32 account_id = 2;
optional uint32 account_to_spectate_id = 3;
optional uint64 tourney_id = 4;
}
message CMsgGCToServerAddTourneySpectatorResponse {
optional bool success = 1;
optional uint64 tourney_id = 2;
}
message CMsgGCToServerRunTests {
optional uint32 expected_version = 1;
}
message CMsgGCToServerRunTestsResponse {
optional bool running_tests = 1;
}
message CMsgServerToGCTestResults {
message TestResult {
optional string test_name = 1;
optional string test_group = 2;
optional .CMsgServerToGCTestResults.ETestResult test_result = 3 [default = eResult_Failure];
}
enum ETestResult {
eResult_Failure = 0;
eResult_Success = 1;
eResult_Disabled = 2;
}
repeated .CMsgServerToGCTestResults.TestResult results = 1;
optional uint32 server_version = 2;
}

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

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,391 @@
import "steammessages.proto";
option optimize_for = SPEED;
option cc_generic_services = false;
enum ESourceEngine {
k_ESE_Source1 = 0;
k_ESE_Source2 = 1;
}
enum PartnerAccountType {
PARTNER_NONE = 0;
PARTNER_PERFECT_WORLD = 1;
PARTNER_INVALID = 3;
}
enum GCConnectionStatus {
GCConnectionStatus_HAVE_SESSION = 0;
GCConnectionStatus_GC_GOING_DOWN = 1;
GCConnectionStatus_NO_SESSION = 2;
GCConnectionStatus_NO_SESSION_IN_LOGON_QUEUE = 3;
GCConnectionStatus_NO_STEAM = 4;
GCConnectionStatus_SUSPENDED = 5;
GCConnectionStatus_STEAM_GOING_DOWN = 6;
}
message CMsgSHA1Digest {
required fixed64 block1 = 1;
required fixed64 block2 = 2;
required fixed32 block3 = 3;
}
message CMsgSOIDOwner {
optional uint32 type = 1;
optional uint64 id = 2;
}
message CMsgSOSingleObject {
optional int32 type_id = 2;
optional bytes object_data = 3;
optional fixed64 version = 4;
optional .CMsgSOIDOwner owner_soid = 5;
optional uint32 service_id = 6;
}
message CMsgSOMultipleObjects {
message SingleObject {
option (msgpool_soft_limit) = 256;
option (msgpool_hard_limit) = 1024;
optional int32 type_id = 1;
optional bytes object_data = 2;
}
repeated .CMsgSOMultipleObjects.SingleObject objects_modified = 2;
optional fixed64 version = 3;
repeated .CMsgSOMultipleObjects.SingleObject objects_added = 4;
repeated .CMsgSOMultipleObjects.SingleObject objects_removed = 5;
optional .CMsgSOIDOwner owner_soid = 6;
optional uint32 service_id = 7;
}
message CMsgSOCacheSubscribed {
message SubscribedType {
optional int32 type_id = 1;
repeated bytes object_data = 2;
}
repeated .CMsgSOCacheSubscribed.SubscribedType objects = 2;
optional fixed64 version = 3;
optional .CMsgSOIDOwner owner_soid = 4;
optional uint32 service_id = 5;
repeated uint32 service_list = 6;
optional fixed64 sync_version = 7;
}
message CMsgSOCacheSubscribedUpToDate {
optional fixed64 version = 1;
optional .CMsgSOIDOwner owner_soid = 2;
optional uint32 service_id = 3;
repeated uint32 service_list = 4;
optional fixed64 sync_version = 5;
}
message CMsgSOCacheUnsubscribed {
optional .CMsgSOIDOwner owner_soid = 2;
}
message CMsgSOCacheSubscriptionCheck {
optional fixed64 version = 2;
optional .CMsgSOIDOwner owner_soid = 3;
optional uint32 service_id = 4;
repeated uint32 service_list = 5;
optional fixed64 sync_version = 6;
}
message CMsgSOCacheSubscriptionRefresh {
optional .CMsgSOIDOwner owner_soid = 2;
}
message CMsgSOCacheVersion {
optional fixed64 version = 1;
}
message CMsgGCMultiplexMessage {
optional uint32 msgtype = 1;
optional bytes payload = 2;
repeated fixed64 steamids = 3;
}
message CMsgGCToGCSubGCStarting {
optional uint32 dir_index = 1;
}
message CGCToGCMsgMasterAck {
message Process {
optional uint32 dir_index = 1;
repeated uint32 type_instances = 2;
}
optional uint32 dir_index = 1;
optional string machine_name = 3;
optional string process_name = 4;
repeated .CGCToGCMsgMasterAck.Process directory = 6;
}
message CGCToGCMsgMasterAck_Response {
optional int32 eresult = 1 [default = 2];
}
message CMsgGCToGCUniverseStartup {
optional bool is_initial_startup = 1;
}
message CMsgGCToGCUniverseStartupResponse {
optional int32 eresult = 1;
}
message CGCToGCMsgMasterStartupComplete {
message GCInfo {
optional uint32 dir_index = 1;
optional string machine_name = 2;
}
repeated .CGCToGCMsgMasterStartupComplete.GCInfo gc_info = 1;
}
message CGCToGCMsgRouted {
optional uint32 msg_type = 1;
optional fixed64 sender_id = 2;
optional bytes net_message = 3;
}
message CGCToGCMsgRoutedReply {
optional uint32 msg_type = 1;
optional bytes net_message = 2;
}
message CMsgGCUpdateSubGCSessionInfo {
message CMsgUpdate {
optional fixed64 steamid = 1;
optional fixed32 ip = 2;
optional bool trusted = 3;
}
repeated .CMsgGCUpdateSubGCSessionInfo.CMsgUpdate updates = 1;
}
message CMsgGCRequestSubGCSessionInfo {
optional fixed64 steamid = 1;
}
message CMsgGCRequestSubGCSessionInfoResponse {
optional fixed32 ip = 1;
optional bool trusted = 2;
optional uint32 port = 3;
optional bool success = 4;
}
message CMsgSOCacheHaveVersion {
optional .CMsgSOIDOwner soid = 1;
optional fixed64 version = 2;
optional uint32 service_id = 3;
optional uint32 cached_file_version = 4;
}
message CMsgClientHello {
optional uint32 version = 1;
repeated .CMsgSOCacheHaveVersion socache_have_versions = 2;
optional uint32 client_session_need = 3;
optional .PartnerAccountType client_launcher = 4 [default = PARTNER_NONE];
optional string secret_key = 5;
optional uint32 client_language = 6;
optional .ESourceEngine engine = 7 [default = k_ESE_Source1];
}
message CMsgClientWelcome {
message Location {
optional float latitude = 1;
optional float longitude = 2;
optional string country = 3;
}
optional uint32 version = 1;
optional bytes game_data = 2;
repeated .CMsgSOCacheSubscribed outofdate_subscribed_caches = 3;
repeated .CMsgSOCacheSubscriptionCheck uptodate_subscribed_caches = 4;
optional .CMsgClientWelcome.Location location = 5;
optional bytes save_game_key = 6;
optional fixed32 item_schema_crc = 7;
optional string items_game_url = 8;
optional uint32 gc_socache_file_version = 9;
optional string txn_country_code = 10;
}
message CMsgConnectionStatus {
optional .GCConnectionStatus status = 1 [default = GCConnectionStatus_HAVE_SESSION];
optional uint32 client_session_need = 2;
optional int32 queue_position = 3;
optional int32 queue_size = 4;
optional int32 wait_seconds = 5;
optional int32 estimated_wait_seconds_remaining = 6;
}
message CMsgGCToGCSOCacheSubscribe {
message CMsgHaveVersions {
optional uint32 service_id = 1;
optional uint64 version = 2;
}
optional fixed64 subscriber = 1;
optional fixed64 subscribe_to_id = 2;
optional fixed64 sync_version = 3;
repeated .CMsgGCToGCSOCacheSubscribe.CMsgHaveVersions have_versions = 4;
optional uint32 subscribe_to_type = 5;
}
message CMsgGCToGCSOCacheUnsubscribe {
optional fixed64 subscriber = 1;
optional fixed64 unsubscribe_from_id = 2;
optional uint32 unsubscribe_from_type = 3;
}
message CMsgGCClientPing {
}
message CMsgGCToGCForwardAccountDetails {
optional fixed64 steamid = 1;
optional .CGCSystemMsg_GetAccountDetails_Response account_details = 2;
optional uint32 age_seconds = 3;
}
message CMsgGCToGCLoadSessionSOCache {
optional uint32 account_id = 1;
optional .CMsgGCToGCForwardAccountDetails forward_account_details = 2;
}
message CMsgGCToGCLoadSessionSOCacheResponse {
}
message CMsgGCToGCUpdateSessionStats {
optional uint32 user_sessions = 1;
optional uint32 server_sessions = 2;
optional bool in_logon_surge = 3;
}
message CWorkshop_PopulateItemDescriptions_Request {
message SingleItemDescription {
optional uint32 gameitemid = 1;
optional string item_description = 2;
}
message ItemDescriptionsLanguageBlock {
optional string language = 1;
repeated .CWorkshop_PopulateItemDescriptions_Request.SingleItemDescription descriptions = 2;
}
optional uint32 appid = 1;
repeated .CWorkshop_PopulateItemDescriptions_Request.ItemDescriptionsLanguageBlock languages = 2;
}
message CWorkshop_GetContributors_Request {
optional uint32 appid = 1;
optional uint32 gameitemid = 2;
}
message CWorkshop_GetContributors_Response {
repeated fixed64 contributors = 1;
}
message CWorkshop_SetItemPaymentRules_Request {
message WorkshopItemPaymentRule {
optional uint64 workshop_file_id = 1;
optional float revenue_percentage = 2;
optional string rule_description = 3;
}
message PartnerItemPaymentRule {
optional uint32 account_id = 1;
optional float revenue_percentage = 2;
optional string rule_description = 3;
}
optional uint32 appid = 1;
optional uint32 gameitemid = 2;
repeated .CWorkshop_SetItemPaymentRules_Request.WorkshopItemPaymentRule associated_workshop_files = 3;
repeated .CWorkshop_SetItemPaymentRules_Request.PartnerItemPaymentRule partner_accounts = 4;
}
message CWorkshop_SetItemPaymentRules_Response {
}
message CBroadcast_PostGameDataFrame_Request {
optional uint32 appid = 1;
optional fixed64 steamid = 2;
optional fixed64 broadcast_id = 3;
optional bytes frame_data = 4;
}
message CMsgSerializedSOCache {
message TypeCache {
optional uint32 type = 1;
repeated bytes objects = 2;
optional uint32 service_id = 3;
}
message Cache {
message Version {
optional uint32 service = 1;
optional uint64 version = 2;
}
optional uint32 type = 1;
optional uint64 id = 2;
repeated .CMsgSerializedSOCache.Cache.Version versions = 3;
repeated .CMsgSerializedSOCache.TypeCache type_caches = 4;
}
optional uint32 file_version = 1;
repeated .CMsgSerializedSOCache.Cache caches = 2;
optional uint32 gc_socache_file_version = 3;
}
message CMsgGCToClientPollConvarRequest {
optional string convar_name = 1;
optional uint32 poll_id = 2;
}
message CMsgGCToClientPollConvarResponse {
optional uint32 poll_id = 1;
optional string convar_value = 2;
}
message CGCMsgCompressedMsgToClient {
optional uint32 msg_id = 1;
optional bytes compressed_msg = 2;
}
message CMsgGCToGCMasterBroadcastMessage {
optional uint32 users_per_second = 1;
optional bool send_to_users = 2;
optional bool send_to_servers = 3;
optional uint32 msg_id = 4;
optional bytes msg_data = 5;
}
message CMsgGCToGCMasterSubscribeToCache {
optional uint32 soid_type = 1;
optional fixed64 soid_id = 2;
repeated uint32 account_ids = 3;
repeated fixed64 steam_ids = 4;
}
message CMsgGCToGCMasterSubscribeToCacheResponse {
}
message CMsgGCToGCMasterSubscribeToCacheAsync {
optional .CMsgGCToGCMasterSubscribeToCache subscribe_msg = 1;
}
message CMsgGCToGCMasterUnsubscribeFromCache {
optional uint32 soid_type = 1;
optional fixed64 soid_id = 2;
repeated uint32 account_ids = 3;
repeated fixed64 steam_ids = 4;
}
message CMsgGCToGCMasterDestroyCache {
optional uint32 soid_type = 1;
optional fixed64 soid_id = 2;
}

View File

@@ -0,0 +1,28 @@
option optimize_for = SPEED;
option cc_generic_services = false;
enum ESOMsg {
k_ESOMsg_Create = 21;
k_ESOMsg_Update = 22;
k_ESOMsg_Destroy = 23;
k_ESOMsg_CacheSubscribed = 24;
k_ESOMsg_CacheUnsubscribed = 25;
k_ESOMsg_UpdateMultiple = 26;
k_ESOMsg_CacheSubscriptionRefresh = 28;
k_ESOMsg_CacheSubscribedUpToDate = 29;
}
enum EGCBaseClientMsg {
k_EMsgGCPingRequest = 3001;
k_EMsgGCPingResponse = 3002;
k_EMsgGCToClientPollConvarRequest = 3003;
k_EMsgGCToClientPollConvarResponse = 3004;
k_EMsgGCCompressedMsgToClient = 3005;
k_EMsgGCCompressedMsgToClient_Legacy = 523;
k_EMsgGCClientWelcome = 4004;
k_EMsgGCServerWelcome = 4005;
k_EMsgGCClientHello = 4006;
k_EMsgGCServerHello = 4007;
k_EMsgGCClientConnectionStatus = 4009;
k_EMsgGCServerConnectionStatus = 4010;
}

View File

@@ -0,0 +1,551 @@
import "networkbasetypes.proto";
option cc_generic_services = false;
enum CLC_Messages {
clc_ClientInfo = 20;
clc_Move = 21;
clc_VoiceData = 22;
clc_BaselineAck = 23;
clc_ListenEvents = 24;
clc_RespondCvarValue = 25;
clc_FileCRCCheck = 26;
clc_LoadingProgress = 27;
clc_SplitPlayerConnect = 28;
clc_ClientMessage = 29;
clc_SplitPlayerDisconnect = 30;
clc_ServerStatus = 31;
clc_ServerPing = 32;
clc_RequestPause = 33;
clc_CmdKeyValues = 34;
}
enum SVC_Messages {
svc_ServerInfo = 40;
svc_FlattenedSerializer = 41;
svc_ClassInfo = 42;
svc_SetPause = 43;
svc_CreateStringTable = 44;
svc_UpdateStringTable = 45;
svc_VoiceInit = 46;
svc_VoiceData = 47;
svc_Print = 48;
svc_Sounds = 49;
svc_SetView = 50;
svc_ClearAllStringTables = 51;
svc_CmdKeyValues = 52;
svc_BSPDecal = 53;
svc_SplitScreen = 54;
svc_PacketEntities = 55;
svc_Prefetch = 56;
svc_Menu = 57;
svc_GetCvarValue = 58;
svc_StopSound = 59;
svc_PeerList = 60;
svc_PacketReliable = 61;
svc_HLTVStatus = 62;
svc_ServerSteamID = 63;
svc_FullFrameSplit = 70;
}
enum VoiceDataFormat_t {
VOICEDATA_FORMAT_STEAM = 0;
VOICEDATA_FORMAT_ENGINE = 1;
}
enum RequestPause_t {
RP_PAUSE = 0;
RP_UNPAUSE = 1;
RP_TOGGLEPAUSE = 2;
}
enum PrefetchType {
PFT_SOUND = 0;
}
enum ESplitScreenMessageType {
MSG_SPLITSCREEN_ADDUSER = 0;
MSG_SPLITSCREEN_REMOVEUSER = 1;
}
enum EQueryCvarValueStatus {
eQueryCvarValueStatus_ValueIntact = 0;
eQueryCvarValueStatus_CvarNotFound = 1;
eQueryCvarValueStatus_NotACvar = 2;
eQueryCvarValueStatus_CvarProtected = 3;
}
enum DIALOG_TYPE {
DIALOG_MSG = 0;
DIALOG_MENU = 1;
DIALOG_TEXT = 2;
DIALOG_ENTRY = 3;
DIALOG_ASKCONNECT = 4;
}
enum SVC_Messages_LowFrequency {
svc_dummy = 600;
}
enum Bidirectional_Messages {
bi_RebroadcastGameEvent = 16;
bi_RebroadcastSource = 17;
bi_GameEvent = 18;
}
enum Bidirectional_Messages_LowFrequency {
bi_RelayInfo = 700;
bi_RelayPacket = 701;
}
message CCLCMsg_ClientInfo {
optional fixed32 send_table_crc = 1;
optional uint32 server_count = 2;
optional bool is_hltv = 3;
optional bool is_replay = 4;
optional uint32 friends_id = 5;
optional string friends_name = 6;
}
message CCLCMsg_Move {
optional bytes data = 3;
optional uint32 command_number = 4;
optional uint32 num_commands = 5;
}
message CMsgVoiceAudio {
optional .VoiceDataFormat_t format = 1 [default = VOICEDATA_FORMAT_STEAM];
optional bytes voice_data = 2;
optional int32 sequence_bytes = 3;
optional uint32 section_number = 4;
optional uint32 sample_rate = 5;
optional uint32 uncompressed_sample_offset = 6;
}
message CCLCMsg_VoiceData {
optional .CMsgVoiceAudio audio = 1;
optional fixed64 xuid = 2;
optional uint32 tick = 3;
}
message CCLCMsg_BaselineAck {
optional int32 baseline_tick = 1;
optional int32 baseline_nr = 2;
}
message CCLCMsg_ListenEvents {
repeated fixed32 event_mask = 1;
}
message CCLCMsg_RespondCvarValue {
optional int32 cookie = 1;
optional int32 status_code = 2;
optional string name = 3;
optional string value = 4;
}
message CCLCMsg_FileCRCCheck {
optional int32 code_path = 1;
optional string path = 2;
optional int32 code_filename = 3;
optional string filename = 4;
optional fixed32 crc = 5;
}
message CCLCMsg_LoadingProgress {
optional int32 progress = 1;
}
message CCLCMsg_SplitPlayerConnect {
optional string playername = 1;
}
message CCLCMsg_ClientMessage {
optional int32 msg_type = 1;
optional bytes data = 2;
}
message CCLCMsg_SplitPlayerDisconnect {
optional int32 slot = 1;
}
message CCLCMsg_ServerStatus {
optional bool simplified = 1;
}
message CCLCMsg_ServerPing {
}
message CCLCMsg_RequestPause {
optional .RequestPause_t pause_type = 1 [default = RP_PAUSE];
optional int32 pause_group = 2;
}
message CCLCMsg_CmdKeyValues {
optional bytes data = 1;
}
message CSVCMsg_ServerInfo {
optional int32 protocol = 1;
optional int32 server_count = 2;
optional bool is_dedicated = 3;
optional bool is_hltv = 4;
optional bool is_replay = 5;
optional int32 c_os = 6;
optional int32 max_clients = 10;
optional int32 max_classes = 11;
optional int32 player_slot = 12;
optional float tick_interval = 13;
optional string game_dir = 14;
optional string map_name = 15;
optional string sky_name = 16;
optional string host_name = 17;
optional string addon_name = 18;
optional .CSVCMsg_GameSessionConfiguration game_session_config = 19;
optional bytes game_session_manifest = 20;
}
message CSVCMsg_ClassInfo {
message class_t {
optional int32 class_id = 1;
optional string data_table_name = 2;
optional string class_name = 3;
}
optional bool create_on_client = 1;
repeated .CSVCMsg_ClassInfo.class_t classes = 2;
}
message CSVCMsg_SetPause {
optional bool paused = 1;
}
message CSVCMsg_VoiceInit {
optional int32 quality = 1;
optional string codec = 2;
optional int32 version = 3 [default = 0];
}
message CSVCMsg_Print {
optional string text = 1;
}
message CSVCMsg_Sounds {
message sounddata_t {
optional sint32 origin_x = 1;
optional sint32 origin_y = 2;
optional sint32 origin_z = 3;
optional uint32 volume = 4;
optional float delay_value = 5;
optional int32 sequence_number = 6;
optional int32 entity_index = 7;
optional int32 channel = 8;
optional int32 pitch = 9;
optional int32 flags = 10;
optional uint32 sound_num = 11;
optional fixed32 sound_num_handle = 12;
optional int32 speaker_entity = 13;
optional int32 random_seed = 14;
optional int32 sound_level = 15;
optional bool is_sentence = 16;
optional bool is_ambient = 17;
optional uint32 guid = 18;
optional fixed64 sound_resource_id = 19;
}
optional bool reliable_sound = 1;
repeated .CSVCMsg_Sounds.sounddata_t sounds = 2;
}
message CSVCMsg_Prefetch {
optional int32 sound_index = 1;
optional .PrefetchType resource_type = 2 [default = PFT_SOUND];
}
message CSVCMsg_SetView {
optional int32 entity_index = 1;
optional int32 slot = 2;
}
message CSVCMsg_FixAngle {
optional bool relative = 1;
optional .CMsgQAngle angle = 2;
}
message CSVCMsg_CrosshairAngle {
optional .CMsgQAngle angle = 1;
}
message CSVCMsg_BSPDecal {
optional .CMsgVector pos = 1;
optional int32 decal_texture_index = 2;
optional int32 entity_index = 3;
optional int32 model_index = 4;
optional bool low_priority = 5;
}
message CSVCMsg_SplitScreen {
optional .ESplitScreenMessageType type = 1 [default = MSG_SPLITSCREEN_ADDUSER];
optional int32 slot = 2;
optional int32 player_index = 3;
}
message CSVCMsg_GetCvarValue {
optional int32 cookie = 1;
optional string cvar_name = 2;
}
message CSVCMsg_Menu {
optional int32 dialog_type = 1;
optional bytes menu_key_values = 2;
}
message CSVCMsg_SendTable {
message sendprop_t {
optional int32 type = 1;
optional string var_name = 2;
optional int32 flags = 3;
optional int32 priority = 4;
optional string dt_name = 5;
optional int32 num_elements = 6;
optional float low_value = 7;
optional float high_value = 8;
optional int32 num_bits = 9;
}
optional bool is_end = 1;
optional string net_table_name = 2;
optional bool needs_decoder = 3;
repeated .CSVCMsg_SendTable.sendprop_t props = 4;
}
message CSVCMsg_GameEventList {
message key_t {
optional int32 type = 1;
optional string name = 2;
}
message descriptor_t {
optional int32 eventid = 1;
optional string name = 2;
repeated .CSVCMsg_GameEventList.key_t keys = 3;
}
repeated .CSVCMsg_GameEventList.descriptor_t descriptors = 1;
}
message CSVCMsg_PacketEntities {
optional int32 max_entries = 1;
optional int32 updated_entries = 2;
optional bool is_delta = 3;
optional bool update_baseline = 4;
optional int32 baseline = 5;
optional int32 delta_from = 6;
optional bytes entity_data = 7;
optional bool pending_full_frame = 8;
optional uint32 active_spawngroup_handle = 9;
optional uint32 max_spawngroup_creationsequence = 10;
optional uint32 last_cmd_number = 11;
}
message CSVCMsg_TempEntities {
optional bool reliable = 1;
optional int32 num_entries = 2;
optional bytes entity_data = 3;
}
message CSVCMsg_CreateStringTable {
optional string name = 1;
optional int32 num_entries = 2;
optional bool user_data_fixed_size = 3;
optional int32 user_data_size = 4;
optional int32 user_data_size_bits = 5;
optional int32 flags = 6;
optional bytes string_data = 7;
optional int32 uncompressed_size = 8;
optional bool data_compressed = 9;
}
message CSVCMsg_UpdateStringTable {
optional int32 table_id = 1;
optional int32 num_changed_entries = 2;
optional bytes string_data = 3;
}
message CSVCMsg_VoiceData {
optional .CMsgVoiceAudio audio = 1;
optional int32 client = 2;
optional bool proximity = 3;
optional fixed64 xuid = 4;
optional int32 audible_mask = 5;
optional uint32 tick = 6;
}
message CSVCMsg_PacketReliable {
optional int32 tick = 1;
optional int32 messagessize = 2;
optional bool state = 3;
}
message CSVCMsg_FullFrameSplit {
optional int32 tick = 1;
optional int32 section = 2;
optional int32 total = 3;
optional bytes data = 4;
}
message CSVCMsg_HLTVStatus {
optional string master = 1;
optional int32 clients = 2;
optional int32 slots = 3;
optional int32 proxies = 4;
}
message CSVCMsg_ServerSteamID {
optional uint64 steam_id = 1;
}
message CSVCMsg_CmdKeyValues {
optional bytes data = 1;
}
message CMsgIPCAddress {
optional fixed64 computer_guid = 1;
optional uint32 process_id = 2;
}
message CMsgServerPeer {
optional int32 player_slot = 1;
optional fixed64 steamid = 2;
optional .CMsgIPCAddress ipc = 3;
optional bool they_hear_you = 4;
optional bool you_hear_them = 5;
optional bool is_listenserver_host = 6;
}
message CSVCMsg_PeerList {
repeated .CMsgServerPeer peer = 1;
}
message CSVCMsg_ClearAllStringTables {
optional string mapname = 1;
}
message ProtoFlattenedSerializerField_t {
optional int32 var_type_sym = 1;
optional int32 var_name_sym = 2;
optional int32 bit_count = 3;
optional float low_value = 4;
optional float high_value = 5;
optional int32 encode_flags = 6;
optional int32 field_serializer_name_sym = 7;
optional int32 field_serializer_version = 8;
optional int32 send_node_sym = 9;
optional int32 var_encoder_sym = 10;
}
message ProtoFlattenedSerializer_t {
optional int32 serializer_name_sym = 1;
optional int32 serializer_version = 2;
repeated int32 fields_index = 3;
}
message CSVCMsg_FlattenedSerializer {
repeated .ProtoFlattenedSerializer_t serializers = 1;
repeated string symbols = 2;
repeated .ProtoFlattenedSerializerField_t fields = 3;
}
message CSVCMsg_StopSound {
optional fixed32 guid = 1;
}
message CBidirMsg_RebroadcastGameEvent {
optional bool posttoserver = 1;
optional int32 buftype = 2;
optional uint32 clientbitcount = 3;
optional uint64 receivingclients = 4;
}
message CBidirMsg_RebroadcastSource {
optional int32 eventsource = 1;
}
message SerializedNetAddress_t {
required bytes serializedAddress = 1;
}
message CBidirMsg_RelayInfo {
enum Operation_t {
RIO_REQUEST_RELAY = 0;
RIO_WILL_RELAY = 1;
RIO_NO_ROUTE = 2;
RIO_REJECT_RELAY = 3;
RIO_ESTABLISH_CONNECTION = 4;
}
required .CBidirMsg_RelayInfo.Operation_t operation = 1 [default = RIO_REQUEST_RELAY];
optional .SerializedNetAddress_t serializedTargetAddress = 2;
optional uint32 additionalHops = 3;
}
message SignedPayload_t {
required bytes payloadData = 1;
required uint32 signature = 2;
required bool bPayloadEncrypted = 3;
}
message CBidirMsg_RelayPacket {
message SignedDestinationAddress_t {
required .SerializedNetAddress_t serializedAddr = 1;
required uint32 signature = 2;
optional bytes encryptedPayloadKey = 3;
}
required uint32 prevhopcount = 1;
required .SerializedNetAddress_t originalSender = 2;
required .SignedPayload_t signedPayload = 3;
repeated .CBidirMsg_RelayPacket.SignedDestinationAddress_t recipientList = 4;
}
message CMsgServerNetworkStats {
message Port {
optional int32 port = 1;
optional string name = 2;
}
message Player {
optional uint64 steamid = 1;
optional string remote_addr = 2;
optional int32 ping_stddev_ms = 3;
optional int32 ping_avg_ms = 4;
optional float packet_loss_pct = 5;
optional bool is_bot = 6;
}
optional bool dedicated = 1;
optional int32 cpu_usage = 2;
optional int32 memory_used_mb = 3;
optional int32 memory_free_mb = 4;
optional int32 uptime = 5;
optional int32 spawn_count = 6;
optional int32 num_clients = 8;
optional int32 num_bots = 9;
optional int32 num_spectators = 10;
optional int32 num_tv_relays = 11;
optional float fps = 12;
repeated .CMsgServerNetworkStats.Port ports = 17;
optional float avg_latency_out = 18;
optional float avg_latency_in = 19;
optional float avg_packets_out = 20;
optional float avg_packets_in = 21;
optional float avg_loss_out = 22;
optional float avg_loss_in = 23;
optional float avg_data_out = 24;
optional float avg_data_in = 25;
optional uint64 total_data_in = 26;
optional uint64 total_packets_in = 27;
optional uint64 total_data_out = 28;
optional uint64 total_packets_out = 29;
repeated .CMsgServerNetworkStats.Player players = 30;
}

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,206 @@
import "network_connection.proto";
option cc_generic_services = false;
enum NET_Messages {
net_NOP = 0;
net_Disconnect = 1;
net_SplitScreenUser = 3;
net_Tick = 4;
net_StringCmd = 5;
net_SetConVar = 6;
net_SignonState = 7;
net_SpawnGroup_Load = 8;
net_SpawnGroup_ManifestUpdate = 9;
net_SpawnGroup_SetCreationTick = 11;
net_SpawnGroup_Unload = 12;
net_SpawnGroup_LoadCompleted = 13;
}
enum SpawnGroupFlags_t {
SPAWN_GROUP_LOAD_ENTITIES_FROM_SAVE = 1;
SPAWN_GROUP_DONT_SPAWN_ENTITIES = 2;
SPAWN_GROUP_SYNCHRONOUS_SPAWN = 4;
SPAWN_GROUP_IS_INITIAL_SPAWN_GROUP = 8;
SPAWN_GROUP_CREATE_CLIENT_ONLY_ENTITIES = 16;
SPAWN_GROUP_BLOCK_UNTIL_LOADED = 64;
SPAWN_GROUP_LOAD_STREAMING_DATA = 128;
SPAWN_GROUP_CREATE_NEW_SCENE_WORLD = 256;
}
message CMsgVector {
optional float x = 1;
optional float y = 2;
optional float z = 3;
}
message CMsgVector2D {
optional float x = 1;
optional float y = 2;
}
message CMsgQAngle {
optional float x = 1;
optional float y = 2;
optional float z = 3;
}
message CMsgPlayerInfo {
optional string name = 1;
optional fixed64 xuid = 2;
optional int32 userid = 3;
optional fixed64 steamid = 4;
optional bool fakeplayer = 5;
optional bool ishltv = 6;
}
message CMsg_CVars {
message CVar {
optional string name = 1;
optional string value = 2;
}
repeated .CMsg_CVars.CVar cvars = 1;
}
message CNETMsg_NOP {
}
message CNETMsg_SplitScreenUser {
optional int32 slot = 1;
}
message CNETMsg_Disconnect {
optional .ENetworkDisconnectionReason reason = 2 [default = NETWORK_DISCONNECT_INVALID];
}
message CNETMsg_Tick {
optional uint32 tick = 1;
optional uint32 host_frametime = 2;
optional uint32 host_frametime_std_deviation = 3;
optional uint32 host_computationtime = 4;
optional uint32 host_computationtime_std_deviation = 5;
optional uint32 host_framestarttime_std_deviation = 6;
optional uint32 host_loss = 7;
}
message CNETMsg_StringCmd {
optional string command = 1;
}
message CNETMsg_SetConVar {
optional .CMsg_CVars convars = 1;
}
message CNETMsg_SignonState {
optional uint32 signon_state = 1;
optional uint32 spawn_count = 2;
optional uint32 num_server_players = 3;
repeated string players_networkids = 4;
optional string map_name = 5;
optional string addons = 6;
}
message CSVCMsg_GameEvent {
message key_t {
optional int32 type = 1;
optional string val_string = 2;
optional float val_float = 3;
optional int32 val_long = 4;
optional int32 val_short = 5;
optional int32 val_byte = 6;
optional bool val_bool = 7;
optional uint64 val_uint64 = 8;
}
optional string event_name = 1;
optional int32 eventid = 2;
repeated .CSVCMsg_GameEvent.key_t keys = 3;
}
message CSVCMsgList_GameEvents {
message event_t {
optional int32 tick = 1;
optional .CSVCMsg_GameEvent event = 2;
}
repeated .CSVCMsgList_GameEvents.event_t events = 1;
}
message CSVCMsg_UserMessage {
optional int32 msg_type = 1;
optional bytes msg_data = 2;
}
message CSVCMsgList_UserMessages {
message usermsg_t {
optional int32 tick = 1;
optional .CSVCMsg_UserMessage msg = 2;
}
repeated .CSVCMsgList_UserMessages.usermsg_t usermsgs = 1;
}
message CNETMsg_SpawnGroup_Load {
optional string worldname = 1;
optional string entitylumpname = 2;
optional string entityfiltername = 3;
optional uint32 spawngrouphandle = 4;
optional uint32 spawngroupownerhandle = 5;
optional .CMsgVector world_offset_pos = 6;
optional .CMsgQAngle world_offset_angle = 7;
optional bytes spawngroupmanifest = 8;
optional uint32 flags = 9;
optional int32 tickcount = 10;
optional bool manifestincomplete = 11;
optional string localnamefixup = 12;
optional string parentnamefixup = 13;
optional int32 manifestloadpriority = 14;
optional uint32 worldgroupid = 15;
optional uint32 creationsequence = 16;
optional string savegamefilename = 17;
optional uint32 spawngroupparenthandle = 18;
}
message CNETMsg_SpawnGroup_ManifestUpdate {
optional uint32 spawngrouphandle = 1;
optional bytes spawngroupmanifest = 2;
optional bool manifestincomplete = 3;
}
message CNETMsg_SpawnGroup_SetCreationTick {
optional uint32 spawngrouphandle = 1;
optional int32 tickcount = 2;
optional uint32 creationsequence = 3;
}
message CNETMsg_SpawnGroup_Unload {
optional uint32 spawngrouphandle = 1;
optional uint32 flags = 2;
optional int32 tickcount = 3;
}
message CNETMsg_SpawnGroup_LoadCompleted {
optional uint32 spawngrouphandle = 1;
}
message CSVCMsg_GameSessionConfiguration {
optional bool is_multiplayer = 1;
optional bool is_loadsavegame = 2;
optional bool is_background_map = 3;
optional bool is_headless = 4;
optional uint32 min_client_limit = 5;
optional uint32 max_client_limit = 6;
optional uint32 max_clients = 7;
optional fixed32 tick_interval = 8;
optional string hostname = 9;
optional string savegamename = 10;
optional string s1_mapname = 11;
optional string gamemode = 12;
optional string server_ip_address = 13;
optional bytes data = 14;
optional bool is_localonly = 15;
optional bool is_transition = 16;
optional string previouslevel = 17;
optional string landmarkname = 18;
}

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,38 @@
option optimize_for = SPEED;
option cc_generic_services = false;
message CMsgSteamDatagramRelayAuthTicket {
message ExtraField {
optional string name = 1;
optional string string_value = 2;
optional sint64 int64_value = 3;
optional fixed64 fixed64_value = 5;
}
optional fixed32 time_expiry = 1;
optional bytes authorized_client_identity = 12;
optional bytes gameserver_identity = 13;
optional fixed32 authorized_public_ip = 3;
optional bytes gameserver_address = 11;
optional uint32 app_id = 7;
optional uint32 virtual_port = 10;
repeated .CMsgSteamDatagramRelayAuthTicket.ExtraField extra_fields = 8;
optional fixed64 legacy_authorized_steam_id = 2;
optional fixed64 legacy_gameserver_steam_id = 4;
optional fixed64 legacy_gameserver_net_id = 5;
optional fixed32 legacy_gameserver_pop_id = 9;
optional bytes DELETED_signature = 6;
}
message CMsgSteamDatagramSignedRelayAuthTicket {
optional fixed64 reserved_do_not_use = 1;
optional fixed64 key_id = 2;
optional bytes ticket = 3;
optional bytes signature = 4;
}
message CMsgSteamDatagramCachedCredentialsForApp {
optional bytes private_key = 1;
optional bytes cert = 2;
repeated bytes relay_tickets = 3;
}

View File

@@ -0,0 +1,441 @@
import "steamnetworkingsockets_messages_certs.proto";
import "steamnetworkingsockets_messages.proto";
option optimize_for = SPEED;
option cc_generic_services = false;
enum ESteamDatagramMsgID {
k_ESteamDatagramMsg_Invalid = 0;
k_ESteamDatagramMsg_RouterPingRequest = 1;
k_ESteamDatagramMsg_RouterPingReply = 2;
k_ESteamDatagramMsg_GameserverPingRequest = 3;
k_ESteamDatagramMsg_GameserverPingReply = 4;
k_ESteamDatagramMsg_GameserverSessionRequest = 5;
k_ESteamDatagramMsg_GameserverSessionEstablished = 6;
k_ESteamDatagramMsg_NoSession = 7;
k_ESteamDatagramMsg_Diagnostic = 8;
k_ESteamDatagramMsg_DataClientToRouter = 9;
k_ESteamDatagramMsg_DataRouterToServer = 10;
k_ESteamDatagramMsg_DataServerToRouter = 11;
k_ESteamDatagramMsg_DataRouterToClient = 12;
k_ESteamDatagramMsg_Stats = 13;
k_ESteamDatagramMsg_ClientPingSampleRequest = 14;
k_ESteamDatagramMsg_ClientPingSampleReply = 15;
k_ESteamDatagramMsg_ClientToRouterSwitchedPrimary = 16;
k_ESteamDatagramMsg_RelayHealth = 17;
k_ESteamDatagramMsg_ConnectRequest = 18;
k_ESteamDatagramMsg_ConnectOK = 19;
k_ESteamDatagramMsg_ConnectionClosed = 20;
k_ESteamDatagramMsg_NoConnection = 21;
k_ESteamDatagramMsg_RelayToRelayPingRequest = 22;
k_ESteamDatagramMsg_RelayToRelayPingReply = 23;
k_ESteamDatagramMsg_P2PSessionRequest = 24;
k_ESteamDatagramMsg_P2PSessionEstablished = 25;
k_ESteamDatagramMsg_P2PStatsClient = 26;
k_ESteamDatagramMsg_P2PStatsRelay = 27;
k_ESteamDatagramMsg_P2PBadRoute = 28;
}
message CMsgSteamDatagramRouterPingReply {
message RouteException {
optional fixed32 data_center_id = 1;
optional uint32 flags = 2;
optional uint32 penalty = 3;
}
optional fixed32 client_timestamp = 1;
repeated fixed32 latency_datacenter_ids = 2 [packed = true];
repeated uint32 latency_ping_ms = 3 [packed = true];
optional fixed32 your_public_ip = 4;
optional fixed32 server_time = 5;
optional fixed64 challenge = 6;
optional uint32 seconds_until_shutdown = 7;
optional fixed32 client_cookie = 8;
optional uint32 scoring_penalty_relay_cluster = 9;
repeated .CMsgSteamDatagramRouterPingReply.RouteException route_exceptions = 10;
}
message CMsgSteamDatagramGameserverPing {
optional fixed32 router_timestamp = 4;
optional fixed64 dummy_pad = 99;
}
message CMsgSteamDatagramNoSessionRelayToClient {
optional fixed32 connection_id = 7;
optional fixed32 your_public_ip = 2;
optional fixed32 server_time = 3;
optional fixed64 challenge = 4;
optional uint32 seconds_until_shutdown = 5;
}
message CMsgSteamDatagramNoSessionRelayToPeer {
optional uint32 legacy_relay_session_id = 1;
optional fixed32 from_relay_session_id = 2;
optional fixed32 from_connection_id = 7;
optional fixed64 kludge_pad = 99;
}
message CMsgSteamDatagramClientPingSampleRequest {
optional fixed32 connection_id = 1;
}
message CMsgSteamDatagramClientPingSampleReply {
message RoutingCluster {
optional fixed32 id = 1;
optional uint32 front_ping_ms = 2;
optional uint32 e2e_ping_ms = 3;
}
message DataCenter {
optional fixed32 data_center_id = 1;
optional fixed32 via_relay_id = 2;
optional uint32 e2e_ping_ms = 3;
}
optional fixed32 connection_id = 1;
repeated .CMsgSteamDatagramClientPingSampleReply.RoutingCluster routing_clusters = 2;
repeated .CMsgSteamDatagramClientPingSampleReply.DataCenter data_centers = 3;
}
message CMsgSteamDatagramClientSwitchedPrimary {
message RouterQuality {
optional uint32 score = 1;
optional uint32 front_ping = 2;
optional uint32 back_ping = 3;
optional uint32 seconds_until_down = 4;
}
optional fixed32 connection_id = 1;
optional fixed32 from_ip = 2;
optional uint32 from_port = 3;
optional fixed32 from_router_cluster = 4;
optional uint32 from_active_time = 5;
optional uint32 from_active_packets_recv = 6;
optional string from_dropped_reason = 7;
optional uint32 gap_ms = 8;
optional .CMsgSteamDatagramClientSwitchedPrimary.RouterQuality from_quality_now = 9;
optional .CMsgSteamDatagramClientSwitchedPrimary.RouterQuality to_quality_now = 10;
optional .CMsgSteamDatagramClientSwitchedPrimary.RouterQuality from_quality_then = 11;
optional .CMsgSteamDatagramClientSwitchedPrimary.RouterQuality to_quality_then = 12;
}
message CMsgSteamDatagramConnectRequest {
optional fixed32 connection_id = 1;
optional fixed64 my_timestamp = 4;
optional uint32 ping_est_ms = 5;
optional uint32 virtual_port = 9;
optional uint32 gameserver_relay_session_id = 2;
optional .CMsgSteamDatagramSessionCryptInfoSigned crypt = 6;
optional .CMsgSteamDatagramCertificateSigned cert = 7;
optional uint32 protocol_version = 8;
optional fixed64 legacy_client_steam_id = 3;
}
message CMsgSteamDatagramConnectOK {
optional fixed32 client_connection_id = 1;
optional fixed32 server_connection_id = 7;
optional fixed64 your_timestamp = 3;
optional uint32 delay_time_usec = 4;
optional uint32 gameserver_relay_session_id = 2;
optional .CMsgSteamDatagramSessionCryptInfoSigned crypt = 5;
optional .CMsgSteamDatagramCertificateSigned cert = 6;
optional uint32 protocol_version = 8;
}
message CMsgSteamDatagramConnectionClosed {
enum ERelayMode {
None = 0;
EndToEnd = 1;
ClosedByPeer = 2;
}
optional fixed32 to_connection_id = 7;
optional fixed32 from_connection_id = 8;
optional .CMsgSteamNetworkingIdentity from_identity = 13;
optional fixed64 legacy_from_steam_id = 3;
optional uint32 legacy_gameserver_relay_session_id = 2;
optional fixed32 to_relay_session_id = 9;
optional fixed32 from_relay_session_id = 10;
optional bytes forward_target_relay_routing_token = 11;
optional uint32 forward_target_revision = 12;
optional .CMsgSteamDatagramConnectionClosed.ERelayMode relay_mode = 4 [default = None];
optional string debug = 5;
optional uint32 reason_code = 6;
}
message CMsgSteamDatagramNoConnection {
optional fixed32 to_connection_id = 5;
optional fixed32 from_connection_id = 6;
optional uint32 legacy_gameserver_relay_session_id = 2;
optional fixed32 to_relay_session_id = 9;
optional fixed32 from_relay_session_id = 10;
optional fixed64 from_steam_id = 3;
optional bool end_to_end = 4;
optional fixed32 dummy_pad = 1023;
}
message CMsgSteamDatagramGameserverSessionRequest {
optional bytes ticket = 1;
optional fixed32 challenge_time = 3;
optional fixed64 challenge = 4;
optional fixed32 client_connection_id = 5;
optional fixed32 server_connection_id = 8;
optional uint32 network_config_version = 6;
optional uint32 protocol_version = 7;
}
message CMsgSteamDatagramGameserverSessionEstablished {
optional fixed32 connection_id = 1;
optional fixed64 gameserver_steam_id = 3;
optional uint32 seconds_until_shutdown = 4;
optional uint32 seq_num_r2c = 6;
}
message CMsgSteamDatagramConnectionStatsClientToRouter {
enum Flags {
ACK_REQUEST_RELAY = 1;
ACK_REQUEST_E2E = 2;
ACK_REQUEST_IMMEDIATE = 4;
}
optional .CMsgSteamDatagramConnectionQuality quality_relay = 1;
optional .CMsgSteamDatagramConnectionQuality quality_e2e = 2;
repeated fixed32 ack_relay = 4;
repeated fixed32 legacy_ack_e2e = 5;
optional uint32 flags = 6;
optional fixed32 client_connection_id = 8;
optional uint32 seq_num_c2r = 9;
optional uint32 seq_num_c2s = 10;
}
message CMsgSteamDatagramConnectionStatsRouterToClient {
enum Flags {
ACK_REQUEST_RELAY = 1;
ACK_REQUEST_E2E = 2;
ACK_REQUEST_IMMEDIATE = 4;
}
optional .CMsgSteamDatagramConnectionQuality quality_relay = 1;
optional .CMsgSteamDatagramConnectionQuality quality_e2e = 2;
optional uint32 seconds_until_shutdown = 6;
optional fixed32 migrate_request_ip = 10;
optional uint32 migrate_request_port = 11;
optional uint32 scoring_penalty_relay_cluster = 12;
repeated fixed32 ack_relay = 13;
repeated fixed32 legacy_ack_e2e = 14;
optional uint32 flags = 15;
optional fixed32 client_connection_id = 7;
optional uint32 seq_num_r2c = 8;
optional uint32 seq_num_s2c = 9;
}
message CMsgSteamDatagramConnectionStatsRouterToServer {
enum Flags {
ACK_REQUEST_RELAY = 1;
ACK_REQUEST_E2E = 2;
ACK_REQUEST_IMMEDIATE = 4;
}
optional .CMsgSteamDatagramConnectionQuality quality_relay = 1;
optional .CMsgSteamDatagramConnectionQuality quality_e2e = 2;
repeated fixed32 ack_relay = 10;
repeated fixed32 legacy_ack_e2e = 11;
optional uint32 flags = 12;
optional uint32 seq_num_r2s = 5;
optional uint32 seq_num_c2s = 6;
optional fixed64 client_steam_id = 7;
optional uint32 relay_session_id = 8;
optional fixed32 client_connection_id = 9;
optional fixed32 server_connection_id = 13;
}
message CMsgSteamDatagramConnectionStatsServerToRouter {
enum Flags {
ACK_REQUEST_RELAY = 1;
ACK_REQUEST_E2E = 2;
ACK_REQUEST_IMMEDIATE = 4;
}
optional .CMsgSteamDatagramConnectionQuality quality_relay = 1;
optional .CMsgSteamDatagramConnectionQuality quality_e2e = 2;
repeated fixed32 ack_relay = 8;
repeated fixed32 legacy_ack_e2e = 9;
optional uint32 flags = 10;
optional uint32 seq_num_s2r = 3;
optional uint32 seq_num_s2c = 4;
optional fixed64 client_steam_id = 5;
optional uint32 relay_session_id = 6;
optional fixed32 client_connection_id = 7;
optional fixed32 server_connection_id = 11;
}
message CMsgSteamDatagramP2PSessionRequestBody {
optional fixed32 challenge_time = 1;
optional fixed64 challenge = 2;
optional fixed32 client_connection_id = 3;
optional fixed64 peer_steam_id = 4;
optional fixed32 peer_connection_id = 5;
optional uint32 protocol_version = 8;
optional uint32 network_config_version = 9;
optional fixed32 public_ip = 10;
}
message CMsgSteamDatagramP2PSessionRequest {
optional .CMsgSteamDatagramCertificateSigned cert = 1;
optional bytes body = 2;
optional bytes signature = 3;
}
message CMsgSteamDatagramP2PSessionEstablished {
optional fixed32 connection_id = 1;
optional uint32 seconds_until_shutdown = 3;
optional bytes relay_routing_token = 4;
optional uint32 seq_num_r2c = 5;
}
message CMsgSteamDatagramP2PRoutes {
message RelayCluster {
optional fixed32 pop_id = 1;
optional uint32 ping_ms = 2;
optional uint32 score_penalty = 3;
optional bytes session_relay_routing_token = 4;
}
message Route {
optional fixed32 my_pop_id = 1;
optional fixed32 your_pop_id = 2;
optional uint32 score = 3;
}
repeated .CMsgSteamDatagramP2PRoutes.RelayCluster relay_clusters = 1;
repeated .CMsgSteamDatagramP2PRoutes.Route routes = 2;
optional uint32 revision = 3;
}
message CMsgSteamDatagramP2PRendezvous {
optional fixed32 to_connection_id = 1;
optional .CMsgSteamDatagramP2PRoutes routes = 2;
optional uint32 ack_peer_routes_revision = 3;
optional .CMsgSteamDatagramConnectRequest connect_request = 4;
optional .CMsgSteamDatagramConnectOK connect_ok = 5;
optional .CMsgSteamDatagramConnectionClosed connection_closed = 6;
optional bytes failed_relay_routing_token = 7;
}
message CMsgSteamDatagramConnectionStatsP2PClientToRouter {
enum Flags {
ACK_REQUEST_RELAY = 1;
ACK_REQUEST_E2E = 2;
ACK_REQUEST_IMMEDIATE = 4;
}
optional .CMsgSteamDatagramConnectionQuality quality_relay = 1;
optional .CMsgSteamDatagramConnectionQuality quality_e2e = 2;
repeated fixed32 ack_relay = 3;
repeated fixed32 legacy_ack_e2e = 4;
optional uint32 flags = 5;
optional bytes forward_target_relay_routing_token = 6;
optional uint32 forward_target_revision = 7;
optional bytes routes = 8;
optional uint32 ack_peer_routes_revision = 9;
optional fixed32 connection_id = 10;
optional uint32 seq_num_c2r = 11;
optional uint32 seq_num_e2e = 12;
}
message CMsgSteamDatagramConnectionStatsP2PRouterToClient {
enum Flags {
ACK_REQUEST_RELAY = 1;
ACK_REQUEST_E2E = 2;
ACK_REQUEST_IMMEDIATE = 4;
}
optional .CMsgSteamDatagramConnectionQuality quality_relay = 1;
optional .CMsgSteamDatagramConnectionQuality quality_e2e = 2;
optional uint32 seconds_until_shutdown = 3;
optional fixed32 migrate_request_ip = 4;
optional uint32 migrate_request_port = 5;
optional uint32 scoring_penalty_relay_cluster = 6;
repeated fixed32 ack_relay = 7;
repeated fixed32 legacy_ack_e2e = 8;
optional uint32 flags = 9;
optional uint32 ack_forward_target_revision = 10;
optional bytes routes = 11;
optional uint32 ack_peer_routes_revision = 12;
optional fixed32 connection_id = 13;
optional uint32 seq_num_r2c = 14;
optional uint32 seq_num_e2e = 15;
}
message CMsgSteamDatagramP2PBadRouteRouterToClient {
optional fixed32 connection_id = 1;
optional bytes failed_relay_routing_token = 2;
optional uint32 ack_forward_target_revision = 3;
optional fixed64 kludge_pad = 99;
}
message CMsgSteamDatagramRelayToRelayPing {
optional fixed32 request_timestamp = 1;
optional fixed32 request_date = 2;
optional fixed32 my_pop_id = 3;
optional fixed32 your_pop_id = 4;
optional fixed32 checksum = 5;
}
message CMsgSteamDatagramDataCenterState {
message Server {
optional string address = 1;
optional uint32 ping_ms = 2;
}
message DataCenter {
optional string code = 1;
repeated .CMsgSteamDatagramDataCenterState.Server server_sample = 2;
repeated .CMsgSteamDatagramDataCenterState.Server relay_sample = 3;
}
repeated .CMsgSteamDatagramDataCenterState.DataCenter data_centers = 1;
}
message CMsgSteamDatagramRouterHealth {
message DataCenter {
optional fixed32 datacenter_id = 1;
optional uint32 state = 2;
}
optional float cpu_load = 1;
optional uint32 active_sessions = 2;
optional uint32 data_pkts_sec = 3;
optional uint32 other_pkts_sec = 4;
optional uint32 seconds_until_shutdown = 5;
optional float cpu_cost_per_user = 8;
optional float cpu_cost_per_packet = 9;
repeated .CMsgSteamDatagramRouterHealth.DataCenter data_centers = 6;
optional fixed64 magic = 7;
}
message CMsgSteamDatagramConnectionStatsP2PRouterToRouter {
enum Flags {
ACK_REQUEST_RELAY = 1;
ACK_REQUEST_E2E = 2;
ACK_REQUEST_IMMEDIATE = 4;
}
optional .CMsgSteamDatagramConnectionQuality quality_relay = 1;
optional .CMsgSteamDatagramConnectionQuality quality_e2e = 2;
repeated fixed32 ack_relay = 3;
repeated fixed32 legacy_ack_e2e = 4;
optional uint32 flags = 5;
optional uint32 ack_forward_target_revision = 6;
optional bytes routes = 7;
optional uint32 ack_peer_routes_revision = 8;
optional uint32 seq_num_r2r = 26;
optional uint32 seq_num_e2e = 27;
optional fixed32 from_relay_session_id = 22;
optional fixed32 to_relay_session_id = 25;
}
message CMsgSteamDatagramP2PBadRouteRouterToRouter {
optional fixed32 from_relay_session_id = 1;
optional fixed64 kludge_pad = 99;
}

View File

@@ -0,0 +1,636 @@
import "google/protobuf/descriptor.proto";
option optimize_for = SPEED;
option cc_generic_services = false;
extend .google.protobuf.FieldOptions {
optional bool key_field = 60000 [default = false];
}
extend .google.protobuf.MessageOptions {
optional int32 msgpool_soft_limit = 60000 [default = 32];
optional int32 msgpool_hard_limit = 60001 [default = 384];
}
enum GCProtoBufMsgSrc {
GCProtoBufMsgSrc_Unspecified = 0;
GCProtoBufMsgSrc_FromSystem = 1;
GCProtoBufMsgSrc_FromSteamID = 2;
GCProtoBufMsgSrc_FromGC = 3;
GCProtoBufMsgSrc_ReplySystem = 4;
GCProtoBufMsgSrc_SpoofedSteamID = 5;
}
message CMsgProtoBufHeader {
option (msgpool_soft_limit) = 256;
option (msgpool_hard_limit) = 1024;
optional fixed64 client_steam_id = 1;
optional int32 client_session_id = 2;
optional uint32 source_app_id = 3;
optional fixed64 job_id_source = 10 [default = 18446744073709551615];
optional fixed64 job_id_target = 11 [default = 18446744073709551615];
optional string target_job_name = 12;
optional int32 eresult = 13 [default = 2];
optional string error_message = 14;
optional .GCProtoBufMsgSrc gc_msg_src = 200 [default = GCProtoBufMsgSrc_Unspecified];
optional uint32 gc_dir_index_source = 201;
}
message CMsgWebAPIKey {
optional uint32 status = 1 [default = 255];
optional uint32 account_id = 2 [default = 0];
optional uint32 publisher_group_id = 3 [default = 0];
optional uint32 key_id = 4;
optional string domain = 5;
}
message CMsgHttpRequest {
message RequestHeader {
optional string name = 1;
optional string value = 2;
}
message QueryParam {
optional string name = 1;
optional bytes value = 2;
}
optional uint32 request_method = 1;
optional string hostname = 2;
optional string url = 3;
repeated .CMsgHttpRequest.RequestHeader headers = 4;
repeated .CMsgHttpRequest.QueryParam get_params = 5;
repeated .CMsgHttpRequest.QueryParam post_params = 6;
optional bytes body = 7;
optional uint32 absolute_timeout = 8;
}
message CMsgWebAPIRequest {
optional string UNUSED_job_name = 1;
optional string interface_name = 2;
optional string method_name = 3;
optional uint32 version = 4;
optional .CMsgWebAPIKey api_key = 5;
optional .CMsgHttpRequest request = 6;
optional uint32 routing_app_id = 7;
}
message CMsgHttpResponse {
message ResponseHeader {
optional string name = 1;
optional string value = 2;
}
optional uint32 status_code = 1;
repeated .CMsgHttpResponse.ResponseHeader headers = 2;
optional bytes body = 3;
}
message CMsgAMFindAccounts {
optional uint32 search_type = 1;
optional string search_string = 2;
}
message CMsgAMFindAccountsResponse {
repeated fixed64 steam_id = 1;
}
message CMsgNotifyWatchdog {
optional uint32 source = 1;
optional uint32 alert_type = 2;
optional bool critical = 4;
optional uint32 time = 5;
optional uint32 appid = 6;
optional string text = 7;
optional string recipient = 12;
}
message CMsgAMGetLicenses {
optional fixed64 steamid = 1;
}
message CMsgPackageLicense {
optional uint32 package_id = 1;
optional uint32 time_created = 2;
optional uint32 owner_id = 3;
}
message CMsgAMGetLicensesResponse {
repeated .CMsgPackageLicense license = 1;
optional uint32 result = 2;
}
message CMsgAMGetUserGameStats {
optional fixed64 steam_id = 1;
optional fixed64 game_id = 2;
repeated uint32 stats = 3;
}
message CMsgAMGetUserGameStatsResponse {
message Stats {
optional uint32 stat_id = 1;
optional uint32 stat_value = 2;
}
message Achievement_Blocks {
optional uint32 achievement_id = 1;
optional uint32 achievement_bit_id = 2;
optional fixed32 unlock_time = 3;
}
optional fixed64 steam_id = 1;
optional fixed64 game_id = 2;
optional int32 eresult = 3 [default = 2];
repeated .CMsgAMGetUserGameStatsResponse.Stats stats = 4;
repeated .CMsgAMGetUserGameStatsResponse.Achievement_Blocks achievement_blocks = 5;
}
message CMsgGCGetCommandList {
optional uint32 app_id = 1;
optional string command_prefix = 2;
}
message CMsgGCGetCommandListResponse {
repeated string command_name = 1;
}
message CGCMsgMemCachedGet {
repeated string keys = 1;
}
message CGCMsgMemCachedGetResponse {
message ValueTag {
optional bool found = 1;
optional bytes value = 2;
}
repeated .CGCMsgMemCachedGetResponse.ValueTag values = 1;
}
message CGCMsgMemCachedSet {
message KeyPair {
optional string name = 1;
optional bytes value = 2;
}
repeated .CGCMsgMemCachedSet.KeyPair keys = 1;
}
message CGCMsgMemCachedDelete {
repeated string keys = 1;
}
message CGCMsgMemCachedStats {
}
message CGCMsgMemCachedStatsResponse {
optional uint64 curr_connections = 1;
optional uint64 cmd_get = 2;
optional uint64 cmd_set = 3;
optional uint64 cmd_flush = 4;
optional uint64 get_hits = 5;
optional uint64 get_misses = 6;
optional uint64 delete_hits = 7;
optional uint64 delete_misses = 8;
optional uint64 bytes_read = 9;
optional uint64 bytes_written = 10;
optional uint64 limit_maxbytes = 11;
optional uint64 curr_items = 12;
optional uint64 evictions = 13;
optional uint64 bytes = 14;
}
message CGCMsgSQLStats {
optional uint32 schema_catalog = 1;
}
message CGCMsgSQLStatsResponse {
optional uint32 threads = 1;
optional uint32 threads_connected = 2;
optional uint32 threads_active = 3;
optional uint32 operations_submitted = 4;
optional uint32 prepared_statements_executed = 5;
optional uint32 non_prepared_statements_executed = 6;
optional uint32 deadlock_retries = 7;
optional uint32 operations_timed_out_in_queue = 8;
optional uint32 errors = 9;
}
message CMsgAMAddFreeLicense {
optional fixed64 steamid = 1;
optional uint32 ip_public = 2;
optional uint32 packageid = 3;
optional string store_country_code = 4;
}
message CMsgAMAddFreeLicenseResponse {
optional int32 eresult = 1 [default = 2];
optional int32 purchase_result_detail = 2;
optional fixed64 transid = 3;
}
message CGCMsgGetIPLocation {
repeated fixed32 ips = 1;
}
message CIPLocationInfo {
optional uint32 ip = 1;
optional float latitude = 2;
optional float longitude = 3;
optional string country = 4;
optional string state = 5;
optional string city = 6;
}
message CGCMsgGetIPLocationResponse {
repeated .CIPLocationInfo infos = 1;
}
message CGCMsgGetIPASN {
repeated fixed32 ips = 1;
}
message CIPASNInfo {
optional fixed32 ip = 1;
optional uint32 asn = 2;
}
message CGCMsgGetIPASNResponse {
repeated .CIPASNInfo infos = 1;
}
message CGCMsgSystemStatsSchema {
optional uint32 gc_app_id = 1;
optional bytes schema_kv = 2;
}
message CGCMsgGetSystemStats {
}
message CGCMsgGetSystemStatsResponse {
optional uint32 gc_app_id = 1;
optional bytes stats_kv = 2;
optional uint32 active_jobs = 3;
optional uint32 yielding_jobs = 4;
optional uint32 user_sessions = 5;
optional uint32 game_server_sessions = 6;
optional uint32 socaches = 7;
optional uint32 socaches_to_unload = 8;
optional uint32 socaches_loading = 9;
optional uint32 writeback_queue = 10;
optional uint32 steamid_locks = 11;
optional uint32 logon_queue = 12;
optional uint32 logon_jobs = 13;
}
message CMsgAMSendEmail {
message ReplacementToken {
optional string token_name = 1;
optional string token_value = 2;
}
message PersonaNameReplacementToken {
optional fixed64 steamid = 1;
optional string token_name = 2;
}
optional fixed64 steamid = 1;
optional uint32 email_msg_type = 2;
optional uint32 email_format = 3;
repeated .CMsgAMSendEmail.PersonaNameReplacementToken persona_name_tokens = 5;
optional uint32 source_gc = 6;
repeated .CMsgAMSendEmail.ReplacementToken tokens = 7;
}
message CMsgAMSendEmailResponse {
optional uint32 eresult = 1 [default = 2];
}
message CMsgGCGetEmailTemplate {
optional uint32 app_id = 1;
optional uint32 email_msg_type = 2;
optional int32 email_lang = 3;
optional int32 email_format = 4;
}
message CMsgGCGetEmailTemplateResponse {
optional uint32 eresult = 1 [default = 2];
optional bool template_exists = 2;
optional string template = 3;
}
message CMsgAMGrantGuestPasses2 {
optional fixed64 steam_id = 1;
optional uint32 package_id = 2;
optional int32 passes_to_grant = 3;
optional int32 days_to_expiration = 4;
optional int32 action = 5;
}
message CMsgAMGrantGuestPasses2Response {
optional int32 eresult = 1 [default = 2];
optional int32 passes_granted = 2 [default = 0];
}
message CGCSystemMsg_GetAccountDetails {
option (msgpool_soft_limit) = 128;
option (msgpool_hard_limit) = 512;
optional fixed64 steamid = 1;
optional uint32 appid = 2;
}
message CGCSystemMsg_GetAccountDetails_Response {
option (msgpool_soft_limit) = 128;
option (msgpool_hard_limit) = 512;
optional uint32 eresult_deprecated = 1 [default = 2];
optional string account_name = 2;
optional string persona_name = 3;
optional bool is_profile_created = 26;
optional bool is_profile_public = 4;
optional bool is_inventory_public = 5;
optional bool is_vac_banned = 7;
optional bool is_cyber_cafe = 8;
optional bool is_school_account = 9;
optional bool is_limited = 10;
optional bool is_subscribed = 11;
optional uint32 package = 12;
optional bool is_free_trial_account = 13;
optional uint32 free_trial_expiration = 14;
optional bool is_low_violence = 15;
optional bool is_account_locked_down = 16;
optional bool is_community_banned = 17;
optional bool is_trade_banned = 18;
optional uint32 trade_ban_expiration = 19;
optional uint32 accountid = 20;
optional uint32 suspension_end_time = 21;
optional string currency = 22;
optional uint32 steam_level = 23;
optional uint32 friend_count = 24;
optional uint32 account_creation_time = 25;
optional bool is_steamguard_enabled = 27;
optional bool is_phone_verified = 28;
optional bool is_two_factor_auth_enabled = 29;
optional uint32 two_factor_enabled_time = 30;
optional uint32 phone_verification_time = 31;
optional uint64 phone_id = 33;
optional bool is_phone_identifying = 34;
optional uint32 rt_identity_linked = 35;
optional uint32 rt_birth_date = 36;
optional string txn_country_code = 37;
}
message CMsgGCGetPersonaNames {
repeated fixed64 steamids = 1;
}
message CMsgGCGetPersonaNames_Response {
message PersonaName {
optional fixed64 steamid = 1;
optional string persona_name = 2;
}
repeated .CMsgGCGetPersonaNames_Response.PersonaName succeeded_lookups = 1;
repeated fixed64 failed_lookup_steamids = 2;
}
message CMsgGCCheckFriendship {
optional fixed64 steamid_left = 1;
optional fixed64 steamid_right = 2;
}
message CMsgGCCheckFriendship_Response {
optional bool success = 1;
optional bool found_friendship = 2;
}
message CMsgGCGetAppFriendsList {
optional fixed64 steamid = 1;
optional bool include_friendship_timestamps = 2;
}
message CMsgGCGetAppFriendsList_Response {
optional bool success = 1;
repeated fixed64 steamids = 2;
repeated fixed32 friendship_timestamps = 3;
repeated fixed32 last_playtimes = 4;
}
message CMsgGCMsgMasterSetDirectory {
message SubGC {
optional uint32 dir_index = 1;
optional string name = 2;
optional string box = 3;
optional string command_line = 4;
optional string gc_binary = 5;
}
optional uint32 master_dir_index = 1;
repeated .CMsgGCMsgMasterSetDirectory.SubGC dir = 2;
}
message CMsgGCMsgMasterSetDirectory_Response {
optional int32 eresult = 1 [default = 2];
optional string message = 2;
}
message CMsgGCMsgWebAPIJobRequestForwardResponse {
optional uint32 dir_index = 1;
}
message CGCSystemMsg_GetPurchaseTrust_Request {
optional fixed64 steamid = 1;
}
message CGCSystemMsg_GetPurchaseTrust_Response {
optional bool has_prior_purchase_history = 1;
optional bool has_no_recent_password_resets = 2;
optional bool is_wallet_cash_trusted = 3;
optional uint32 time_all_trusted = 4;
}
message CMsgGCHAccountVacStatusChange {
optional fixed64 steam_id = 1;
optional uint32 app_id = 2;
optional uint32 rtime_vacban_starts = 3;
optional bool is_banned_now = 4;
optional bool is_banned_future = 5;
}
message CMsgGCGetPartnerAccountLink {
optional fixed64 steamid = 1;
}
message CMsgGCGetPartnerAccountLink_Response {
optional uint32 pwid = 1;
optional uint32 nexonid = 2;
}
message CMsgGCRoutingInfo {
enum RoutingMethod {
RANDOM = 0;
DISCARD = 1;
CLIENT_STEAMID = 2;
PROTOBUF_FIELD_UINT64 = 3;
WEBAPI_PARAM = 4;
WEBAPI_PARAM_STEAMID_ACCOUNTID = 5;
}
repeated uint32 dir_index = 1;
optional .CMsgGCRoutingInfo.RoutingMethod method = 2 [default = RANDOM];
optional .CMsgGCRoutingInfo.RoutingMethod fallback = 3 [default = DISCARD];
optional uint32 protobuf_field = 4;
optional string webapi_param = 5;
}
message CMsgGCMsgMasterSetWebAPIRouting {
message Entry {
optional string interface_name = 1;
optional string method_name = 2;
optional .CMsgGCRoutingInfo routing = 3;
}
repeated .CMsgGCMsgMasterSetWebAPIRouting.Entry entries = 1;
}
message CMsgGCMsgMasterSetClientMsgRouting {
message Entry {
optional uint32 msg_type = 1;
optional .CMsgGCRoutingInfo routing = 2;
}
repeated .CMsgGCMsgMasterSetClientMsgRouting.Entry entries = 1;
}
message CMsgGCMsgMasterSetWebAPIRouting_Response {
optional int32 eresult = 1 [default = 2];
}
message CMsgGCMsgMasterSetClientMsgRouting_Response {
optional int32 eresult = 1 [default = 2];
}
message CMsgGCMsgSetOptions {
message MessageRange {
required uint32 low = 1;
required uint32 high = 2;
}
enum Option {
NOTIFY_USER_SESSIONS = 0;
NOTIFY_SERVER_SESSIONS = 1;
NOTIFY_ACHIEVEMENTS = 2;
NOTIFY_VAC_ACTION = 3;
}
enum GCSQLVersion {
GCSQL_VERSION_BASELINE = 1;
GCSQL_VERSION_BOOLTYPE = 2;
}
repeated .CMsgGCMsgSetOptions.Option options = 1;
repeated .CMsgGCMsgSetOptions.MessageRange client_msg_ranges = 2;
optional .CMsgGCMsgSetOptions.GCSQLVersion gcsql_version = 3 [default = GCSQL_VERSION_BASELINE];
}
message CMsgGCHUpdateSession {
message ExtraField {
optional string name = 1;
optional string value = 2;
}
optional fixed64 steam_id = 1;
optional uint32 app_id = 2;
optional bool online = 3;
optional fixed64 server_steam_id = 4;
optional uint32 server_addr = 5;
optional uint32 server_port = 6;
optional uint32 os_type = 7;
optional uint32 client_addr = 8;
repeated .CMsgGCHUpdateSession.ExtraField extra_fields = 9;
}
message CMsgNotificationOfSuspiciousActivity {
message MultipleGameInstances {
optional uint32 app_instance_count = 1;
repeated fixed64 other_steamids = 2;
}
optional fixed64 steamid = 1;
optional uint32 appid = 2;
optional .CMsgNotificationOfSuspiciousActivity.MultipleGameInstances multiple_instances = 3;
}
message CMsgDPPartnerMicroTxns {
message PartnerMicroTxn {
optional uint32 init_time = 1;
optional uint32 last_update_time = 2;
optional uint64 txn_id = 3;
optional uint32 account_id = 4;
optional uint32 line_item = 5;
optional uint64 item_id = 6;
optional uint32 def_index = 7;
optional uint64 price = 8;
optional uint64 tax = 9;
optional uint64 price_usd = 10;
optional uint64 tax_usd = 11;
optional uint32 purchase_type = 12;
optional uint32 steam_txn_type = 13;
optional string country_code = 14;
optional string region_code = 15;
optional int32 quantity = 16;
optional uint64 ref_trans_id = 17;
}
message PartnerInfo {
optional uint32 partner_id = 1;
optional string partner_name = 2;
optional string currency_code = 3;
optional string currency_name = 4;
}
optional uint32 appid = 1;
optional string gc_name = 2;
optional .CMsgDPPartnerMicroTxns.PartnerInfo partner = 3;
repeated .CMsgDPPartnerMicroTxns.PartnerMicroTxn transactions = 4;
}
message CMsgDPPartnerMicroTxnsResponse {
enum EErrorCode {
k_MsgValid = 0;
k_MsgInvalidAppID = 1;
k_MsgInvalidPartnerInfo = 2;
k_MsgNoTransactions = 3;
k_MsgSQLFailure = 4;
k_MsgPartnerInfoDiscrepancy = 5;
k_MsgTransactionInsertFailed = 7;
k_MsgAlreadyRunning = 8;
k_MsgInvalidTransactionData = 9;
}
optional uint32 eresult = 1 [default = 2];
optional .CMsgDPPartnerMicroTxnsResponse.EErrorCode eerrorcode = 2 [default = k_MsgValid];
}
message CMsgGCHVacVerificationChange {
optional fixed64 steamid = 1;
optional uint32 appid = 2;
optional bool is_verified = 3;
}
message CMsgGCHAccountTwoFactorChange {
optional fixed64 steamid = 1;
optional uint32 appid = 2;
optional bool twofactor_enabled = 3;
}
message CMsgGCCheckClanMembership {
optional fixed64 steamid = 1;
optional uint32 clanid = 2;
}
message CMsgGCCheckClanMembership_Response {
optional bool ismember = 1;
}

View File

@@ -0,0 +1,83 @@
import "google/protobuf/descriptor.proto";
option optimize_for = SPEED;
option cc_generic_services = false;
extend .google.protobuf.MessageOptions {
optional int32 msgpool_soft_limit = 50000 [default = 32];
optional int32 msgpool_hard_limit = 50001 [default = 384];
}
message CMsgProtoBufHeader {
optional fixed64 steamid = 1;
optional int32 client_sessionid = 2;
optional uint32 routing_appid = 3;
optional fixed64 jobid_source = 10 [default = 18446744073709551615];
optional fixed64 jobid_target = 11 [default = 18446744073709551615];
optional string target_job_name = 12;
optional int32 seq_num = 24;
optional int32 eresult = 13 [default = 2];
optional string error_message = 14;
optional uint32 ip = 15;
optional uint32 auth_account_flags = 16;
optional uint32 token_source = 22;
optional bool admin_spoofing_user = 23;
optional int32 transport_error = 17 [default = 1];
optional uint64 messageid = 18 [default = 18446744073709551615];
optional uint32 publisher_group_id = 19;
optional uint32 sysid = 20;
optional uint64 trace_tag = 21;
optional uint32 webapi_key_id = 25;
}
message CMsgMulti {
optional uint32 size_unzipped = 1;
optional bytes message_body = 2;
}
message CMsgProtobufWrapped {
optional bytes message_body = 1;
}
message CMsgAuthTicket {
optional uint32 estate = 1;
optional uint32 eresult = 2 [default = 2];
optional fixed64 steamid = 3;
optional fixed64 gameid = 4;
optional uint32 h_steam_pipe = 5;
optional uint32 ticket_crc = 6;
optional bytes ticket = 7;
}
message CCDDBAppDetailCommon {
optional uint32 appid = 1;
optional string name = 2;
optional string icon = 3;
optional string logo = 4;
optional string logo_small = 5;
optional bool tool = 6;
optional bool demo = 7;
optional bool media = 8;
optional bool community_visible_stats = 9;
optional string friendly_name = 10;
optional string propagation = 11;
optional bool has_adult_content = 12;
}
message CMsgAppRights {
optional bool edit_info = 1;
optional bool publish = 2;
optional bool view_error_data = 3;
optional bool download = 4;
optional bool upload_cdkeys = 5;
optional bool generate_cdkeys = 6;
optional bool view_financials = 7;
optional bool manage_ceg = 8;
optional bool manage_signing = 9;
optional bool manage_cdkeys = 10;
optional bool edit_marketing = 11;
optional bool economy_support = 12;
optional bool economy_support_supervisor = 13;
optional bool manage_pricing = 14;
optional bool broadcast_live = 15;
}

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,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,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,113 @@
option optimize_for = SPEED;
option cc_generic_services = false;
message CMsgSteamDatagramSessionCryptInfo {
enum EKeyType {
INVALID = 0;
CURVE25519 = 1;
}
optional .CMsgSteamDatagramSessionCryptInfo.EKeyType key_type = 1 [default = INVALID];
optional bytes key_data = 2;
optional fixed64 nonce = 3;
optional bool is_snp = 4;
}
message CMsgSteamDatagramSessionCryptInfoSigned {
optional bytes info = 1;
optional bytes signature = 2;
}
message CMsgSteamDatagramDiagnostic {
optional uint32 severity = 1;
optional string text = 2;
}
message CMsgSteamDatagramLinkInstantaneousStats {
optional uint32 out_packets_per_sec_x10 = 1;
optional uint32 out_bytes_per_sec = 2;
optional uint32 in_packets_per_sec_x10 = 3;
optional uint32 in_bytes_per_sec = 4;
optional uint32 ping_ms = 5;
optional uint32 packets_dropped_pct = 6;
optional uint32 packets_weird_sequence_pct = 7;
optional uint32 peak_jitter_usec = 8;
}
message CMsgSteamDatagramLinkLifetimeStats {
optional uint64 packets_sent = 3;
optional uint64 kb_sent = 4;
optional uint64 packets_recv = 5;
optional uint64 kb_recv = 6;
optional uint64 packets_recv_sequenced = 7;
optional uint64 packets_recv_dropped = 8;
optional uint64 packets_recv_out_of_order = 9;
optional uint64 packets_recv_duplicate = 10;
optional uint64 packets_recv_lurch = 11;
optional uint32 quality_histogram_100 = 21;
optional uint32 quality_histogram_99 = 22;
optional uint32 quality_histogram_97 = 23;
optional uint32 quality_histogram_95 = 24;
optional uint32 quality_histogram_90 = 25;
optional uint32 quality_histogram_75 = 26;
optional uint32 quality_histogram_50 = 27;
optional uint32 quality_histogram_1 = 28;
optional uint32 quality_histogram_dead = 29;
optional uint32 quality_ntile_2nd = 30;
optional uint32 quality_ntile_5th = 31;
optional uint32 quality_ntile_25th = 32;
optional uint32 quality_ntile_50th = 33;
optional uint32 ping_histogram_25 = 41;
optional uint32 ping_histogram_50 = 42;
optional uint32 ping_histogram_75 = 43;
optional uint32 ping_histogram_100 = 44;
optional uint32 ping_histogram_125 = 45;
optional uint32 ping_histogram_150 = 46;
optional uint32 ping_histogram_200 = 47;
optional uint32 ping_histogram_300 = 48;
optional uint32 ping_histogram_max = 49;
optional uint32 ping_ntile_5th = 50;
optional uint32 ping_ntile_50th = 51;
optional uint32 ping_ntile_75th = 52;
optional uint32 ping_ntile_95th = 53;
optional uint32 ping_ntile_98th = 54;
optional uint32 jitter_histogram_negligible = 61;
optional uint32 jitter_histogram_1 = 62;
optional uint32 jitter_histogram_2 = 63;
optional uint32 jitter_histogram_5 = 64;
optional uint32 jitter_histogram_10 = 65;
optional uint32 jitter_histogram_20 = 66;
optional uint32 txspeed_max = 67;
optional uint32 txspeed_histogram_16 = 68;
optional uint32 txspeed_histogram_32 = 69;
optional uint32 txspeed_histogram_64 = 70;
optional uint32 txspeed_histogram_128 = 71;
optional uint32 txspeed_histogram_256 = 72;
optional uint32 txspeed_histogram_512 = 73;
optional uint32 txspeed_histogram_1024 = 74;
optional uint32 txspeed_histogram_max = 75;
optional uint32 txspeed_ntile_5th = 76;
optional uint32 txspeed_ntile_50th = 77;
optional uint32 txspeed_ntile_75th = 78;
optional uint32 txspeed_ntile_95th = 79;
optional uint32 txspeed_ntile_98th = 80;
optional uint32 rxspeed_max = 81;
optional uint32 rxspeed_histogram_16 = 82;
optional uint32 rxspeed_histogram_32 = 83;
optional uint32 rxspeed_histogram_64 = 84;
optional uint32 rxspeed_histogram_128 = 85;
optional uint32 rxspeed_histogram_256 = 86;
optional uint32 rxspeed_histogram_512 = 87;
optional uint32 rxspeed_histogram_1024 = 88;
optional uint32 rxspeed_histogram_max = 89;
optional uint32 rxspeed_ntile_5th = 90;
optional uint32 rxspeed_ntile_50th = 91;
optional uint32 rxspeed_ntile_75th = 92;
optional uint32 rxspeed_ntile_95th = 93;
optional uint32 rxspeed_ntile_98th = 94;
}
message CMsgSteamDatagramConnectionQuality {
optional .CMsgSteamDatagramLinkInstantaneousStats instantaneous = 1;
optional .CMsgSteamDatagramLinkLifetimeStats lifetime = 2;
}

View File

@@ -0,0 +1,32 @@
option optimize_for = SPEED;
option cc_generic_services = false;
message CMsgSteamNetworkingIdentity {
optional fixed64 steam_id = 16;
optional string xbox_pairwise_id = 17;
optional bytes generic_bytes = 2;
optional string generic_string = 3;
optional bytes ipv6_and_port = 4;
}
message CMsgSteamDatagramCertificate {
enum EKeyType {
INVALID = 0;
ED25519 = 1;
}
optional .CMsgSteamDatagramCertificate.EKeyType key_type = 1 [default = INVALID];
optional bytes key_data = 2;
optional fixed64 legacy_steam_id = 4;
optional .CMsgSteamNetworkingIdentity identity = 11;
repeated fixed32 gameserver_datacenter_ids = 5;
optional fixed32 time_created = 8;
optional fixed32 time_expiry = 9;
optional uint32 app_id = 10;
}
message CMsgSteamDatagramCertificateSigned {
optional bytes cert = 4;
optional fixed64 ca_key_id = 5;
optional bytes ca_signature = 6;
}

View File

@@ -0,0 +1,76 @@
import "steamnetworkingsockets_messages_certs.proto";
import "steamnetworkingsockets_messages.proto";
option optimize_for = SPEED;
option cc_generic_services = false;
enum ESteamNetworkingUDPMsgID {
k_ESteamNetworkingUDPMsg_ChallengeRequest = 32;
k_ESteamNetworkingUDPMsg_ChallengeReply = 33;
k_ESteamNetworkingUDPMsg_ConnectRequest = 34;
k_ESteamNetworkingUDPMsg_ConnectOK = 35;
k_ESteamNetworkingUDPMsg_ConnectionClosed = 36;
k_ESteamNetworkingUDPMsg_NoConnection = 37;
}
message CMsgSteamSockets_UDP_ChallengeRequest {
optional fixed32 connection_id = 1;
optional fixed64 my_timestamp = 3;
optional uint32 protocol_version = 4;
}
message CMsgSteamSockets_UDP_ChallengeReply {
optional fixed32 connection_id = 1;
optional fixed64 challenge = 2;
optional fixed64 your_timestamp = 3;
optional uint32 protocol_version = 4;
}
message CMsgSteamSockets_UDP_ConnectRequest {
optional fixed32 client_connection_id = 1;
optional fixed64 challenge = 2;
optional fixed64 my_timestamp = 5;
optional uint32 ping_est_ms = 6;
optional .CMsgSteamDatagramSessionCryptInfoSigned crypt = 7;
optional .CMsgSteamDatagramCertificateSigned cert = 4;
optional uint32 protocol_version = 8;
optional .CMsgSteamNetworkingIdentity identity = 9;
optional fixed64 legacy_client_steam_id = 3;
}
message CMsgSteamSockets_UDP_ConnectOK {
optional fixed32 client_connection_id = 1;
optional fixed32 server_connection_id = 5;
optional fixed64 your_timestamp = 3;
optional uint32 delay_time_usec = 4;
optional .CMsgSteamDatagramSessionCryptInfoSigned crypt = 7;
optional .CMsgSteamDatagramCertificateSigned cert = 8;
optional uint32 protocol_version = 9;
optional .CMsgSteamNetworkingIdentity identity = 10;
optional fixed64 legacy_server_steam_id = 2;
}
message CMsgSteamSockets_UDP_ConnectionClosed {
optional fixed32 to_connection_id = 4;
optional fixed32 from_connection_id = 5;
optional string debug = 2;
optional uint32 reason_code = 3;
}
message CMsgSteamSockets_UDP_NoConnection {
optional fixed32 from_connection_id = 2;
optional fixed32 to_connection_id = 3;
}
message CMsgSteamSockets_UDP_Stats {
enum Flags {
ACK_REQUEST_E2E = 2;
ACK_REQUEST_IMMEDIATE = 4;
}
optional .CMsgSteamDatagramConnectionQuality stats = 1;
optional uint32 flags = 3;
optional fixed32 to_connection_id = 9;
optional fixed32 from_connection_id = 10;
optional uint32 seq_num = 4;
}

257
Protobufs/artifact/te.proto Normal file
View File

@@ -0,0 +1,257 @@
import "networkbasetypes.proto";
option optimize_for = SPEED;
option cc_generic_services = false;
enum ETEProtobufIds {
TE_EffectDispatchId = 400;
TE_ArmorRicochetId = 401;
TE_BeamEntPointId = 402;
TE_BeamEntsId = 403;
TE_BeamPointsId = 404;
TE_BeamRingId = 405;
TE_BSPDecalId = 407;
TE_BubblesId = 408;
TE_BubbleTrailId = 409;
TE_DecalId = 410;
TE_WorldDecalId = 411;
TE_EnergySplashId = 412;
TE_FizzId = 413;
TE_ShatterSurfaceId = 414;
TE_GlowSpriteId = 415;
TE_ImpactId = 416;
TE_MuzzleFlashId = 417;
TE_BloodStreamId = 418;
TE_ExplosionId = 419;
TE_DustId = 420;
TE_LargeFunnelId = 421;
TE_SparksId = 422;
TE_PhysicsPropId = 423;
TE_PlayerDecalId = 424;
TE_ProjectedDecalId = 425;
TE_SmokeId = 426;
}
message CMsgTEArmorRicochet {
optional .CMsgVector pos = 1;
optional .CMsgVector dir = 2;
}
message CMsgTEBaseBeam {
optional fixed64 modelindex = 1;
optional fixed64 haloindex = 2;
optional uint32 startframe = 3;
optional uint32 framerate = 4;
optional float life = 5;
optional float width = 6;
optional float endwidth = 7;
optional uint32 fadelength = 8;
optional float amplitude = 9;
optional fixed32 color = 10;
optional uint32 speed = 11;
optional uint32 flags = 12;
}
message CMsgTEBeamEntPoint {
optional .CMsgTEBaseBeam base = 1;
optional uint32 startentity = 2;
optional uint32 endentity = 3;
optional .CMsgVector start = 4;
optional .CMsgVector end = 5;
}
message CMsgTEBeamEnts {
optional .CMsgTEBaseBeam base = 1;
optional uint32 startentity = 2;
optional uint32 endentity = 3;
}
message CMsgTEBeamPoints {
optional .CMsgTEBaseBeam base = 1;
optional .CMsgVector start = 2;
optional .CMsgVector end = 3;
}
message CMsgTEBeamRing {
optional .CMsgTEBaseBeam base = 1;
optional uint32 startentity = 2;
optional uint32 endentity = 3;
}
message CMsgTEBSPDecal {
optional .CMsgVector origin = 1;
optional .CMsgVector normal = 2;
optional .CMsgVector saxis = 3;
optional uint32 entity = 4;
optional uint32 index = 5;
}
message CMsgTEBubbles {
optional .CMsgVector mins = 1;
optional .CMsgVector maxs = 2;
optional float height = 3;
optional uint32 count = 4;
optional float speed = 5;
}
message CMsgTEBubbleTrail {
optional .CMsgVector mins = 1;
optional .CMsgVector maxs = 2;
optional float waterz = 3;
optional uint32 count = 4;
optional float speed = 5;
}
message CMsgTEDecal {
optional .CMsgVector origin = 1;
optional .CMsgVector start = 2;
optional uint32 entity = 3;
optional uint32 hitbox = 4;
optional uint32 index = 5;
}
message CMsgEffectData {
optional .CMsgVector origin = 1;
optional .CMsgVector start = 2;
optional .CMsgVector normal = 3;
optional .CMsgQAngle angles = 4;
optional fixed32 entity = 5;
optional fixed32 otherentity = 6;
optional float scale = 7;
optional float magnitude = 8;
optional float radius = 9;
optional fixed32 surfaceprop = 10;
optional fixed64 effectindex = 11;
optional uint32 damagetype = 12;
optional uint32 material = 13;
optional uint32 hitbox = 14;
optional uint32 color = 15;
optional uint32 flags = 16;
optional int32 attachmentindex = 17;
optional uint32 effectname = 18;
optional uint32 attachmentname = 19;
}
message CMsgTEEffectDispatch {
optional .CMsgEffectData effectdata = 1;
}
message CMsgTEEnergySplash {
optional .CMsgVector pos = 1;
optional .CMsgVector dir = 2;
optional bool explosive = 3;
}
message CMsgTEFizz {
optional uint32 entity = 1;
optional uint32 density = 2;
optional int32 current = 3;
}
message CMsgTEShatterSurface {
optional .CMsgVector origin = 1;
optional .CMsgQAngle angles = 2;
optional .CMsgVector force = 3;
optional .CMsgVector forcepos = 4;
optional float width = 5;
optional float height = 6;
optional float shardsize = 7;
optional uint32 surfacetype = 8;
optional fixed32 frontcolor = 9;
optional fixed32 backcolor = 10;
}
message CMsgTEGlowSprite {
optional .CMsgVector origin = 1;
optional float scale = 2;
optional float life = 3;
optional uint32 brightness = 4;
}
message CMsgTEImpact {
optional .CMsgVector origin = 1;
optional .CMsgVector normal = 2;
optional uint32 type = 3;
}
message CMsgTEMuzzleFlash {
optional .CMsgVector origin = 1;
optional .CMsgQAngle angles = 2;
optional float scale = 3;
optional uint32 type = 4;
}
message CMsgTEBloodStream {
optional .CMsgVector origin = 1;
optional .CMsgVector direction = 2;
optional fixed32 color = 3;
optional uint32 amount = 4;
}
message CMsgTEExplosion {
optional .CMsgVector origin = 1;
optional uint32 framerate = 2;
optional uint32 flags = 3;
optional .CMsgVector normal = 4;
optional uint32 materialtype = 5;
optional uint32 radius = 6;
optional uint32 magnitude = 7;
optional float scale = 8;
optional bool affect_ragdolls = 9;
}
message CMsgTEDust {
optional .CMsgVector origin = 1;
optional float size = 2;
optional float speed = 3;
optional .CMsgVector direction = 4;
}
message CMsgTELargeFunnel {
optional .CMsgVector origin = 1;
optional uint32 reversed = 2;
}
message CMsgTESparks {
optional .CMsgVector origin = 1;
optional uint32 magnitude = 2;
optional uint32 length = 3;
optional .CMsgVector direction = 4;
}
message CMsgTEPhysicsProp {
optional .CMsgVector origin = 1;
optional .CMsgVector velocity = 2;
optional .CMsgQAngle angles = 3;
optional fixed32 skin = 4;
optional uint32 flags = 5;
optional uint32 effects = 6;
optional fixed32 color = 7;
optional fixed64 modelindex = 8;
optional uint32 unused_breakmodelsnottomake = 9;
optional float scale = 10;
}
message CMsgTEPlayerDecal {
optional .CMsgVector origin = 1;
optional uint32 player = 2;
optional uint32 entity = 3;
}
message CMsgTEProjectedDecal {
optional .CMsgVector origin = 1;
optional .CMsgQAngle angles = 2;
optional uint32 index = 3;
optional float distance = 4;
}
message CMsgTESmoke {
optional .CMsgVector origin = 1;
optional float scale = 2;
}
message CMsgTEWorldDecal {
optional .CMsgVector origin = 1;
optional .CMsgVector normal = 2;
optional uint32 index = 3;
}

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,473 @@
import "networkbasetypes.proto";
option optimize_for = SPEED;
option cc_generic_services = false;
enum EBaseUserMessages {
UM_AchievementEvent = 101;
UM_CloseCaption = 102;
UM_CloseCaptionDirect = 103;
UM_CurrentTimescale = 104;
UM_DesiredTimescale = 105;
UM_Fade = 106;
UM_GameTitle = 107;
UM_HintText = 109;
UM_HudMsg = 110;
UM_HudText = 111;
UM_KeyHintText = 112;
UM_ColoredText = 113;
UM_RequestState = 114;
UM_ResetHUD = 115;
UM_Rumble = 116;
UM_SayText = 117;
UM_SayText2 = 118;
UM_SayTextChannel = 119;
UM_Shake = 120;
UM_ShakeDir = 121;
UM_TextMsg = 124;
UM_ScreenTilt = 125;
UM_Train = 126;
UM_VGUIMenu = 127;
UM_VoiceMask = 128;
UM_VoiceSubtitle = 129;
UM_SendAudio = 130;
UM_ItemPickup = 131;
UM_AmmoDenied = 132;
UM_CrosshairAngle = 133;
UM_ShowMenu = 134;
UM_CreditsMsg = 135;
UM_CloseCaptionPlaceholder = 142;
UM_CameraTransition = 143;
UM_AudioParameter = 144;
UM_ParticleManager = 145;
UM_HudError = 146;
UM_CustomGameEvent = 148;
UM_HandHapticPulse = 149;
UM_AnimGraphUpdate = 150;
UM_HandHapticPulsePrecise = 151;
UM_MAX_BASE = 200;
}
enum EBaseEntityMessages {
EM_PlayJingle = 136;
EM_ScreenOverlay = 137;
EM_RemoveAllDecals = 138;
EM_PropagateForce = 139;
EM_DoSpark = 140;
EM_FixAngle = 141;
}
enum eRollType {
ROLL_NONE = -1;
ROLL_STATS = 0;
ROLL_CREDITS = 1;
ROLL_LATE_JOIN_LOGO = 2;
ROLL_OUTTRO = 3;
}
enum PARTICLE_MESSAGE {
GAME_PARTICLE_MANAGER_EVENT_CREATE = 0;
GAME_PARTICLE_MANAGER_EVENT_UPDATE = 1;
GAME_PARTICLE_MANAGER_EVENT_UPDATE_FORWARD = 2;
GAME_PARTICLE_MANAGER_EVENT_UPDATE_ORIENTATION = 3;
GAME_PARTICLE_MANAGER_EVENT_UPDATE_FALLBACK = 4;
GAME_PARTICLE_MANAGER_EVENT_UPDATE_ENT = 5;
GAME_PARTICLE_MANAGER_EVENT_UPDATE_OFFSET = 6;
GAME_PARTICLE_MANAGER_EVENT_DESTROY = 7;
GAME_PARTICLE_MANAGER_EVENT_DESTROY_INVOLVING = 8;
GAME_PARTICLE_MANAGER_EVENT_RELEASE = 9;
GAME_PARTICLE_MANAGER_EVENT_LATENCY = 10;
GAME_PARTICLE_MANAGER_EVENT_SHOULD_DRAW = 11;
GAME_PARTICLE_MANAGER_EVENT_FROZEN = 12;
GAME_PARTICLE_MANAGER_EVENT_CHANGE_CONTROL_POINT_ATTACHMENT = 13;
GAME_PARTICLE_MANAGER_EVENT_UPDATE_ENTITY_POSITION = 14;
GAME_PARTICLE_MANAGER_EVENT_SET_FOW_PROPERTIES = 15;
GAME_PARTICLE_MANAGER_EVENT_SET_TEXT = 16;
GAME_PARTICLE_MANAGER_EVENT_SET_SHOULD_CHECK_FOW = 17;
}
enum EHapticPulseType {
VR_HAND_HAPTIC_PULSE_LIGHT = 0;
VR_HAND_HAPTIC_PULSE_MEDIUM = 1;
VR_HAND_HAPTIC_PULSE_STRONG = 2;
}
message CUserMessageAchievementEvent {
optional uint32 achievement = 1;
}
message CUserMessageCloseCaption {
optional fixed32 hash = 1;
optional float duration = 2;
optional bool from_player = 3;
optional int32 ent_index = 4;
}
message CUserMessageCloseCaptionDirect {
optional fixed32 hash = 1;
optional float duration = 2;
optional bool from_player = 3;
optional int32 ent_index = 4;
}
message CUserMessageCloseCaptionPlaceholder {
optional string string = 1;
optional float duration = 2;
optional bool from_player = 3;
optional int32 ent_index = 4;
}
message CUserMessageCurrentTimescale {
optional float current = 1;
}
message CUserMessageDesiredTimescale {
optional float desired = 1;
optional float acceleration = 2;
optional float minblendrate = 3;
optional float blenddeltamultiplier = 4;
}
message CUserMessageFade {
optional uint32 duration = 1;
optional uint32 hold_time = 2;
optional uint32 flags = 3;
optional fixed32 color = 4;
}
message CUserMessageShake {
optional uint32 command = 1;
optional float amplitude = 2;
optional float frequency = 3;
optional float duration = 4;
}
message CUserMessageShakeDir {
optional .CUserMessageShake shake = 1;
optional .CMsgVector direction = 2;
}
message CUserMessageScreenTilt {
optional uint32 command = 1;
optional bool ease_in_out = 2;
optional .CMsgVector angle = 3;
optional float duration = 4;
optional float time = 5;
}
message CUserMessageSayText {
optional uint32 playerindex = 1;
optional string text = 2;
optional bool chat = 3;
}
message CUserMessageSayText2 {
optional uint32 entityindex = 1;
optional bool chat = 2;
optional string messagename = 3;
optional string param1 = 4;
optional string param2 = 5;
optional string param3 = 6;
optional string param4 = 7;
}
message CUserMessageHudMsg {
optional uint32 channel = 1;
optional float x = 2;
optional float y = 3;
optional fixed32 color1 = 4;
optional fixed32 color2 = 5;
optional uint32 effect = 6;
optional float fade_in_time = 7;
optional float fade_out_time = 8;
optional float hold_time = 9;
optional float fx_time = 10;
optional string message = 11;
}
message CUserMessageHudText {
optional string message = 1;
}
message CUserMessageTextMsg {
optional uint32 dest = 1;
repeated string param = 2;
}
message CUserMessageGameTitle {
}
message CUserMessageResetHUD {
}
message CUserMessageSendAudio {
optional string soundname = 1;
optional bool stop = 2;
}
message CUserMessageAudioParameter {
optional uint32 parameter_type = 1;
optional uint32 name_hash_code = 2;
optional float value = 3;
optional uint32 int_value = 4;
}
message CUserMessageVoiceMask {
repeated uint32 gamerules_masks = 1;
repeated uint32 ban_masks = 2;
optional bool mod_enable = 3;
}
message CUserMessageRequestState {
}
message CUserMessageHintText {
optional string message = 1;
}
message CUserMessageKeyHintText {
repeated string messages = 1;
}
message CUserMessageVoiceSubtitle {
optional int32 player = 1;
optional int32 menu = 2;
optional int32 item = 3;
}
message CUserMessageVGUIMenu {
message Keys {
optional string name = 1;
optional string value = 2;
}
optional string name = 1;
optional bool show = 2;
repeated .CUserMessageVGUIMenu.Keys keys = 3;
}
message CUserMessageRumble {
optional int32 index = 1;
optional int32 data = 2;
optional int32 flags = 3;
}
message CUserMessageTrain {
optional uint32 position = 1;
}
message CUserMessageSayTextChannel {
optional int32 player = 1;
optional int32 channel = 2;
optional string text = 3;
}
message CUserMessageColoredText {
optional uint32 color = 1;
optional string text = 2;
optional bool reset = 3;
optional int32 context_player_id = 4;
optional int32 context_value = 5;
optional int32 context_team_id = 6;
}
message CUserMessageItemPickup {
optional string itemname = 1;
}
message CUserMessageAmmoDenied {
optional uint32 ammo_id = 1;
}
message CUserMessageCrosshairAngle {
optional .CMsgQAngle angcrosshair = 1;
}
message CUserMessageShowMenu {
optional uint32 validslots = 1;
optional uint32 displaytime = 2;
optional bool needmore = 3;
optional string menustring = 4;
}
message CUserMessageCreditsMsg {
optional .eRollType rolltype = 1 [default = ROLL_NONE];
optional float logo_length = 2;
}
message CEntityMessagePlayJingle {
}
message CEntityMessageScreenOverlay {
optional bool start_effect = 1;
}
message CEntityMessageRemoveAllDecals {
optional bool remove_decals = 1;
}
message CEntityMessagePropagateForce {
optional .CMsgVector impulse = 1;
}
message CEntityMessageDoSpark {
optional .CMsgVector origin = 1;
optional uint32 entityindex = 2;
optional float radius = 3;
optional fixed32 color = 4;
optional uint32 beams = 5;
optional float thick = 6;
optional float duration = 7;
}
message CEntityMessageFixAngle {
optional bool relative = 1;
optional .CMsgQAngle angle = 2;
}
message CUserMessageCameraTransition {
message Transition_DataDriven {
optional string filename = 1;
optional int32 attach_ent_index = 2;
}
optional uint32 camera_type = 1;
optional float duration = 2;
optional .CUserMessageCameraTransition.Transition_DataDriven params_data_driven = 3;
}
message CUserMsg_ParticleManager {
message ReleaseParticleIndex {
}
message CreateParticle {
optional fixed64 particle_name_index = 1;
optional int32 attach_type = 2;
optional int32 entity_handle = 3;
optional int32 entity_handle_for_modifiers = 4;
}
message DestroyParticle {
optional bool destroy_immediately = 1;
}
message DestroyParticleInvolving {
optional bool destroy_immediately = 1;
optional int32 entity_handle = 3;
}
message UpdateParticle {
optional int32 control_point = 1;
optional .CMsgVector position = 2;
}
message UpdateParticleFwd {
optional int32 control_point = 1;
optional .CMsgVector forward = 2;
}
message UpdateParticleOrient {
optional int32 control_point = 1;
optional .CMsgVector forward = 2;
optional .CMsgVector right = 3 [deprecated = true];
optional .CMsgVector up = 4;
optional .CMsgVector left = 5;
}
message UpdateParticleFallback {
optional int32 control_point = 1;
optional .CMsgVector position = 2;
}
message UpdateParticleOffset {
optional int32 control_point = 1;
optional .CMsgVector origin_offset = 2;
optional .CMsgQAngle angle_offset = 3;
}
message UpdateParticleEnt {
optional int32 control_point = 1;
optional int32 entity_handle = 2;
optional int32 attach_type = 3;
optional int32 attachment = 4;
optional .CMsgVector fallback_position = 5;
optional bool include_wearables = 6;
}
message UpdateParticleSetFrozen {
optional bool set_frozen = 1;
}
message UpdateParticleShouldDraw {
optional bool should_draw = 1;
}
message ChangeControlPointAttachment {
optional int32 attachment_old = 1;
optional int32 attachment_new = 2;
optional int32 entity_handle = 3;
}
message UpdateEntityPosition {
optional int32 entity_handle = 1;
optional .CMsgVector position = 2;
}
message SetParticleFoWProperties {
optional int32 fow_control_point = 1;
optional int32 fow_control_point2 = 2;
optional float fow_radius = 3;
}
message SetParticleShouldCheckFoW {
optional bool check_fow = 1;
}
message SetParticleText {
optional string text = 1;
}
required .PARTICLE_MESSAGE type = 1 [default = GAME_PARTICLE_MANAGER_EVENT_CREATE];
required uint32 index = 2;
optional .CUserMsg_ParticleManager.ReleaseParticleIndex release_particle_index = 3;
optional .CUserMsg_ParticleManager.CreateParticle create_particle = 4;
optional .CUserMsg_ParticleManager.DestroyParticle destroy_particle = 5;
optional .CUserMsg_ParticleManager.DestroyParticleInvolving destroy_particle_involving = 6;
optional .CUserMsg_ParticleManager.UpdateParticle update_particle = 7;
optional .CUserMsg_ParticleManager.UpdateParticleFwd update_particle_fwd = 8;
optional .CUserMsg_ParticleManager.UpdateParticleOrient update_particle_orient = 9;
optional .CUserMsg_ParticleManager.UpdateParticleFallback update_particle_fallback = 10;
optional .CUserMsg_ParticleManager.UpdateParticleOffset update_particle_offset = 11;
optional .CUserMsg_ParticleManager.UpdateParticleEnt update_particle_ent = 12;
optional .CUserMsg_ParticleManager.UpdateParticleShouldDraw update_particle_should_draw = 14;
optional .CUserMsg_ParticleManager.UpdateParticleSetFrozen update_particle_set_frozen = 15;
optional .CUserMsg_ParticleManager.ChangeControlPointAttachment change_control_point_attachment = 16;
optional .CUserMsg_ParticleManager.UpdateEntityPosition update_entity_position = 17;
optional .CUserMsg_ParticleManager.SetParticleFoWProperties set_particle_fow_properties = 18;
optional .CUserMsg_ParticleManager.SetParticleText set_particle_text = 19;
optional .CUserMsg_ParticleManager.SetParticleShouldCheckFoW set_particle_should_check_fow = 20;
}
message CUserMsg_HudError {
optional int32 order_id = 1;
}
message CUserMsg_CustomGameEvent {
optional string event_name = 1;
optional bytes data = 2;
}
message CUserMessageHapticPulse {
optional int32 hand_id = 1;
optional .EHapticPulseType pulse_type = 2 [default = VR_HAND_HAPTIC_PULSE_LIGHT];
}
message CUserMessageHapticPulsePrecise {
optional int32 hand_id = 1;
optional int32 pulse_duration = 2;
}
message CUserMessageAnimStateGraphState {
optional int32 entity_index = 1;
optional bytes data = 2;
}