Files
csdemo/Protobufs/tf2/tf_gcmessages.proto
2024-09-15 05:09:15 +02:00

1639 lines
46 KiB
Protocol Buffer

import "steammessages.proto";
import "base_gcmessages.proto";
option optimize_for = SPEED;
option cc_generic_services = false;
enum ETFGCMsg {
k_EMsgGCReportWarKill = 5001;
k_EMsgGCKickPlayer_DEPRECATED = 5020;
k_EMsgGCStartedTraining_DEPRECATED = 5021;
k_EMsgGCFreeTrial_ChooseMostHelpfulFriend = 5022;
k_EMsgGCRequestTF2Friends = 5023;
k_EMsgGCRequestTF2FriendsResponse = 5024;
k_EMsgGCReplay_SubmitContestEntry = 5026;
k_EMsgGCReplay_SubmitContestEntryResponse = 5027;
k_EMsgGCSaxxy_Awarded = 5029;
k_EMsgGCFreeTrial_ThankedBySomeone = 5028;
k_EMsgGCFreeTrial_ThankedSomeone = 5030;
k_EMsgGCFreeTrial_ConvertedToPremium = 5031;
k_EMsgGCMeetThePyroSilliness_BananaCraft_DEPRECATED = 5032;
k_EMsgGCMVMARG_HighFiveSuccessResponse_DEPRECATED = 5033;
k_EMsgGCMVMARG_HighFiveOnClient_DEPRECATED = 5034;
k_EMsgGCCoaching_AddToCoaches = 5200;
k_EMsgGCCoaching_AddToCoachesResponse = 5201;
k_EMsgGCCoaching_RemoveFromCoaches = 5202;
k_EMsgGCCoaching_RemoveFromCoachesResponse = 5203;
k_EMsgGCCoaching_FindCoach = 5204;
k_EMsgGCCoaching_FindCoachResponse = 5205;
k_EMsgGCCoaching_AskCoach = 5206;
k_EMsgGCCoaching_AskCoachResponse = 5207;
k_EMsgGCCoaching_CoachJoinGame = 5208;
k_EMsgGCCoaching_CoachJoining = 5209;
k_EMsgGCCoaching_CoachJoined = 5210;
k_EMsgGCCoaching_LikeCurrentCoach = 5211;
k_EMsgGCCoaching_RemoveCurrentCoach = 5212;
k_EMsgGCCoaching_AlreadyRatedCoach = 5213;
k_EMsgGC_Duel_Request = 5500;
k_EMsgGC_Duel_Response = 5501;
k_EMsgGC_Duel_Results = 5502;
k_EMsgGC_Duel_Status = 5503;
k_EMsgGC_Halloween_ReservedItem_DEPRECATED = 5600;
k_EMsgGC_Halloween_GrantItem_DEPRECATED = 5601;
k_EMsgGC_Halloween_GrantItemResponse_DEPRECATED = 5604;
k_EMsgGC_Halloween_Cheat_QueryResponse_DEPRECATED = 5605;
k_EMsgGC_Halloween_ItemClaimed_DEPRECATED = 5606;
k_EMsgGC_Halloween_ReservedItem = 5607;
k_EMsgGC_Halloween_GrantItem = 5608;
k_EMsgGC_Halloween_GrantItemResponse = 5609;
k_EMsgGC_Halloween_Cheat_QueryResponse_DEPRECATED_2 = 5610;
k_EMsgGC_Halloween_ItemClaimed_DEPRECATED_2 = 5611;
k_EMsgGC_Halloween_ServerBossEvent = 5612;
k_EMsgGC_Halloween_Merasmus2012 = 5613;
k_EMsgGC_Halloween_UpdateMerasmusLootLevel = 5614;
k_EMsgGC_GameServer_LevelInfo = 5700;
k_EMsgGC_GameServer_AuthChallenge = 5701;
k_EMsgGC_GameServer_AuthChallengeResponse = 5702;
k_EMsgGC_GameServer_CreateIdentity = 5703;
k_EMsgGC_GameServer_CreateIdentityResponse = 5704;
k_EMsgGC_GameServer_List = 5705;
k_EMsgGC_GameServer_ListResponse = 5706;
k_EMsgGC_GameServer_AuthResult = 5707;
k_EMsgGC_GameServer_ResetIdentity = 5708;
k_EMsgGC_GameServer_ResetIdentityResponse = 5709;
k_EMsgGC_Client_UseServerModificationItem = 5710;
k_EMsgGC_Client_UseServerModificationItem_Response = 5711;
k_EMsgGC_GameServer_UseServerModificationItem = 5712;
k_EMsgGC_GameServer_UseServerModificationItem_Response = 5713;
k_EMsgGC_GameServer_ServerModificationItemExpired = 5714;
k_EMsgGC_GameServer_ModificationItemState = 5715;
k_EMsgGC_GameServer_AckPolicy = 5716;
k_EMsgGC_GameServer_AckPolicyResponse = 5717;
k_EMsgGC_QP_ScoreServers = 5800;
k_EMsgGC_QP_ScoreServersResponse = 5801;
k_EMsgGC_QP_PlayerJoining = 5802;
k_EMsgGC_PickupItemEligibility_Query_DEPRECATED = 6000;
k_EMsgGC_PickupItemEligibility_Query_DEPRECATED_2 = 6001;
k_EMsgGC_IncrementKillCountAttribute_DEPRECATED = 6100;
k_EMsgGC_IncrementKillCountResponse_DEPRECATED = 6101;
k_EMsgGCAbandonCurrentGame = 6235;
k_EMsgForceSOCacheResend = 6237;
k_EMsgGCRequestChatChannelList = 6260;
k_EMsgGCRequestChatChannelListResponse = 6261;
k_EMsgGCReadyUp = 6270;
k_EMsgGCKickedFromMatchmakingQueue = 6271;
k_EMsgGCLeaverDetected = 6272;
k_EMsgGCLeaverDetectedResponse = 6287;
k_EMsgGCExitMatchmaking = 6289;
k_EMsgGCMatchmakingProgress = 6293;
k_EMsgGCMvMVictoryInfo = 6294;
k_EMsgGCGameServerMatchmakingStatus = 6295;
k_EMsgGCMvMVictory = 6297;
k_EMsgGCMvMVictoryReply = 6298;
k_EMsgGCGameServerKickingLobby = 6299;
k_EMsgGCLeaveGameAndPrepareToJoinParty = 6300;
k_EMsgGC_UpdatePeriodicEvent = 6400;
k_EMsgGC_DuckLeaderboard_IndividualUpdate = 6401;
k_EMsgGC_Client2GCEconPreviewDataBlockRequest = 6402;
k_EMsgGC_Client2GCEconPreviewDataBlockResponse = 6403;
k_EMsgGC_ClientVerificationChallenge = 6500;
k_EMsgGC_ClientVerificationChallengeResponse = 6501;
k_EMsgGC_ClientVerificationVerboseResponse = 6502;
k_EMsgGC_ClientSetItemSlotAttribute = 6503;
k_EMsgGC_War_IndividualUpdate = 6505;
k_EMsgGC_War_JoinWar = 6506;
k_EMsgGC_War_RequestGlobalStats = 6507;
k_EMsgGC_War_GlobalStatsResponse = 6508;
k_EMsgGC_WorldItemPlacement_Attribute = 6510;
k_EMsgGC_WorldItemPlacement_Update = 6511;
k_EMsgGC_Match_Result = 6512;
k_EMsgGCVoteKickPlayerRequest = 6513;
k_EMsgGCVoteKickPlayerRequestResponse = 6514;
k_EMsgGC_DailyCompetitiveStatsRollup = 6516;
k_EMsgGC_DailyCompetitiveStatsRollup_Response = 6517;
k_EMsgGC_WorldStatusBroadcast = 6518;
k_EMsgGC_ReportPlayer = 6519;
k_EMsgGC_Match_ResultResponse = 6520;
k_EMsgGCGameServerKickingLobbyResponse = 6521;
k_EMsgGCPlayerLeftMatch = 6522;
k_EMsgGCPlayerLeftMatchResponse = 6523;
k_EMsgGCRequestMatchMakerStats = 6524;
k_EMsgGCMatchMakerStatsResponse = 6525;
k_EMsgGCMatchHistoryLoad = 6526;
k_EMsgGC_AcknowledgeXP = 6527;
k_EMsgGCDataCenterPing_Update = 6528;
k_EMsgGC_NotificationAcknowledge = 6529;
k_EMsgGC_NotificationAcknowledgeReply = 6530;
k_EMsgGC_KickPlayerFromLobby = 6531;
k_EMsgGC_SurveyQuestionRequest = 6534;
k_EMsgGC_SurveyQuestionResponse = 6535;
k_EMsgGC_TFClientInit = 6536;
k_EMsgGC_NewMatchForLobbyRequest = 6537;
k_EMsgGC_NewMatchForLobbyResponse = 6538;
k_EMsgGC_ChangeMatchPlayerTeamsRequest = 6539;
k_EMsgGC_ChangeMatchPlayerTeamsResponse = 6540;
k_EMsgGC_QuestIdentify = 6541;
k_EMsgGC_QuestDevGive = 6542;
k_EMsgGCQuestComplete_Debug = 6544;
k_EMsgGC_QuestMapDebug = 6545;
k_EMsgGC_QuestMapUnlockNode = 6547;
k_EMsgGC_QuestMapPurchaseReward = 6549;
k_EMsgGC_SetDisablePartyQuestProgress = 6550;
k_EMsgGCQuestProgressReport = 6553;
k_EMsgGCParty_SetOptions = 6554;
k_EMsgGCParty_SetOptionsResponse = 6555;
k_EMsgGCParty_QueueForMatch = 6556;
k_EMsgGCParty_QueueForMatchResponse = 6557;
k_EMsgGCParty_RemoveFromQueue = 6558;
k_EMsgGCParty_RemoveFromQueueResponse = 6559;
k_EMsgGCParty_InvitePlayer = 6560;
k_EMsgGCParty_RequestJoinPlayer = 6561;
k_EMsgGCParty_SendChat = 6562;
k_EMsgGCParty_ChatMsg = 6563;
k_EMsgGCQuestNodeTurnIn = 6564;
k_EMsgGCConsumePaintKit = 6565;
k_EMsgGC_Painkit_DevGrant = 6566;
k_EMsgGCParty_QueueForStandby = 6567;
k_EMsgGCParty_QueueForStandbyResponse = 6568;
k_EMsgGCParty_RemoveFromStandbyQueue = 6569;
k_EMsgGCParty_RemoveFromStandbyQueueResponse = 6570;
k_EMsgGCParty_ClearPendingPlayer = 6571;
k_EMsgGCParty_ClearPendingPlayerResponse = 6572;
k_EMsgGCParty_ClearOtherPartyRequest = 6573;
k_EMsgGCParty_ClearOtherPartyRequestResponse = 6574;
k_EMsgGCParty_PromoteToLeader = 6575;
k_EMsgGCParty_KickMember = 6576;
k_EMsgGCQuestStrangeEvent = 6577;
k_EMsgGC_AcceptLobbyInvite = 6578;
k_EMsgGC_AcceptLobbyInviteReply = 6579;
k_EMsgGC_SDRTicket = 6580;
k_EMsgGC_ProcessMatchVoteKick = 6581;
k_EMsgGC_ProcessMatchVoteKickResponse = 6582;
k_EMsgGCToGC_SendAccountBannedNotifications = 6584;
k_EMsgGCToGC_SendNotification = 6585;
k_EMsgGCDev_GrantWarKill = 10001;
}
enum EServerModificationItemType {
kGameServerModificationItem_Halloween = 1;
}
enum ETFSyncedMMMenuStep {
k_eTFSyncedMMMenuStep_Invalid = -1;
k_eTFSyncedMMMenuStep_None = 0;
k_eTFSyncedMMMenuStep_Configuring_Mode = 1;
k_eTFSyncedMMMenuStep_MvM_Selecting_Mode = 2;
k_eTFSyncedMMMenuStep_MvM_Selecting_Tour = 3;
k_eTFSyncedMMMenuStep_MvM_Selecting_Missions = 4;
}
enum ETFMatchGroup {
option allow_alias = true;
k_eTFMatchGroup_Invalid = -1;
k_eTFMatchGroup_MvM_Practice = 0;
k_eTFMatchGroup_MvM_MannUp = 1;
k_eTFMatchGroup_First = 0;
k_eTFMatchGroup_MvM_Default = 0;
k_eTFMatchGroup_MvM_First = 0;
k_eTFMatchGroup_MvM_Last = 1;
k_eTFMatchGroup_Ladder_6v6 = 2;
k_eTFMatchGroup_Ladder_9v9 = 3;
k_eTFMatchGroup_Ladder_12v12 = 4;
k_eTFMatchGroup_Ladder_Default = 2;
k_eTFMatchGroup_Ladder_First = 2;
k_eTFMatchGroup_Ladder_Last = 4;
k_eTFMatchGroup_Casual_6v6 = 5;
k_eTFMatchGroup_Casual_9v9 = 6;
k_eTFMatchGroup_Casual_12v12 = 7;
k_eTFMatchGroup_Casual_Default = 7;
k_eTFMatchGroup_Casual_First = 5;
k_eTFMatchGroup_Casual_Last = 7;
k_eTFMatchGroup_Event_Placeholder = 8;
k_eTFMatchGroup_Event_Default = 8;
k_eTFMatchGroup_Event_First = 8;
k_eTFMatchGroup_Event_Last = 8;
}
enum ETFPartyChatType {
k_eTFPartyChatType_Invalid = 0;
k_eTFPartyChatType_MemberChat = 1;
k_eTFPartyChatType_Synthetic_MemberJoin = 1000;
k_eTFPartyChatType_Synthetic_MemberLeave = 1001;
k_eTFPartyChatType_Synthetic_SendFailed = 1002;
k_eTFPartyChatType_Synthetic_MemberOnline = 1003;
k_eTFPartyChatType_Synthetic_MemberOffline = 1004;
}
enum TF_GC_GameState {
TF_GC_GAMESTATE_STATE_INIT = 0;
TF_GC_GAMESTATE_WAIT_FOR_PLAYERS_TO_LOAD = 1;
TF_GC_GAMESTATE_STRATEGY_TIME = 3;
TF_GC_GAMESTATE_GAME_IN_PROGRESS = 5;
TF_GC_GAMESTATE_POST_GAME = 6;
TF_GC_GAMESTATE_DISCONNECT = 7;
TF_GC_GAMESTATE_LAST = 8;
}
enum TF_GC_TEAM {
TF_GC_TEAM_DEFENDERS = 0;
TF_GC_TEAM_INVADERS = 1;
TF_GC_TEAM_BROADCASTER = 2;
TF_GC_TEAM_SPECTATOR = 3;
TF_GC_TEAM_PLAYER_POOL = 4;
TF_GC_TEAM_NOTEAM = 5;
}
enum TFMatchLeaveReason {
TFMatchLeaveReason_UNSPECIFIED = 0;
TFMatchLeaveReason_VOTE_KICK = 1;
TFMatchLeaveReason_IDLE = 2;
TFMatchLeaveReason_ADMIN_KICK = 3;
TFMatchLeaveReason_AWOL = 4;
TFMatchLeaveReason_NO_SHOW = 5;
TFMatchLeaveReason_GC_REMOVED = 6;
}
enum TFVoteKickReason {
TFVoteKickReason_Invalid = -1;
TFVoteKickReason_Other = 0;
TFVoteKickReason_Cheating = 1;
TFVoteKickReason_Idle = 2;
TFVoteKickReason_Scamming = 3;
}
enum ServerMatchmakingState {
ServerMatchmakingState_INVALID = 0;
ServerMatchmakingState_NOT_PARTICIPATING = 1;
ServerMatchmakingState_EMPTY = 2;
ServerMatchmakingState_ACTIVE_MATCH_REQUESTING_LATE_JOIN = 3;
ServerMatchmakingState_ACTIVE_MATCH = 4;
}
enum SurveyQuestionType {
QUESTION_MATCH_QUALITY = 0;
QUESTION_MAP_QUALITY = 1;
QUESTION_COMP_INQUIRY = 2;
QUESTION_CASUAL_INQUIRY = 3;
QUESTION_RANDOM_CRIT = 4;
}
message CMsgTFGoldenWrenchBroadcast {
optional int32 wrench_number = 1;
optional bool deleted = 2;
optional string user_name = 3;
}
message CMsgTFSaxxyBroadcast {
optional int32 category_number = 1;
optional string user_name = 2;
}
message CMsgGCTFSpecificItemBroadcast {
optional uint32 item_def_index = 1;
optional bool was_destruction = 2;
optional string user_name = 3;
}
message CMsgTFWorldStatus {
optional bool beta_stress_test_event_active = 1 [default = false];
optional .ETFMatchGroup event_match_group = 2 [default = k_eTFMatchGroup_Invalid];
optional fixed32 event_expire_time = 3 [default = 0];
optional uint32 active_client_version = 4;
repeated .ETFMatchGroup disabled_match_groups = 5;
}
message CSOTFDuelSummary {
optional uint32 account_id = 1 [(key_field) = true];
optional uint32 duel_wins = 2;
optional uint32 duel_losses = 3;
optional uint32 last_duel_account_id = 4;
optional uint32 last_duel_timestamp = 5;
optional uint32 last_duel_status = 6;
}
message CSOTFMapContribution {
optional uint32 account_id = 1 [(key_field) = true];
optional uint32 def_index = 2 [(key_field) = true];
optional uint32 contribution_level = 3;
}
message CMsgTFFreeTrialChooseMostHelpfulFriend {
optional uint32 account_id_friend = 1;
}
message CMsgTFRequestTF2Friends {
repeated uint32 account_ids = 1;
}
message CMsgTFRequestTF2FriendsResponse {
repeated uint32 account_ids = 1;
}
message CSOTFPlayerInfo {
optional uint32 num_new_users_helped = 1;
}
message CMsgTFThankedBySomeone {
optional uint64 thanker_steam_id = 1;
}
message CMsgTFThankedSomeone {
}
message CMsgTFFreeTrialConvertedToPremium {
}
message CMsgSaxxyAwarded {
optional uint32 category = 1;
repeated string winner_names = 2;
}
message CMsgReplaySubmitContestEntry {
optional string youtube_url = 1;
optional uint32 category = 2;
}
message CMsgReplaySubmitContestEntryResponse {
optional bool success = 1;
}
message CReplayCachedContestData {
optional fixed32 timestamp = 1;
optional uint32 num_votes_last_day = 2;
repeated uint32 video_entry_ids = 3;
optional uint32 num_flags_last_day = 4;
}
message CMsgTFCoaching_AddToCoaches {
}
message CMsgTFCoaching_RemoveFromCoaches {
}
message CMsgTFCoaching_FindCoach {
optional uint32 account_id_friend_as_coach = 1;
}
message CMsgTFCoaching_FindCoachResponse {
optional bool found_coach = 1;
optional uint32 num_likes = 2;
optional string coach_name = 3;
}
message CMsgTFCoaching_AskCoach {
optional uint32 account_id_student = 1;
optional bool student_is_friend = 2;
}
message CMsgTFCoaching_AskCoachResponse {
optional bool accept_coaching_assignment = 1;
}
message CMsgTFCoaching_CoachJoinGame {
optional bool join_game = 1;
optional uint32 server_address = 2;
optional uint32 server_port = 3;
optional uint32 account_id_student = 4;
}
message CMsgTFCoaching_CoachJoining {
optional uint32 account_id_coach = 1;
optional uint32 account_id_student = 2;
}
message CMsgTFCoaching_CoachJoined {
optional uint32 account_id_coach = 1;
}
message CMsgTFCoaching_LikeCurrentCoach {
optional bool like_coach = 1;
}
message CMsgTFCoaching_RemoveCurrentCoach {
optional uint32 account_id_coach = 1;
}
message CMsgTFQuickplay_ScoreServers {
message ServerInfo {
optional uint32 server_address = 1;
optional uint32 server_port = 2;
optional uint32 num_users = 3;
optional uint64 steam_id = 4;
optional uint32 max_users = 5;
optional float user_score = 6;
}
repeated .CMsgTFQuickplay_ScoreServers.ServerInfo servers = 1;
}
message CMsgTFQuickplay_ScoreServersResponse {
message ServerInfo {
optional uint32 server_address = 1;
optional uint32 server_port = 2;
optional float total_score = 3;
optional uint64 steam_id = 4;
optional uint32 options_score = 5;
}
repeated .CMsgTFQuickplay_ScoreServersResponse.ServerInfo servers = 1;
}
message CMsgTFQuickplay_PlayerJoining {
optional uint32 account_id = 1;
}
message CMsgGC_GameServer_LevelInfo {
optional bool level_loaded = 1;
optional string level_name = 2;
}
message CMsgGC_GameServer_AuthChallenge {
optional string challenge_string = 1;
}
message CMsgGC_GameServer_AuthResult {
optional bool authenticated = 1;
optional int32 game_server_standing = 2;
optional int32 game_server_standing_trend = 3;
optional bool is_valve_server = 4;
optional string message = 5;
}
message CMsgGC_GameServer_AuthChallengeResponse {
optional uint32 game_server_account_id = 1;
optional bytes hashed_challenge_string = 2;
}
message CMsgGC_GameServer_CreateIdentity {
optional uint32 account_id = 1;
}
message CMsgGC_GameServer_CreateIdentityResponse {
enum EStatus {
kStatus_GenericFailure = 0;
kStatus_TooMany = -1;
kStatus_NoPrivs = -2;
kStatus_Created = 1;
}
optional bool account_created = 1;
optional uint32 game_server_account_id = 2;
optional string game_server_identity_token = 3;
optional .CMsgGC_GameServer_CreateIdentityResponse.EStatus status = 4 [default = kStatus_GenericFailure];
}
message CMsgGC_GameServer_List {
optional uint32 account_id = 1;
}
message CMsgGC_GameServer_ListResponse {
message GameServerIdentity {
optional uint32 game_server_account_id = 1;
optional string game_server_identity_token = 2;
optional int32 game_server_standing = 3;
optional int32 game_server_standing_trend = 4;
}
repeated .CMsgGC_GameServer_ListResponse.GameServerIdentity owned_game_servers = 1;
}
message CMsgGC_GameServer_ResetIdentity {
optional uint32 game_server_account_id = 1;
}
message CMsgGC_GameServer_ResetIdentityResponse {
optional bool game_server_identity_token_reset = 1;
optional uint32 game_server_account_id = 2;
optional string game_server_identity_token = 3;
}
message CMsgGC_GameServer_AckPolicy {
}
message CMsgGC_GameServer_AckPolicyResponse {
optional uint32 result = 1;
optional string message = 2;
}
message CMsgGC_Client_UseServerModificationItem {
optional uint64 item_id = 1;
}
message CMsgGC_Client_UseServerModificationItem_Response {
enum EServerModificationItemResponse {
kServerModificationItemResponse_AlreadyInUse = 1;
kServerModificationItemResponse_NotOnAuthenticatedServer = 2;
kServerModificationItemResponse_ServerReject = 3;
kServerModificationItemResponse_InternalError = 4;
kServerModificationItemResponse_EventAlreadyActive = 5;
}
optional .CMsgGC_Client_UseServerModificationItem_Response.EServerModificationItemResponse response_code = 1 [default = kServerModificationItemResponse_AlreadyInUse];
}
message CMsgGC_GameServer_UseServerModificationItem {
optional .EServerModificationItemType modification_type = 1 [default = kGameServerModificationItem_Halloween];
}
message CMsgGC_GameServer_UseServerModificationItem_Response {
enum EServerModificationItemServerResponse {
kServerModificationItemServerResponse_Accepted = 1;
kServerModificationItemServerResponse_NoVoteCalled = 2;
kServerModificationItemServerResponse_VoteFailed = 3;
}
optional .EServerModificationItemType modification_type = 1 [default = kGameServerModificationItem_Halloween];
optional .CMsgGC_GameServer_UseServerModificationItem_Response.EServerModificationItemServerResponse server_response_code = 2 [default = kServerModificationItemServerResponse_Accepted];
}
message CMsgGC_GameServer_ServerModificationItemExpired {
optional .EServerModificationItemType modification_type = 1 [default = kGameServerModificationItem_Halloween];
}
message CMsgGC_GameServer_ServerModificationItem {
optional .EServerModificationItemType modification_type = 1 [default = kGameServerModificationItem_Halloween];
optional bool active = 2;
}
message CMsgGC_Halloween_ReservedItem {
repeated float x = 1;
repeated float y = 2;
repeated float z = 3;
optional uint32 spawn_meta_info = 7;
}
message CMsgGC_Halloween_GrantItem {
optional uint32 recipient_account_id = 1;
optional uint32 level_id = 2;
optional bool flagged = 3;
}
message CMsgGC_Halloween_GrantItemResponse {
optional uint32 recipient_account_id = 1;
}
message CMsgGC_Halloween_ItemClaimed {
}
message CMsgGC_PickupItemEligibility_Query {
optional uint32 account_id = 1;
optional uint32 seconds_ago = 2;
}
message CMsgGC_PickupItemEligibility_QueryResponse {
optional uint32 account_id = 1;
optional bool was_eligible = 2;
optional uint32 level_id = 3;
}
message CSOTFPartyMember {
message Activity {
optional fixed64 lobby_id = 1;
optional .ETFMatchGroup lobby_match_group = 2 [default = k_eTFMatchGroup_Invalid];
optional bool multiqueue_blocked = 3;
optional bool online = 4;
optional uint32 client_version = 5;
}
optional bool owns_ticket = 2;
optional uint32 completed_missions = 3;
optional uint32 badge_level = 4;
optional bool competitive_access = 9;
optional uint32 experience = 14;
optional .CTFPerPlayerMatchCriteriaProto player_criteria = 16;
optional .CSOTFPartyMember.Activity activity = 17;
optional bool casual_banned = 18;
optional bool ranked_banned = 19;
optional bool casual_low_priority = 20;
optional bool ranked_low_priority = 21;
optional bool lobby_standby = 22;
}
message TFPendingPartyMember {
enum EType {
Invited = 0;
RequestedToJoin = 1;
}
optional fixed64 steamid = 1;
optional .TFPendingPartyMember.EType type = 2 [default = Invited];
optional fixed64 inviter = 3;
}
message TFSyncedMMUIState {
optional .ETFSyncedMMMenuStep menu_step = 1 [default = k_eTFSyncedMMMenuStep_None];
optional .ETFMatchGroup match_group = 2 [default = k_eTFMatchGroup_Invalid];
}
message CTFGroupMatchCriteriaProto {
optional bool late_join_ok = 5;
optional uint32 custom_ping_tolerance = 13 [default = 0];
optional string mvm_mannup_tour = 10;
repeated string mvm_mannup_missions = 15;
repeated string mvm_bootcamp_missions = 16;
optional .CTFCasualMatchCriteria casual_criteria = 12;
}
message CTFCasualMatchCriteria {
repeated fixed32 selected_maps_bits = 3;
}
message CTFPerPlayerMatchCriteriaProto {
optional bool mvm_squad_surplus = 1;
}
message CTFPartyOptions {
optional bool overwrite_existing = 1;
optional .CTFGroupMatchCriteriaProto group_criteria = 2;
optional .CTFPerPlayerMatchCriteriaProto player_criteria = 3;
optional .TFSyncedMMUIState player_uistate = 5;
}
message CMsgPartySetOptions {
optional fixed64 party_id = 1;
optional .CTFPartyOptions options = 2;
}
message CMsgPartySetOptionsResponse {
}
message CMsgPartyQueueForMatch {
optional fixed64 party_id = 1;
optional .CTFPartyOptions final_options = 2;
optional .ETFMatchGroup match_group = 3 [default = k_eTFMatchGroup_Invalid];
}
message CMsgPartyQueueForMatchResponse {
}
message CMsgPartyQueueForStandby {
optional fixed64 party_id = 1;
optional fixed64 party_lobby_id = 2;
}
message CMsgPartyQueueForStandbyResponse {
}
message CMsgPartyRemoveFromQueue {
optional fixed64 party_id = 1;
optional .ETFMatchGroup match_group = 2 [default = k_eTFMatchGroup_Invalid];
}
message CMsgPartyRemoveFromQueueResponse {
}
message CMsgPartyRemoveFromStandbyQueue {
optional fixed64 party_id = 1;
}
message CMsgPartyRemoveFromStandbyQueueResponse {
}
message CMsgPartyInvitePlayer {
optional fixed64 party_id = 1;
optional fixed64 player_id = 2;
optional bool expecting_request_to_join = 3;
}
message CMsgPartyRequestJoinPlayer {
optional fixed64 current_party_id = 1;
optional fixed64 join_player_id = 2;
optional fixed64 join_party_id = 3;
optional bool expecting_invite = 4;
}
message CMsgPartyClearPendingPlayer {
optional fixed64 party_id = 1;
optional fixed64 pending_player_id = 2;
}
message CMsgPartyClearPendingPlayerResponse {
}
message CMsgPartyClearOtherPartyRequest {
optional fixed64 other_party_id = 1;
}
message CMsgPartyClearOtherPartyRequestResponse {
}
message CMsgPartyPromoteToLeader {
optional fixed64 party_id = 1;
optional fixed64 new_leader_id = 2;
}
message CMsgPartyKickMember {
optional fixed64 party_id = 1;
optional fixed64 target_id = 2;
}
message CMsgPartySendChat {
optional fixed64 party_id = 1;
optional string msg = 2;
}
message CMsgPartyChatMsg {
optional .ETFPartyChatType type = 1 [default = k_eTFPartyChatType_Invalid];
optional fixed64 actor_id = 2;
optional string msg = 3;
}
message CSOTFParty {
message QueueEntry {
optional .ETFMatchGroup match_group = 1 [default = k_eTFMatchGroup_Invalid];
optional fixed32 queued_time = 2;
}
optional uint64 party_id = 1 [(key_field) = true];
optional fixed64 leader_id = 2;
repeated fixed64 member_ids = 3;
repeated .CSOTFPartyMember members = 13;
optional uint64 associated_lobby_id = 35;
optional .ETFMatchGroup associated_lobby_match_group = 40 [default = k_eTFMatchGroup_Invalid];
repeated .CSOTFParty.QueueEntry matchmaking_queues = 43;
optional .CTFGroupMatchCriteriaProto group_criteria = 37;
optional uint32 casual_banned_time = 18;
optional uint32 casual_low_priority_time = 20;
optional uint32 ranked_banned_time = 41;
optional uint32 ranked_low_priority_time = 42;
optional .TFSyncedMMUIState leader_ui_state = 44;
repeated .TFPendingPartyMember pending_members = 39;
}
message CSOTFPartyInvite {
message PartyMember {
optional fixed64 steamid = 2;
}
enum Type {
PENDING_INVITE = 1;
PENDING_JOIN_REQUEST = 2;
}
optional uint64 group_id = 1 [(key_field) = true];
optional fixed64 inviter = 2;
repeated .CSOTFPartyInvite.PartyMember members = 4;
optional .CSOTFPartyInvite.Type type = 5 [default = PENDING_INVITE];
}
message CTFLobbyPlayerProto {
enum ConnectState {
INVALID = 0;
RESERVATION_PENDING = 1;
RESERVED = 2;
CONNECTED = 3;
DISCONNECTED = 5;
}
enum Type {
INVALID_PLAYER = 0;
MATCH_PLAYER = 1;
STANDBY_PLAYER = 2;
OBSERVING_PLAYER = 3;
}
optional fixed64 id = 1 [(key_field) = true];
optional .TF_GC_TEAM team = 3 [default = TF_GC_TEAM_DEFENDERS];
optional .CTFLobbyPlayerProto.ConnectState connect_state = 13 [default = INVALID];
optional string name = 6;
optional uint64 original_party_id = 12;
optional bool squad_surplus = 14;
optional uint32 badge_level = 15;
optional uint32 last_connect_time = 17;
optional .CTFLobbyPlayerProto.Type type = 19 [default = INVALID_PLAYER];
optional double normalized_rating = 20;
optional double normalized_uncertainty = 22;
optional uint32 rank = 21;
optional bool chat_suspension = 23;
}
message CTFLobbyInviteProto {
optional fixed64 lobby_id = 1 [(key_field) = true];
optional .ETFMatchGroup match_group = 2 [default = k_eTFMatchGroup_Invalid];
}
message CSOTFGameServerLobby {
enum State {
UNKNOWN = 0;
SERVERSETUP = 1;
RUN = 2;
}
enum WarMatch {
NOPE = 0;
INVADERS_ARE_PYRO = 1;
INVADERS_ARE_HEAVY = 2;
}
optional uint64 lobby_id = 1 [(key_field) = true];
repeated .CTFLobbyPlayerProto members = 2;
optional fixed64 server_id = 6 [default = 0];
optional .CSOTFGameServerLobby.State state = 4 [default = UNKNOWN];
optional string connect = 5;
optional .TF_GC_GameState game_state = 22 [default = TF_GC_GAMESTATE_STATE_INIT];
optional double initial_average_mm_rating = 32;
optional string mannup_tour_name = 42;
optional string map_name = 38;
optional string mission_name = 39;
optional uint32 match_group = 41;
optional uint64 match_id = 30 [default = 0];
optional uint32 formed_time = 36;
optional uint32 flags = 43;
optional bool late_join_eligible = 44;
optional uint32 fixed_match_size = 45;
optional .CSOTFGameServerLobby.WarMatch is_war_match = 46 [default = NOPE];
repeated uint32 next_maps_for_vote = 47;
optional uint32 lobby_mm_version = 48;
repeated .CTFLobbyPlayerProto pending_members = 49;
}
message CMsgExitMatchmaking {
optional bool explicit_abandon = 1;
optional uint64 party_id = 2;
optional uint64 lobby_id = 3;
}
message CMsgAcceptLobbyInvite {
optional uint64 invited_lobby_id = 1;
optional uint64 abandoning_match_id = 2;
repeated uint64 abandoning_invite_lobby_ids = 3;
}
message CMsgAcceptLobbyInviteReply {
}
message CMsgMatchmakingSearchCountRequest {
}
message CMsgMatchmakingSearchCountResponse {
repeated uint32 searching_players_by_group = 1;
}
message CMsgKickedFromMatchmakingQueue {
}
message CMsgGameServerMatchmakingStatus {
message Player {
optional fixed64 steam_id = 1;
optional .CMsgGameServerMatchmakingStatus.PlayerConnectState connect_state = 2 [default = INVALID];
}
enum PlayerConnectState {
INVALID = 0;
CONNECTED = 1;
RESERVED = 2;
}
enum Event {
None = 0;
MvMVictory = 1;
MvMDefeat = 2;
AcknowledgePlayers = 3;
}
optional uint32 server_version = 16 [default = 1225];
optional .ServerMatchmakingState matchmaking_state = 1 [default = ServerMatchmakingState_INVALID];
optional string map = 3;
optional string tags = 4;
optional uint32 bot_count = 5;
optional uint32 num_spectators = 6;
optional uint32 max_players = 7;
optional uint32 slots_free = 8;
optional uint32 server_region = 9;
optional float server_loadavg = 10;
optional bool server_trusted = 11;
optional bool server_dedicated = 12;
optional uint32 strict = 17;
optional string fake_ip = 25;
repeated .CMsgGameServerMatchmakingStatus.Player players = 13;
optional .TF_GC_GameState game_state = 14 [default = TF_GC_GAMESTATE_STATE_INIT];
optional .CMsgGameServerMatchmakingStatus.Event event = 15 [default = None];
optional uint32 mvm_wave = 18;
optional uint32 mvm_credits_acquired = 19;
optional uint32 mvm_credits_dropped = 20;
optional sint32 match_group = 23 [default = -1];
optional uint32 lobby_mm_version = 24;
}
message CMsgMatchmakingProgress {
optional uint32 avg_wait_time_new = 4;
optional uint32 avg_wait_time_join_late = 5;
optional uint32 your_wait_time = 6;
optional uint32 matching_worldwide_searching_players = 8;
optional uint32 matching_near_you_searching_players = 9;
optional uint32 total_worldwide_searching_players = 13;
optional uint32 total_near_you_searching_players = 14;
optional uint32 matching_worldwide_active_players = 15;
optional uint32 matching_near_you_active_players = 16;
optional uint32 total_worldwide_active_players = 17;
optional uint32 total_near_you_active_players = 18;
optional uint32 matching_worldwide_empty_gameservers = 19;
optional uint32 matching_near_you_empty_gameservers = 20;
optional uint32 total_worldwide_empty_gameservers = 21;
optional uint32 total_near_you_empty_gameservers = 22;
optional uint32 urgency_pct = 1;
}
message CMsgMvMVictoryInfo {
message Item {
optional .CMsgMvMVictoryInfo.GrantReason grant_reason = 1 [default = INVALID];
optional bytes item_data = 2;
optional fixed64 squad_surplus_claimer_steam_id = 3;
}
message Player {
optional fixed64 steam_id = 1;
optional bool badge_granted = 3;
optional bool badge_progress_updated = 4;
optional bool badge_leveled = 5;
optional uint32 badge_level = 6;
optional uint32 badge_progress_bits = 7;
repeated .CMsgMvMVictoryInfo.Item items = 8;
optional bool voucher_missing = 9;
optional uint32 badge_points = 10;
}
enum GrantReason {
INVALID = 0;
BADGE_LEVELED = 1;
SQUAD_SURPLUS = 2;
MANN_UP = 3;
HELP_A_NOOB = 4;
}
repeated .CMsgMvMVictoryInfo.Player players = 1;
optional string tour_name = 2;
optional string mission_name = 3;
}
message CGCMsgTFHelloResponse {
optional uint32 version_check = 1;
repeated uint64 version_checksum = 2;
optional uint32 version_verbose = 3;
}
message CGCMsgTFSync {
optional bytes version_checksum = 1;
optional uint32 version_check = 2;
optional uint32 version_check_ex = 3;
optional uint32 version_check_ex2 = 4;
optional bytes version_checksum_ex = 5;
}
message CGCMsgTFSyncEx {
optional string version_checksum = 1;
optional bytes version_checksum_ex = 2;
optional uint32 version_check = 3;
}
message CMsgMvMVictory {
message Player {
optional fixed64 steam_id = 1;
optional bool squad_surplus = 2;
}
optional uint32 legacy_mission_index = 1;
optional string tour_name_mannup = 5;
optional string mission_name = 6;
repeated .CMsgMvMVictory.Player players = 2;
optional uint64 lobby_id = 3;
optional fixed32 event_time = 4;
}
message CMsgMvMMannUpVictoryReply {
}
message CMsgGameServerKickingLobby {
optional uint64 lobby_id = 3;
optional uint64 match_id = 4;
}
message CMsgGameServerKickingLobbyResponse {
}
message CMsgLeaveGameAndPrepareToJoinParty {
optional fixed64 party_id = 1;
}
message CMsgPlayerLeftMatch {
optional fixed64 steam_id = 1;
optional .TFMatchLeaveReason leave_reason = 2 [default = TFMatchLeaveReason_UNSPECIFIED];
optional bool was_abandon = 3;
optional uint64 lobby_id = 4;
optional uint64 match_id = 5;
repeated .CMsgTFXPSource xp_breakdown = 6;
}
message CMsgPlayerLeftMatchResponse {
}
message CMsgProcessMatchVoteKick {
message Vote {
optional fixed64 steam_id = 1;
optional bool vote_yay = 2;
}
optional fixed64 match_id = 1;
optional fixed64 initiator_steam_id = 2;
optional fixed64 target_steam_id = 3;
optional .TFVoteKickReason reason = 4 [default = TFVoteKickReason_Invalid];
repeated .CMsgProcessMatchVoteKick.Vote votes = 5;
optional bool default_pass = 6;
}
message CMsgProcessMatchVoteKickResponse {
optional bool rip = 1;
}
message CMsgHalloween_ServerBossEvent {
optional uint32 event_counter = 1;
optional uint32 timestamp = 2;
optional uint32 boss_type = 3;
optional uint32 boss_level = 4;
optional uint32 event_type = 5;
optional uint32 players_involved = 6;
optional float elapsed_time = 7;
}
message CMsgHalloween_Merasmus2012 {
optional uint32 event_counter = 1;
optional fixed32 time_submitted = 2;
optional bool is_valve_server = 3;
optional uint32 boss_level = 4;
optional uint32 spawned_health = 5;
optional uint32 remaining_health = 6;
optional uint32 life_time = 7;
optional uint32 bomb_kills = 8;
optional uint32 staff_kills = 9;
optional uint32 pvp_kills = 10;
optional uint32 prophunt_time1 = 11;
optional uint32 prophunt_time2 = 12;
optional uint32 dmg_scout = 13;
optional uint32 dmg_sniper = 14;
optional uint32 dmg_soldier = 15;
optional uint32 dmg_demo = 16;
optional uint32 dmg_medic = 17;
optional uint32 dmg_heavy = 18;
optional uint32 dmg_pyro = 19;
optional uint32 dmg_spy = 20;
optional uint32 dmg_engineer = 21;
optional uint32 scout_count = 22;
optional uint32 sniper_count = 23;
optional uint32 solider_count = 24;
optional uint32 demo_count = 25;
optional uint32 medic_count = 26;
optional uint32 heavy_count = 27;
optional uint32 pyro_count = 28;
optional uint32 spy_count = 29;
optional uint32 engineer_count = 30;
}
message CMsgUpdateHalloweenMerasmusLootLevel {
message Player {
optional fixed64 steam_id = 1;
}
repeated .CMsgUpdateHalloweenMerasmusLootLevel.Player players = 1;
optional uint32 merasmus_level = 2;
}
message CAttribute_String {
optional string value = 1;
}
message CAttribute_DynamicRecipeComponent {
optional uint32 def_index = 1;
optional uint32 item_quality = 2;
optional uint32 component_flags = 3;
optional string attributes_string = 4;
optional uint32 num_required = 5;
optional uint32 num_fulfilled = 6;
}
message CAttribute_DynamicRecipeComponent_COMPAT_NEVER_SERIALIZE_THIS_OUT {
optional uint32 def_index = 1;
optional uint32 item_def = 2;
optional uint32 item_quality = 3;
optional uint32 component_flags = 4;
optional uint32 item_flags = 5;
optional string attributes_string = 6;
optional uint32 num_required = 7;
optional uint32 item_count = 8;
optional uint32 num_fulfilled = 9;
optional uint32 items_fulfilled = 10;
}
message CAttribute_ItemSlotCriteria {
optional string tags = 1;
}
message CMsgSetItemSlotAttribute {
optional uint64 item_id = 1;
optional uint64 slot_item_original_id = 2;
optional uint32 slot_index = 3;
}
message CSOWarData {
optional uint32 account_id = 1 [(key_field) = true];
optional uint32 war_id = 2 [(key_field) = true];
optional uint32 affiliation = 3;
optional uint32 points_scored = 4;
}
message CGCMsgGC_War_IndividualUpdate {
optional fixed64 steam_id = 1;
optional uint32 war_id = 2;
optional uint32 score = 3;
}
message CGCMsgGC_War_JoinWar {
optional uint32 affiliation = 1;
optional uint32 war_id = 2;
}
message CGCMsgGC_War_RequestGlobalStats {
optional uint32 war_id = 1;
}
message CGCMsgGC_War_GlobalStatsResponse {
message SideScore {
optional uint32 side = 1;
optional uint64 score = 2;
}
repeated .CGCMsgGC_War_GlobalStatsResponse.SideScore side_scores = 1;
optional uint32 war_id = 2;
}
message CGCMsgGC_PlayerDuckLeaderboard_IndividualUpdate {
optional uint32 score = 2;
optional uint32 type = 3;
optional bytes score_id = 4;
optional uint32 score_check = 5;
}
message CAttribute_WorldItemPlacement {
optional uint64 original_item_id = 1;
optional float pos_x = 2;
optional float pos_y = 3;
optional float pos_z = 4;
optional float ang_x = 5;
optional float ang_y = 6;
optional float ang_z = 7;
}
message CGCMsg_WorldItemPlacement_Update {
optional uint64 original_item_id = 1;
optional float pos_x = 2;
optional float pos_y = 3;
optional float pos_z = 4;
optional float ang_x = 5;
optional float ang_y = 6;
optional float ang_z = 7;
optional bool force_remove_all = 8;
optional string attrib_name = 9;
}
message CMsgAcknowledgeXP {
optional int32 match_group = 1;
optional uint32 predicted_experience = 2;
}
message CMsgTFXPSource {
enum XPSourceType {
SOURCE_SCORE = 0;
SOURCE_OBJECTIVE_BONUS = 1;
SOURCE_COMPLETED_MATCH = 2;
SOURCE_COMPETITIVE_ABANDON = 3;
SOURCE_COMPETITIVE_WIN = 4;
SOURCE_COMPETITIVE_LOSS = 5;
SOURCE_AUTOBALANCE_BONUS = 6;
SOURCE_PRESTIGE_BONUS = 7;
}
optional .CMsgTFXPSource.XPSourceType type = 1 [default = SOURCE_SCORE, (key_field) = true];
optional int32 amount = 2;
optional int32 match_group = 3;
optional uint32 account_id = 4 [(key_field) = true];
optional uint64 match_id = 5 [(key_field) = true];
}
message CMsgTFXPSourceBreakdown {
repeated .CMsgTFXPSource sources = 1;
}
message CMsgTFClientInit {
optional uint32 client_version = 1;
optional int32 language = 2;
}
message CMsgGCNotification {
enum NotificationType {
NOTIFICATION_REPORTED_PLAYER_BANNED = 0;
NOTIFICATION_CUSTOM_STRING = 1;
NOTIFICATION_MM_BAN_DUE_TO_EXCESSIVE_REPORTS = 2;
NOTIFICATION_REPORTED_PLAYER_WAS_BANNED = 3;
NOTIFICATION_SUPPORT_MESSAGE = 4;
NOTIFICATION_NUM_TYPES = 5;
}
optional uint64 notification_id = 1 [(key_field) = true];
optional uint32 account_id = 2;
optional fixed32 expiration_time = 3;
optional .CMsgGCNotification.NotificationType type = 4 [default = NOTIFICATION_CUSTOM_STRING];
optional string notification_string = 5;
}
message CMsgGCNotificationQueue {
repeated .CMsgGCNotification notifications = 1;
}
message CMsgNotificationAcknowledge {
optional uint32 account_id = 1;
optional uint64 notification_id = 2;
}
message CMsgNotificationAcknowledgeReply {
}
message CMsgGC_Match_Result {
message Player {
optional fixed64 steam_id = 1;
optional uint64 original_party_id = 2;
optional uint32 team = 3;
optional uint32 score = 4;
optional uint32 ping = 5;
optional uint32 flags = 6;
optional uint32 rank = 9;
optional uint32 classes_played = 10;
optional uint32 kills = 11;
optional uint32 deaths = 12;
optional uint32 damage = 13;
optional uint32 healing = 14;
optional uint32 support = 15;
optional uint32 score_medal = 16;
optional uint32 kills_medal = 17;
optional uint32 damage_medal = 18;
optional uint32 healing_medal = 19;
optional uint32 support_medal = 20;
repeated .CMsgTFXPSource xp_breakdown = 21;
optional uint32 leave_time = 22;
optional .TFMatchLeaveReason leave_reason = 23 [default = TFMatchLeaveReason_UNSPECIFIED];
optional uint32 connect_time = 24;
}
enum Status {
MATCH_SUCCEEDED = 0;
MATCH_FAILED_GC = 1;
MATCH_FAILED_TRUSTED = 2;
MATCH_FAILED_ABANDON = 3;
MATCH_FAILED_UNKNOWN = 5;
MATCH_FAILED_TIMEOUT = 6;
MATCH_FINISHED_ABANDON = 7;
}
optional uint64 match_id = 1 [(key_field) = true];
optional int32 match_group = 2;
optional .CMsgGC_Match_Result.Status status = 3 [default = MATCH_SUCCEEDED];
optional uint32 duration = 4;
optional uint32 red_score = 5;
optional uint32 blue_score = 6;
optional uint32 winning_team = 7;
optional uint32 map_index = 8;
optional uint32 game_type = 9 [default = 0];
repeated .CMsgGC_Match_Result.Player players = 10;
optional uint32 win_reason = 13;
optional uint32 flags = 14;
optional uint32 bots = 16;
}
message CMsgGC_Match_ResultResponse {
}
message CEconItemPreviewDataBlock {
optional .CSOEconItem econitem = 1;
}
message CMsgGC_Client2GCEconPreviewDataBlockRequest {
optional uint64 param_s = 1;
optional uint64 param_a = 2;
optional uint64 param_d = 3;
optional uint64 param_m = 4;
}
message CMsgGC_Client2GCEconPreviewDataBlockResponse {
optional .CEconItemPreviewDataBlock iteminfo = 1;
}
message CSOTFLadderPlayerStats {
optional uint32 account_id = 1 [(key_field) = true];
optional int32 match_group = 2 [(key_field) = true];
optional uint32 season_id = 3 [(key_field) = true];
optional uint32 games = 9;
optional uint32 score = 10;
optional uint32 kills = 11;
optional uint32 deaths = 12;
optional uint32 damage = 13;
optional uint32 healing = 14;
optional uint32 support = 15;
optional uint32 score_bronze = 16;
optional uint32 score_silver = 17;
optional uint32 score_gold = 18;
optional uint32 kills_bronze = 19;
optional uint32 kills_silver = 20;
optional uint32 kills_gold = 21;
optional uint32 damage_bronze = 22;
optional uint32 damage_silver = 23;
optional uint32 damage_gold = 24;
optional uint32 healing_bronze = 25;
optional uint32 healing_silver = 26;
optional uint32 healing_gold = 27;
optional uint32 support_bronze = 28;
optional uint32 support_silver = 29;
optional uint32 support_gold = 30;
}
message CSOTFRatingData {
optional uint32 account_id = 1 [(key_field) = true];
optional int32 rating_type = 2 [(key_field) = true];
optional uint32 rating_primary = 3;
optional uint32 rating_secondary = 4;
optional uint32 rating_tertiary = 5;
}
message CMsgGC_TFVoteKickPlayerRequest {
optional uint64 target_id = 2;
optional uint64 voter_id = 3;
optional .TFVoteKickReason reason = 4 [default = TFVoteKickReason_Invalid];
optional uint64 match_id = 5;
}
message CMsgGC_VoteKickPlayerRequestResponse {
optional bool allowed = 1;
optional bool voter_inhibit = 3;
optional bool target_inhibit = 4;
}
message CMsgGC_DailyCompetitiveStatsRollup {
}
message CMsgGC_DailyCompetitiveStatsRollup_Response {
message RankBucketEntry {
optional uint32 rank = 1;
optional uint32 records = 2;
optional uint32 avg_score = 3;
optional uint32 stdev_score = 4;
optional uint32 avg_kills = 5;
optional uint32 stdev_kills = 6;
optional uint32 avg_damage = 7;
optional uint32 stdev_damage = 8;
optional uint32 avg_healing = 9;
optional uint32 stdev_healing = 10;
optional uint32 avg_support = 11;
optional uint32 stdev_support = 12;
}
repeated .CMsgGC_DailyCompetitiveStatsRollup_Response.RankBucketEntry rankdata = 1;
}
message CMsgGC_ReportPlayer {
enum EReason {
kReason_INVALID = 0;
kReason_CHEATING = 1;
kReason_IDLE = 2;
kReason_HARASSMENT = 3;
kReason_GRIEFING = 4;
kReason_COUNT = 5;
}
optional uint32 account_id_target = 1;
optional .CMsgGC_ReportPlayer.EReason reason = 2 [default = kReason_INVALID];
}
message CSOTFMatchResultPlayerStats {
optional uint64 match_id = 1 [(key_field) = true];
optional uint32 account_id = 2 [(key_field) = true];
optional int32 match_group = 3 [(key_field) = true];
optional uint32 endtime = 4;
optional uint32 season_id = 5;
optional uint32 status = 6;
optional uint32 original_party_id = 7;
optional uint32 team = 8;
optional uint32 score = 9;
optional uint32 ping = 10;
optional uint32 flags = 11;
optional uint32 display_rating = 12;
optional int32 display_rating_change = 13;
optional uint32 rank = 14;
optional uint32 classes_played = 15;
optional uint32 kills = 16;
optional uint32 deaths = 17;
optional uint32 damage = 18;
optional uint32 healing = 19;
optional uint32 support = 20;
optional uint32 score_medal = 21;
optional uint32 kills_medal = 22;
optional uint32 damage_medal = 23;
optional uint32 healing_medal = 24;
optional uint32 support_medal = 25;
optional uint32 map_index = 26;
optional uint32 winning_team = 27;
}
message CMsgGCRequestMatchMakerStats {
}
message CMsgGCDataCenterPopulation {
optional string name = 1;
optional float health_ratio = 2;
}
message CMsgGCMatchGroupDataCenterPopulation {
repeated .CMsgGCDataCenterPopulation data_center_population = 1;
}
message CMsgGCMatchMakerStatsResponse {
repeated uint32 map_count = 1;
repeated .CMsgGCMatchGroupDataCenterPopulation matchgroup_data_center_population = 2;
}
message CMsgGCMatchHistoryLoad {
optional .ETFMatchGroup match_group = 1 [default = k_eTFMatchGroup_Invalid];
}
message CMsgGCDataCenterPing_Update {
message PingEntry {
optional string name = 1;
optional uint32 ping = 2;
optional .CMsgGCDataCenterPing_Update.Status ping_status = 3 [default = Normal];
}
enum Status {
Invalid = 0;
Normal = 1;
Unreachable = 2;
FallbackToDCPing = 3;
}
repeated .CMsgGCDataCenterPing_Update.PingEntry pingdata = 1;
}
message CMsgGC_KickPlayerFromLobby {
optional uint64 targetID = 1;
}
message CMsgGCSurveyRequest {
optional .SurveyQuestionType question_type = 1 [default = QUESTION_MATCH_QUALITY];
optional uint64 match_id = 2;
}
message CMsgGCSurveyResponse {
optional .SurveyQuestionType question_type = 1 [default = QUESTION_MATCH_QUALITY];
optional uint64 match_id = 2;
optional int32 response = 3;
}
message CSOQuestMapNode {
optional uint32 account_id = 1 [(key_field) = true];
optional uint32 defindex = 3 [(key_field) = true];
optional uint32 node_id = 4;
optional bool star_0_earned = 6 [default = false];
optional bool star_1_earned = 7 [default = false];
optional bool star_2_earned = 8 [default = false];
optional bool loot_claimed = 9 [default = false];
optional uint32 selected_quest_def = 10 [default = 0];
optional uint32 map_cycle = 11;
}
message CSOQuest {
optional uint32 account_id = 1;
optional uint64 quest_id = 2 [(key_field) = true];
optional uint32 defindex = 3;
optional bool active = 4 [default = false];
optional uint32 points_0 = 5;
optional uint32 points_1 = 6;
optional uint32 points_2 = 7;
optional uint32 quest_map_node_source_id = 8;
optional uint32 map_cycle = 9;
}
message CSOQuestMapRewardPurchase {
optional uint32 account_id = 1;
optional uint32 defindex = 2 [(key_field) = true];
optional uint32 count = 3;
optional uint32 map_cycle = 4;
optional uint32 purchase_id = 5;
}
message CMsgGCQuestIdentify {
optional uint64 quest_id = 1;
}
message CMsgGCQuestDevGive {
optional uint32 quest_def_index = 1;
}
message CMsgGCQuestNodeTurnIn {
optional uint32 node_defindex = 1;
}
message CMsgGCQuestMapUnlockNode {
optional uint32 node_defindex = 1;
optional uint32 quest_defindex = 2;
}
message CMsgGCNewMatchForLobbyRequest {
optional uint64 current_match_id = 1;
optional uint32 next_map_id = 2;
optional uint64 lobby_id = 3;
}
message CMsgGCNewMatchForLobbyResponse {
optional bool success = 1;
}
message CMsgGCChangeMatchPlayerTeamsRequest {
message Member {
optional uint64 member_id = 1;
optional .TF_GC_TEAM new_team = 2 [default = TF_GC_TEAM_NOTEAM];
}
optional uint64 match_id = 1;
optional uint64 lobby_id = 2;
repeated .CMsgGCChangeMatchPlayerTeamsRequest.Member member = 3;
}
message CMsgGCChangeMatchPlayerTeamsResponse {
optional bool success = 1;
}
message CMsgGCQuestComplete_Debug {
optional uint64 quest_id = 1;
optional uint32 points_type = 2;
}
message CMsgGCQuestMap_Debug {
optional uint32 reset_operation = 1;
optional uint32 give_credit = 2;
optional .CMsgGCQuestMapUnlockNode unlock_node = 3;
}
message CMsgGCQuestMapPurchaseReward {
optional uint32 store_item_defindex = 1;
}
message CMsgGCQuestResponse {
optional bool success = 1 [default = false];
}
message CMsgGCSetDisablePartyQuestProgress {
optional bool state = 1;
}
message CMsgQuestProgressReport {
optional uint64 quest_id = 1;
optional bool star_0_earned = 2;
optional bool star_1_earned = 3;
optional bool star_2_earned = 4;
repeated uint64 items_earned = 5;
optional uint32 reward_credits_earned = 6;
optional bool contract_completed = 7;
}
message CMsgConsumePaintkit {
optional fixed64 source_id = 1;
optional uint32 target_defindex = 2;
}
message CMsgPainkitDevGrant {
optional uint32 paintkit_defindex = 1;
optional float wear = 2;
optional uint32 item_defindex = 3;
}
message GCQuestStrangeEvent {
optional uint32 owner_account_id = 1;
optional uint32 scorer_account_id = 2;
optional uint64 quest_id = 3;
optional uint32 strange_event_id = 4;
optional uint32 score = 5;
}
message CMsgSDRTicket {
optional bytes serialized_ticket = 1;
}
message CMsgAuthorizeServerItemRetrieval {
repeated uint64 item_id = 1;
}
message CMsgGCToGCSendAccountBannedNotifications {
optional uint32 banned_accountid = 1;
optional uint32 report_period_begin = 2;
optional uint32 report_period_end = 3;
}
message CMsgGCToGCSendNotification {
optional .CMsgGCNotification notification = 1;
}