-
Notifications
You must be signed in to change notification settings - Fork 26
/
tf_gcmessages.proto
1613 lines (1392 loc) · 45.4 KB
/
tf_gcmessages.proto
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
import "steammessages.proto";
import "base_gcmessages.proto";
option optimize_for = SPEED;
option cc_generic_services = false;
enum ETFGCMsg {
k_EMsgGCReportWarKill = 5001;
k_EMsgGCVoteKickBanPlayer = 5018;
k_EMsgGCVoteKickBanPlayerResult = 5019;
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_EMsgGCPlayerVoteKickedAfterLeavingMatch = 6551;
k_EMsgGCPlayerVoteKickedAfterLeavingMatchResponse = 6552;
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_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 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 CMsgTFVoteKickBanPlayer {
optional uint32 account_id_subject = 1;
optional uint32 kick_reason = 2;
}
message CMsgTFVoteKickBanPlayerResult {
optional uint32 account_id_initiator = 1;
optional uint32 account_id_subject = 2;
optional uint32 kick_reason = 3;
optional bool kick_successful = 4;
optional uint32 num_yes_votes = 5;
optional uint32 num_no_votes = 6;
optional uint32 num_possible_votes = 7;
}
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;
}
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;
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;