Files
Aleksandr Bogomiakov c239669932
Docker image / build-and-push (push) Successful in 57s
Added lobby auto creation
2026-08-06 20:33:27 +01:00

174 lines
4.8 KiB
Protocol Buffer

syntax = "proto2";
// Minimal subset of Dota 2 GC protobufs (from SteamDatabase/GameTracking-Dota2)
message CMsgClientHello {
optional uint32 version = 1;
optional uint32 client_session_need = 3;
optional int32 engine = 7; // 1 = Source 2
}
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;
}
message CMsgSOMultipleObjectsSingleObject {
optional int32 type_id = 1;
optional bytes object_data = 2;
}
message CMsgSOMultipleObjects {
repeated CMsgSOMultipleObjectsSingleObject objects_modified = 2;
optional fixed64 version = 3;
repeated CMsgSOMultipleObjectsSingleObject objects_added = 4;
repeated CMsgSOMultipleObjectsSingleObject objects_removed = 5;
optional CMsgSOIDOwner owner_soid = 6;
}
message CMsgSOCacheSubscribedType {
optional int32 type_id = 1;
repeated bytes object_data = 2;
}
message CMsgSOCacheSubscribed {
repeated CMsgSOCacheSubscribedType objects = 2;
optional fixed64 version = 3;
optional CMsgSOIDOwner owner_soid = 4;
}
message CMsgSOCacheUnsubscribed {
optional CMsgSOIDOwner owner_soid = 2;
}
message CMsgClientWelcome {
optional uint32 version = 1;
repeated CMsgSOCacheSubscribed outofdate_subscribed_caches = 3;
}
message CMsgGenericResult {
optional uint32 result = 1;
}
message CSODOTALobbyMember {
optional fixed64 id = 1;
optional int32 team = 3;
optional uint32 slot = 7;
}
message CSODOTALobby {
optional uint64 lobby_id = 1;
optional uint32 game_mode = 3;
optional int32 state = 4;
optional fixed64 leader_id = 11;
optional int32 lobby_type = 12;
optional string game_name = 16;
optional uint32 server_region = 21;
optional string custom_game_mode = 54;
optional string custom_map_name = 55;
optional uint64 custom_game_id = 68;
optional uint32 custom_min_players = 71;
optional uint32 custom_max_players = 72;
optional int32 visibility = 75;
optional fixed64 custom_game_crc = 76;
optional bool custom_game_auto_created_lobby = 77;
optional fixed32 custom_game_timestamp = 80;
optional bool custom_game_penalties = 107;
repeated CSODOTALobbyMember all_members = 120;
}
message CMsgPracticeLobbySetDetails {
optional uint64 lobby_id = 1;
optional string game_name = 2;
optional uint32 server_region = 4;
optional uint32 game_mode = 5;
optional bool allow_cheats = 10;
optional bool fill_with_bots = 11;
optional bool allow_spectating = 13;
optional string pass_key = 15;
optional bool lan = 25;
optional string custom_game_mode = 26;
optional string custom_map_name = 27;
optional uint32 custom_difficulty = 28;
optional uint64 custom_game_id = 29;
optional uint32 custom_min_players = 30;
optional uint32 custom_max_players = 31;
optional int32 visibility = 33;
optional fixed64 custom_game_crc = 34;
optional fixed32 custom_game_timestamp = 37;
optional bool custom_game_penalties = 47;
}
message CMsgPracticeLobbyCreate {
optional string search_key = 1;
optional string pass_key = 5;
optional uint32 client_version = 6;
optional CMsgPracticeLobbySetDetails lobby_details = 7;
}
message CMsgPracticeLobbyLeave {
}
message CMsgPracticeLobbySetTeamSlot {
optional int32 team = 1;
optional uint32 slot = 2;
}
message CMsgPracticeLobbyList {
optional string pass_key = 2;
optional uint32 region = 3;
optional uint32 game_mode = 4;
}
message CMsgPracticeLobbyListResponseEntry {
optional uint64 id = 1;
optional string name = 10;
optional string custom_game_mode = 11;
optional uint32 game_mode = 12;
optional uint32 players = 14;
optional string custom_map_name = 15;
optional uint32 max_player_count = 16;
optional uint32 server_region = 17;
optional uint32 min_player_count = 21;
optional bool penalties_enabled = 22;
}
message CMsgPracticeLobbyListResponse {
repeated CMsgPracticeLobbyListResponseEntry lobbies = 2;
}
message CMsgJoinableCustomLobbiesRequest {
optional uint32 server_region = 1;
optional uint64 custom_game_id = 2;
}
message CMsgJoinableCustomLobbiesResponseEntry {
optional fixed64 lobby_id = 1;
optional uint64 custom_game_id = 2;
optional string lobby_name = 3;
optional uint32 member_count = 4;
optional uint32 leader_account_id = 5;
optional string leader_name = 6;
optional string custom_map_name = 7;
optional uint32 max_player_count = 8;
optional uint32 server_region = 9;
optional bool has_pass_key = 11;
optional string lan_host_ping_location = 12;
optional uint32 lobby_creation_time = 13;
optional uint32 custom_game_timestamp = 14;
optional uint64 custom_game_crc = 15;
optional uint32 min_player_count = 16;
optional bool penalties_enabled = 17;
}
message CMsgJoinableCustomLobbiesResponse {
repeated CMsgJoinableCustomLobbiesResponseEntry lobbies = 1;
}