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,561 @@
import "steammessages.proto";
option optimize_for = SPEED;
option cc_generic_services = false;
enum EGCBaseMsg {
k_EMsgGCSystemMessage = 4001;
k_EMsgGCReplicateConVars = 4002;
k_EMsgGCConVarUpdated = 4003;
k_EMsgGCServerAvailable = 4506;
k_EMsgGCClientConnectToServer = 4507;
k_EMsgGCGameServerInfo = 4508;
k_EMsgGCError = 4509;
k_EMsgGCReplay_UploadedToYouTube = 4510;
k_EMsgGCLANServerAvailable = 4511;
}
enum EGCBaseProtoObjectTypes {
k_EProtoObjectPartyInvite = 1001;
k_EProtoObjectLobbyInvite = 1002;
}
enum GCGoodbyeReason {
GCGoodbyeReason_GC_GOING_DOWN = 1;
GCGoodbyeReason_NO_SESSION = 2;
}
message CGCStorePurchaseInit_LineItem {
optional uint32 item_def_id = 1;
optional uint32 quantity = 2;
optional uint32 cost_in_local_currency = 3;
optional uint32 purchase_type = 4;
}
message CMsgGCStorePurchaseInit {
optional string country = 1;
optional int32 language = 2;
optional int32 currency = 3;
repeated .CGCStorePurchaseInit_LineItem line_items = 4;
}
message CMsgGCStorePurchaseInitResponse {
optional int32 result = 1;
optional uint64 txn_id = 2;
}
message CMsgSystemBroadcast {
optional string message = 1;
}
message CMsgClientHello {
optional uint32 version = 1;
}
message CMsgServerHello {
optional uint32 version = 1;
}
message CMsgClientWelcome {
optional uint32 version = 1;
optional bytes game_data = 2;
optional string txn_country_code = 3;
}
message CMsgServerWelcome {
optional uint32 min_allowed_version = 1;
optional uint32 active_version = 2;
}
message CMsgClientGoodbye {
optional .GCGoodbyeReason reason = 1 [default = GCGoodbyeReason_GC_GOING_DOWN];
}
message CMsgServerGoodbye {
optional .GCGoodbyeReason reason = 1 [default = GCGoodbyeReason_GC_GOING_DOWN];
}
message CMsgServerAvailable {
}
message CMsgLANServerAvailable {
optional fixed64 lobby_id = 1;
}
message CSOEconGameAccountClient {
optional uint32 additional_backpack_slots = 1 [default = 0];
optional bool trial_account = 2 [default = false];
optional bool need_to_choose_most_helpful_friend = 4;
optional bool in_coaches_list = 5;
optional fixed32 trade_ban_expiration = 6;
optional fixed32 duel_ban_expiration = 7;
optional uint32 preview_item_def = 8 [default = 0];
optional bool phone_verified = 19 [default = false];
optional uint32 skill_rating_6v6 = 20;
optional uint32 skill_rating_9v9 = 21;
optional bool competitive_access = 23 [default = false];
optional uint32 matchmaking_ranked_ban_expiration = 18;
optional uint32 matchmaking_ranked_low_priority_expiration = 24;
optional uint32 matchmaking_ranked_ban_last_duration = 25;
optional uint32 matchmaking_ranked_low_priority_last_duration = 26;
optional uint32 matchmaking_casual_ban_expiration = 27;
optional uint32 matchmaking_casual_low_priority_expiration = 28;
optional uint32 matchmaking_casual_ban_last_duration = 29;
optional uint32 matchmaking_casual_low_priority_last_duration = 30;
optional bool phone_identifying = 31 [default = false];
optional bool disable_party_quest_progress = 32 [default = false];
optional uint32 quest_reward_credits = 33;
optional uint32 matchmaking_last_casual_excessive_reports_auto_ban_time = 34;
optional uint32 matchmaking_last_comp_excessive_reports_auto_ban_time = 35;
}
message CSOItemCriteriaCondition {
optional int32 op = 1;
optional string field = 2;
optional bool required = 3;
optional float float_value = 4;
optional string string_value = 5;
}
message CSOItemCriteria {
optional uint32 item_level = 1;
optional int32 item_quality = 2;
optional bool item_level_set = 3;
optional bool item_quality_set = 4;
optional uint32 initial_inventory = 5;
optional uint32 initial_quantity = 6;
optional bool ignore_enabled_flag = 8;
repeated .CSOItemCriteriaCondition conditions = 9;
optional bool recent_only = 10;
optional string tags = 11;
optional string equip_regions = 12;
}
message CSOItemRecipe {
optional uint32 def_index = 1;
optional string name = 2;
optional string n_a = 3;
optional string desc_inputs = 4;
optional string desc_outputs = 5;
optional string di_a = 6;
optional string di_b = 7;
optional string di_c = 8;
optional string do_a = 9;
optional string do_b = 10;
optional string do_c = 11;
optional bool requires_all_same_class = 12;
optional bool requires_all_same_slot = 13;
optional int32 class_usage_for_output = 14;
optional int32 slot_usage_for_output = 15;
optional int32 set_for_output = 16;
repeated .CSOItemCriteria input_items_criteria = 20;
repeated .CSOItemCriteria output_items_criteria = 21;
repeated uint32 input_item_dupe_counts = 22;
}
message CMsgDevNewItemRequest {
optional fixed64 receiver = 1;
optional .CSOItemCriteria criteria = 2;
}
message CMsgDevDebugRollLootRequest {
optional fixed64 receiver = 1;
optional string loot_list_name = 2;
}
message CMsgIncrementKillCountAttribute {
optional uint64 killer_steam_id = 1;
optional uint64 victim_steam_id = 2;
optional uint64 item_id = 3;
optional uint32 event_type = 4;
optional uint32 increment_value = 5;
}
message CMsgIncrementKillCountAttribute_Multiple {
repeated .CMsgIncrementKillCountAttribute msgs = 1;
}
message CMsgTrackUniquePlayerPairEvent {
optional uint64 killer_steam_id = 1;
optional uint64 victim_steam_id = 2;
optional uint64 item_id = 3;
optional uint32 event_type = 4;
}
message CMsgApplyStrangeCountTransfer {
optional uint64 tool_item_id = 1;
optional uint64 item_src_item_id = 2;
optional uint64 item_dest_item_id = 3;
}
message CMsgApplyStrangePart {
optional uint64 strange_part_item_id = 1;
optional uint64 item_item_id = 2;
}
message CMsgApplyStrangeRestriction {
optional uint64 strange_part_item_id = 1;
optional uint64 item_item_id = 2;
optional uint32 strange_attr_index = 3;
}
message CMsgApplyUpgradeCard {
optional uint64 upgrade_card_item_id = 1;
optional uint64 subject_item_id = 2;
}
message CSOEconItemAttribute {
optional uint32 def_index = 1;
optional uint32 value = 2;
optional bytes value_bytes = 3;
}
message CSOEconItemEquipped {
optional uint32 new_class = 1;
optional uint32 new_slot = 2;
}
message CSOEconItem {
optional uint64 id = 1;
optional uint32 account_id = 2;
optional uint32 inventory = 3;
optional uint32 def_index = 4;
optional uint32 quantity = 5;
optional uint32 level = 6;
optional uint32 quality = 7;
optional uint32 flags = 8 [default = 0];
optional uint32 origin = 9;
optional string custom_name = 10;
optional string custom_desc = 11;
repeated .CSOEconItemAttribute attribute = 12;
optional .CSOEconItem interior_item = 13;
optional bool in_use = 14 [default = false];
optional uint32 style = 15 [default = 0];
optional uint64 original_id = 16 [default = 0];
optional bool contains_equipped_state = 17;
repeated .CSOEconItemEquipped equipped_state = 18;
optional bool contains_equipped_state_v2 = 19;
}
message CMsgAdjustItemEquippedState {
optional uint64 item_id = 1;
optional uint32 new_class = 2;
optional uint32 new_slot = 3;
}
message CMsgSortItems {
optional uint32 sort_type = 1;
}
message CSOEconClaimCode {
optional uint32 account_id = 1;
optional uint32 code_type = 2;
optional uint32 time_acquired = 3;
optional string code = 4;
}
message CMsgStoreGetUserData {
optional fixed32 price_sheet_version = 1;
}
message CMsgStoreGetUserDataResponse {
optional int32 result = 1;
optional int32 currency = 2;
optional string country = 3;
optional fixed32 price_sheet_version = 4;
optional uint64 experiment_data = 5 [default = 0];
optional int32 featured_item_idx = 6;
optional bool show_hat_descriptions = 7 [default = true];
optional bytes price_sheet = 8;
optional int32 default_item_sort = 9 [default = 0];
repeated uint32 popular_items = 10;
}
message CMsgUpdateItemSchema {
optional bytes items_game = 1;
optional fixed32 item_schema_version = 2;
optional string items_game_url = 3;
optional bytes signature = 4;
}
message CMsgGCError {
optional string error_text = 1;
}
message CMsgRequestInventoryRefresh {
}
message CMsgConVarValue {
optional string name = 1;
optional string value = 2;
}
message CMsgReplicateConVars {
repeated .CMsgConVarValue convars = 1;
}
message CMsgUseItem {
optional uint64 item_id = 1;
optional fixed64 target_steam_id = 2;
repeated uint32 gift__potential_targets = 3;
optional uint32 duel__class_lock = 4;
optional fixed64 initiator_steam_id = 5;
optional bool itempack__ack_immediately = 6;
}
message CMsgReplayUploadedToYouTube {
optional string youtube_url = 1;
optional string youtube_account_name = 2;
optional uint64 session_id = 3;
}
message CMsgConsumableExhausted {
optional int32 item_def_id = 1;
}
message CMsgItemAcknowledged {
optional uint32 account_id = 1;
optional uint32 inventory = 2;
optional uint32 def_index = 3;
optional uint32 quality = 4;
optional uint32 rarity = 5;
optional uint32 origin = 6;
optional uint32 is_strange = 7;
optional uint32 is_unusual = 8;
optional float wear = 9;
}
message CMsgSetPresetItemPosition {
optional uint32 class_id = 1;
optional uint32 preset_id = 2;
optional uint32 slot_id = 3;
optional uint64 item_id = 4;
}
message CMsgSetItemPositions {
message ItemPosition {
optional uint64 item_id = 1;
optional uint32 position = 2;
}
repeated .CMsgSetItemPositions.ItemPosition item_positions = 1;
}
message CSOEconItemPresetInstance {
optional uint32 class_id = 2 [(key_field) = true];
optional uint32 preset_id = 3 [(key_field) = true];
optional uint32 slot_id = 4 [(key_field) = true];
optional uint64 item_id = 5;
}
message CMsgSelectPresetForClass {
optional uint32 class_id = 1;
optional uint32 preset_id = 2;
}
message CSOClassPresetClientData {
optional uint32 account_id = 1;
optional uint32 class_id = 2;
optional uint32 active_preset_id = 3;
}
message CMsgGCReportAbuse {
optional fixed64 target_steam_id = 1;
optional string description = 4;
optional uint64 gid = 5;
optional uint32 abuse_type = 2;
optional uint32 content_type = 3;
optional fixed32 target_game_server_ip = 6;
optional uint32 target_game_server_port = 7;
}
message CMsgGCReportAbuseResponse {
optional fixed64 target_steam_id = 1;
optional uint32 result = 2;
optional string error_message = 3;
}
message CMsgGCNameItemNotification {
optional fixed64 player_steamid = 1;
optional uint32 item_def_index = 2;
optional string item_name_custom = 3;
}
message CMsgGCClientDisplayNotification {
optional string notification_title_localization_key = 1;
optional string notification_body_localization_key = 2;
repeated string body_substring_keys = 3;
repeated string body_substring_values = 4;
}
message CMsgGCShowItemsPickedUp {
optional fixed64 player_steamid = 1;
}
message CMsgUpdatePeriodicEvent {
optional uint32 account_id = 1;
optional uint32 event_type = 2;
optional uint32 amount = 3;
}
message CMsgGCIncrementKillCountResponse {
optional uint32 killer_account_id = 1 [(key_field) = true];
optional uint32 num_kills = 2;
optional uint32 item_def = 3;
optional uint32 level_type = 4;
}
message CMsgGCRemoveStrangePart {
optional uint64 item_id = 1;
optional uint32 strange_part_score_type = 2;
}
message CMsgGCRemoveUpgradeCard {
optional uint64 item_id = 1;
optional uint32 attribute_index = 2;
}
message CMsgGCRemoveCustomizationAttributeSimple {
optional uint64 item_id = 1;
}
message CMsgGCResetStrangeScores {
optional uint64 item_id = 1;
}
message CMsgGCItemPreviewItemBoughtNotification {
optional uint32 item_def_index = 1;
}
message CMsgGCStorePurchaseCancel {
optional uint64 txn_id = 1;
}
message CMsgGCStorePurchaseCancelResponse {
optional uint32 result = 1;
}
message CMsgGCStorePurchaseFinalize {
optional uint64 txn_id = 1;
}
message CMsgGCStorePurchaseFinalizeResponse {
optional uint32 result = 1;
repeated uint64 item_ids = 2;
}
message CMsgGCBannedWordListRequest {
optional uint32 ban_list_group_id = 1;
optional uint32 word_id = 2;
}
message CMsgGCGiftedItems {
optional uint64 gifter_steam_id = 1;
optional bool was_random_person = 2;
repeated uint32 recipient_account_ids = 3;
}
message CMsgGCCollectItem {
optional uint64 collection_item_id = 1;
optional uint64 subject_item_id = 2;
}
message CMsgGCClientMarketDataRequest {
optional uint32 user_currency = 1;
}
message CMsgGCClientMarketDataEntry {
optional uint32 item_def_index = 1;
optional uint32 item_quality = 2;
optional uint32 item_sell_listings = 3;
optional uint32 price_in_local_currency = 4;
}
message CMsgGCClientMarketData {
repeated .CMsgGCClientMarketDataEntry entries = 1;
}
message CMsgApplyToolToItem {
optional uint64 tool_item_id = 1;
optional uint64 subject_item_id = 2;
}
message CMsgApplyToolToBaseItem {
optional uint64 tool_item_id = 1;
optional uint32 baseitem_def_index = 2;
}
message CMsgRecipeComponent {
optional uint64 subject_item_id = 1;
optional uint64 attribute_index = 2;
}
message CMsgFulfillDynamicRecipeComponent {
optional uint64 tool_item_id = 1;
repeated .CMsgRecipeComponent consumption_components = 2;
}
message CMsgSetItemEffectVerticalOffset {
optional uint64 item_id = 1;
optional float offset = 2;
}
message CMsgSetHatEffectUseHeadOrigin {
optional uint64 item_id = 1;
optional bool use_head = 2;
}
message CMsgDeliverGiftResponseGiver {
optional uint32 response_code = 1;
optional string receiver_account_name = 2;
}
message CSOEconGameAccountForGameServers {
optional bool disable_party_quest_progress = 6 [default = false];
}
message CWorkshop_PopulateItemDescriptions_Request {
message SingleItemDescription {
optional uint32 gameitemid = 1;
optional string item_description = 2;
}
message ItemDescriptionsLanguageBlock {
optional string language = 1;
repeated .CWorkshop_PopulateItemDescriptions_Request.SingleItemDescription descriptions = 2;
}
optional uint32 appid = 1;
repeated .CWorkshop_PopulateItemDescriptions_Request.ItemDescriptionsLanguageBlock languages = 2;
}
message CWorkshop_GetContributors_Request {
optional uint32 appid = 1;
optional uint32 gameitemid = 2;
}
message CWorkshop_GetContributors_Response {
repeated fixed64 contributors = 1;
}
message CWorkshop_SetItemPaymentRules_Request {
message WorkshopItemPaymentRule {
optional uint64 workshop_file_id = 1;
optional float revenue_percentage = 2;
optional string rule_description = 3;
}
message PartnerItemPaymentRule {
optional uint32 account_id = 1;
optional float revenue_percentage = 2;
optional string rule_description = 3;
}
optional uint32 appid = 1;
optional uint32 gameitemid = 2;
repeated .CWorkshop_SetItemPaymentRules_Request.WorkshopItemPaymentRule associated_workshop_files = 3;
repeated .CWorkshop_SetItemPaymentRules_Request.PartnerItemPaymentRule partner_accounts = 4;
}
message CWorkshop_SetItemPaymentRules_Response {
}

View File

@@ -0,0 +1,368 @@
import "steammessages.proto";
option optimize_for = SPEED;
option cc_generic_services = false;
enum EGCItemMsg {
k_EMsgGCBase = 1000;
k_EMsgGCSetSingleItemPosition = 1001;
k_EMsgGCCraft = 1002;
k_EMsgGCCraftResponse = 1003;
k_EMsgGCDelete = 1004;
k_EMsgGCVerifyCacheSubscription = 1005;
k_EMsgGCNameItem = 1006;
k_EMsgGCUnlockCrate = 1007;
k_EMsgGCUnlockCrateResponse = 1008;
k_EMsgGCPaintItem = 1009;
k_EMsgGCPaintItemResponse = 1010;
k_EMsgGCGoldenWrenchBroadcast = 1011;
k_EMsgGCMOTDRequest = 1012;
k_EMsgGCMOTDRequestResponse = 1013;
k_EMsgGCNameBaseItem = 1019;
k_EMsgGCNameBaseItemResponse = 1020;
k_EMsgGCRemoveSocketItem_DEPRECATED = 1021;
k_EMsgGCRemoveSocketItemResponse_DEPRECATED = 1022;
k_EMsgGCCustomizeItemTexture = 1023;
k_EMsgGCCustomizeItemTextureResponse = 1024;
k_EMsgGCUseItemRequest = 1025;
k_EMsgGCUseItemResponse = 1026;
k_EMsgGCRespawnPostLoadoutChange = 1029;
k_EMsgGCRemoveItemName = 1030;
k_EMsgGCRemoveItemPaint = 1031;
k_EMsgGCGiftWrapItem = 1032;
k_EMsgGCGiftWrapItemResponse = 1033;
k_EMsgGCDeliverGift = 1034;
k_EMsgGCDeliverGiftResponseReceiver = 1036;
k_EMsgGCUnwrapGiftRequest = 1037;
k_EMsgGCUnwrapGiftResponse = 1038;
k_EMsgGCSetItemStyle = 1039;
k_EMsgGCUsedClaimCodeItem = 1040;
k_EMsgGCSortItems = 1041;
k_EMsgGC_RevolvingLootList_DEPRECATED = 1042;
k_EMsgGCLookupAccount = 1043;
k_EMsgGCLookupAccountResponse = 1044;
k_EMsgGCLookupAccountName = 1045;
k_EMsgGCLookupAccountNameResponse = 1046;
k_EMsgGCUpdateItemSchema = 1049;
k_EMsgGCRequestInventoryRefresh = 1050;
k_EMsgGCRemoveCustomTexture = 1051;
k_EMsgGCRemoveCustomTextureResponse = 1052;
k_EMsgGCRemoveMakersMark = 1053;
k_EMsgGCRemoveMakersMarkResponse = 1054;
k_EMsgGCRemoveUniqueCraftIndex = 1055;
k_EMsgGCRemoveUniqueCraftIndexResponse = 1056;
k_EMsgGCSaxxyBroadcast = 1057;
k_EMsgGCBackpackSortFinished = 1058;
k_EMsgGCAdjustItemEquippedState = 1059;
k_EMsgGCCollectItem = 1061;
k_EMsgGCItemAcknowledged = 1062;
k_EMsgGCPresets_SelectPresetForClass = 1063;
k_EMsgGCPresets_SetItemPosition = 1064;
k_EMsgGC_ReportAbuse = 1065;
k_EMsgGC_ReportAbuseResponse = 1066;
k_EMsgGCPresets_SelectPresetForClassReply = 1067;
k_EMsgGCNameItemNotification = 1068;
k_EMsgGCClientDisplayNotification = 1069;
k_EMsgGCApplyStrangePart = 1070;
k_EMsgGC_IncrementKillCountAttribute = 1071;
k_EMsgGC_IncrementKillCountResponse = 1072;
k_EMsgGCRemoveStrangePart = 1073;
k_EMsgGCResetStrangeScores = 1074;
k_EMsgGCGiftedItems = 1075;
k_EMsgGCApplyUpgradeCard = 1077;
k_EMsgGCRemoveUpgradeCard = 1078;
k_EMsgGCApplyStrangeRestriction = 1079;
k_EMsgGCClientRequestMarketData = 1080;
k_EMsgGCClientRequestMarketDataResponse = 1081;
k_EMsgGCApplyXifier = 1082;
k_EMsgGCApplyXifierResponse = 1083;
k_EMsgGC_TrackUniquePlayerPairEvent = 1084;
k_EMsgGCFulfillDynamicRecipeComponent = 1085;
k_EMsgGCFulfillDynamicRecipeComponentResponse = 1086;
k_EMsgGCSetItemEffectVerticalOffset = 1087;
k_EMsgGCSetHatEffectUseHeadOrigin = 1088;
k_EMsgGCItemEaterRecharger = 1089;
k_EMsgGCItemEaterRechargerResponse = 1090;
k_EMsgGCApplyBaseItemXifier = 1091;
k_EMsgGCApplyClassTransmogrifier = 1092;
k_EMsgGCApplyHalloweenSpellbookPage = 1093;
k_EMsgGCRemoveKillStreak = 1094;
k_EMsgGCRemoveKillStreakResponse = 1095;
k_EMsgGCTFSpecificItemBroadcast = 1096;
k_EMsgGC_IncrementKillCountAttribute_Multiple = 1097;
k_EMsgGCDeliverGiftResponseGiver = 1098;
k_EMsgGCSetItemPositions = 1100;
k_EMsgGCLookupMultipleAccountNames = 1101;
k_EMsgGCLookupMultipleAccountNamesResponse = 1102;
k_EMsgGCTradingBase = 1500;
k_EMsgGCTrading_InitiateTradeRequest = 1501;
k_EMsgGCTrading_InitiateTradeResponse = 1502;
k_EMsgGCTrading_StartSession = 1503;
k_EMsgGCTrading_SessionClosed = 1509;
k_EMsgGCTrading_CancelSession = 1510;
k_EMsgGCTrading_InitiateTradeRequestResponse = 1514;
k_EMsgGCServerBrowser_FavoriteServer = 1601;
k_EMsgGCServerBrowser_BlacklistServer = 1602;
k_EMsgGCServerRentalsBase = 1700;
k_EMsgGCItemPreviewCheckStatus = 1701;
k_EMsgGCItemPreviewStatusResponse = 1702;
k_EMsgGCItemPreviewRequest = 1703;
k_EMsgGCItemPreviewRequestResponse = 1704;
k_EMsgGCItemPreviewExpire = 1705;
k_EMsgGCItemPreviewExpireNotification = 1706;
k_EMsgGCItemPreviewItemBoughtNotification = 1708;
k_EMsgGCDev_NewItemRequest = 2001;
k_EMsgGCDev_NewItemRequestResponse = 2002;
k_EMsgGCDev_DebugRollLootRequest = 2003;
k_EMsgGCStoreGetUserData = 2500;
k_EMsgGCStoreGetUserDataResponse = 2501;
k_EMsgGCStorePurchaseInit_DEPRECATED = 2502;
k_EMsgGCStorePurchaseInitResponse_DEPRECATED = 2503;
k_EMsgGCStorePurchaseFinalize = 2512;
k_EMsgGCStorePurchaseFinalizeResponse = 2513;
k_EMsgGCStorePurchaseCancel = 2514;
k_EMsgGCStorePurchaseCancelResponse = 2515;
k_EMsgGCStorePurchaseQueryTxn = 2508;
k_EMsgGCStorePurchaseQueryTxnResponse = 2509;
k_EMsgGCStorePurchaseInit = 2510;
k_EMsgGCStorePurchaseInitResponse = 2511;
k_EMsgGCToGCDirtySDOCache = 2516;
k_EMsgGCToGCDirtyMultipleSDOCache = 2517;
k_EMsgGCToGCUpdateSQLKeyValue = 2518;
k_EMsgGCToGCBroadcastConsoleCommand = 2521;
k_EMsgGCServerVersionUpdated = 2522;
k_EMsgGCApplyAutograph = 2523;
k_EMsgGCToGCWebAPIAccountChanged = 2524;
k_EMsgGCRequestAnnouncements = 2525;
k_EMsgGCRequestAnnouncementsResponse = 2526;
k_EMsgGCRequestPassportItemGrant = 2527;
k_EMsgGCClientVersionUpdated = 2528;
k_EMsgGCItemPurgatory_FinalizePurchase = 2531;
k_EMsgGCItemPurgatory_FinalizePurchaseResponse = 2532;
k_EMsgGCItemPurgatory_RefundPurchase = 2533;
k_EMsgGCItemPurgatory_RefundPurchaseResponse = 2534;
k_EMsgGCToGCPlayerStrangeCountAdjustments = 2535;
k_EMsgGCRequestStoreSalesData = 2536;
k_EMsgGCRequestStoreSalesDataResponse = 2537;
k_EMsgGCRequestStoreSalesDataUpToDateResponse = 2538;
k_EMsgGCToGCPingRequest = 2539;
k_EMsgGCToGCPingResponse = 2540;
k_EMsgGCToGCGetUserSessionServer = 2541;
k_EMsgGCToGCGetUserSessionServerResponse = 2542;
k_EMsgGCToGCGetUserServerMembers = 2543;
k_EMsgGCToGCGetUserServerMembersResponse = 2544;
k_EMsgGCToGCGrantSelfMadeItemToAccount = 2555;
k_EMsgGCToGCThankedByNewUser = 2556;
k_EMsgGCShuffleCrateContents = 2557;
k_EMsgGCQuestObjective_Progress = 2558;
k_EMsgGCQuestCompleted = 2559;
k_EMsgGCApplyDuckToken = 2560;
k_EMsgGCQuestObjective_PointsChange = 2562;
k_EMsgGCQuestObjective_RequestLoanerItems = 2564;
k_EMsgGCQuestObjective_RequestLoanerResponse = 2565;
k_EMsgGCApplyStrangeCountTransfer = 2566;
k_EMsgGCCraftCollectionUpgrade = 2567;
k_EMsgGCCraftHalloweenOffering = 2568;
k_EMsgGCQuestDiscard_Request = 2569;
k_EMsgGCRemoveGiftedBy = 2570;
k_EMsgGCRemoveGiftedByResponse = 2571;
k_EMsgGCRemoveFestivizer = 2572;
k_EMsgGCRemoveFestivizerResponse = 2573;
k_EMsgGCCraftCommonStatClock = 2574;
}
enum EGCMsgResponse {
k_EGCMsgResponseOK = 0;
k_EGCMsgResponseDenied = 1;
k_EGCMsgResponseServerError = 2;
k_EGCMsgResponseTimeout = 3;
k_EGCMsgResponseInvalid = 4;
k_EGCMsgResponseNoMatch = 5;
k_EGCMsgResponseUnknownError = 6;
k_EGCMsgResponseNotLoggedOn = 7;
k_EGCMsgFailedToCreate = 8;
}
enum EUnlockStyle {
k_UnlockStyle_Succeeded = 0;
k_UnlockStyle_Failed_PreReq = 1;
k_UnlockStyle_Failed_CantAfford = 2;
k_UnlockStyle_Failed_CantCommit = 3;
k_UnlockStyle_Failed_CantLockCache = 4;
k_UnlockStyle_Failed_CantAffordAttrib = 5;
k_UnlockStyle_Failed_CantAffordGem = 6;
}
enum EItemPurgatoryResponse_Finalize {
k_ItemPurgatoryResponse_Finalize_Succeeded = 0;
k_ItemPurgatoryResponse_Finalize_Failed_Incomplete = 1;
k_ItemPurgatoryResponse_Finalize_Failed_ItemsNotInPurgatory = 2;
k_ItemPurgatoryResponse_Finalize_Failed_CouldNotFindItems = 3;
k_ItemPurgatoryResponse_Finalize_Failed_NoSOCache = 4;
k_ItemPurgatoryResponse_Finalize_BackpackFull = 5;
}
enum EItemPurgatoryResponse_Refund {
k_ItemPurgatoryResponse_Refund_Succeeded = 0;
k_ItemPurgatoryResponse_Refund_Failed_ItemNotInPurgatory = 1;
k_ItemPurgatoryResponse_Refund_Failed_CouldNotFindItem = 2;
k_ItemPurgatoryResponse_Refund_Failed_NoSOCache = 3;
k_ItemPurgatoryResponse_Refund_Failed_NoDetail = 4;
k_ItemPurgatoryResponse_Refund_Failed_NexonWebAPI = 5;
}
message CMsgApplyAutograph {
optional uint64 autograph_item_id = 1;
optional uint64 item_item_id = 2;
}
message CMsgEconPlayerStrangeCountAdjustment {
message CStrangeCountAdjustment {
optional uint32 event_type = 1;
optional uint64 item_id = 2;
optional uint32 adjustment = 3;
}
optional uint32 account_id = 1;
repeated .CMsgEconPlayerStrangeCountAdjustment.CStrangeCountAdjustment strange_count_adjustments = 2;
}
message CMsgRequestItemPurgatory_FinalizePurchase {
repeated uint64 item_ids = 1;
}
message CMsgRequestItemPurgatory_FinalizePurchaseResponse {
optional uint32 result = 1;
}
message CMsgRequestItemPurgatory_RefundPurchase {
optional uint64 item_id = 1;
}
message CMsgRequestItemPurgatory_RefundPurchaseResponse {
optional uint32 result = 1;
}
message CMsgCraftingResponse {
repeated uint64 item_ids = 1;
}
message CMsgGCRequestStoreSalesData {
optional uint32 version = 1;
optional uint32 currency = 2;
}
message CMsgGCRequestStoreSalesDataResponse {
message Price {
optional uint32 item_def = 1;
optional uint32 price = 2;
}
repeated .CMsgGCRequestStoreSalesDataResponse.Price sale_price = 1;
optional uint32 version = 2;
optional uint32 expiration_time = 3;
}
message CMsgGCRequestStoreSalesDataUpToDateResponse {
optional uint32 version = 1;
optional uint32 expiration_time = 2;
}
message CMsgGCToGCPingRequest {
}
message CMsgGCToGCPingResponse {
}
message CMsgGCToGCGetUserSessionServer {
optional uint32 account_id = 1;
}
message CMsgGCToGCGetUserSessionServerResponse {
optional fixed64 server_steam_id = 1;
}
message CMsgGCToGCGetUserServerMembers {
optional uint32 account_id = 1;
optional uint32 max_spectators = 2;
}
message CMsgGCToGCGetUserServerMembersResponse {
repeated uint32 member_account_id = 1;
}
message CMsgLookupMultipleAccountNames {
repeated uint32 accountids = 1 [packed = true];
}
message CMsgLookupMultipleAccountNamesResponse {
message Account {
optional uint32 accountid = 1;
optional string persona = 2;
}
repeated .CMsgLookupMultipleAccountNamesResponse.Account accounts = 1;
}
message CMsgGCToGCGrantSelfMadeItemToAccount {
optional uint32 item_def_index = 1;
optional uint32 accountid = 2;
}
message CMsgGCToGCThankedByNewUser {
optional uint32 new_user_accountid = 1;
optional uint32 thanked_user_accountid = 2;
}
message CMsgGCShuffleCrateContents {
optional uint64 crate_item_id = 1;
optional string user_code_string = 2;
}
message CMsgGCQuestObjective_Progress {
optional uint64 quest_id = 1;
optional uint32 quest_attrib_index = 2;
optional uint32 delta = 3;
optional fixed64 owner_steamid = 4;
}
message CMsgGCQuestObjective_PointsChange {
optional uint64 quest_id = 1;
optional fixed64 owner_steamid = 4;
optional bool update_base_points = 5 [default = false];
optional uint32 points_0 = 6;
optional uint32 points_1 = 7;
optional uint32 points_2 = 8;
}
message CMsgGCQuestComplete_Request {
optional uint64 quest_id = 1;
}
message CMsgGCQuestCompleted {
}
message CMsgGCQuestObjective_RequestLoanerItems {
optional uint64 quest_id = 1;
}
message CMsgGCQuestObjective_RequestLoanerResponse {
}
message CMsgCraftCollectionUpgrade {
repeated uint64 item_id = 1;
}
message CMsgCraftHalloweenOffering {
optional uint64 tool_id = 1;
repeated uint64 item_id = 2;
}
message CMsgCraftCommonStatClock {
optional uint64 tool_id = 1;
repeated uint64 item_id = 2;
}
message CMsgGCQuestDiscard_Request {
optional uint64 quest_id = 1;
}

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,186 @@
import "steammessages.proto";
option optimize_for = SPEED;
option cc_generic_services = false;
enum PartnerAccountType {
PARTNER_NONE = 0;
PARTNER_PERFECT_WORLD = 1;
PARTNER_NEXON = 2;
}
enum GCConnectionStatus {
GCConnectionStatus_HAVE_SESSION = 0;
GCConnectionStatus_GC_GOING_DOWN = 1;
GCConnectionStatus_NO_SESSION = 2;
GCConnectionStatus_NO_SESSION_IN_LOGON_QUEUE = 3;
GCConnectionStatus_NO_STEAM = 4;
GCConnectionStatus_SUSPENDED = 5;
}
message CMsgSOIDOwner {
optional uint32 type = 1;
optional uint64 id = 2;
}
message CMsgSOSingleObject {
optional fixed64 owner = 1;
optional int32 type_id = 2;
optional bytes object_data = 3;
optional fixed64 version = 4;
optional .CMsgSOIDOwner owner_soid = 5;
optional uint32 service_id = 6;
}
message CMsgSOMultipleObjects {
message SingleObject {
optional int32 type_id = 1;
optional bytes object_data = 2;
}
optional fixed64 owner = 1;
repeated .CMsgSOMultipleObjects.SingleObject objects = 2;
optional fixed64 version = 3;
optional .CMsgSOIDOwner owner_soid = 6;
optional uint32 service_id = 7;
}
message CMsgSOCacheSubscribed {
message SubscribedType {
optional int32 type_id = 1;
repeated bytes object_data = 2;
}
optional fixed64 owner = 1;
repeated .CMsgSOCacheSubscribed.SubscribedType objects = 2;
optional fixed64 version = 3;
optional .CMsgSOIDOwner owner_soid = 4;
optional uint32 service_id = 5;
repeated uint32 service_list = 6;
optional fixed64 sync_version = 7;
}
message CMsgSOCacheSubscribedUpToDate {
optional fixed64 version = 1;
optional .CMsgSOIDOwner owner_soid = 2;
optional uint32 service_id = 3;
repeated uint32 service_list = 4;
optional fixed64 sync_version = 5;
}
message CMsgSOCacheUnsubscribed {
optional fixed64 owner = 1;
}
message CMsgSOCacheSubscriptionCheck {
optional fixed64 owner = 1;
optional fixed64 version = 2;
optional .CMsgSOIDOwner owner_soid = 3;
optional uint32 service_id = 4;
repeated uint32 service_list = 5;
optional fixed64 sync_version = 6;
}
message CMsgSOCacheSubscriptionRefresh {
optional fixed64 owner = 1;
optional .CMsgSOIDOwner owner_soid = 2;
}
message CMsgSOCacheVersion {
optional fixed64 version = 1;
}
message CMsgGCMultiplexMessage {
optional uint32 msgtype = 1;
optional bytes payload = 2;
repeated fixed64 steamids = 3;
}
message CGCToGCMsgMasterAck {
optional uint32 dir_index = 1;
optional string machine_name = 3;
optional string process_name = 4;
repeated uint32 type_instances = 5;
}
message CGCToGCMsgMasterAck_Response {
optional int32 eresult = 1 [default = 2];
}
message CGCToGCMsgMasterStartupComplete {
message GCInfo {
optional uint32 dir_index = 1;
optional string machine_name = 2;
}
repeated .CGCToGCMsgMasterStartupComplete.GCInfo gc_info = 1;
}
message CGCToGCMsgRouted {
optional uint32 msg_type = 1;
optional fixed64 sender_id = 2;
optional bytes net_message = 3;
}
message CGCToGCMsgRoutedReply {
optional uint32 msg_type = 1;
optional bytes net_message = 2;
}
message CMsgGCUpdateSubGCSessionInfo {
message CMsgUpdate {
optional fixed64 steamid = 1;
optional fixed32 ip = 2;
optional bool trusted = 3;
}
repeated .CMsgGCUpdateSubGCSessionInfo.CMsgUpdate updates = 1;
}
message CMsgGCRequestSubGCSessionInfo {
optional fixed64 steamid = 1;
}
message CMsgGCRequestSubGCSessionInfoResponse {
optional fixed32 ip = 1;
optional bool trusted = 2;
}
message CMsgGCToGCIncrementRecruitmentLevel {
optional fixed64 steamid = 1;
}
message CMsgSOCacheHaveVersion {
optional .CMsgSOIDOwner soid = 1;
optional fixed64 version = 2;
optional uint32 service_id = 3;
}
message CMsgConnectionStatus {
optional .GCConnectionStatus status = 1 [default = GCConnectionStatus_HAVE_SESSION];
optional uint32 client_session_need = 2;
optional int32 queue_position = 3;
optional int32 queue_size = 4;
optional int32 wait_seconds = 5;
optional int32 estimated_wait_seconds_remaining = 6;
}
message CMsgGCToGCSOCacheSubscribe {
message CMsgHaveVersions {
optional uint32 service_id = 1;
optional uint64 version = 2;
}
optional fixed64 subscriber = 1;
optional fixed64 subscribe_to = 2;
optional fixed64 sync_version = 3;
repeated .CMsgGCToGCSOCacheSubscribe.CMsgHaveVersions have_versions = 4;
}
message CMsgGCToGCSOCacheUnsubscribe {
optional fixed64 subscriber = 1;
optional fixed64 unsubscribe_from = 2;
}
message CMsgGCClientPing {
}

View File

@@ -0,0 +1,178 @@
option optimize_for = SPEED;
option cc_generic_services = false;
enum EGCSystemMsg {
k_EGCMsgInvalid = 0;
k_EGCMsgMulti = 1;
k_EGCMsgGenericReply = 10;
k_EGCMsgSystemBase = 50;
k_EGCMsgAchievementAwarded = 51;
k_EGCMsgConCommand = 52;
k_EGCMsgStartPlaying = 53;
k_EGCMsgStopPlaying = 54;
k_EGCMsgStartGameserver = 55;
k_EGCMsgStopGameserver = 56;
k_EGCMsgWGRequest = 57;
k_EGCMsgWGResponse = 58;
k_EGCMsgGetUserGameStatsSchema = 59;
k_EGCMsgGetUserGameStatsSchemaResponse = 60;
k_EGCMsgGetUserStatsDEPRECATED = 61;
k_EGCMsgGetUserStatsResponse = 62;
k_EGCMsgAppInfoUpdated = 63;
k_EGCMsgValidateSession = 64;
k_EGCMsgValidateSessionResponse = 65;
k_EGCMsgLookupAccountFromInput = 66;
k_EGCMsgSendHTTPRequest = 67;
k_EGCMsgSendHTTPRequestResponse = 68;
k_EGCMsgPreTestSetup = 69;
k_EGCMsgRecordSupportAction = 70;
k_EGCMsgGetAccountDetails_DEPRECATED = 71;
k_EGCMsgReceiveInterAppMessage = 73;
k_EGCMsgFindAccounts = 74;
k_EGCMsgPostAlert = 75;
k_EGCMsgGetLicenses = 76;
k_EGCMsgGetUserStats = 77;
k_EGCMsgGetCommands = 78;
k_EGCMsgGetCommandsResponse = 79;
k_EGCMsgAddFreeLicense = 80;
k_EGCMsgAddFreeLicenseResponse = 81;
k_EGCMsgGetIPLocation = 82;
k_EGCMsgGetIPLocationResponse = 83;
k_EGCMsgSystemStatsSchema = 84;
k_EGCMsgGetSystemStats = 85;
k_EGCMsgGetSystemStatsResponse = 86;
k_EGCMsgSendEmail = 87;
k_EGCMsgSendEmailResponse = 88;
k_EGCMsgGetEmailTemplate = 89;
k_EGCMsgGetEmailTemplateResponse = 90;
k_EGCMsgGrantGuestPass = 91;
k_EGCMsgGrantGuestPassResponse = 92;
k_EGCMsgGetAccountDetails = 93;
k_EGCMsgGetAccountDetailsResponse = 94;
k_EGCMsgGetPersonaNames = 95;
k_EGCMsgGetPersonaNamesResponse = 96;
k_EGCMsgMultiplexMsg = 97;
k_EGCMsgWebAPIRegisterInterfaces = 101;
k_EGCMsgWebAPIJobRequest = 102;
k_EGCMsgWebAPIJobRequestHttpResponse = 104;
k_EGCMsgWebAPIJobRequestForwardResponse = 105;
k_EGCMsgMemCachedGet = 200;
k_EGCMsgMemCachedGetResponse = 201;
k_EGCMsgMemCachedSet = 202;
k_EGCMsgMemCachedDelete = 203;
k_EGCMsgMemCachedStats = 204;
k_EGCMsgMemCachedStatsResponse = 205;
k_EGCMsgSQLStats = 210;
k_EGCMsgSQLStatsResponse = 211;
k_EGCMsgMasterSetDirectory = 220;
k_EGCMsgMasterSetDirectoryResponse = 221;
k_EGCMsgMasterSetWebAPIRouting = 222;
k_EGCMsgMasterSetWebAPIRoutingResponse = 223;
k_EGCMsgMasterSetClientMsgRouting = 224;
k_EGCMsgMasterSetClientMsgRoutingResponse = 225;
k_EGCMsgSetOptions = 226;
k_EGCMsgSetOptionsResponse = 227;
k_EGCMsgSystemBase2 = 500;
k_EGCMsgGetPurchaseTrustStatus = 501;
k_EGCMsgGetPurchaseTrustStatusResponse = 502;
k_EGCMsgUpdateSession = 503;
k_EGCMsgGCAccountVacStatusChange = 504;
k_EGCMsgCheckFriendship = 505;
k_EGCMsgCheckFriendshipResponse = 506;
k_EGCMsgGetPartnerAccountLink = 507;
k_EGCMsgGetPartnerAccountLinkResponse = 508;
k_EGCMsgVSReportedSuspiciousActivity = 509;
k_EGCMsgAccountTradeBanStatusChange = 510;
k_EGCMsgAccountLockStatusChange = 511;
k_EGCMsgDPPartnerMicroTxns = 512;
k_EGCMsgDPPartnerMicroTxnsResponse = 513;
k_EGCMsgGetIPASN = 514;
k_EGCMsgGetIPASNResponse = 515;
k_EGCMsgGetAppFriendsList = 516;
k_EGCMsgGetAppFriendsListResponse = 517;
k_EGCMsgVacVerificationChange = 518;
k_EGCMsgAccountPhoneNumberChange = 519;
k_EGCMsgAccountTwoFactorChange = 520;
k_EGCMsgCheckClanMembership = 521;
k_EGCMsgCheckClanMembershipResponse = 522;
k_EGCMsgInviteUserToLobby = 523;
k_EGCMsgGetGamePersonalDataCategoriesRequest = 524;
k_EGCMsgGetGamePersonalDataCategoriesResponse = 525;
k_EGCMsgGetGamePersonalDataEntriesRequest = 526;
k_EGCMsgGetGamePersonalDataEntriesResponse = 527;
k_EGCMsgTerminateGamePersonalDataEntriesRequest = 528;
k_EGCMsgTerminateGamePersonalDataEntriesResponse = 529;
}
enum ESOMsg {
k_ESOMsg_Create = 21;
k_ESOMsg_Update = 22;
k_ESOMsg_Destroy = 23;
k_ESOMsg_CacheSubscribed = 24;
k_ESOMsg_CacheUnsubscribed = 25;
k_ESOMsg_UpdateMultiple = 26;
k_ESOMsg_CacheSubscriptionCheck = 27;
k_ESOMsg_CacheSubscriptionRefresh = 28;
k_ESOMsg_CacheSubscribedUpToDate = 29;
}
enum EGCBaseClientMsg {
k_EMsgGCPingRequest = 3001;
k_EMsgGCPingResponse = 3002;
k_EMsgGCClientWelcome = 4004;
k_EMsgGCServerWelcome = 4005;
k_EMsgGCClientHello = 4006;
k_EMsgGCServerHello = 4007;
k_EMsgGCClientGoodbye = 4008;
k_EMsgGCServerGoodbye = 4009;
}
enum EGCToGCMsg {
k_EGCToGCMsgMasterAck = 150;
k_EGCToGCMsgMasterAckResponse = 151;
k_EGCToGCMsgRouted = 152;
k_EGCToGCMsgRoutedReply = 153;
k_EMsgGCUpdateSubGCSessionInfo = 154;
k_EMsgGCRequestSubGCSessionInfo = 155;
k_EMsgGCRequestSubGCSessionInfoResponse = 156;
k_EGCToGCMsgMasterStartupComplete = 157;
k_EMsgGCToGCSOCacheSubscribe = 158;
k_EMsgGCToGCSOCacheUnsubscribe = 159;
}
message CCommunity_GamePersonalDataCategoryInfo {
optional string type = 1;
optional string localization_token = 2;
optional string template_file = 3;
}
message CCommunity_GetGamePersonalDataCategories_Request {
optional uint32 appid = 1;
}
message CCommunity_GetGamePersonalDataCategories_Response {
repeated .CCommunity_GamePersonalDataCategoryInfo categories = 1;
optional string app_assets_basename = 2;
}
message CCommunity_GetGamePersonalDataEntries_Request {
optional uint32 appid = 1;
optional uint64 steamid = 2;
optional string type = 3;
optional string continue_token = 4;
}
message CCommunity_GetGamePersonalDataEntries_Response {
optional uint32 gceresult = 1;
repeated string entries = 2;
optional string continue_token = 3;
}
message CCommunity_TerminateGamePersonalDataEntries_Request {
optional uint32 appid = 1;
optional uint64 steamid = 2;
}
message CCommunity_TerminateGamePersonalDataEntries_Response {
optional uint32 gceresult = 1;
}

View File

@@ -0,0 +1,50 @@
option cc_generic_services = false;
message CMsgSteamDatagramRelayAuthTicket {
message ExtraField {
optional string name = 1;
optional string string_value = 2;
optional sint64 int64_value = 3;
optional fixed64 fixed64_value = 5;
}
optional fixed32 time_expiry = 1;
optional fixed64 authorized_steam_id = 2;
optional fixed32 authorized_public_ip = 3;
optional fixed64 gameserver_steam_id = 4;
optional fixed64 gameserver_net_id = 5;
optional bytes legacy_signature = 6;
optional uint32 app_id = 7;
optional fixed32 gameserver_pop_id = 9;
optional uint32 virtual_port = 10;
repeated .CMsgSteamDatagramRelayAuthTicket.ExtraField extra_fields = 8;
}
message CMsgSteamDatagramSignedRelayAuthTicket {
optional fixed64 reserved_do_not_use = 1;
optional fixed64 key_id = 2;
optional bytes ticket = 3;
optional bytes signature = 4;
}
message CMsgSteamDatagramCertificate {
enum EKeyType {
INVALID = 0;
ED25519 = 1;
}
optional .CMsgSteamDatagramCertificate.EKeyType key_type = 1 [default = INVALID];
optional bytes key_data = 2;
optional fixed64 steam_id = 4;
repeated fixed32 gameserver_datacenter_ids = 5;
optional fixed32 time_created = 8;
optional fixed32 time_expiry = 9;
optional uint32 app_id = 10;
}
message CMsgSteamDatagramCertificateSigned {
optional bytes cert = 4;
optional fixed64 ca_key_id = 5;
optional bytes ca_signature = 6;
}

View File

@@ -0,0 +1,598 @@
import "steamdatagram_auth_messages.proto";
option cc_generic_services = false;
enum ESteamDatagramMsgID {
k_ESteamDatagramMsg_Invalid = 0;
k_ESteamDatagramMsg_RouterPingRequest = 1;
k_ESteamDatagramMsg_RouterPingReply = 2;
k_ESteamDatagramMsg_GameserverPingRequest = 3;
k_ESteamDatagramMsg_GameserverPingReply = 4;
k_ESteamDatagramMsg_GameserverSessionRequest = 5;
k_ESteamDatagramMsg_GameserverSessionEstablished = 6;
k_ESteamDatagramMsg_NoSession = 7;
k_ESteamDatagramMsg_Diagnostic = 8;
k_ESteamDatagramMsg_DataClientToRouter = 9;
k_ESteamDatagramMsg_DataRouterToServer = 10;
k_ESteamDatagramMsg_DataServerToRouter = 11;
k_ESteamDatagramMsg_DataRouterToClient = 12;
k_ESteamDatagramMsg_Stats = 13;
k_ESteamDatagramMsg_ClientPingSampleRequest = 14;
k_ESteamDatagramMsg_ClientPingSampleReply = 15;
k_ESteamDatagramMsg_ClientToRouterSwitchedPrimary = 16;
k_ESteamDatagramMsg_RelayHealth = 17;
k_ESteamDatagramMsg_ConnectRequest = 18;
k_ESteamDatagramMsg_ConnectOK = 19;
k_ESteamDatagramMsg_ConnectionClosed = 20;
k_ESteamDatagramMsg_NoConnection = 21;
k_ESteamDatagramMsg_RelayToRelayPingRequest = 22;
k_ESteamDatagramMsg_RelayToRelayPingReply = 23;
k_ESteamDatagramMsg_P2PSessionRequest = 24;
k_ESteamDatagramMsg_P2PSessionEstablished = 25;
}
enum ESteamNetworkingUDPMsgID {
k_ESteamNetworkingUDPMsg_ChallengeRequest = 32;
k_ESteamNetworkingUDPMsg_ChallengeReply = 33;
k_ESteamNetworkingUDPMsg_ConnectRequest = 34;
k_ESteamNetworkingUDPMsg_ConnectOK = 35;
k_ESteamNetworkingUDPMsg_ConnectionClosed = 36;
k_ESteamNetworkingUDPMsg_NoConnection = 37;
k_ESteamNetworkingUDPMsg_Stats = 38;
}
message CMsgSteamDatagramRouterPingReply {
message RouteException {
optional fixed32 data_center_id = 1;
optional uint32 flags = 2;
optional uint32 penalty = 3;
}
optional fixed32 client_timestamp = 1;
repeated fixed32 latency_datacenter_ids = 2 [packed = true];
repeated uint32 latency_ping_ms = 3 [packed = true];
optional fixed32 your_public_ip = 4;
optional fixed32 server_time = 5;
optional fixed64 challenge = 6;
optional uint32 seconds_until_shutdown = 7;
optional fixed32 client_cookie = 8;
optional uint32 scoring_penalty_relay_cluster = 9;
repeated .CMsgSteamDatagramRouterPingReply.RouteException route_exceptions = 10;
}
message CMsgSteamDatagramGameserverPing {
optional uint32 legacy_client_session = 1;
optional fixed64 client_steam_id = 2;
optional fixed32 client_timestamp = 3;
optional fixed32 router_timestamp = 4;
optional uint32 router_gameserver_latency = 5;
optional uint32 seq_number_router = 6;
optional uint32 seq_number_e2e = 7;
optional uint32 relay_session_id = 8;
optional fixed32 connection_id = 9;
}
message CMsgSteamDatagramRelayToRelayPing {
optional fixed32 request_timestamp = 1;
optional fixed32 request_date = 2;
optional fixed32 my_pop_id = 3;
optional fixed32 your_pop_id = 4;
optional fixed32 checksum = 5;
}
message CMsgSteamDatagramSessionCryptInfo {
enum EKeyType {
INVALID = 0;
CURVE25519 = 1;
}
optional .CMsgSteamDatagramSessionCryptInfo.EKeyType key_type = 1 [default = INVALID];
optional bytes key_data = 2;
optional fixed64 nonce = 3;
optional bool is_snp = 4;
}
message CMsgSteamDatagramSessionCryptInfoSigned {
optional bytes info = 1;
optional bytes signature = 2;
}
message CMsgSteamDatagramGameserverSessionRequest {
optional bytes ticket = 1;
optional fixed32 challenge_time = 3;
optional fixed64 challenge = 4;
optional fixed32 client_connection_id = 5;
optional fixed32 server_connection_id = 8;
optional uint32 network_config_version = 6;
optional uint32 protocol_version = 7;
}
message CMsgSteamDatagramGameserverSessionEstablished {
optional fixed32 connection_id = 1;
optional fixed64 gameserver_steam_id = 3;
optional uint32 seconds_until_shutdown = 4;
optional uint32 legacy_relay_session_id = 5;
optional uint32 seq_num_r2c = 6;
}
message CMsgSteamDatagramNoSessionRelayToClient {
optional uint32 legacy_relay_session_id = 1;
optional fixed32 connection_id = 7;
optional fixed32 your_public_ip = 2;
optional fixed32 server_time = 3;
optional fixed64 challenge = 4;
optional uint32 seconds_until_shutdown = 5;
}
message CMsgSteamDatagramNoSessionRelayToServer {
optional uint32 relay_session_id = 1;
optional fixed32 client_connection_id = 7;
optional fixed32 server_connection_id = 8;
optional fixed64 kludge_pad = 99;
}
message CMsgSteamDatagramDiagnostic {
optional uint32 severity = 1;
optional string text = 2;
}
message CMsgSteamDatagramDataCenterState {
message Server {
optional string address = 1;
optional uint32 ping_ms = 2;
}
message DataCenter {
optional string code = 1;
repeated .CMsgSteamDatagramDataCenterState.Server server_sample = 2;
repeated .CMsgSteamDatagramDataCenterState.Server relay_sample = 3;
}
repeated .CMsgSteamDatagramDataCenterState.DataCenter data_centers = 1;
}
message CMsgSteamDatagramLinkInstantaneousStats {
optional uint32 out_packets_per_sec_x10 = 1;
optional uint32 out_bytes_per_sec = 2;
optional uint32 in_packets_per_sec_x10 = 3;
optional uint32 in_bytes_per_sec = 4;
optional uint32 ping_ms = 5;
optional uint32 packets_dropped_pct = 6;
optional uint32 packets_weird_sequence_pct = 7;
optional uint32 peak_jitter_usec = 8;
}
message CMsgSteamDatagramLinkLifetimeStats {
optional uint64 packets_sent = 3;
optional uint64 kb_sent = 4;
optional uint64 packets_recv = 5;
optional uint64 kb_recv = 6;
optional uint64 packets_recv_sequenced = 7;
optional uint64 packets_recv_dropped = 8;
optional uint64 packets_recv_out_of_order = 9;
optional uint64 packets_recv_duplicate = 10;
optional uint64 packets_recv_lurch = 11;
optional uint32 quality_histogram_100 = 21;
optional uint32 quality_histogram_99 = 22;
optional uint32 quality_histogram_97 = 23;
optional uint32 quality_histogram_95 = 24;
optional uint32 quality_histogram_90 = 25;
optional uint32 quality_histogram_75 = 26;
optional uint32 quality_histogram_50 = 27;
optional uint32 quality_histogram_1 = 28;
optional uint32 quality_histogram_dead = 29;
optional uint32 quality_ntile_2nd = 30;
optional uint32 quality_ntile_5th = 31;
optional uint32 quality_ntile_25th = 32;
optional uint32 quality_ntile_50th = 33;
optional uint32 ping_histogram_25 = 41;
optional uint32 ping_histogram_50 = 42;
optional uint32 ping_histogram_75 = 43;
optional uint32 ping_histogram_100 = 44;
optional uint32 ping_histogram_125 = 45;
optional uint32 ping_histogram_150 = 46;
optional uint32 ping_histogram_200 = 47;
optional uint32 ping_histogram_300 = 48;
optional uint32 ping_histogram_max = 49;
optional uint32 ping_ntile_5th = 50;
optional uint32 ping_ntile_50th = 51;
optional uint32 ping_ntile_75th = 52;
optional uint32 ping_ntile_95th = 53;
optional uint32 ping_ntile_98th = 54;
optional uint32 jitter_histogram_negligible = 61;
optional uint32 jitter_histogram_1 = 62;
optional uint32 jitter_histogram_2 = 63;
optional uint32 jitter_histogram_5 = 64;
optional uint32 jitter_histogram_10 = 65;
optional uint32 jitter_histogram_20 = 66;
optional uint32 txspeed_max = 67;
optional uint32 txspeed_histogram_16 = 68;
optional uint32 txspeed_histogram_32 = 69;
optional uint32 txspeed_histogram_64 = 70;
optional uint32 txspeed_histogram_128 = 71;
optional uint32 txspeed_histogram_256 = 72;
optional uint32 txspeed_histogram_512 = 73;
optional uint32 txspeed_histogram_1024 = 74;
optional uint32 txspeed_histogram_max = 75;
optional uint32 txspeed_ntile_5th = 76;
optional uint32 txspeed_ntile_50th = 77;
optional uint32 txspeed_ntile_75th = 78;
optional uint32 txspeed_ntile_95th = 79;
optional uint32 txspeed_ntile_98th = 80;
optional uint32 rxspeed_max = 81;
optional uint32 rxspeed_histogram_16 = 82;
optional uint32 rxspeed_histogram_32 = 83;
optional uint32 rxspeed_histogram_64 = 84;
optional uint32 rxspeed_histogram_128 = 85;
optional uint32 rxspeed_histogram_256 = 86;
optional uint32 rxspeed_histogram_512 = 87;
optional uint32 rxspeed_histogram_1024 = 88;
optional uint32 rxspeed_histogram_max = 89;
optional uint32 rxspeed_ntile_5th = 90;
optional uint32 rxspeed_ntile_50th = 91;
optional uint32 rxspeed_ntile_75th = 92;
optional uint32 rxspeed_ntile_95th = 93;
optional uint32 rxspeed_ntile_98th = 94;
}
message CMsgSteamDatagramConnectionQuality {
optional .CMsgSteamDatagramLinkInstantaneousStats instantaneous = 1;
optional .CMsgSteamDatagramLinkLifetimeStats lifetime = 2;
}
message CMsgSteamDatagramConnectionStatsClientToRouter {
enum Flags {
ACK_REQUEST_RELAY = 1;
ACK_REQUEST_E2E = 2;
ACK_REQUEST_IMMEDIATE = 4;
}
optional .CMsgSteamDatagramConnectionQuality c2r = 1;
optional .CMsgSteamDatagramConnectionQuality c2s = 2;
optional fixed32 legacy_client_timestamp = 3;
repeated fixed32 ack_relay = 4;
repeated fixed32 ack_e2e = 5;
optional uint32 flags = 6;
optional fixed32 client_connection_id = 8;
optional uint32 seq_num_c2r = 9;
optional uint32 seq_num_c2s = 10;
}
message CMsgSteamDatagramConnectionStatsRouterToClient {
enum Flags {
ACK_REQUEST_RELAY = 1;
ACK_REQUEST_E2E = 2;
ACK_REQUEST_IMMEDIATE = 4;
}
optional .CMsgSteamDatagramConnectionQuality r2c = 1;
optional .CMsgSteamDatagramConnectionQuality s2c = 2;
optional fixed32 legacy_client_timestamp_from_router = 3;
optional fixed32 legacy_client_timestamp_from_server = 4;
optional uint32 router_gameserver_latency = 5;
optional uint32 seconds_until_shutdown = 6;
optional fixed32 migrate_request_ip = 10;
optional uint32 migrate_request_port = 11;
optional uint32 scoring_penalty_relay_cluster = 12;
repeated fixed32 ack_relay = 13;
repeated fixed32 ack_e2e = 14;
optional uint32 flags = 15;
optional fixed32 client_connection_id = 7;
optional uint32 seq_num_r2c = 8;
optional uint32 seq_num_s2c = 9;
}
message CMsgSteamDatagramConnectionStatsRouterToServer {
enum Flags {
ACK_REQUEST_RELAY = 1;
ACK_REQUEST_E2E = 2;
ACK_REQUEST_IMMEDIATE = 4;
}
optional .CMsgSteamDatagramConnectionQuality r2s = 1;
optional .CMsgSteamDatagramConnectionQuality c2s = 2;
optional fixed32 legacy_client_timestamp = 3;
optional fixed32 legacy_router_timestamp = 4;
repeated fixed32 ack_relay = 10;
repeated fixed32 ack_e2e = 11;
optional uint32 flags = 12;
optional uint32 seq_num_r2s = 5;
optional uint32 seq_num_c2s = 6;
optional fixed64 client_steam_id = 7;
optional uint32 relay_session_id = 8;
optional fixed32 client_connection_id = 9;
optional fixed32 server_connection_id = 13;
}
message CMsgSteamDatagramConnectionStatsServerToRouter {
enum Flags {
ACK_REQUEST_RELAY = 1;
ACK_REQUEST_E2E = 2;
ACK_REQUEST_IMMEDIATE = 4;
}
optional .CMsgSteamDatagramConnectionQuality s2r = 1;
optional .CMsgSteamDatagramConnectionQuality s2c = 2;
repeated fixed32 ack_relay = 8;
repeated fixed32 ack_e2e = 9;
optional uint32 flags = 10;
optional uint32 seq_num_s2r = 3;
optional uint32 seq_num_s2c = 4;
optional fixed64 client_steam_id = 5;
optional uint32 relay_session_id = 6;
optional fixed32 client_connection_id = 7;
optional fixed32 server_connection_id = 11;
}
message CMsgSteamDatagramClientPingSampleRequest {
optional fixed32 connection_id = 1;
}
message CMsgSteamDatagramClientPingSampleReply {
message RoutingCluster {
optional fixed32 id = 1;
optional uint32 front_ping_ms = 2;
optional uint32 e2e_ping_ms = 3;
}
message DataCenter {
optional fixed32 data_center_id = 1;
optional fixed32 via_relay_id = 2;
optional uint32 e2e_ping_ms = 3;
}
optional fixed32 connection_id = 1;
repeated .CMsgSteamDatagramClientPingSampleReply.RoutingCluster routing_clusters = 2;
repeated .CMsgSteamDatagramClientPingSampleReply.DataCenter data_centers = 3;
}
message CMsgSteamDatagramClientSwitchedPrimary {
message RouterQuality {
optional uint32 score = 1;
optional uint32 front_ping = 2;
optional uint32 back_ping = 3;
optional uint32 seconds_until_down = 4;
}
optional fixed32 connection_id = 1;
optional fixed32 from_ip = 2;
optional uint32 from_port = 3;
optional fixed32 from_router_cluster = 4;
optional uint32 from_active_time = 5;
optional uint32 from_active_packets_recv = 6;
optional string from_dropped_reason = 7;
optional uint32 gap_ms = 8;
optional .CMsgSteamDatagramClientSwitchedPrimary.RouterQuality from_quality_now = 9;
optional .CMsgSteamDatagramClientSwitchedPrimary.RouterQuality to_quality_now = 10;
optional .CMsgSteamDatagramClientSwitchedPrimary.RouterQuality from_quality_then = 11;
optional .CMsgSteamDatagramClientSwitchedPrimary.RouterQuality to_quality_then = 12;
}
message CMsgSteamDatagramRouterHealth {
message DataCenter {
optional fixed32 datacenter_id = 1;
optional uint32 state = 2;
}
optional float cpu_load = 1;
optional uint32 active_sessions = 2;
optional uint32 data_pkts_sec = 3;
optional uint32 other_pkts_sec = 4;
optional uint32 seconds_until_shutdown = 5;
optional float cpu_cost_per_user = 8;
optional float cpu_cost_per_packet = 9;
repeated .CMsgSteamDatagramRouterHealth.DataCenter data_centers = 6;
optional fixed64 magic = 7;
}
message CMsgSteamDatagramConnectRequest {
optional fixed32 connection_id = 1;
optional fixed64 client_steam_id = 3;
optional fixed64 my_timestamp = 4;
optional uint32 ping_est_ms = 5;
optional uint32 virtual_port = 9;
optional uint32 gameserver_relay_session_id = 2;
optional .CMsgSteamDatagramSessionCryptInfoSigned crypt = 6;
optional .CMsgSteamDatagramCertificateSigned cert = 7;
optional uint32 protocol_version = 8;
}
message CMsgSteamDatagramConnectOK {
optional fixed32 client_connection_id = 1;
optional fixed32 server_connection_id = 7;
optional fixed64 your_timestamp = 3;
optional uint32 delay_time_usec = 4;
optional uint32 gameserver_relay_session_id = 2;
optional .CMsgSteamDatagramSessionCryptInfoSigned crypt = 5;
optional .CMsgSteamDatagramCertificateSigned cert = 6;
optional uint32 protocol_version = 8;
}
message CMsgSteamDatagramConnectionClosed {
enum ERelayMode {
None = 0;
EndToEnd = 1;
ClosedByPeer = 2;
}
optional fixed32 legacy_client_connection_id = 1;
optional fixed32 to_connection_id = 7;
optional fixed32 from_connection_id = 8;
optional fixed64 peer_steam_id = 3;
optional uint32 gameserver_relay_session_id = 2;
optional .CMsgSteamDatagramConnectionClosed.ERelayMode relay_mode = 4 [default = None];
optional string debug = 5;
optional uint32 reason_code = 6;
}
message CMsgSteamDatagramNoConnection {
optional fixed32 legacy_client_connection_id = 1;
optional fixed32 to_connection_id = 5;
optional fixed32 from_connection_id = 6;
optional uint32 gameserver_relay_session_id = 2;
optional fixed64 peer_steam_id = 3;
optional bool end_to_end = 4;
optional fixed32 dummy_pad = 1023;
}
message CMsgSteamDatagramP2PSessionRequestBody {
optional fixed32 challenge_time = 1;
optional fixed64 challenge = 2;
optional fixed32 my_connection_id = 3;
optional fixed64 peer_steam_id = 4;
optional fixed32 peer_connection_id = 5;
optional uint32 protocol_version = 8;
optional uint32 network_config_version = 9;
optional fixed32 public_ip = 10;
}
message CMsgSteamDatagramP2PSessionRequest {
optional .CMsgSteamDatagramCertificateSigned cert = 1;
optional bytes body = 2;
optional bytes signature = 3;
}
message CMsgSteamDatagramP2PSessionEstablished {
optional fixed32 connection_id = 1;
optional uint32 seconds_until_shutdown = 3;
optional fixed64 relay_routing_id = 4;
optional uint32 seq_num_r2c = 5;
}
message CMsgSteamDatagramP2PRoutes {
message RelayCluster {
optional fixed32 pop_id = 1;
optional uint32 ping_ms = 2;
optional uint32 score_penalty = 3;
optional fixed64 session_relay_routing_id = 4;
}
message Route {
optional fixed32 my_pop_id = 1;
optional fixed32 your_pop_id = 2;
optional uint32 score = 3;
}
repeated .CMsgSteamDatagramP2PRoutes.RelayCluster relay_clusters = 1;
repeated .CMsgSteamDatagramP2PRoutes.Route routes = 2;
optional uint32 revision = 3;
}
message CMsgSteamDatagramP2PRendezvous {
optional fixed32 to_connection_id = 1;
optional .CMsgSteamDatagramP2PRoutes routes = 2;
optional uint32 ack_peer_routes_revision = 3;
optional .CMsgSteamDatagramConnectRequest connect_request = 4;
optional .CMsgSteamDatagramConnectOK connect_ok = 5;
optional .CMsgSteamDatagramConnectionClosed connection_closed = 6;
}
message CMsgSteamDatagramConnectionStatsP2PClientToRouter {
enum Flags {
ACK_REQUEST_RELAY = 1;
ACK_REQUEST_E2E = 2;
ACK_REQUEST_IMMEDIATE = 4;
}
optional .CMsgSteamDatagramConnectionQuality c2r = 1;
optional .CMsgSteamDatagramConnectionQuality c2s = 2;
repeated fixed32 ack_relay = 3;
repeated fixed32 ack_e2e = 4;
optional uint32 flags = 5;
optional fixed64 forward_target_relay_routing_id = 6;
optional uint32 forward_target_revision = 7;
optional .CMsgSteamDatagramP2PRoutes routes = 8;
optional uint32 ack_peer_routes_revision = 9;
optional fixed32 connection_id = 10;
optional uint32 seq_num_c2r = 11;
optional uint32 seq_num_c2s = 12;
}
message CMsgSteamDatagramConnectionStatsP2PRouterToClient {
enum Flags {
ACK_REQUEST_RELAY = 1;
ACK_REQUEST_E2E = 2;
ACK_REQUEST_IMMEDIATE = 4;
}
optional .CMsgSteamDatagramConnectionQuality r2c = 1;
optional .CMsgSteamDatagramConnectionQuality p2c = 2;
optional uint32 seconds_until_shutdown = 3;
optional fixed32 migrate_request_ip = 4;
optional uint32 migrate_request_port = 5;
optional uint32 scoring_penalty_relay_cluster = 6;
repeated fixed32 ack_relay = 7;
repeated fixed32 ack_e2e = 8;
optional uint32 flags = 9;
optional uint32 ack_forward_target_revision = 10;
optional .CMsgSteamDatagramP2PRoutes routes = 11;
optional uint32 ack_peer_routes_revision = 12;
optional fixed32 connection_id = 13;
optional uint32 seq_num_r2c = 14;
optional uint32 seq_num_p2c = 15;
}
message CMsgSteamSockets_UDP_ChallengeRequest {
optional fixed32 connection_id = 1;
optional fixed64 my_timestamp = 3;
optional uint32 protocol_version = 4;
}
message CMsgSteamSockets_UDP_ChallengeReply {
optional fixed32 connection_id = 1;
optional fixed64 challenge = 2;
optional fixed64 your_timestamp = 3;
optional uint32 protocol_version = 4;
}
message CMsgSteamSockets_UDP_ConnectRequest {
optional fixed32 client_connection_id = 1;
optional fixed64 challenge = 2;
optional fixed64 client_steam_id = 3;
optional fixed64 my_timestamp = 5;
optional uint32 ping_est_ms = 6;
optional .CMsgSteamDatagramSessionCryptInfoSigned crypt = 7;
optional .CMsgSteamDatagramCertificateSigned cert = 4;
optional uint32 protocol_version = 8;
}
message CMsgSteamSockets_UDP_ConnectOK {
optional fixed32 client_connection_id = 1;
optional fixed32 server_connection_id = 5;
optional fixed64 server_steam_id = 2;
optional fixed64 your_timestamp = 3;
optional uint32 delay_time_usec = 4;
optional .CMsgSteamDatagramSessionCryptInfoSigned crypt = 7;
optional .CMsgSteamDatagramCertificateSigned cert = 8;
optional uint32 protocol_version = 9;
}
message CMsgSteamSockets_UDP_ConnectionClosed {
optional fixed32 legacy_client_connection_id = 1;
optional fixed32 to_connection_id = 4;
optional fixed32 from_connection_id = 5;
optional string debug = 2;
optional uint32 reason_code = 3;
}
message CMsgSteamSockets_UDP_NoConnection {
optional fixed32 legacy_client_connection_id = 1;
optional fixed32 from_connection_id = 2;
optional fixed32 to_connection_id = 3;
}
message CMsgSteamSockets_UDP_Stats {
enum Flags {
ACK_REQUEST_E2E = 2;
ACK_REQUEST_IMMEDIATE = 4;
}
optional .CMsgSteamDatagramConnectionQuality stats = 1;
repeated fixed32 ack_e2e = 2;
optional uint32 flags = 3;
optional fixed32 legacy_client_connection_id = 8;
optional fixed32 to_connection_id = 9;
optional fixed32 from_connection_id = 10;
optional uint32 seq_num = 4;
}

View File

@@ -0,0 +1,65 @@
import "steamnetworkingsockets_messages_certs.proto";
option optimize_for = SPEED;
option cc_generic_services = false;
message CMsgSteamDatagramRelayAuthTicket {
message ExtraField {
optional string name = 1;
optional string string_value = 2;
optional sint64 int64_value = 3;
optional fixed64 fixed64_value = 5;
}
optional fixed32 time_expiry = 1;
optional string authorized_client_identity_string = 14;
optional string gameserver_identity_string = 15;
optional fixed32 authorized_public_ip = 3;
optional bytes gameserver_address = 11;
optional uint32 app_id = 7;
optional uint32 virtual_port = 10;
repeated .CMsgSteamDatagramRelayAuthTicket.ExtraField extra_fields = 8;
optional fixed64 legacy_authorized_steam_id = 2;
optional fixed64 legacy_gameserver_steam_id = 4;
optional fixed32 legacy_gameserver_pop_id = 9;
optional bytes legacy_authorized_client_identity_binary = 12;
optional bytes legacy_gameserver_identity_binary = 13;
}
message CMsgSteamDatagramSignedRelayAuthTicket {
optional fixed64 reserved_do_not_use = 1;
optional bytes ticket = 3;
optional bytes signature = 4;
optional fixed64 key_id = 2;
repeated .CMsgSteamDatagramCertificateSigned certs = 5;
}
message CMsgSteamDatagramCachedCredentialsForApp {
optional bytes private_key = 1;
optional bytes cert = 2;
repeated bytes relay_tickets = 3;
}
message CMsgSteamDatagramGameCoordinatorServerLogin {
optional uint32 time_generated = 1;
optional uint32 appid = 2;
optional bytes routing = 3;
optional bytes appdata = 4;
optional bytes legacy_identity_binary = 5;
optional string identity_string = 6;
optional fixed64 dummy_steam_id = 99;
}
message CMsgSteamDatagramSignedGameCoordinatorServerLogin {
optional .CMsgSteamDatagramCertificateSigned cert = 1;
optional bytes login = 2;
optional bytes signature = 3;
}
message CMsgSteamDatagramHostedServerAddressPlaintext {
optional fixed32 ipv4 = 1;
optional bytes ipv6 = 2;
optional uint32 port = 3;
optional fixed64 routing_secret = 4;
optional uint32 protocol_version = 5;
}

View File

@@ -0,0 +1,518 @@
import "steamnetworkingsockets_messages_certs.proto";
import "steamnetworkingsockets_messages.proto";
option optimize_for = SPEED;
option cc_generic_services = false;
enum ESteamDatagramMsgID {
k_ESteamDatagramMsg_Invalid = 0;
k_ESteamDatagramMsg_RouterPingRequest = 1;
k_ESteamDatagramMsg_RouterPingReply = 2;
k_ESteamDatagramMsg_GameserverPingRequest = 3;
k_ESteamDatagramMsg_GameserverSessionRequest = 5;
k_ESteamDatagramMsg_GameserverSessionEstablished = 6;
k_ESteamDatagramMsg_NoSession = 7;
k_ESteamDatagramMsg_Diagnostic = 8;
k_ESteamDatagramMsg_DataClientToRouter = 9;
k_ESteamDatagramMsg_DataRouterToServer = 10;
k_ESteamDatagramMsg_DataServerToRouter = 11;
k_ESteamDatagramMsg_DataRouterToClient = 12;
k_ESteamDatagramMsg_Stats = 13;
k_ESteamDatagramMsg_ClientPingSampleRequest = 14;
k_ESteamDatagramMsg_ClientPingSampleReply = 15;
k_ESteamDatagramMsg_ClientToRouterSwitchedPrimary = 16;
k_ESteamDatagramMsg_RelayHealth = 17;
k_ESteamDatagramMsg_ConnectRequest = 18;
k_ESteamDatagramMsg_ConnectOK = 19;
k_ESteamDatagramMsg_ConnectionClosed = 20;
k_ESteamDatagramMsg_NoConnection = 21;
k_ESteamDatagramMsg_TicketDecryptRequest = 22;
k_ESteamDatagramMsg_TicketDecryptReply = 23;
k_ESteamDatagramMsg_P2PSessionRequest = 24;
k_ESteamDatagramMsg_P2PSessionEstablished = 25;
k_ESteamDatagramMsg_P2PStatsClient = 26;
k_ESteamDatagramMsg_P2PStatsRelay = 27;
k_ESteamDatagramMsg_P2PBadRoute = 28;
k_ESteamDatagramMsg_GameserverPingReply = 29;
k_ESteamDatagramMsg_LegacyGameserverRegistration = 30;
k_ESteamDatagramMsg_SetSecondaryAddressRequest = 31;
k_ESteamDatagramMsg_SetSecondaryAddressResult = 32;
k_ESteamDatagramMsg_RelayToRelayPingRequest = 33;
k_ESteamDatagramMsg_RelayToRelayPingReply = 34;
}
message CMsgSteamNetworkingIPAddress {
optional fixed32 v4 = 1;
optional bytes v6 = 2;
}
message CMsgSteamDatagramSignedMessageGeneric {
optional .CMsgSteamDatagramCertificateSigned cert = 1;
optional bytes signed_data = 2;
optional bytes signature = 3;
}
message CMsgSteamDatagramRouterPingReply {
message RouteException {
optional fixed32 data_center_id = 1;
optional uint32 flags = 2;
optional uint32 penalty = 3;
}
message AltAddress {
enum Protocol {
DefaultProtocol = 0;
NetworkNext = 1;
}
optional fixed32 ipv4 = 1;
optional uint32 port = 2;
optional uint32 penalty = 3;
optional .CMsgSteamDatagramRouterPingReply.AltAddress.Protocol protocol = 4 [default = DefaultProtocol];
optional string id = 5;
}
enum Flags {
FLAG_MAYBE_MORE_DATA_CENTERS = 1;
FLAG_MAYBE_MORE_ALT_ADDRESSES = 2;
}
optional fixed32 client_timestamp = 1;
repeated fixed32 latency_datacenter_ids = 2 [packed = true];
repeated uint32 latency_ping_ms = 3 [packed = true];
repeated fixed32 latency_datacenter_ids_p2p = 14 [packed = true];
repeated uint32 latency_ping_ms_p2p = 15 [packed = true];
optional fixed32 your_public_ip = 4;
optional fixed32 your_public_port = 11;
optional fixed32 server_time = 5;
optional fixed64 challenge = 6;
optional uint32 seconds_until_shutdown = 7;
optional fixed32 client_cookie = 8;
optional uint32 scoring_penalty_relay_cluster = 9;
optional uint32 flags = 12;
repeated .CMsgSteamDatagramRouterPingReply.RouteException route_exceptions = 10;
repeated .CMsgSteamDatagramRouterPingReply.AltAddress alt_addresses = 13;
}
message CMsgSteamDatagramGameserverPingRequestBody {
optional fixed32 relay_popid = 1;
optional .CMsgSteamNetworkingIPAddress your_public_ip = 2;
optional uint32 your_public_port = 3;
optional uint64 relay_unix_time = 4;
optional fixed64 routing_secret = 5;
repeated .CMsgSteamNetworkingIPAddress my_ips = 6;
optional bytes echo = 8;
}
message CMsgSteamDatagramGameserverPingRequestEnvelope {
optional .CMsgSteamDatagramCertificateSigned cert = 6;
optional bytes signed_data = 7;
optional bytes signature = 8;
optional fixed32 legacy_your_public_ip = 1;
optional fixed32 legacy_your_public_port = 5;
optional fixed32 legacy_relay_unix_time = 2;
optional fixed64 legacy_challenge = 3;
optional fixed32 legacy_router_timestamp = 4;
}
message CMsgSteamDatagramGameserverPingReplyData {
optional fixed32 echo_relay_unix_time = 2;
optional bytes echo = 8;
optional fixed64 legacy_challenge = 3;
optional fixed32 legacy_router_timestamp = 4;
optional fixed32 data_center_id = 5;
optional uint32 appid = 6;
optional uint32 protocol_version = 7;
optional string build = 9;
optional uint32 network_config_version = 10;
optional fixed32 my_unix_time = 11;
}
message CMsgSteamDatagramNoSessionRelayToClient {
optional fixed32 connection_id = 7;
optional fixed32 your_public_ip = 2;
optional fixed32 your_public_port = 6;
optional fixed32 server_time = 3;
optional fixed64 challenge = 4;
optional uint32 seconds_until_shutdown = 5;
}
message CMsgSteamDatagramNoSessionRelayToPeer {
optional uint32 legacy_relay_session_id = 1;
optional fixed32 from_relay_session_id = 2;
optional fixed32 from_connection_id = 7;
optional fixed64 kludge_pad = 99;
}
message CMsgSteamDatagramClientPingSampleRequest {
optional fixed32 connection_id = 1;
}
message CMsgSteamDatagramClientPingSampleReply {
message POP {
message AltAddress {
optional string id = 1;
optional uint32 front_ping_ms = 2;
optional uint32 penalty = 3;
}
optional fixed32 pop_id = 1;
optional uint32 default_front_ping_ms = 2;
optional uint32 cluster_penalty = 4;
repeated .CMsgSteamDatagramClientPingSampleReply.POP.AltAddress alt_addresses = 7;
optional uint32 default_e2e_ping_ms = 3;
optional uint32 default_e2e_score = 5;
optional fixed32 p2p_via_peer_relay_pop_id = 6;
optional uint32 best_dc_ping_ms = 9;
optional uint32 best_dc_score = 10;
optional fixed32 best_dc_via_relay_pop_id = 11;
optional uint32 default_dc_ping_ms = 12;
optional uint32 default_dc_score = 13;
optional fixed32 default_dc_via_relay_pop_id = 14;
optional uint32 test_dc_ping_ms = 15;
optional uint32 test_dc_score = 16;
optional fixed32 test_dc_via_relay_pop_id = 17;
}
message LegacyDataCenter {
optional fixed32 data_center_id = 1;
optional fixed32 best_dc_via_relay_pop_id = 2;
optional uint32 best_dc_ping_ms = 3;
}
optional fixed32 connection_id = 1;
optional bool override_active = 4;
repeated .CMsgSteamDatagramClientPingSampleReply.POP pops = 2;
repeated .CMsgSteamDatagramClientPingSampleReply.LegacyDataCenter legacy_data_centers = 3;
}
message CMsgSteamDatagramClientSwitchedPrimary {
message RouterQuality {
optional uint32 score = 1;
optional uint32 front_ping = 2;
optional uint32 back_ping = 3;
optional uint32 seconds_until_down = 4;
}
optional fixed32 connection_id = 1;
optional fixed32 from_ip = 2;
optional uint32 from_port = 3;
optional fixed32 from_router_cluster = 4;
optional uint32 from_active_time = 5;
optional uint32 from_active_packets_recv = 6;
optional string from_dropped_reason = 7;
optional uint32 gap_ms = 8;
optional .CMsgSteamDatagramClientSwitchedPrimary.RouterQuality from_quality_now = 9;
optional .CMsgSteamDatagramClientSwitchedPrimary.RouterQuality to_quality_now = 10;
optional .CMsgSteamDatagramClientSwitchedPrimary.RouterQuality from_quality_then = 11;
optional .CMsgSteamDatagramClientSwitchedPrimary.RouterQuality to_quality_then = 12;
}
message CMsgSteamDatagramConnectRequest {
optional fixed32 connection_id = 1;
optional fixed64 my_timestamp = 4;
optional uint32 ping_est_ms = 5;
optional uint32 virtual_port = 9;
optional uint32 gameserver_relay_session_id = 2;
optional .CMsgSteamDatagramSessionCryptInfoSigned crypt = 6;
optional .CMsgSteamDatagramCertificateSigned cert = 7;
optional fixed64 routing_secret = 10;
optional fixed64 legacy_client_steam_id = 3;
}
message CMsgSteamDatagramConnectOK {
optional fixed32 client_connection_id = 1;
optional fixed32 server_connection_id = 7;
optional fixed64 your_timestamp = 3;
optional uint32 delay_time_usec = 4;
optional uint32 gameserver_relay_session_id = 2;
optional .CMsgSteamDatagramSessionCryptInfoSigned crypt = 5;
optional .CMsgSteamDatagramCertificateSigned cert = 6;
}
message CMsgSteamNetworkingP2PSDRRoutingSummary {
optional uint32 initial_ping = 1;
optional uint32 initial_ping_front_local = 2;
optional uint32 initial_ping_front_remote = 3;
optional uint32 initial_score = 4;
optional fixed32 initial_pop_local = 5;
optional fixed32 initial_pop_remote = 6;
optional uint32 best_ping = 11;
optional uint32 best_ping_front_local = 12;
optional uint32 best_ping_front_remote = 13;
optional uint32 best_score = 14;
optional fixed32 best_pop_local = 15;
optional fixed32 best_pop_remote = 16;
optional uint32 best_time = 17;
optional uint32 negotiation_ms = 7;
optional uint32 selected_seconds = 8;
}
message CMsgSteamDatagramP2PRoutingSummary {
optional .CMsgSteamNetworkingICESessionSummary ice = 2;
optional .CMsgSteamNetworkingP2PSDRRoutingSummary sdr = 3;
}
message CMsgSteamDatagramConnectionClosed {
enum ERelayMode {
None = 0;
EndToEnd = 1;
ClosedByPeer = 2;
}
optional fixed32 to_connection_id = 7;
optional fixed32 from_connection_id = 8;
optional string from_identity_string = 15;
optional .CMsgSteamNetworkingIdentityLegacyBinary legacy_from_identity_binary = 13;
optional fixed64 legacy_from_steam_id = 3;
optional uint32 legacy_gameserver_relay_session_id = 2;
optional fixed32 to_relay_session_id = 9;
optional fixed32 from_relay_session_id = 10;
optional bytes forward_target_relay_routing_token = 11;
optional uint32 forward_target_revision = 12;
optional .CMsgSteamDatagramConnectionClosed.ERelayMode relay_mode = 4 [default = None];
optional string debug = 5;
optional uint32 reason_code = 6;
optional fixed64 routing_secret = 14;
optional bool not_primary_session = 16;
optional bool not_primary_transport = 19;
optional .CMsgSteamDatagramConnectionQuality quality_relay = 17;
optional .CMsgSteamDatagramConnectionQuality quality_e2e = 18;
optional .CMsgSteamDatagramP2PRoutingSummary p2p_routing_summary = 21;
}
message CMsgSteamDatagramNoConnection {
optional fixed32 to_connection_id = 5;
optional fixed32 from_connection_id = 6;
optional uint32 legacy_gameserver_relay_session_id = 2;
optional fixed32 to_relay_session_id = 9;
optional fixed32 from_relay_session_id = 10;
optional string from_identity_string = 7;
optional fixed64 legacy_from_steam_id = 3;
optional bool end_to_end = 4;
optional bool not_primary_session = 12;
optional bool not_primary_transport = 15;
optional .CMsgSteamDatagramConnectionQuality quality_relay = 13;
optional .CMsgSteamDatagramConnectionQuality quality_e2e = 14;
optional .CMsgSteamDatagramP2PRoutingSummary p2p_routing_summary = 16;
optional fixed64 routing_secret = 11;
optional fixed32 dummy_pad = 1023;
}
message CMsgSteamDatagramGameserverSessionRequest {
optional bytes ticket = 1;
optional fixed32 challenge_time = 3;
optional fixed64 challenge = 4;
optional fixed32 client_connection_id = 5;
optional fixed32 server_connection_id = 8;
optional uint32 network_config_version = 6;
optional uint32 protocol_version = 7;
optional string platform = 9;
optional string build = 10;
}
message CMsgSteamDatagramGameserverSessionEstablished {
optional fixed32 connection_id = 1;
optional string gameserver_identity_string = 2;
optional uint32 seconds_until_shutdown = 4;
optional uint32 seq_num_r2c = 6;
optional bytes dummy_legacy_identity_binary = 7;
optional fixed64 legacy_gameserver_steamid = 3;
}
message CMsgSteamDatagramConnectionStatsClientToRouter {
enum Flags {
ACK_REQUEST_RELAY = 1;
ACK_REQUEST_E2E = 2;
ACK_REQUEST_IMMEDIATE = 4;
NOT_PRIMARY_SESSION = 8;
}
optional .CMsgSteamDatagramConnectionQuality quality_relay = 1;
optional .CMsgSteamDatagramConnectionQuality quality_e2e = 2;
repeated fixed32 ack_relay = 4;
repeated fixed32 legacy_ack_e2e = 5;
optional uint32 flags = 6;
optional fixed32 client_connection_id = 8;
optional uint32 seq_num_c2r = 9;
optional uint32 seq_num_e2e = 10;
}
message CMsgSteamDatagramConnectionStatsRouterToClient {
enum Flags {
ACK_REQUEST_RELAY = 1;
ACK_REQUEST_E2E = 2;
ACK_REQUEST_IMMEDIATE = 4;
}
optional .CMsgSteamDatagramConnectionQuality quality_relay = 1;
optional .CMsgSteamDatagramConnectionQuality quality_e2e = 2;
optional uint32 seconds_until_shutdown = 6;
optional fixed32 migrate_request_ip = 10;
optional uint32 migrate_request_port = 11;
optional uint32 scoring_penalty_relay_cluster = 12;
repeated fixed32 ack_relay = 13;
repeated fixed32 legacy_ack_e2e = 14;
optional uint32 flags = 15;
optional fixed32 client_connection_id = 7;
optional uint32 seq_num_r2c = 8;
optional uint32 seq_num_e2e = 9;
}
message CMsgSteamDatagramConnectionStatsRouterToServer {
enum Flags {
ACK_REQUEST_RELAY = 1;
ACK_REQUEST_E2E = 2;
ACK_REQUEST_IMMEDIATE = 4;
}
optional .CMsgSteamDatagramConnectionQuality quality_relay = 1;
optional .CMsgSteamDatagramConnectionQuality quality_e2e = 2;
repeated fixed32 ack_relay = 10;
repeated fixed32 legacy_ack_e2e = 11;
optional uint32 flags = 12;
optional uint32 seq_num_r2s = 5;
optional uint32 seq_num_e2e = 6;
optional string client_identity_string = 15;
optional fixed64 legacy_client_steam_id = 7;
optional uint32 relay_session_id = 8;
optional fixed32 client_connection_id = 9;
optional fixed32 server_connection_id = 13;
optional fixed64 routing_secret = 14;
}
message CMsgSteamDatagramConnectionStatsServerToRouter {
enum Flags {
ACK_REQUEST_RELAY = 1;
ACK_REQUEST_E2E = 2;
ACK_REQUEST_IMMEDIATE = 4;
}
optional .CMsgSteamDatagramConnectionQuality quality_relay = 1;
optional .CMsgSteamDatagramConnectionQuality quality_e2e = 2;
repeated fixed32 ack_relay = 8;
repeated fixed32 legacy_ack_e2e = 9;
optional uint32 flags = 10;
optional uint32 seq_num_s2r = 3;
optional uint32 seq_num_e2e = 4;
optional uint32 relay_session_id = 6;
optional fixed32 client_connection_id = 7;
optional fixed32 server_connection_id = 11;
}
message CMsgSteamDatagramP2PSessionRequestBody {
optional fixed32 challenge_time = 1;
optional fixed64 challenge = 2;
optional fixed32 client_connection_id = 3;
optional fixed64 legacy_peer_steam_id = 4;
optional string peer_identity_string = 11;
optional fixed32 peer_connection_id = 5;
optional uint32 protocol_version = 8;
optional uint32 network_config_version = 9;
optional fixed32 unused_public_ip = 10;
optional string platform = 12;
optional string build = 13;
}
message CMsgSteamDatagramP2PSessionRequest {
optional .CMsgSteamDatagramCertificateSigned cert = 1;
optional bytes body = 2;
optional bytes signature = 3;
}
message CMsgSteamDatagramP2PSessionEstablished {
optional fixed32 connection_id = 1;
optional uint32 seconds_until_shutdown = 3;
optional bytes relay_routing_token = 4;
optional uint32 seq_num_r2c = 5;
}
message CMsgSteamDatagramConnectionStatsP2PClientToRouter {
enum Flags {
ACK_REQUEST_RELAY = 1;
ACK_REQUEST_E2E = 2;
ACK_REQUEST_IMMEDIATE = 4;
NOT_PRIMARY_SESSION = 8;
NOT_PRIMARY_TRANSPORT_E2E = 16;
}
optional .CMsgSteamDatagramConnectionQuality quality_relay = 1;
optional .CMsgSteamDatagramConnectionQuality quality_e2e = 2;
optional .CMsgSteamDatagramP2PRoutingSummary p2p_routing_summary = 14;
repeated fixed32 ack_relay = 3;
repeated fixed32 legacy_ack_e2e = 4;
optional uint32 flags = 5;
optional bytes forward_target_relay_routing_token = 6;
optional uint32 forward_target_revision = 7;
optional bytes routes = 8;
optional uint32 ack_peer_routes_revision = 9;
optional fixed32 connection_id = 10;
optional uint32 seq_num_c2r = 11;
optional uint32 seq_num_e2e = 12;
}
message CMsgSteamDatagramConnectionStatsP2PRouterToClient {
enum Flags {
ACK_REQUEST_RELAY = 1;
ACK_REQUEST_E2E = 2;
ACK_REQUEST_IMMEDIATE = 4;
NOT_PRIMARY_TRANSPORT_E2E = 16;
}
optional .CMsgSteamDatagramConnectionQuality quality_relay = 1;
optional .CMsgSteamDatagramConnectionQuality quality_e2e = 2;
optional uint32 seconds_until_shutdown = 3;
optional fixed32 migrate_request_ip = 4;
optional uint32 migrate_request_port = 5;
optional uint32 scoring_penalty_relay_cluster = 6;
repeated fixed32 ack_relay = 7;
repeated fixed32 legacy_ack_e2e = 8;
optional uint32 flags = 9;
optional uint32 ack_forward_target_revision = 10;
optional bytes routes = 11;
optional uint32 ack_peer_routes_revision = 12;
optional fixed32 connection_id = 13;
optional uint32 seq_num_r2c = 14;
optional uint32 seq_num_e2e = 15;
}
message CMsgSteamDatagramP2PBadRouteRouterToClient {
optional fixed32 connection_id = 1;
optional bytes failed_relay_routing_token = 2;
optional uint32 ack_forward_target_revision = 3;
optional fixed64 kludge_pad = 99;
}
message CMsgSteamDatagramP2PRoutes {
message RelayCluster {
optional fixed32 pop_id = 1;
optional uint32 ping_ms = 2;
optional uint32 score_penalty = 3;
optional bytes session_relay_routing_token = 4;
}
message Route {
optional fixed32 my_pop_id = 1;
optional fixed32 your_pop_id = 2;
optional uint32 legacy_score = 3;
optional uint32 interior_score = 4;
}
repeated .CMsgSteamDatagramP2PRoutes.RelayCluster relay_clusters = 1;
repeated .CMsgSteamDatagramP2PRoutes.Route routes = 2;
optional uint32 revision = 3;
}
message CMsgSteamDatagramSetSecondaryAddressRequest {
optional fixed32 client_main_ip = 1;
optional fixed32 client_main_port = 2;
optional fixed32 client_connection_id = 3;
optional string client_identity = 4;
optional bool request_send_duplication = 5;
optional bytes kludge_pad = 99;
}
message CMsgSteamDatagramSetSecondaryAddressResult {
optional bool success = 1;
optional string message = 2;
}

View File

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

View File

@@ -0,0 +1,332 @@
import "google/protobuf/descriptor.proto";
option optimize_for = SPEED;
option cc_generic_services = true;
option (force_php_generation) = true;
extend .google.protobuf.MessageOptions {
optional int32 msgpool_soft_limit = 50000 [default = 32];
optional int32 msgpool_hard_limit = 50001 [default = 384];
}
extend .google.protobuf.FileOptions {
optional bool force_php_generation = 50000 [default = false];
}
extend .google.protobuf.FieldOptions {
optional bool php_output_always_number = 50020 [default = false];
optional bool allow_field_named_steam_id = 50024 [default = false];
}
enum EBanContentCheckResult {
k_EBanContentCheckResult_NotScanned = 0;
k_EBanContentCheckResult_Reset = 1;
k_EBanContentCheckResult_NeedsChecking = 2;
k_EBanContentCheckResult_VeryUnlikely = 5;
k_EBanContentCheckResult_Unlikely = 30;
k_EBanContentCheckResult_Possible = 50;
k_EBanContentCheckResult_Likely = 75;
k_EBanContentCheckResult_VeryLikely = 100;
}
enum EProtoClanEventType {
k_EClanOtherEvent = 1;
k_EClanGameEvent = 2;
k_EClanPartyEvent = 3;
k_EClanMeetingEvent = 4;
k_EClanSpecialCauseEvent = 5;
k_EClanMusicAndArtsEvent = 6;
k_EClanSportsEvent = 7;
k_EClanTripEvent = 8;
k_EClanChatEvent = 9;
k_EClanGameReleaseEvent = 10;
k_EClanBroadcastEvent = 11;
k_EClanSmallUpdateEvent = 12;
k_EClanPreAnnounceMajorUpdateEvent = 13;
k_EClanMajorUpdateEvent = 14;
k_EClanDLCReleaseEvent = 15;
k_EClanFutureReleaseEvent = 16;
k_EClanESportTournamentStreamEvent = 17;
k_EClanDevStreamEvent = 18;
k_EClanFamousStreamEvent = 19;
k_EClanGameSalesEvent = 20;
k_EClanGameItemSalesEvent = 21;
k_EClanInGameBonusXPEvent = 22;
k_EClanInGameLootEvent = 23;
k_EClanInGamePerksEvent = 24;
k_EClanInGameChallengeEvent = 25;
k_EClanInGameContestEvent = 26;
k_EClanIRLEvent = 27;
k_EClanNewsEvent = 28;
k_EClanBetaReleaseEvent = 29;
k_EClanInGameContentReleaseEvent = 30;
k_EClanFreeTrial = 31;
k_EClanSeasonRelease = 32;
k_EClanSeasonUpdate = 33;
k_EClanCrosspostEvent = 34;
k_EClanInGameEventGeneral = 35;
}
enum PartnerEventNotificationType {
k_EEventStart = 0;
k_EEventBroadcastStart = 1;
k_EEventMatchStart = 2;
k_EEventPartnerMaxType = 3;
}
message CMsgIPAddress {
oneof ip {
fixed32 v4 = 1;
bytes v6 = 2;
}
}
message CMsgIPAddressBucket {
optional .CMsgIPAddress original_ip_address = 1;
optional fixed64 bucket = 2;
}
message CMsgGCRoutingProtoBufHeader {
optional uint64 dst_gcid_queue = 1;
optional uint32 dst_gc_dir_index = 2;
}
message CMsgProtoBufHeader {
enum ESessionDisposition {
k_ESessionDispositionNormal = 0;
k_ESessionDispositionDisconnect = 1;
}
optional fixed64 steamid = 1;
optional int32 client_sessionid = 2;
optional uint32 routing_appid = 3;
optional fixed64 jobid_source = 10 [default = 18446744073709551615];
optional fixed64 jobid_target = 11 [default = 18446744073709551615];
optional string target_job_name = 12;
optional int32 seq_num = 24;
optional int32 eresult = 13 [default = 2];
optional string error_message = 14;
optional uint32 auth_account_flags = 16;
optional uint32 token_source = 22;
optional bool admin_spoofing_user = 23;
optional int32 transport_error = 17 [default = 1];
optional uint64 messageid = 18 [default = 18446744073709551615];
optional uint32 publisher_group_id = 19;
optional uint32 sysid = 20;
optional uint64 trace_tag = 21;
optional uint32 webapi_key_id = 25;
optional bool is_from_external_source = 26;
repeated uint32 forward_to_sysid = 27;
optional uint32 cm_sysid = 28;
optional uint32 launcher_type = 31 [default = 0];
optional uint32 realm = 32 [default = 0];
optional int32 timeout_ms = 33 [default = -1];
optional string debug_source = 34;
optional uint32 debug_source_string_index = 35;
optional uint64 token_id = 36;
optional .CMsgGCRoutingProtoBufHeader routing_gc = 37;
optional .CMsgProtoBufHeader.ESessionDisposition session_disposition = 38 [default = k_ESessionDispositionNormal];
optional string wg_token = 39;
optional string webui_auth_key = 40;
oneof ip_addr {
uint32 ip = 15;
bytes ip_v6 = 29;
}
}
message CMsgMulti {
optional uint32 size_unzipped = 1;
optional bytes message_body = 2;
}
message CMsgProtobufWrapped {
optional bytes message_body = 1;
}
message CMsgAuthTicket {
optional uint32 estate = 1;
optional uint32 eresult = 2 [default = 2];
optional fixed64 steamid = 3;
optional fixed64 gameid = 4;
optional uint32 h_steam_pipe = 5;
optional uint32 ticket_crc = 6;
optional bytes ticket = 7;
optional bytes server_secret = 8;
optional uint32 ticket_type = 9;
}
message CCDDBAppDetailCommon {
optional uint32 appid = 1;
optional string name = 2;
optional string icon = 3;
optional bool tool = 6;
optional bool demo = 7;
optional bool media = 8;
optional bool community_visible_stats = 9;
optional string friendly_name = 10;
optional string propagation = 11;
optional bool has_adult_content = 12;
optional bool is_visible_in_steam_china = 13;
optional uint32 app_type = 14;
optional bool has_adult_content_sex = 15;
optional bool has_adult_content_violence = 16;
repeated uint32 content_descriptorids = 17;
}
message CMsgAppRights {
optional bool edit_info = 1;
optional bool publish = 2;
optional bool view_error_data = 3;
optional bool download = 4;
optional bool upload_cdkeys = 5;
optional bool generate_cdkeys = 6;
optional bool view_financials = 7;
optional bool manage_ceg = 8;
optional bool manage_signing = 9;
optional bool manage_cdkeys = 10;
optional bool edit_marketing = 11;
optional bool economy_support = 12;
optional bool economy_support_supervisor = 13;
optional bool manage_pricing = 14;
optional bool broadcast_live = 15;
optional bool view_marketing_traffic = 16;
optional bool edit_store_display_content = 17;
}
message CCuratorPreferences {
optional uint32 supported_languages = 1;
optional bool platform_windows = 2;
optional bool platform_mac = 3;
optional bool platform_linux = 4;
optional bool vr_content = 5;
optional bool adult_content_violence = 6;
optional bool adult_content_sex = 7;
optional uint32 timestamp_updated = 8;
repeated uint32 tagids_curated = 9;
repeated uint32 tagids_filtered = 10;
optional string website_title = 11;
optional string website_url = 12;
optional string discussion_url = 13;
optional bool show_broadcast = 14;
}
message CLocalizationToken {
optional uint32 language = 1;
optional string localized_string = 2;
}
message CClanEventUserNewsTuple {
optional uint32 clanid = 1;
optional fixed64 event_gid = 2;
optional fixed64 announcement_gid = 3;
optional uint32 rtime_start = 4;
optional uint32 rtime_end = 5;
optional uint32 priority_score = 6;
optional uint32 type = 7;
optional uint32 clamp_range_slot = 8;
optional uint32 appid = 9;
optional uint32 rtime32_last_modified = 10;
}
message CClanMatchEventByRange {
optional uint32 rtime_before = 1;
optional uint32 rtime_after = 2;
optional uint32 qualified = 3;
repeated .CClanEventUserNewsTuple events = 4;
}
message CCommunity_ClanAnnouncementInfo {
optional uint64 gid = 1;
optional uint64 clanid = 2;
optional uint64 posterid = 3;
optional string headline = 4;
optional uint32 posttime = 5;
optional uint32 updatetime = 6;
optional string body = 7;
optional int32 commentcount = 8;
repeated string tags = 9;
optional int32 language = 10;
optional bool hidden = 11;
optional fixed64 forum_topic_id = 12;
optional fixed64 event_gid = 13;
optional int32 voteupcount = 14;
optional int32 votedowncount = 15;
optional .EBanContentCheckResult ban_check_result = 16 [default = k_EBanContentCheckResult_NotScanned];
optional bool banned = 17;
}
message CClanEventData {
optional fixed64 gid = 1;
optional fixed64 clan_steamid = 2;
optional string event_name = 3;
optional .EProtoClanEventType event_type = 4 [default = k_EClanOtherEvent];
optional uint32 appid = 5;
optional string server_address = 6;
optional string server_password = 7;
optional uint32 rtime32_start_time = 8;
optional uint32 rtime32_end_time = 9;
optional int32 comment_count = 10;
optional fixed64 creator_steamid = 11;
optional fixed64 last_update_steamid = 12;
optional string event_notes = 13;
optional string jsondata = 14;
optional .CCommunity_ClanAnnouncementInfo announcement_body = 15;
optional bool published = 16;
optional bool hidden = 17;
optional uint32 rtime32_visibility_start = 18;
optional uint32 rtime32_visibility_end = 19;
optional uint32 broadcaster_accountid = 20;
optional uint32 follower_count = 21;
optional uint32 ignore_count = 22;
optional fixed64 forum_topic_id = 23;
optional uint32 rtime32_last_modified = 24;
optional fixed64 news_post_gid = 25;
optional uint32 rtime_mod_reviewed = 26;
optional uint32 featured_app_tagid = 27;
repeated uint32 referenced_appids = 28;
optional uint32 build_id = 29;
optional string build_branch = 30;
}
message CBilling_Address {
optional string first_name = 1;
optional string last_name = 2;
optional string address1 = 3;
optional string address2 = 4;
optional string city = 5;
optional string us_state = 6;
optional string country_code = 7;
optional string postcode = 8;
optional int32 zip_plus4 = 9;
optional string phone = 10;
}
message CPackageReservationStatus {
optional uint32 packageid = 1;
optional int32 reservation_state = 2;
optional int32 queue_position = 3;
optional int32 total_queue_size = 4;
optional string reservation_country_code = 5;
optional bool expired = 6;
optional uint32 time_expires = 7;
optional uint32 time_reserved = 8;
}
message CMsgKeyValuePair {
optional string name = 1;
optional string value = 2;
}
message CMsgKeyValueSet {
repeated .CMsgKeyValuePair pairs = 1;
}
message UserContentDescriptorPreferences {
message ContentDescriptor {
optional uint32 content_descriptorid = 1;
optional uint32 timestamp_added = 2;
}
repeated .UserContentDescriptorPreferences.ContentDescriptor content_descriptors_to_exclude = 1;
}

View File

@@ -0,0 +1,42 @@
import "steamnetworkingsockets_messages.proto";
import "steamdatagram_messages_sdr.proto";
option optimize_for = SPEED;
option cc_generic_services = true;
message CGameNetworkingUI_GlobalState {
}
message CGameNetworkingUI_ConnectionState {
optional string connection_key = 1;
optional uint32 appid = 2;
optional fixed32 connection_id_local = 3;
optional string identity_local = 4;
optional string identity_remote = 5;
optional uint32 connection_state = 10;
optional uint32 start_time = 12;
optional uint32 close_time = 13;
optional uint32 close_reason = 14;
optional string close_message = 15;
optional string status_loc_token = 16;
optional uint32 transport_kind = 20;
optional string sdrpopid_local = 21;
optional string sdrpopid_remote = 22;
optional string address_remote = 23;
optional .CMsgSteamDatagramP2PRoutingSummary p2p_routing = 24;
optional uint32 ping_interior = 25;
optional uint32 ping_remote_front = 26;
optional uint32 ping_default_internet_route = 27;
optional .CMsgSteamDatagramConnectionQuality e2e_quality_local = 30;
optional .CMsgSteamDatagramConnectionQuality e2e_quality_remote = 31;
optional uint64 e2e_quality_remote_instantaneous_time = 32;
optional uint64 e2e_quality_remote_lifetime_time = 33;
optional .CMsgSteamDatagramConnectionQuality front_quality_local = 40;
optional .CMsgSteamDatagramConnectionQuality front_quality_remote = 41;
optional uint64 front_quality_remote_instantaneous_time = 42;
optional uint64 front_quality_remote_lifetime_time = 43;
}
message CGameNetworkingUI_Message {
repeated .CGameNetworkingUI_ConnectionState connection_state = 1;
}

View File

@@ -0,0 +1,204 @@
import "steamnetworkingsockets_messages_certs.proto";
option optimize_for = SPEED;
option cc_generic_services = false;
enum ESteamNetworkingSocketsCipher {
k_ESteamNetworkingSocketsCipher_INVALID = 0;
k_ESteamNetworkingSocketsCipher_NULL = 1;
k_ESteamNetworkingSocketsCipher_AES_256_GCM = 2;
}
message CMsgSteamDatagramSessionCryptInfo {
enum EKeyType {
INVALID = 0;
CURVE25519 = 1;
}
optional .CMsgSteamDatagramSessionCryptInfo.EKeyType key_type = 1 [default = INVALID];
optional bytes key_data = 2;
optional fixed64 nonce = 3;
optional uint32 protocol_version = 4;
repeated .ESteamNetworkingSocketsCipher ciphers = 5;
}
message CMsgSteamDatagramSessionCryptInfoSigned {
optional bytes info = 1;
optional bytes signature = 2;
}
message CMsgSteamDatagramDiagnostic {
optional uint32 severity = 1;
optional string text = 2;
}
message CMsgSteamDatagramLinkInstantaneousStats {
optional uint32 out_packets_per_sec_x10 = 1;
optional uint32 out_bytes_per_sec = 2;
optional uint32 in_packets_per_sec_x10 = 3;
optional uint32 in_bytes_per_sec = 4;
optional uint32 ping_ms = 5;
optional uint32 packets_dropped_pct = 6;
optional uint32 packets_weird_sequence_pct = 7;
optional uint32 peak_jitter_usec = 8;
}
message CMsgSteamDatagramLinkLifetimeStats {
optional uint32 connected_seconds = 2;
optional uint64 packets_sent = 3;
optional uint64 kb_sent = 4;
optional uint64 packets_recv = 5;
optional uint64 kb_recv = 6;
optional uint64 packets_recv_sequenced = 7;
optional uint64 packets_recv_dropped = 8;
optional uint64 packets_recv_out_of_order = 9;
optional uint64 packets_recv_duplicate = 10;
optional uint64 packets_recv_lurch = 11;
repeated uint64 multipath_packets_recv_sequenced = 12;
repeated uint64 multipath_packets_recv_later = 13;
optional uint32 multipath_send_enabled = 14;
optional uint32 quality_histogram_100 = 21;
optional uint32 quality_histogram_99 = 22;
optional uint32 quality_histogram_97 = 23;
optional uint32 quality_histogram_95 = 24;
optional uint32 quality_histogram_90 = 25;
optional uint32 quality_histogram_75 = 26;
optional uint32 quality_histogram_50 = 27;
optional uint32 quality_histogram_1 = 28;
optional uint32 quality_histogram_dead = 29;
optional uint32 quality_ntile_2nd = 30;
optional uint32 quality_ntile_5th = 31;
optional uint32 quality_ntile_25th = 32;
optional uint32 quality_ntile_50th = 33;
optional uint32 ping_histogram_25 = 41;
optional uint32 ping_histogram_50 = 42;
optional uint32 ping_histogram_75 = 43;
optional uint32 ping_histogram_100 = 44;
optional uint32 ping_histogram_125 = 45;
optional uint32 ping_histogram_150 = 46;
optional uint32 ping_histogram_200 = 47;
optional uint32 ping_histogram_300 = 48;
optional uint32 ping_histogram_max = 49;
optional uint32 ping_ntile_5th = 50;
optional uint32 ping_ntile_50th = 51;
optional uint32 ping_ntile_75th = 52;
optional uint32 ping_ntile_95th = 53;
optional uint32 ping_ntile_98th = 54;
optional uint32 jitter_histogram_negligible = 61;
optional uint32 jitter_histogram_1 = 62;
optional uint32 jitter_histogram_2 = 63;
optional uint32 jitter_histogram_5 = 64;
optional uint32 jitter_histogram_10 = 65;
optional uint32 jitter_histogram_20 = 66;
optional uint32 txspeed_max = 67;
optional uint32 txspeed_histogram_16 = 68;
optional uint32 txspeed_histogram_32 = 69;
optional uint32 txspeed_histogram_64 = 70;
optional uint32 txspeed_histogram_128 = 71;
optional uint32 txspeed_histogram_256 = 72;
optional uint32 txspeed_histogram_512 = 73;
optional uint32 txspeed_histogram_1024 = 74;
optional uint32 txspeed_histogram_max = 75;
optional uint32 txspeed_ntile_5th = 76;
optional uint32 txspeed_ntile_50th = 77;
optional uint32 txspeed_ntile_75th = 78;
optional uint32 txspeed_ntile_95th = 79;
optional uint32 txspeed_ntile_98th = 80;
optional uint32 rxspeed_max = 81;
optional uint32 rxspeed_histogram_16 = 82;
optional uint32 rxspeed_histogram_32 = 83;
optional uint32 rxspeed_histogram_64 = 84;
optional uint32 rxspeed_histogram_128 = 85;
optional uint32 rxspeed_histogram_256 = 86;
optional uint32 rxspeed_histogram_512 = 87;
optional uint32 rxspeed_histogram_1024 = 88;
optional uint32 rxspeed_histogram_max = 89;
optional uint32 rxspeed_ntile_5th = 90;
optional uint32 rxspeed_ntile_50th = 91;
optional uint32 rxspeed_ntile_75th = 92;
optional uint32 rxspeed_ntile_95th = 93;
optional uint32 rxspeed_ntile_98th = 94;
}
message CMsgSteamDatagramConnectionQuality {
optional .CMsgSteamDatagramLinkInstantaneousStats instantaneous = 1;
optional .CMsgSteamDatagramLinkLifetimeStats lifetime = 2;
}
message CMsgICERendezvous {
message Auth {
optional string pwd_frag = 1;
}
message Candidate {
optional string candidate = 3;
}
optional .CMsgICERendezvous.Auth auth = 2;
optional .CMsgICERendezvous.Candidate add_candidate = 1;
}
message CMsgSteamNetworkingP2PRendezvous {
message ConnectRequest {
optional .CMsgSteamDatagramSessionCryptInfoSigned crypt = 6;
optional .CMsgSteamDatagramCertificateSigned cert = 7;
optional uint32 to_virtual_port = 9;
optional uint32 from_virtual_port = 10;
optional string from_fakeip = 11;
}
message ConnectOK {
optional .CMsgSteamDatagramSessionCryptInfoSigned crypt = 5;
optional .CMsgSteamDatagramCertificateSigned cert = 6;
}
message ConnectionClosed {
optional string debug = 5;
optional uint32 reason_code = 6;
}
message ReliableMessage {
optional .CMsgICERendezvous ice = 1;
}
message ApplicationMessage {
optional bytes data = 1;
optional uint64 msg_num = 2;
optional uint32 flags = 3;
optional uint32 lane_idx = 4;
}
optional string from_identity = 8;
optional fixed32 from_connection_id = 9;
optional string to_identity = 10;
optional fixed32 to_connection_id = 1;
optional bytes sdr_routes = 2;
optional uint32 ack_peer_routes_revision = 3;
optional bool ice_enabled = 7;
optional bytes hosted_server_ticket = 14;
optional .CMsgSteamNetworkingP2PRendezvous.ConnectRequest connect_request = 4;
optional .CMsgSteamNetworkingP2PRendezvous.ConnectOK connect_ok = 5;
optional .CMsgSteamNetworkingP2PRendezvous.ConnectionClosed connection_closed = 6;
optional uint32 ack_reliable_msg = 11;
optional uint32 first_reliable_msg = 12;
repeated .CMsgSteamNetworkingP2PRendezvous.ReliableMessage reliable_messages = 13;
repeated .CMsgSteamNetworkingP2PRendezvous.ApplicationMessage application_messages = 15;
}
message CMsgSteamNetworkingICESessionSummary {
optional uint32 failure_reason_code = 7;
optional uint32 local_candidate_types = 1;
optional uint32 remote_candidate_types = 2;
optional uint32 initial_route_kind = 3;
optional uint32 initial_ping = 4;
optional uint32 initial_score = 6;
optional uint32 negotiation_ms = 5;
optional uint32 best_route_kind = 16;
optional uint32 best_ping = 17;
optional uint32 best_score = 18;
optional uint32 best_time = 19;
optional uint32 selected_seconds = 12;
optional uint32 user_settings = 13;
optional uint32 ice_enable_var = 14;
optional uint32 local_candidate_types_allowed = 15;
}

View File

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

View File

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

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,598 @@
import "google/protobuf/descriptor.proto";
option optimize_for = SPEED;
option cc_generic_services = false;
extend .google.protobuf.MessageOptions {
optional bool start_expanded = 80000 [default = true];
}
extend .google.protobuf.FieldOptions {
optional .ProtoDefTypes valid_type = 70000 [default = DEF_TYPE_QUEST_MAP_NODE];
optional bool editable = 70001 [default = true];
optional bool localized = 70002 [default = false];
optional bool do_not_inherit = 70003 [default = false];
optional string display_name = 70004;
optional string comment = 70005;
optional uint32 max_count = 70007;
optional bool allow_add = 70008 [default = true];
optional bool allow_delete = 70009 [default = true];
optional string panel_class_override = 70010;
optional string message_inherhitance_key_field_name = 70011;
optional bool inherit_reference_variables = 70012 [default = false];
optional bool self_inherit_only = 70013 [default = false];
optional .EVarFieldType var_field_type = 70014 [default = VAR_TYPE_INVALID];
optional bool merging_key_field = 70015 [default = false];
}
enum LogicalOperation {
AND = 0;
OR = 1;
NOT = 2;
}
enum EValueDefinitionSource {
REFERENCE_DEFINES = 0;
PARENT_DEFINES = 1;
THIS_DEFINES = 2;
VARIABLE_DEFINES = 3;
NOT_DEFINED = 4;
}
enum ProtoDefTypes {
DEF_TYPE_QUEST_MAP_NODE = 0;
DEF_TYPE_QUEST_THEME = 2;
DEF_TYPE_QUEST_MAP_REGION = 3;
DEF_TYPE_QUEST = 4;
DEF_TYPE_QUEST_OBJECTIVE = 5;
DEF_TYPE_PAINTKIT_VARIABLES = 6;
DEF_TYPE_PAINTKIT_OPERATION = 7;
DEF_TYPE_PAINTKIT_ITEM_DEFINITION = 8;
DEF_TYPE_PAINTKIT_DEFINITION = 9;
DEF_TYPE_HEADER_ONLY = 10;
DEF_TYPE_QUEST_MAP_STORE_ITEM = 11;
DEF_TYPE_QUEST_MAP_STAR_TYPE = 12;
}
enum EQuestPoints {
QUEST_POINTS_NOVICE = 0;
QUEST_POINTS_ADVANCED = 1;
QUEST_POINTS_EXPERT = 2;
}
enum EVarFieldType {
VAR_TYPE_INVALID = 1;
VAR_TYPE_FLOAT = 2;
VAR_TYPE_DOUBLE = 3;
VAR_TYPE_UINT32 = 4;
VAR_TYPE_UINT64 = 5;
VAR_TYPE_SINT32 = 6;
VAR_TYPE_SINT64 = 7;
VAR_TYPE_BOOL = 8;
VAR_TYPE_STRING = 9;
}
enum ENodeCashReward {
CASH_REWARD_NONE = 1;
CASH_REWARD_SMALL = 2;
CASH_REWARD_MEDIUM = 3;
CASH_REWARD_LARGE = 4;
}
message CMsgFieldID {
message CMsgField {
optional uint32 field_number = 1;
optional uint32 repeated_index = 2;
}
repeated .CMsgFieldID.CMsgField field = 1;
}
message CMsgUniversalFieldID {
optional .EValueDefinitionSource source_type = 1 [default = REFERENCE_DEFINES];
optional .CMsgProtoDefID defining_obj_id = 2;
optional .CMsgFieldID field_id = 3;
}
message CMsgVariableDefinition {
optional string name = 1 [(merging_key_field) = true];
optional bool inherit = 2 [default = true];
optional string value = 3;
}
message CMsgProtoDefHeader {
required uint32 defindex = 1 [(editable) = false, (display_name) = "Defindex", (comment) = "Autogenerated", (self_inherit_only) = true];
optional string name = 2 [(display_name) = "Name", (comment) = "Name to show in the editor", (self_inherit_only) = true];
repeated .CMsgProtoDefID prefabs = 3 [(display_name) = "Prefab", (comment) = "Inherit the values of these definitions, in order from top to bottom.", (panel_class_override) = "CPrefabFieldEditingPanel", (self_inherit_only) = true];
repeated string tags = 4 [(display_name) = "Tags", (comment) = "Strings used to describe this definition while searching. ie. 'class', 'shotgun', 'easy'"];
optional bool prefab_only = 5 [default = false, (display_name) = "Pure Prefab", (comment) = "If true, this is only a prefab and will not be made into an object", (self_inherit_only) = true];
repeated .CMsgVariableDefinition variables = 6 [(display_name) = "Variables", (comment) = "Variable value definitions", (message_inherhitance_key_field_name) = "name"];
}
message CMsgValidTypes {
repeated .ProtoDefTypes types = 1;
}
message CMsgProtoDefID {
optional uint32 defindex = 1;
optional .ProtoDefTypes type = 2 [default = DEF_TYPE_QUEST_MAP_NODE];
oneof instance {
.CMsgQuestMapNodeDef instance_def_type_quest_map_node = 3;
.CMsgQuestTheme instance_def_type_quest_theme = 5;
.CMsgQuestMapRegionDef instance_def_type_quest_map_region = 6;
.CMsgQuestDef instance_def_type_quest = 7;
.CMsgQuestObjectiveDef instance_def_type_quest_objective = 8;
.CMsgPaintKit_Variables instance_def_type_paintkit_variables = 9;
.CMsgPaintKit_Operation instance_def_type_paintkit_operation = 10;
.CMsgPaintKit_ItemDefinition instance_def_type_paintkit_item_definition = 11;
.CMsgPaintKit_Definition instance_def_type_paintkit_definition = 12;
.CMsgHeaderOnly instance_def_type_header_only = 13;
}
}
message CMsgQuestObjectiveDef {
enum ETF2GameModes {
kGameCategory_Escort = 0;
kGameCategory_CTF = 1;
kGameCategory_AttackDefense = 2;
kGameCategory_Koth = 3;
kGameCategory_CP = 4;
kGameCategory_EscortRace = 5;
kGameCategory_EventMix = 6;
kGameCategory_SD = 7;
kGameCategory_Quickplay = 8;
kGameCategory_Event247 = 9;
kGameCategory_Arena = 10;
kGameCategory_RobotDestruction = 11;
kGameCategory_Powerup = 12;
kGameCategory_Featured = 13;
kGameCategory_Passtime = 14;
kGameCategory_Community_Update = 15;
kGameCategory_Misc = 16;
kGameCategory_Competitive_6v6 = 17;
kGameCategory_Other = 18;
kGameCategory_Halloween = 19;
}
enum ETF2Conditions {
TF_COND_AIMING = 0;
TF_COND_ZOOMED = 1;
TF_COND_DISGUISING = 2;
TF_COND_DISGUISED = 3;
TF_COND_STEALTHED = 4;
TF_COND_INVULNERABLE = 5;
TF_COND_TELEPORTED = 6;
TF_COND_TAUNTING = 7;
TF_COND_INVULNERABLE_WEARINGOFF = 8;
TF_COND_STEALTHED_BLINK = 9;
TF_COND_SELECTED_TO_TELEPORT = 10;
TF_COND_CRITBOOSTED = 11;
TF_COND_TMPDAMAGEBONUS = 12;
TF_COND_FEIGN_DEATH = 13;
TF_COND_PHASE = 14;
TF_COND_STUNNED = 15;
TF_COND_OFFENSEBUFF = 16;
TF_COND_SHIELD_CHARGE = 17;
TF_COND_DEMO_BUFF = 18;
TF_COND_ENERGY_BUFF = 19;
TF_COND_RADIUSHEAL = 20;
TF_COND_HEALTH_BUFF = 21;
TF_COND_BURNING = 22;
TF_COND_HEALTH_OVERHEALED = 23;
TF_COND_URINE = 24;
TF_COND_BLEEDING = 25;
TF_COND_DEFENSEBUFF = 26;
TF_COND_MAD_MILK = 27;
TF_COND_MEGAHEAL = 28;
TF_COND_REGENONDAMAGEBUFF = 29;
TF_COND_MARKEDFORDEATH = 30;
TF_COND_NOHEALINGDAMAGEBUFF = 31;
TF_COND_SPEED_BOOST = 32;
TF_COND_CRITBOOSTED_PUMPKIN = 33;
TF_COND_CRITBOOSTED_USER_BUFF = 34;
TF_COND_CRITBOOSTED_DEMO_CHARGE = 35;
TF_COND_SODAPOPPER_HYPE = 36;
TF_COND_CRITBOOSTED_FIRST_BLOOD = 37;
TF_COND_CRITBOOSTED_BONUS_TIME = 38;
TF_COND_CRITBOOSTED_CTF_CAPTURE = 39;
TF_COND_CRITBOOSTED_ON_KILL = 40;
TF_COND_CANNOT_SWITCH_FROM_MELEE = 41;
TF_COND_DEFENSEBUFF_NO_CRIT_BLOCK = 42;
TF_COND_REPROGRAMMED = 43;
TF_COND_CRITBOOSTED_RAGE_BUFF = 44;
TF_COND_DEFENSEBUFF_HIGH = 45;
TF_COND_SNIPERCHARGE_RAGE_BUFF = 46;
TF_COND_DISGUISE_WEARINGOFF = 47;
TF_COND_MARKEDFORDEATH_SILENT = 48;
TF_COND_DISGUISED_AS_DISPENSER = 49;
TF_COND_SAPPED = 50;
TF_COND_INVULNERABLE_HIDE_UNLESS_DAMAGED = 51;
TF_COND_INVULNERABLE_USER_BUFF = 52;
TF_COND_HALLOWEEN_BOMB_HEAD = 53;
TF_COND_HALLOWEEN_THRILLER = 54;
TF_COND_RADIUSHEAL_ON_DAMAGE = 55;
TF_COND_CRITBOOSTED_CARD_EFFECT = 56;
TF_COND_INVULNERABLE_CARD_EFFECT = 57;
TF_COND_MEDIGUN_UBER_BULLET_RESIST = 58;
TF_COND_MEDIGUN_UBER_BLAST_RESIST = 59;
TF_COND_MEDIGUN_UBER_FIRE_RESIST = 60;
TF_COND_MEDIGUN_SMALL_BULLET_RESIST = 61;
TF_COND_MEDIGUN_SMALL_BLAST_RESIST = 62;
TF_COND_MEDIGUN_SMALL_FIRE_RESIST = 63;
TF_COND_STEALTHED_USER_BUFF = 64;
TF_COND_MEDIGUN_DEBUFF = 65;
TF_COND_STEALTHED_USER_BUFF_FADING = 66;
TF_COND_BULLET_IMMUNE = 67;
TF_COND_BLAST_IMMUNE = 68;
TF_COND_FIRE_IMMUNE = 69;
TF_COND_PREVENT_DEATH = 70;
TF_COND_MVM_BOT_STUN_RADIOWAVE = 71;
TF_COND_HALLOWEEN_SPEED_BOOST = 72;
TF_COND_HALLOWEEN_QUICK_HEAL = 73;
TF_COND_HALLOWEEN_GIANT = 74;
TF_COND_HALLOWEEN_TINY = 75;
TF_COND_HALLOWEEN_IN_HELL = 76;
TF_COND_HALLOWEEN_GHOST_MODE = 77;
TF_COND_MINICRITBOOSTED_ON_KILL = 78;
TF_COND_OBSCURED_SMOKE = 79;
TF_COND_PARACHUTE_ACTIVE = 80;
TF_COND_BLASTJUMPING = 81;
TF_COND_HALLOWEEN_KART = 82;
TF_COND_HALLOWEEN_KART_DASH = 83;
TF_COND_BALLOON_HEAD = 84;
TF_COND_MELEE_ONLY = 85;
TF_COND_SWIMMING_CURSE = 86;
TF_COND_FREEZE_INPUT = 87;
TF_COND_HALLOWEEN_KART_CAGE = 88;
TF_COND_DONOTUSE_0 = 89;
TF_COND_RUNE_STRENGTH = 90;
TF_COND_RUNE_HASTE = 91;
TF_COND_RUNE_REGEN = 92;
TF_COND_RUNE_RESIST = 93;
TF_COND_RUNE_VAMPIRE = 94;
TF_COND_RUNE_REFLECT = 95;
TF_COND_RUNE_PRECISION = 96;
TF_COND_RUNE_AGILITY = 97;
TF_COND_GRAPPLINGHOOK = 98;
TF_COND_GRAPPLINGHOOK_SAFEFALL = 99;
TF_COND_GRAPPLINGHOOK_LATCHED = 100;
TF_COND_GRAPPLINGHOOK_BLEEDING = 101;
TF_COND_AFTERBURN_IMMUNE = 102;
TF_COND_RUNE_KNOCKOUT = 103;
TF_COND_RUNE_IMBALANCE = 104;
TF_COND_CRITBOOSTED_RUNE_TEMP = 105;
TF_COND_PASSTIME_INTERCEPTION = 106;
TF_COND_SWIMMING_NO_EFFECTS = 107;
TF_COND_PURGATORY = 108;
TF_COND_RUNE_KING = 109;
TF_COND_RUNE_PLAGUE = 110;
TF_COND_RUNE_SUPERNOVA = 111;
TF_COND_PLAGUE = 112;
TF_COND_KING_BUFFED = 113;
TF_COND_TEAM_GLOWS = 114;
TF_COND_KNOCKED_INTO_AIR = 115;
TF_COND_COMPETITIVE_WINNER = 116;
TF_COND_COMPETITIVE_LOSER = 117;
TF_COND_HEALING_DEBUFF = 118;
TF_COND_PASSTIME_PENALTY_DEBUFF = 119;
TF_COND_PARACHUTE_DEPLOYED = 120;
TF_COND_NO_COMBAT_SPEED_BOOST = 121;
TF_COND_TRANQ_SPY_BOOST = 122;
TF_COND_TRANQ_MARKED = 123;
TF_COND_ROCKETPACK = 126;
TF_COND_ROCKETPACK_PASSENGER = 127;
TF_COND_STEALTHED_PHASE = 128;
TF_COND_CLIP_OVERLOAD = 129;
TF_COND_SPY_CLASS_STEAL = 130;
TF_COND_GAS = 131;
}
enum ETF2Team {
TF_TEAM_RED = 2;
TF_TEAM_BLUE = 3;
}
required .CMsgProtoDefHeader header = 1;
optional string loc_desctoken = 2 [(localized) = true];
optional uint32 points = 3;
optional uint32 conditions_defindex = 5;
repeated string map = 8 [(display_name) = "Maps Modifier", (comment) = "If set, the player must be on one of the listed maps to get credit."];
repeated .CMsgQuestObjectiveDef.ETF2GameModes game_mode = 9 [(display_name) = "Game Mode Modifier", (comment) = "If set, the player must be in one of the listed game modes to get credit."];
optional .CMsgQuestObjectiveDef.ETF2Team team = 10 [default = TF_TEAM_RED, (display_name) = "Team Modifier", (comment) = "If set, the player must be on the specified team to get credit."];
repeated .CMsgVarField condition_vars = 11 [(display_name) = "Objective Vars", (var_field_type) = VAR_TYPE_STRING];
repeated .CMsgVarField classes_vars = 12 [(display_name) = "Class Modifier", (var_field_type) = VAR_TYPE_STRING];
repeated .CMsgQuestObjectiveDef.ETF2Conditions conditions = 13 [(display_name) = "Required Conds"];
optional .LogicalOperation condition_logic = 14 [default = AND, (display_name) = "Condition Logic", (comment) = "What kind of logic to use when evaluating the player's conditions."];
repeated string item_name = 15 [(display_name) = "Required equipped item", (comment) = "Require that this item be equipped in any slot."];
optional .LogicalOperation item_logic = 16 [default = AND, (display_name) = "Item logic", (comment) = "What kind of logic to use when evaluating the player's items."];
optional uint32 jump_state = 17 [(display_name) = "Jump logic", (comment) = "What state of jumping the player needs to be in."];
}
message CMsgQuestDef {
message MMCriteria {
optional string group_name = 1;
optional string category_name = 2;
optional string map_name = 3;
}
message ObjectiveInstance {
optional .CMsgProtoDefID objective = 1 [(valid_type) = DEF_TYPE_QUEST_OBJECTIVE];
optional .EQuestPoints point_type = 2 [default = QUEST_POINTS_NOVICE];
optional uint32 point_value = 3 [(display_name) = "Points Override", (comment) = "Override value for the point value of the objective. If not set, uses the objective's point value"];
}
required .CMsgProtoDefHeader header = 1;
optional uint32 max_points_0 = 2;
optional uint32 max_points_1 = 3;
optional uint32 max_points_2 = 4;
optional string name_loctoken = 5 [(localized) = true];
optional string operation = 7;
optional .CMsgQuestDef.MMCriteria mm_criteria = 8;
optional string node_image = 12 [(display_name) = "Node Image", (comment) = "Filename of the image to show on the node view"];
optional string icon_image = 13 [(display_name) = "Node Icon", (comment) = "Which icon to show on the map"];
optional .CMsgProtoDefID theme = 14 [(valid_type) = DEF_TYPE_QUEST_THEME];
repeated string loaner_names = 15 [(display_name) = "Loaners", (comment) = "Names of items to give as loaners"];
repeated .CMsgQuestDef.ObjectiveInstance objectives = 16;
repeated string map = 17 [(display_name) = "Maps Modifier", (comment) = "If set, the player must be on one of the listed maps to get credit."];
}
message CMsgQuestMapStoreItem {
required .CMsgProtoDefHeader header = 1;
optional string item_name = 2;
optional string reward_lootlist_name = 6 [(display_name) = "Reward Lootlist", (comment) = "The name of the lootlist to roll as a reward"];
optional .CMsgVarField price = 3 [(var_field_type) = VAR_TYPE_SINT32];
optional uint32 purchase_limit = 4 [(display_name) = "Purchase Limit", (comment) = "How many times this reward can be purchased"];
optional uint32 sort_group = 5 [(display_name) = "Sort group", (comment) = "Sort by this group, then alhpabetically"];
}
message CMsgQuestMapRegionDef {
message RegionLink {
required .CMsgProtoDefID target_region_defid = 1 [(valid_type) = DEF_TYPE_QUEST_MAP_REGION];
optional uint32 xpos = 2;
optional uint32 ypos = 3;
}
required .CMsgProtoDefHeader header = 1;
optional string name = 2 [(localized) = true];
optional string resfile = 3;
repeated .CMsgQuestMapRegionDef.RegionLink links = 4;
optional .CMsgProtoDefID return_link = 5 [(valid_type) = DEF_TYPE_QUEST_MAP_REGION, (display_name) = "Return Link", (comment) = "Which link we go to when right-clicking in this region"];
optional float radio_freq = 6 [(display_name) = "Radio Freq.", (comment) = "Where the radio tuner goes on the CYOA PDA when this region is selection"];
optional float zoom_scale = 7 [(display_name) = "Zoom Scale", (comment) = "How zoomed in this panel should be. Affects the scale of the map grid lines and node link dashed lines"];
optional .CMsgProtoDefID star_type = 8 [(valid_type) = DEF_TYPE_QUEST_MAP_STAR_TYPE, (display_name) = "Star Type", (comment) = "What stars (if any) the nodes within use to unlock"];
}
message CMsgVarField {
optional string variable = 1 [(merging_key_field) = true];
oneof value {
float float = 2;
double double = 3;
uint32 uint32 = 4;
uint64 uint64 = 5;
sint32 sint32 = 6;
sint64 sint64 = 7;
bool bool = 8;
string string = 9;
}
}
message CMsgQuestMapStarType {
required .CMsgProtoDefHeader header = 1;
optional string name = 2 [(localized) = true, (display_name) = "Type Name"];
}
message CMsgQuestMapNodeDef {
required .CMsgProtoDefHeader header = 1;
optional string name_loctoken = 4 [(localized) = true, (display_name) = "Node Name", (comment) = "The name of this node"];
optional float x_pos = 6 [(display_name) = "Map X Pos", (comment) = "X position on the quest map"];
optional float y_pos = 7 [(display_name) = "Map Y Pos", (comment) = "Y position on the quest map"];
optional .CMsgQuestMapNodeCondition condition = 9 [(display_name) = "Conditions", (comment) = "Logic to unlock this node. Can be nested with logic"];
optional .CMsgProtoDefID owning_region = 10 [(valid_type) = DEF_TYPE_QUEST_MAP_REGION, (display_name) = "Region", (comment) = "Which region in the map this node shows up in"];
repeated .CMsgProtoDefID quest_options = 11 [(valid_type) = DEF_TYPE_QUEST, (display_name) = "Offered Quests", (comment) = "Which quests this node offers.", (max_count) = 3];
optional string associated_operation = 16 [(display_name) = "Associated Operation", (comment) = "Operation this node is associated with"];
optional string reward_item_name = 18 [(display_name) = "Reward Item", (comment) = "The name of an item to give as a reward"];
optional string reward_lootlist_name = 22 [(display_name) = "Reward Lootlist", (comment) = "The name of the lootlist to roll as a reward"];
optional .ENodeCashReward cash_reward = 19 [default = CASH_REWARD_NONE, (display_name) = "Cash Reward", (comment) = "How much cash to give when completing the primary objective"];
optional .CMsgProtoDefID star_type = 20 [(valid_type) = DEF_TYPE_QUEST_MAP_STAR_TYPE, (display_name) = "Star Type", (comment) = "Which type of star this node uses"];
optional uint32 stars_to_unlock = 21 [default = 1, (display_name) = "Stars to Unlock", (comment) = "Numbers of stars it costs to unlock"];
}
message CMsgPaintKit_Variables {
required .CMsgProtoDefHeader header = 1;
}
message CMsgPaintKit_Operation_TextureStage {
optional .CMsgVarField texture = 1 [(var_field_type) = VAR_TYPE_STRING];
optional .CMsgVarField texture_red = 2 [(var_field_type) = VAR_TYPE_STRING];
optional .CMsgVarField texture_blue = 3 [(var_field_type) = VAR_TYPE_STRING];
optional .CMsgVarField adjust_black = 4 [(var_field_type) = VAR_TYPE_STRING];
optional .CMsgVarField adjust_offset = 5 [(var_field_type) = VAR_TYPE_STRING];
optional .CMsgVarField adjust_gamma = 6 [(var_field_type) = VAR_TYPE_STRING];
optional .CMsgVarField rotation = 7 [(var_field_type) = VAR_TYPE_STRING];
optional .CMsgVarField translate_u = 8 [(var_field_type) = VAR_TYPE_STRING];
optional .CMsgVarField translate_v = 9 [(var_field_type) = VAR_TYPE_STRING];
optional .CMsgVarField scale_uv = 10 [(var_field_type) = VAR_TYPE_STRING];
optional .CMsgVarField flip_u = 11 [(var_field_type) = VAR_TYPE_STRING];
optional .CMsgVarField flip_v = 12 [(var_field_type) = VAR_TYPE_STRING];
}
message CMsgPaintKit_Operation_CombineStage {
optional .CMsgVarField adjust_black = 1 [(var_field_type) = VAR_TYPE_STRING];
optional .CMsgVarField adjust_offset = 2 [(var_field_type) = VAR_TYPE_STRING];
optional .CMsgVarField adjust_gamma = 3 [(var_field_type) = VAR_TYPE_STRING];
optional .CMsgVarField rotation = 4 [(var_field_type) = VAR_TYPE_STRING];
optional .CMsgVarField translate_u = 5 [(var_field_type) = VAR_TYPE_STRING];
optional .CMsgVarField translate_v = 6 [(var_field_type) = VAR_TYPE_STRING];
optional .CMsgVarField scale_uv = 7 [(var_field_type) = VAR_TYPE_STRING];
optional .CMsgVarField flip_u = 8 [(var_field_type) = VAR_TYPE_STRING];
optional .CMsgVarField flip_v = 9 [(var_field_type) = VAR_TYPE_STRING];
repeated .CMsgPaintKit_OperationNode operation_node = 11;
}
message CMsgPaintKit_Operation_SelectStage {
optional .CMsgVarField groups = 1 [(var_field_type) = VAR_TYPE_STRING];
repeated .CMsgVarField select = 2 [(max_count) = 16, (var_field_type) = VAR_TYPE_STRING];
}
message CMsgPaintKit_Operation_Sticker {
optional .CMsgVarField base = 1 [(comment) = "Name of the base file for the sticker (the albedo)", (var_field_type) = VAR_TYPE_STRING];
optional .CMsgVarField weight = 2 [(comment) = "Random likelihood this one is to be selected", (var_field_type) = VAR_TYPE_STRING];
optional .CMsgVarField spec = 3 [(comment) = "Name of the specular file for the sticker, or if blank we will assume it is baseFilename + _spec + baseExtension", (var_field_type) = VAR_TYPE_STRING];
}
message CMsgPaintKit_Operation_StickerStage {
repeated .CMsgPaintKit_Operation_Sticker sticker = 1;
optional .CMsgVarField dest_tl = 2 [(var_field_type) = VAR_TYPE_STRING];
optional .CMsgVarField dest_tr = 3 [(var_field_type) = VAR_TYPE_STRING];
optional .CMsgVarField dest_bl = 4 [(var_field_type) = VAR_TYPE_STRING];
optional .CMsgVarField adjust_black = 5 [(var_field_type) = VAR_TYPE_STRING];
optional .CMsgVarField adjust_offset = 6 [(var_field_type) = VAR_TYPE_STRING];
optional .CMsgVarField adjust_gamma = 7 [(var_field_type) = VAR_TYPE_STRING];
repeated .CMsgPaintKit_OperationNode operation_node = 9;
}
message CMsgPaintKit_OperationStage {
oneof stage {
.CMsgPaintKit_Operation_TextureStage texture_lookup = 1;
.CMsgPaintKit_Operation_CombineStage combine_add = 2;
.CMsgPaintKit_Operation_CombineStage combine_lerp = 3;
.CMsgPaintKit_Operation_CombineStage combine_multiply = 4;
.CMsgPaintKit_Operation_SelectStage select = 5;
.CMsgPaintKit_Operation_StickerStage apply_sticker = 6;
}
}
message CMsgPaintKit_OperationNode {
oneof node {
.CMsgPaintKit_OperationStage stage = 1;
.CMsgProtoDefID operation_template = 2 [(valid_type) = DEF_TYPE_PAINTKIT_OPERATION, (inherit_reference_variables) = true];
}
}
message CMsgPaintKit_Operation {
required .CMsgProtoDefHeader header = 1;
repeated .CMsgPaintKit_OperationNode operation_node = 2;
}
message CMsgPaintKit_ItemDefinition {
message Definition {
optional .CMsgProtoDefID operation_template = 1 [(valid_type) = DEF_TYPE_PAINTKIT_OPERATION];
repeated .CMsgVarField variable = 2 [(allow_add) = false, (allow_delete) = false, (var_field_type) = VAR_TYPE_STRING];
}
required .CMsgProtoDefHeader header = 1;
required uint32 item_definition_index = 2;
optional .CMsgProtoDefID variable_template = 3 [(valid_type) = DEF_TYPE_PAINTKIT_VARIABLES, (inherit_reference_variables) = true];
repeated .CMsgPaintKit_ItemDefinition.Definition definition = 4 [(max_count) = 5];
}
message CMsgPaintKit_Definition {
message Item {
option (start_expanded) = false;
message ItemData {
optional bool can_apply_paintkit = 2 [default = true];
optional string material_override = 3;
repeated .CMsgVarField variable = 4 [(allow_add) = false, (allow_delete) = false, (var_field_type) = VAR_TYPE_STRING];
}
required .CMsgProtoDefID item_definition_template = 1 [(valid_type) = DEF_TYPE_PAINTKIT_ITEM_DEFINITION, (panel_class_override) = "CPaintKitDefIdFieldProtoEditorField"];
optional .CMsgPaintKit_Definition.Item.ItemData data = 5;
}
required .CMsgProtoDefHeader header = 1;
optional string loc_desctoken = 2 [(localized) = true];
optional .CMsgProtoDefID operation_template = 3 [(valid_type) = DEF_TYPE_PAINTKIT_OPERATION, (comment) = "operation template which all items in the list will use unless there's operation_template specified in an item_definition", (inherit_reference_variables) = true];
optional bool has_team_textures = 4;
repeated .CMsgPaintKit_Definition.Item item = 5;
optional .CMsgPaintKit_Definition.Item paintkit_tool = 6;
optional .CMsgPaintKit_Definition.Item flamethrower = 7;
optional .CMsgPaintKit_Definition.Item grenadelauncher = 8;
optional .CMsgPaintKit_Definition.Item knife = 9;
optional .CMsgPaintKit_Definition.Item medigun = 10;
optional .CMsgPaintKit_Definition.Item minigun = 11;
optional .CMsgPaintKit_Definition.Item pistol = 12;
optional .CMsgPaintKit_Definition.Item revolver = 13;
optional .CMsgPaintKit_Definition.Item rocketlauncher = 14;
optional .CMsgPaintKit_Definition.Item scattergun = 15;
optional .CMsgPaintKit_Definition.Item shotgun = 16;
optional .CMsgPaintKit_Definition.Item smg = 17;
optional .CMsgPaintKit_Definition.Item sniperrifle = 18;
optional .CMsgPaintKit_Definition.Item stickybomb_launcher = 19;
optional .CMsgPaintKit_Definition.Item ubersaw = 20;
optional .CMsgPaintKit_Definition.Item wrench = 21;
optional .CMsgPaintKit_Definition.Item amputator = 22;
optional .CMsgPaintKit_Definition.Item atom_launcher = 23;
optional .CMsgPaintKit_Definition.Item back_scratcher = 24;
optional .CMsgPaintKit_Definition.Item battleaxe = 25;
optional .CMsgPaintKit_Definition.Item bazaar_sniper = 26;
optional .CMsgPaintKit_Definition.Item blackbox = 27;
optional .CMsgPaintKit_Definition.Item claidheamohmor = 28;
optional .CMsgPaintKit_Definition.Item crusaders_crossbow = 29;
optional .CMsgPaintKit_Definition.Item degreaser = 30;
optional .CMsgPaintKit_Definition.Item demo_cannon = 31;
optional .CMsgPaintKit_Definition.Item demo_sultan_sword = 32;
optional .CMsgPaintKit_Definition.Item detonator = 33;
optional .CMsgPaintKit_Definition.Item gatling_gun = 34;
optional .CMsgPaintKit_Definition.Item holymackerel = 35;
optional .CMsgPaintKit_Definition.Item jag = 36;
optional .CMsgPaintKit_Definition.Item lochnload = 37;
optional .CMsgPaintKit_Definition.Item powerjack = 38;
optional .CMsgPaintKit_Definition.Item quadball = 39;
optional .CMsgPaintKit_Definition.Item reserve_shooter = 40;
optional .CMsgPaintKit_Definition.Item riding_crop = 41;
optional .CMsgPaintKit_Definition.Item russian_riot = 42;
optional .CMsgPaintKit_Definition.Item scimitar = 43;
optional .CMsgPaintKit_Definition.Item scorch_shot = 44;
optional .CMsgPaintKit_Definition.Item shortstop = 45;
optional .CMsgPaintKit_Definition.Item soda_popper = 46;
optional .CMsgPaintKit_Definition.Item tele_shotgun = 47;
optional .CMsgPaintKit_Definition.Item tomislav = 48;
optional .CMsgPaintKit_Definition.Item trenchgun = 49;
optional .CMsgPaintKit_Definition.Item winger_pistol = 50;
}
message CMsgQuestTheme {
message WeightedString {
optional string string = 1;
optional uint32 weight = 2;
}
message WeightedStringSet {
repeated .CMsgQuestTheme.WeightedString weighted_strings = 1;
}
required .CMsgProtoDefHeader header = 1;
optional string notification_res = 2;
optional string quest_item_res = 3;
optional string in_game_tracker_res = 4;
repeated .CMsgQuestTheme.WeightedStringSet give_sounds = 5;
repeated .CMsgQuestTheme.WeightedStringSet complete_sounds = 6;
repeated .CMsgQuestTheme.WeightedStringSet fully_complete_sounds = 7;
optional string reward_sound = 8;
optional string discard_sound = 9;
optional string reveal_sound = 10;
}
message CMsgQuestMapNodeCondition_NodeState {
optional uint32 bonus_objectives_required = 1 [default = 0, (display_name) = "Bonus Required", (comment) = "Number of bonus objectives required, on top of the primary objective"];
required .CMsgProtoDefID target_node_defid = 2 [(valid_type) = DEF_TYPE_QUEST_MAP_NODE, (display_name) = "Target Node", (comment) = "Which node is required to have the above number of medals"];
}
message CMsgQuestMapNodeCondition_Logic {
required .LogicalOperation operation = 1 [default = AND, (display_name) = "Logic", (comment) = "Logical operation"];
repeated .CMsgQuestMapNodeCondition sub_conditions = 2 [(display_name) = "Operands", (comment) = "Definitions to use in the logical operation"];
}
message CMsgQuestMapNodeCondition {
oneof operation {
.CMsgQuestMapNodeCondition_NodeState node_state = 1 [(display_name) = "Node State Condition", (comment) = "Returns true if a specific node has a required number of medals"];
.CMsgQuestMapNodeCondition_Logic logical = 2 [(display_name) = "Logical Condition", (comment) = "Performs a specified logical operation to all sub conditions"];
}
}
message CMsgHeaderOnly {
required .CMsgProtoDefHeader header = 1;
}