Документация Steamworks
ILobbyMatchmakingService Interface
Provides access to the Steam Lobby methods.

NOTE: This is a Service interface, methods in this interface should be called with the input_json parameter.

For more info on how to use the Steamworks Web API please see the Обзор веб-API.

CreateLobby

POST https://partner.steam-api.com/ILobbyMatchmakingService/CreateLobby/v1/
NameTypeRequiredDescription
keystringSteamworks Web API user authentication key.
appiduint32The ID of the application associated with the lobby.
max_membersint32Maximum number of members for this lobby.
lobby_typeint32ELobbyType - The type and visibility of this lobby.
lobby_namestringUnique lobby name if lobby_type = 4. Find lobby with this name if it exists.
input_jsonstringJson data. Required for data that cannot be posted parameters, but can also be used for the other parameters
steamid_invited_membersarray of uint64Array of steamIDs to add slots for. Must be specified in the input_json parameter.
lobby_metadatamessageOptional lobby data. Must be specified in the input_json parameter.

Structure of the lobby_metadata property:
NameTypeRequiredDescription
key_namestringKey name
key_valuestringKey value

When using the CreateLobby WebAPI, you'll probably want to set lobby_type to 4 (k_ELobbyTypePrivateUnique). This lobby type is a private, unique lobby that does not get deleted when emptied, and only one will exist per unique appid/lobby_name. A private unique lobby can only be created by this WebAPI call. But you can also use CreateLobby to generate the more traditional and ephemeral lobbies when no lobby_name is used.

Steamid_invited_members will be a json array of all the steamIDs that should be currently allowed into the lobby. You can update the list of members by calling CreateLobby with the same lobby_name and new complete set of steamIDs. Any steamIDs that were previously in the lobby and not included in the new call will be removed from the lobby.

Lobby_metadata is completely optional, but can be used to send general lobby data that needs to be communicated to users in the client.

Example Params:
{ "max_members": 100, "appid": 480, "lobbytype": 4, "steamid_invited_members": [], "lobby_name" : "guild_chat_1138", "lobby_metadata": [ { "key_name" : "motd", "key_value" : "Raid at 5 PM" }, { "key_name" : "clan_id", "key_value" : "1138" }, { "key_name" : "lobbyproperty", "key_value" : "otherproperty" } ] }

Response:
  • response
    • success - True if the method was successful.
    • appid - AppID that the lobby was created for.
    • steamid_lobby - The lobby ID.

RemoveUserFromLobby

POST https://partner.steam-api.com/ILobbyMatchmakingService/RemoveUserFromLobby/v1/
NameTypeRequiredDescription
keystringSteamworks Web API user authentication key.
appiduint32The ID of the application associated with the lobby.
steamid_to_removeuint64SteamID of the user to remove. If the user is not online when called, this will remove their reserved slot in the lobby.
steamid_lobbyuint64Lobby ID
input_jsonstringJson data. Required for data that cannot be posted parameters, but can also be used for the other parameters

NOTE: This call requires a publisher API key to use this method. As such this API MUST be called from a secure server, and can never be used directly by clients!

GetLobbyData

GET https://partner.steam-api.com/ILobbyMatchmakingService/GetLobbyData/v1/
NameTypeRequiredDescription
keystringSteamworks Web API user authentication key.
appiduint32The ID of the application associated with the lobby.
steamid_lobbyuint64Lobby ID.

GetLobbyData will return any lobby data and member list for the lobby ID.

NOTE: This call requires a publisher API key to use this method. As such this API MUST be called from a secure server, and can never be used directly by clients!

Example Response:
{ "response": { "appid": 480, "lobby_type": 2, "steamid_owner": "76561197984069643", "lobby_metadata": [ { "key_name": "name", "key_value": "Olive's lobby" }, { "key_name" : "motd", "key_value" : "Raid at 5 PM" } ], "members": [ { "steamid": "76561197984069643", "member_metadata": [ { "key_name": "ready", "key_value": "1" }, { "key_name": "role", "key_value": "captain" } ] }, { "steamid": "76561197985812219", "member_metadata": [ { "key_name": "role", "key_value": "weapons" } ] } ] } }