import "steammessages.proto"; import "dota_shared_enums.proto"; import "gcsdk_gcmessages.proto"; enum ELobbyMemberCoachRequestState { k_eLobbyMemberCoachRequestState_None = 0; k_eLobbyMemberCoachRequestState_Accepted = 1; k_eLobbyMemberCoachRequestState_Rejected = 2; } enum LobbyDotaTVDelay { LobbyDotaTV_10 = 0; LobbyDotaTV_120 = 1; LobbyDotaTV_300 = 2; LobbyDotaTV_900 = 3; } enum LobbyDotaPauseSetting { LobbyDotaPauseSetting_Unlimited = 0; LobbyDotaPauseSetting_Limited = 1; LobbyDotaPauseSetting_Disabled = 2; } message CMsgLobbyCoachFriendRequest { optional uint32 coach_account_id = 1; optional uint32 player_account_id = 2; optional .ELobbyMemberCoachRequestState request_state = 3 [default = k_eLobbyMemberCoachRequestState_None]; } message CMsgLobbyPlayerPlusSubscriptionData { message HeroBadge { optional uint32 hero_id = 1; optional uint32 hero_badge_xp = 2; } repeated .CMsgLobbyPlayerPlusSubscriptionData.HeroBadge hero_badges = 1; } message CMsgEventActionData { optional uint32 action_id = 1; optional uint32 action_score = 2; } message CMsgPeriodicResourceData { optional uint32 periodic_resource_id = 1; optional uint32 remaining = 2; optional uint32 max = 3; } message CMsgLobbyEventPoints { message AccountPoints { optional uint32 account_id = 1; optional uint32 normal_points = 2; optional uint32 premium_points = 3; optional bool owned = 4; optional uint64 active_effects_mask = 12; optional uint32 wager_streak = 23; repeated .CMsgEventActionData event_game_custom_actions = 25; optional uint32 tip_amount_index = 26; optional uint32 active_event_season_id = 27; optional uint32 teleport_fx_level = 28; repeated .CMsgEventActionData networked_event_actions = 30; repeated .CMsgPeriodicResourceData periodic_resources = 31; repeated .CExtraMsgBlock extra_event_messages = 32; } optional uint32 event_id = 1; repeated .CMsgLobbyEventPoints.AccountPoints account_points = 2; } message CMsgLobbyEventGameData { optional uint32 game_seed = 1; optional uint32 event_window_start_time = 2; } message CSODOTALobbyInvite { message LobbyMember { optional string name = 1; optional fixed64 steam_id = 2; } optional uint64 group_id = 1 [(key_field) = true]; optional fixed64 sender_id = 2; optional string sender_name = 3; repeated .CSODOTALobbyInvite.LobbyMember members = 4; optional uint64 custom_game_id = 5; optional fixed64 invite_gid = 6; optional fixed64 custom_game_crc = 7; optional fixed32 custom_game_timestamp = 8; } message CSODOTALobbyMember { optional fixed64 id = 1 [(key_field) = true]; optional uint32 hero_id = 2; optional .DOTA_GC_TEAM team = 3 [default = DOTA_GC_TEAM_GOOD_GUYS]; optional string name = 6; optional uint32 slot = 7; optional uint64 party_id = 12; optional uint32 meta_level = 13; optional uint32 meta_xp = 14; optional uint32 meta_xp_awarded = 15; optional .DOTALeaverStatus_t leaver_status = 16 [default = DOTA_LEAVER_NONE]; optional uint32 leaver_actions = 28; optional uint32 channel = 17 [default = 6]; repeated uint32 disabled_hero_id = 20; repeated uint32 enabled_hero_id = 22; optional .DOTA_GC_TEAM coach_team = 23 [default = DOTA_GC_TEAM_NOTEAM]; repeated uint32 coached_account_ids = 53; optional uint32 coach_rating = 42; optional uint32 pwrd_cyber_cafe_id = 24; optional string pwrd_cyber_cafe_name = 25; repeated fixed32 disabled_random_hero_bits = 41; optional sint32 rank_change = 29; optional bool cameraman = 30; repeated uint32 custom_game_product_ids = 31; optional .MatchType search_match_type = 33 [default = MATCH_TYPE_CASUAL]; optional uint64 favorite_team_packed = 35; optional bool is_plus_subscriber = 36; optional uint32 lane_selection_flags = 38; optional bool can_earn_rewards = 39; optional .DOTA_GC_TEAM live_spectator_team = 40 [default = DOTA_GC_TEAM_NOTEAM]; optional bool was_mvp_last_game = 43; repeated .CMsgPendingEventAward pending_awards = 44; repeated .CMsgPendingEventAward pending_awards_on_victory = 45; optional .EDOTAMMRBoostType rank_mmr_boost_type = 46 [default = k_EDOTAMMRBoostType_None]; optional sint32 queue_point_adjustment = 47; optional int32 rank_tier = 48; optional uint32 title = 50; optional uint32 guild_id = 51; optional uint32 reports_available = 52; optional bool is_steam_china = 54; optional uint32 live_spectator_account_id = 55; optional uint32 comms_reports_available = 56; } message CSODOTAServerLobbyMember { } message CSODOTAStaticLobbyMember { } message CSODOTAServerStaticLobbyMember { } message CLobbyTeamDetails { optional string team_name = 1; optional string team_tag = 3; optional uint32 team_id = 4; optional uint64 team_logo = 5; optional uint64 team_base_logo = 6; optional uint64 team_banner_logo = 7; optional bool team_complete = 8; optional uint32 rank = 15; optional sint32 rank_change = 16; optional bool is_home_team = 17; optional bool is_challenge_match = 18; optional uint64 challenge_match_token_account = 19; optional string team_logo_url = 20; optional string team_abbreviation = 21; } message CLobbyGuildDetails { optional uint32 guild_id = 1; optional uint32 guild_primary_color = 2; optional uint32 guild_secondary_color = 3; optional uint32 guild_pattern = 4; optional uint64 guild_logo = 5; optional uint32 guild_points = 6; optional uint32 guild_event = 7; optional uint32 guild_flags = 8; optional .DOTA_GC_TEAM team_for_guild = 9 [default = DOTA_GC_TEAM_GOOD_GUYS]; optional string guild_tag = 10; optional uint32 guild_weekly_percentile = 11; } message CLobbyTimedRewardDetails { optional uint32 item_def_index = 2; optional bool is_supply_crate = 3; optional bool is_timed_drop = 4; optional uint32 account_id = 5; optional uint32 origin = 6; } message CLobbyBroadcastChannelInfo { optional uint32 channel_id = 1; optional string country_code = 2; optional string description = 3; optional string language_code = 4; } message CLobbyGuildChallenge { optional uint32 guild_id = 1; optional .EEvent event_id = 2 [default = EVENT_ID_NONE]; optional uint32 challenge_instance_id = 3; optional uint32 challenge_parameter = 4; optional uint32 challenge_timestamp = 5; optional uint32 challenge_period_serial = 6; optional uint32 challenge_progress_at_start = 7; repeated uint32 eligible_account_ids = 8; } message CSODOTALobby { message CExtraMsg { optional uint32 id = 1; optional bytes contents = 2; } enum State { UI = 0; READYUP = 4; SERVERSETUP = 1; RUN = 2; POSTGAME = 3; NOTREADY = 5; SERVERASSIGN = 6; } enum LobbyType { INVALID = -1; CASUAL_MATCH = 0; PRACTICE = 1; COOP_BOT_MATCH = 4; COMPETITIVE_MATCH = 7; WEEKEND_TOURNEY = 9; LOCAL_BOT_MATCH = 10; SPECTATOR = 11; EVENT_MATCH = 12; NEW_PLAYER_POOL = 14; FEATURED_GAMEMODE = 15; } optional uint64 lobby_id = 1 [(key_field) = true]; repeated .CSODOTALobbyMember all_members = 120; repeated uint32 member_indices = 121; repeated uint32 left_member_indices = 122; repeated uint32 free_member_indices = 123; optional fixed64 leader_id = 11; optional fixed64 server_id = 6 [default = 0]; optional uint32 game_mode = 3; repeated fixed64 pending_invites = 10; optional .CSODOTALobby.State state = 4 [default = UI]; optional string connect = 5; optional .CSODOTALobby.LobbyType lobby_type = 12 [default = INVALID]; optional bool allow_cheats = 13; optional bool fill_with_bots = 14; optional bool intro_mode = 15; optional string game_name = 16; repeated .CLobbyTeamDetails team_details = 17; optional uint32 tutorial_lesson = 18; optional uint32 tournament_id = 19; optional uint32 tournament_game_id = 20; optional uint32 server_region = 21 [default = 0]; optional .DOTA_GameState game_state = 22 [default = DOTA_GAMERULES_STATE_INIT]; optional uint32 num_spectators = 23; optional uint32 matchgroup = 25; optional .DOTA_CM_PICK cm_pick = 28 [default = DOTA_CM_RANDOM]; optional uint64 match_id = 30; optional bool allow_spectating = 31 [default = true]; optional .DOTABotDifficulty bot_difficulty_radiant = 36 [default = BOT_DIFFICULTY_HARD]; repeated .CLobbyTimedRewardDetails timed_reward_details = 38; optional string pass_key = 39; optional uint32 leagueid = 42; optional uint32 penalty_level_radiant = 43 [default = 0]; optional uint32 penalty_level_dire = 44 [default = 0]; optional uint32 load_game_id = 45; optional uint32 series_type = 46; optional uint32 radiant_series_wins = 47; optional uint32 dire_series_wins = 48; optional uint32 loot_generated = 49; optional uint32 loot_awarded = 50; optional bool allchat = 51 [default = false]; optional .LobbyDotaTVDelay dota_tv_delay = 53 [default = LobbyDotaTV_10]; optional string custom_game_mode = 54; optional string custom_map_name = 55; optional uint32 custom_difficulty = 56; optional bool lan = 57; repeated .CLobbyBroadcastChannelInfo broadcast_channel_info = 58; optional uint32 first_leaver_accountid = 59; optional uint32 series_id = 60; optional bool low_priority = 61; repeated .CSODOTALobby.CExtraMsg extra_messages = 62; optional .CDOTASaveGame save_game = 63; optional bool first_blood_happened = 65; optional .EMatchOutcome match_outcome = 70 [default = k_EMatchOutcome_Unknown]; optional bool mass_disconnect = 67; optional uint64 custom_game_id = 68; optional uint32 custom_min_players = 71; optional uint32 custom_max_players = 72; optional .DOTALobbyVisibility visibility = 75 [default = DOTALobbyVisibility_Public]; optional fixed64 custom_game_crc = 76; optional bool custom_game_auto_created_lobby = 77; optional fixed32 custom_game_timestamp = 80; repeated uint64 previous_series_matches = 81; optional uint64 previous_match_override = 82; optional uint32 game_start_time = 87; optional .LobbyDotaPauseSetting pause_setting = 88 [default = LobbyDotaPauseSetting_Unlimited]; optional uint32 weekend_tourney_division_id = 90; optional uint32 weekend_tourney_skill_level = 91; optional uint32 weekend_tourney_bracket_round = 92; optional .DOTABotDifficulty bot_difficulty_dire = 93 [default = BOT_DIFFICULTY_HARD]; optional uint64 bot_radiant = 94; optional uint64 bot_dire = 95; repeated .EEvent event_progression_enabled = 96; optional .DOTASelectionPriorityRules selection_priority_rules = 97 [default = k_DOTASelectionPriorityRules_Manual]; optional uint32 series_previous_selection_priority_team_id = 98; optional uint32 series_current_selection_priority_team_id = 99; optional .DOTASelectionPriorityChoice series_current_priority_team_choice = 100 [default = k_DOTASelectionPriorityChoice_Invalid]; optional .DOTASelectionPriorityChoice series_current_non_priority_team_choice = 101 [default = k_DOTASelectionPriorityChoice_Invalid]; optional bool series_current_selection_priority_used_coin_toss = 102; optional .EEvent current_primary_event = 103 [default = EVENT_ID_NONE]; repeated uint32 emergency_disabled_hero_ids = 105; optional fixed64 custom_game_private_key = 106; optional bool custom_game_penalties = 107; optional string lan_host_ping_location = 109; optional uint32 league_node_id = 110; optional uint32 match_duration = 111; optional uint32 league_phase = 113; optional bool experimental_gameplay_enabled = 116; repeated .CLobbyGuildChallenge guild_challenges = 117; repeated .CLobbyGuildDetails guild_details = 118; repeated .CMsgLobbyEventPoints lobby_event_points = 119; repeated uint32 requested_hero_ids = 124; repeated .CMsgLobbyCoachFriendRequest coach_friend_requests = 125; optional bool is_in_steam_china = 126; optional bool with_scenario_save = 127; optional uint32 lobby_creation_time = 128; optional string event_game_definition = 129; repeated .CSODOTALobby.CExtraMsg extra_startup_messages = 130; } message CSODOTAServerLobby { repeated .CSODOTAServerLobbyMember all_members = 1; } message CSODOTAStaticLobby { repeated .CSODOTAStaticLobbyMember all_members = 1; optional bool is_player_draft = 2; optional bool is_last_match_in_series = 3; } message CSODOTAServerStaticLobby { repeated .CSODOTAServerStaticLobbyMember all_members = 1; } message CMsgAdditionalLobbyStartupAccountData { message ChatWheelMessageRange { optional uint32 message_id_start = 1 [default = 4294967295]; optional uint32 message_id_end = 2 [default = 4294967295]; } message PingWheelMessageRange { optional uint32 message_id_start = 1 [default = 4294967295]; optional uint32 message_id_end = 2 [default = 4294967295]; } optional uint32 account_id = 1; optional .CMsgLobbyPlayerPlusSubscriptionData plus_data = 2; repeated .CMsgAdditionalLobbyStartupAccountData.ChatWheelMessageRange unlocked_chat_wheel_message_ranges = 3; repeated .CMsgAdditionalLobbyStartupAccountData.PingWheelMessageRange unlocked_ping_wheel_message_ranges = 4; } message CMsgLobbyInitializationComplete { } message CMsgLobbyPlaytestDetails { optional string json = 1; } message CMsgLocalServerGuildData { optional uint32 guild_id = 1; optional .EEvent event_id = 2 [default = EVENT_ID_NONE]; optional uint32 guild_points = 3; optional uint64 guild_logo = 4; optional uint32 guild_primary_color = 5; optional uint32 guild_secondary_color = 6; optional uint32 guild_pattern = 7; optional uint32 guild_flags = 8; optional uint32 guild_weekly_percentile = 9; } message CMsgLocalServerFakeLobbyData { optional uint32 account_id = 1; repeated .CMsgLobbyEventPoints event_points = 2; optional bool is_plus_subscriber = 3; optional uint32 primary_event_id = 4; optional uint32 favorite_team = 5; optional uint32 favorite_team_quality = 6; optional .CMsgLocalServerGuildData guild_info = 7; optional uint32 teleport_fx_level = 8; optional .CMsgAdditionalLobbyStartupAccountData additional_data = 9; }