import "steammessages.proto"; option optimize_for = SPEED; option cc_generic_services = false; enum ESourceEngine { k_ESE_Source1 = 0; k_ESE_Source2 = 1; } enum PartnerAccountType { PARTNER_NONE = 0; PARTNER_PERFECT_WORLD = 1; PARTNER_INVALID = 3; } enum GCConnectionStatus { GCConnectionStatus_HAVE_SESSION = 0; GCConnectionStatus_GC_GOING_DOWN = 1; GCConnectionStatus_NO_SESSION = 2; GCConnectionStatus_NO_SESSION_IN_LOGON_QUEUE = 3; GCConnectionStatus_NO_STEAM = 4; GCConnectionStatus_SUSPENDED = 5; GCConnectionStatus_STEAM_GOING_DOWN = 6; } message CMsgSHA1Digest { required fixed64 block1 = 1; required fixed64 block2 = 2; required fixed32 block3 = 3; } message CMsgSOIDOwner { optional uint32 type = 1; optional uint64 id = 2; } message CMsgSOSingleObject { optional int32 type_id = 2; optional bytes object_data = 3; optional fixed64 version = 4; optional .CMsgSOIDOwner owner_soid = 5; optional uint32 service_id = 6; } message CMsgSOMultipleObjects { message SingleObject { option (msgpool_soft_limit) = 256; option (msgpool_hard_limit) = 1024; optional int32 type_id = 1; optional bytes object_data = 2; } repeated .CMsgSOMultipleObjects.SingleObject objects_modified = 2; optional fixed64 version = 3; repeated .CMsgSOMultipleObjects.SingleObject objects_added = 4; repeated .CMsgSOMultipleObjects.SingleObject objects_removed = 5; optional .CMsgSOIDOwner owner_soid = 6; optional uint32 service_id = 7; } message CMsgSOCacheSubscribed { message SubscribedType { optional int32 type_id = 1; repeated bytes object_data = 2; } repeated .CMsgSOCacheSubscribed.SubscribedType objects = 2; optional fixed64 version = 3; optional .CMsgSOIDOwner owner_soid = 4; optional uint32 service_id = 5; repeated uint32 service_list = 6; optional fixed64 sync_version = 7; } message CMsgSOCacheSubscribedUpToDate { optional fixed64 version = 1; optional .CMsgSOIDOwner owner_soid = 2; optional uint32 service_id = 3; repeated uint32 service_list = 4; optional fixed64 sync_version = 5; } message CMsgSOCacheUnsubscribed { optional .CMsgSOIDOwner owner_soid = 2; } message CMsgSOCacheSubscriptionCheck { optional fixed64 version = 2; optional .CMsgSOIDOwner owner_soid = 3; optional uint32 service_id = 4; repeated uint32 service_list = 5; optional fixed64 sync_version = 6; } message CMsgSOCacheSubscriptionRefresh { optional .CMsgSOIDOwner owner_soid = 2; } message CMsgSOCacheVersion { optional fixed64 version = 1; } message CMsgGCMultiplexMessage { optional uint32 msgtype = 1; optional bytes payload = 2; repeated fixed64 steamids = 3; } message CMsgGCToGCSubGCStarting { optional uint32 dir_index = 1; } message CGCToGCMsgMasterAck { message Process { optional uint32 dir_index = 1; repeated uint32 type_instances = 2; } optional uint32 dir_index = 1; optional string machine_name = 3; optional string process_name = 4; repeated .CGCToGCMsgMasterAck.Process directory = 6; } message CGCToGCMsgMasterAck_Response { optional int32 eresult = 1 [default = 2]; } message CMsgGCToGCUniverseStartup { optional bool is_initial_startup = 1; } message CMsgGCToGCUniverseStartupResponse { optional int32 eresult = 1; } message CGCToGCMsgMasterStartupComplete { message GCInfo { optional uint32 dir_index = 1; optional string machine_name = 2; } repeated .CGCToGCMsgMasterStartupComplete.GCInfo gc_info = 1; } message CGCToGCMsgRouted { optional uint32 msg_type = 1; optional fixed64 sender_id = 2; optional bytes net_message = 3; } message CGCToGCMsgRoutedReply { optional uint32 msg_type = 1; optional bytes net_message = 2; } message CMsgGCUpdateSubGCSessionInfo { message CMsgUpdate { optional fixed64 steamid = 1; optional fixed32 ip = 2; optional bool trusted = 3; } repeated .CMsgGCUpdateSubGCSessionInfo.CMsgUpdate updates = 1; } message CMsgGCRequestSubGCSessionInfo { optional fixed64 steamid = 1; } message CMsgGCRequestSubGCSessionInfoResponse { optional fixed32 ip = 1; optional bool trusted = 2; optional uint32 port = 3; optional bool success = 4; } message CMsgSOCacheHaveVersion { optional .CMsgSOIDOwner soid = 1; optional fixed64 version = 2; optional uint32 service_id = 3; optional uint32 cached_file_version = 4; } message CMsgClientHello { optional uint32 version = 1; repeated .CMsgSOCacheHaveVersion socache_have_versions = 2; optional uint32 client_session_need = 3; optional .PartnerAccountType client_launcher = 4 [default = PARTNER_NONE]; optional string secret_key = 5; optional uint32 client_language = 6; optional .ESourceEngine engine = 7 [default = k_ESE_Source1]; optional bytes steamdatagram_login = 8; optional uint32 platform_id = 9; optional bytes game_msg = 10; optional int32 os_type = 11; optional uint32 render_system = 12; optional uint32 render_system_req = 13; optional uint32 screen_width = 14; optional uint32 screen_height = 15; optional uint32 screen_refresh = 16; optional uint32 render_width = 17; optional uint32 render_height = 18; optional uint32 swap_width = 19; optional uint32 swap_height = 20; } message CMsgClientWelcome { message Location { optional float latitude = 1; optional float longitude = 2; optional string country = 3; } optional uint32 version = 1; optional bytes game_data = 2; repeated .CMsgSOCacheSubscribed outofdate_subscribed_caches = 3; repeated .CMsgSOCacheSubscriptionCheck uptodate_subscribed_caches = 4; optional .CMsgClientWelcome.Location location = 5; optional bytes save_game_key = 6; optional fixed32 item_schema_crc = 7; optional string items_game_url = 8; optional uint32 gc_socache_file_version = 9; optional string txn_country_code = 10; } message CMsgConnectionStatus { optional .GCConnectionStatus status = 1 [default = GCConnectionStatus_HAVE_SESSION]; optional uint32 client_session_need = 2; optional int32 queue_position = 3; optional int32 queue_size = 4; optional int32 wait_seconds = 5; optional int32 estimated_wait_seconds_remaining = 6; } message CMsgGCToGCSOCacheSubscribe { message CMsgHaveVersions { optional uint32 service_id = 1; optional uint64 version = 2; } optional fixed64 subscriber = 1; optional fixed64 subscribe_to_id = 2; optional fixed64 sync_version = 3; repeated .CMsgGCToGCSOCacheSubscribe.CMsgHaveVersions have_versions = 4; optional uint32 subscribe_to_type = 5; } message CMsgGCToGCSOCacheUnsubscribe { optional fixed64 subscriber = 1; optional fixed64 unsubscribe_from_id = 2; optional uint32 unsubscribe_from_type = 3; } message CMsgGCClientPing { } message CMsgGCToGCForwardAccountDetails { optional fixed64 steamid = 1; optional .CGCSystemMsg_GetAccountDetails_Response account_details = 2; optional uint32 age_seconds = 3; } message CMsgGCToGCLoadSessionSOCache { optional uint32 account_id = 1; optional .CMsgGCToGCForwardAccountDetails forward_account_details = 2; } message CMsgGCToGCLoadSessionSOCacheResponse { } message CMsgGCToGCUpdateSessionStats { optional uint32 user_sessions = 1; optional uint32 server_sessions = 2; optional bool in_logon_surge = 3; } message CMsgGCToClientRequestDropped { } message CWorkshop_PopulateItemDescriptions_Request { message SingleItemDescription { optional uint32 gameitemid = 1; optional string item_description = 2; } message ItemDescriptionsLanguageBlock { optional string language = 1; repeated .CWorkshop_PopulateItemDescriptions_Request.SingleItemDescription descriptions = 2; } optional uint32 appid = 1; repeated .CWorkshop_PopulateItemDescriptions_Request.ItemDescriptionsLanguageBlock languages = 2; } message CWorkshop_GetContributors_Request { optional uint32 appid = 1; optional uint32 gameitemid = 2; } message CWorkshop_GetContributors_Response { repeated fixed64 contributors = 1; } message CWorkshop_SetItemPaymentRules_Request { message WorkshopItemPaymentRule { optional uint64 workshop_file_id = 1; optional float revenue_percentage = 2; optional string rule_description = 3; optional uint32 rule_type = 4; } message PartnerItemPaymentRule { optional uint32 account_id = 1; optional float revenue_percentage = 2; optional string rule_description = 3; } optional uint32 appid = 1; optional uint32 gameitemid = 2; repeated .CWorkshop_SetItemPaymentRules_Request.WorkshopItemPaymentRule associated_workshop_files = 3; repeated .CWorkshop_SetItemPaymentRules_Request.PartnerItemPaymentRule partner_accounts = 4; optional bool validate_only = 5; optional bool make_workshop_files_subscribable = 6; } message CWorkshop_SetItemPaymentRules_Response { repeated string validation_errors = 1; } message CCommunity_ClanAnnouncementInfo { optional uint64 gid = 1; optional uint64 clanid = 2; optional uint64 posterid = 3; optional string headline = 4; optional uint32 posttime = 5; optional uint32 updatetime = 6; optional string body = 7; optional int32 commentcount = 8; repeated string tags = 9; optional int32 language = 10; optional bool hidden = 11; optional fixed64 forum_topic_id = 12; } message CCommunity_GetClanAnnouncements_Request { optional uint64 steamid = 1; optional uint32 offset = 2; optional uint32 count = 3; optional uint32 maxchars = 4; optional bool strip_html = 5; repeated string required_tags = 6; optional bool require_no_tags = 7; repeated uint32 language_preference = 8; optional bool hidden_only = 9; optional bool only_gid = 10; optional uint32 rtime_oldest_date = 11; optional bool include_hidden = 12; optional bool include_partner_events = 13; } message CCommunity_GetClanAnnouncements_Response { optional uint32 maxchars = 1; optional bool strip_html = 2; repeated .CCommunity_ClanAnnouncementInfo announcements = 3; } message CBroadcast_PostGameDataFrame_Request { optional uint32 appid = 1; optional fixed64 steamid = 2; optional fixed64 broadcast_id = 3; optional bytes frame_data = 4; } message CMsgSerializedSOCache { message TypeCache { optional uint32 type = 1; repeated bytes objects = 2; optional uint32 service_id = 3; } message Cache { message Version { optional uint32 service = 1; optional uint64 version = 2; } optional uint32 type = 1; optional uint64 id = 2; repeated .CMsgSerializedSOCache.Cache.Version versions = 3; repeated .CMsgSerializedSOCache.TypeCache type_caches = 4; } optional uint32 file_version = 1; repeated .CMsgSerializedSOCache.Cache caches = 2; optional uint32 gc_socache_file_version = 3; } message CMsgGCToClientPollConvarRequest { optional string convar_name = 1; optional uint32 poll_id = 2; } message CMsgGCToClientPollConvarResponse { optional uint32 poll_id = 1; optional string convar_value = 2; } message CGCMsgCompressedMsgToClient { optional uint32 msg_id = 1; optional bytes compressed_msg = 2; } message CMsgGCToGCMasterBroadcastMessage { optional uint32 users_per_second = 1; optional bool send_to_users = 2; optional bool send_to_servers = 3; optional uint32 msg_id = 4; optional bytes msg_data = 5; } message CMsgGCToGCMasterSubscribeToCache { optional uint32 soid_type = 1; optional fixed64 soid_id = 2; repeated uint32 account_ids = 3; repeated fixed64 steam_ids = 4; } message CMsgGCToGCMasterSubscribeToCacheResponse { } message CMsgGCToGCMasterSubscribeToCacheAsync { optional .CMsgGCToGCMasterSubscribeToCache subscribe_msg = 1; } message CMsgGCToGCMasterUnsubscribeFromCache { optional uint32 soid_type = 1; optional fixed64 soid_id = 2; repeated uint32 account_ids = 3; repeated fixed64 steam_ids = 4; } message CMsgGCToGCMasterDestroyCache { optional uint32 soid_type = 1; optional fixed64 soid_id = 2; }