Matchmaking & Lobbies

Overview

The Matchmaking module abstracts the matchmaking functionality of each platform into a more unified interface. It allows you to create and search for lobbies based on user defined lobby data or player counts. This allows an implementation of skill grouping or custom games with custom properties set by the game clients.

Each platform implements matchmaking in their own way, and you may need to setup additional properties of your game on your platform product manager to allow certain matchmaking functionalities.

This documentation also includes lobby specific functionality; while lobbies do not rely on matchmaking, they are usually used in tandem.

Lobbies provide an abstracted set of functionalities, such as setting lobby data (game type, for example), as well as user data (which team the user prefers, for instance) and text communication between each lobby member. On some platforms, a single user can be a part of multiple lobbies and each lobby will have its own functions and events (for example, to leave a specific lobby).

Matchmaking Service Functions

AddLobbyQueryFilterString

Adds a lobby query filter that will be used on the next QueryLobbies call.

Platform(s)Steam
APICry::GamePlatform::IMatchmaking::AddLobbyQueryFilterString
Flow Graph NodesGamePlatform:Matchmaking:AddLobbyQueryFilterString
Schematyc NodesFunction::GamePlatform::Service::Lobby::AddQueryLobbiesFilter

CreateLobby

Attempts to create a new matchmaking lobby.

Platform(s)Steam
APICry::GamePlatform::IMatchmaking::CreateLobby
Flow Graph NodesGamePlatform:Matchmaking:CreateLobby
Schematyc NodesFunction::GamePlatform::Service::Lobby::CreateLobby

GetQueriedLobbyIdByIndex

Returns the lobby at the specified index from the QueryLobbies result (after the OnLobbyQueryComplete event).

Platform(s)Steam
APICry::GamePlatform::IMatchmaking::GetQueriedLobbyIdByIndex
Flow Graph NodesGamePlatform:Matchmaking:GetQueriedLobbyIdByIndex
Schematyc NodesFunction::GamePlatform::Service::Lobby::GetQueriedLobbyIdByIndex

GetUserLobby

Attempts to get the lobby identifier the specified user resides in (if any).

Platform(s)Steam
APICry::GamePlatform::IMatchmaking::GetUserLobby
Flow Graph NodesGamePlatform:Matchmaking:GetUserLobby
Schematyc NodesFunction::GamePlatform::Service::Lobby::GetUserLobby

JoinLobby

Makes the local user join the specified lobby.

Platform(s)Steam
APICry::GamePlatform::IMatchmaking::JoinLobby
Flow Graph NodesGamePlatform:Matchmaking:JoinLobby
Schematyc NodesFunction::GamePlatform::Service::Lobby::JoinLobby

QueryLobbies

Queries the backend for lobbies that match any and all filters added since the last QueryLobbies call.

Listen for the OnLobbyQueryComplete event after querying the backend.

Platform(s)Steam
APICry::GamePlatform::IMatchmaking::QueryLobbies
Flow Graph NodesGamePlatform:Matchmaking:QueryLobbies
Schematyc NodesFunction::GamePlatform::Service::Lobby::QueryLobbies

Matchmaking Service Events

OnCreatedLobby

Fired when a lobby has been created by the local user.

Platform(s)Steam
APICry::GamePlatform::IMatchmaking::IListener::OnCreatedLobby
Flow Graph NodesGamePlatform:Listener:Matchmaking:OnCreatedLobby
Schematyc NodesSignal::Receive::[EntityName]::Accounts::PlatformSignalReceiver::Matchmaking::OnCreatedLobby

OnJoinedLobby

Fired when the local user joins a lobby.

Platform(s)Steam
APICry::GamePlatform::IMatchmaking::IListener::OnJoinedLobby
Flow Graph NodesGamePlatform:Listener:Matchmaking:OnJoinedLobby
Schematyc NodesSignal::Receive::[EntityName]::Accounts::PlatformSignalReceiver::Matchmaking::OnJoinedLobby

OnLobbyJoinFailed

Fired if a lobby join request fails.

Platform(s)Steam
APICry::GamePlatform::IMatchmaking::IListener::OnLobbyJoinFailed
Flow Graph NodesGamePlatform:Listener:Matchmaking:OnLobbyJoinFailed
Schematyc NodesSignal::Receive::[EntityName]::Accounts::PlatformSignalReceiver::Matchmaking::OnLobbyJoinFailed

OnLobbyQueryComplete

Fired on completion of a lobby query request.

Platform(s)Steam
APICry::GamePlatform::IMatchmaking::IListener::OnLobbyQueryComplete
Flow Graph NodesGamePlatform:Listener:Matchmaking:OnLobbyQueryComplete
Schematyc NodesSignal::Receive::[EntityName]::Accounts::PlatformSignalReceiver::Matchmaking::OnLobbyQueryComplete

OnPreJoinLobby

Fired when the local user attempts to join a lobby before receiving a response from the platform.

When a user tries to join a lobby, the response is either going to be success or failure. The OnPreJoinLobby is fired between the request to join and the response from the server that the request was a success.

Platform(s)Steam
APICry::GamePlatform::IMatchmaking::IListener::OnPreJoinLobby
Flow Graph NodesGamePlatform:Listener:Matchmaking:OnPreJoinLobby
Schematyc NodesSignal::Receive::[EntityName]::Accounts::PlatformSignalReceiver::Matchmaking::OnPreJoinLobby

Lobby Functions

GetData

Retrieves lobby data of the specified key.

The data is made up of a key-value pair. The key corresponds to the name of the data, while the value is the data itself.

Platform(s)Steam
APICry::GamePlatform::IUserLobby::GetData
Flow Graph NodesGamePlatform:Lobby:GetData
Schematyc NodesFunction::GamePlatform::Service::Lobby::GetData

GetMemberAtIndex

Queries the lobby for the member at the specified index.

Platform(s)Steam
APICry::GamePlatform::IUserLobby::GetMemberAtIndex
Flow Graph NodesGamePlatform:Lobby:GetMemberAtIndex
Schematyc NodesFunction::GamePlatform::Service::Lobby::GetMemberAtIndex

GetMemberData

Gets the meta-data of the user in the lobby by key name.

Platform(s)Steam
APICry::GamePlatform::IUserLobby::GetMemberData
Flow Graph NodesGamePlatform:Lobby:GetMemberData
Schematyc NodesFunction::GamePlatform::Service::Lobby::GetMemberData

GetMemberLimit

Queries the specified lobby for the maximum number of users that can inhabit it.

Platform(s)Steam
APICry::GamePlatform::IUserLobby::GetMemberLimit
Flow Graph NodesGamePlatform:Lobby:GetMemberLimit
Schematyc NodesFunction::GamePlatform::Service::Lobby::GetMemberLimit

GetNumMembers

Queries the specified lobby for the current number of users that are inhabiting it.

Platform(s)Steam
APICry::GamePlatform::IUserLobby::GetNumMembers
Flow Graph NodesGamePlatform:Lobby:GetMemberCount
Schematyc NodesFunction::GamePlatform::Service::Lobby::GetNumMembers

GetOwnerId

Queries the lobby for the member that owns the lobby.

Platform(s)Steam
APICry::GamePlatform::IUserLobby::GetOwnerId
Flow Graph NodesGamePlatform:Lobby:GetOwnerId
Schematyc NodesFunction::GamePlatform::Service::Lobby::GetOwnerId

Leave

Makes the local user leave the specified lobby.

Platform(s)Steam
APICry::GamePlatform::IUserLobby::Leave
Flow Graph NodesGamePlatform:Lobby:Leave
Schematyc NodesFunction::GamePlatform::Service::Lobby::Leave

SendChatMessage

Sends a message to the specified lobby.

Platform(s)Steam
APICry::GamePlatform::IUserLobby::SendChatMessage
Flow Graph NodesGamePlatform:Lobby:SendChatMessage
Schematyc NodesFunction::GamePlatform::Service::Lobby::SendChatMessage

SetData

Sets the lobby data of the key to the specified value.

Platform(s)Steam
APICry::GamePlatform::IUserLobby::SetData
Flow Graph NodesGamePlatform:Lobby:SetData
Schematyc NodesFunction::GamePlatform::Service::Lobby::SetData

SetMemberData

Sets the meta-data of the local user in the lobby.

Platform(s)Steam
APICry::GamePlatform::IUserLobby::SetMemberData
Flow Graph NodesGamePlatform:Lobby:SetLocalMemberData
Schematyc NodesFunction::GamePlatform::Service::Lobby::SetLocalMemberData

ShowInviteDialog

Shows the platform-specific invite dialog to invite friends to the current lobby.

Platform(s)Steam
APICry::GamePlatform::IUserLobby::ShowInviteDialog
Flow Graph NodesGamePlatform:Lobby:ShowInviteDialog
Schematyc NodesFunction::GamePlatform::Service::Lobby::ShowInviteDialog

Lobby Events

OnChatMessage

Fired for each message received in the lobby.

Platform(s)Steam
APICry::GamePlatform::IUserLobby::IListener::OnChatMessage
Flow Graph NodesGamePlatform:Listener:Lobby:OnChatMessage
Schematyc NodesSignal::Receive::[EntityName]::Accounts::PlatformSignalReceiver::Lobby::OnChatMessage

OnLeave

Fired when the local user leaves the lobby.

Platform(s)Steam
APICry::GamePlatform::IUserLobby::IListener::OnLeave
Flow Graph NodesGamePlatform:Listener:Lobby:OnLeave
Schematyc NodesSignal::Receive::[EntityName]::Accounts::PlatformSignalReceiver::Lobby::OnLeave

OnLobbyDataUpdate

Fired when the lobby data has been updated.

Platform(s)Steam
APICry::GamePlatform::IUserLobby::IListener::OnLobbyDataUpdate
Flow Graph NodesGamePlatform:Listener:Lobby:OnLobbyDataUpdate
Schematyc NodesSignal::Receive::[EntityName]::Accounts::PlatformSignalReceiver::OnLobbyDataUpdate

OnPlayerBanned

Fired when a lobby member is banned from the lobby.

Platform(s)Steam
APICry::GamePlatform::IUserLobby::IListener::OnPlayerBanned
Flow Graph NodesGamePlatform:Listener:Lobby:OnPlayerBanned
Schematyc NodesSignal::Receive::[EntityName]::Accounts::PlatformSignalReceiver::Lobby::OnPlayerBanned

OnPlayerDisconnected

Fired when a lobby member loses connection to the lobby.

Platform(s)Steam
APICry::GamePlatform::IUserLobby::IListener::OnPlayerDisconnected
Flow Graph NodesGamePlatform:Listener:Lobby:OnPlayerDisconnected
Schematyc NodesSignal::Receive::[EntityName]::Accounts::PlatformSignalReceiver::Lobby::OnPlayerDisconnected

OnPlayerEntered

Fired when a member enters the lobby.

Platform(s)Steam
APICry::GamePlatform::IUserLobby::IListener::OnPlayerEntered
Flow Graph NodesGamePlatform:Listener:Lobby:OnPlayerEntered
Schematyc NodesSignal::Receive::[EntityName]::Accounts::PlatformSignalReceiver::Lobby::OnPlayerEntered

OnPlayerKicked

Fired when a lobby member is kicked from the lobby.

Platform(s)Steam
APICry::GamePlatform::IUserLobby::IListener::OnPlayerKicked
Flow Graph NodesGamePlatform:Listener:Lobby:OnPlayerKicked
Schematyc NodesSignal::Receive::[EntityName]::Accounts::PlatformSignalReceiver::Lobby::OnPlayerKicked

OnPlayerLeft

Fired when a lobby member intentionally leaves the lobby.

Platform(s)Steam
APICry::GamePlatform::IUserLobby::IListener::OnPlayerLeft
Flow Graph NodesGamePlatform:Listener:Lobby:OnPlayerLeft
Schematyc NodesSignal::Receive::[EntityName]::Accounts::PlatformSignalReceiver::Lobby::OnPlayerLeft

OnUserDataUpdate

Fired when a lobby member updates their member data.

Platform(s)Steam
APICry::GamePlatform::IUserLobby::IListener::OnUserDataUpdate
Flow Graph NodesGamePlatform:Listener:Lobby:OnUserDataUpdate
Schematyc NodesSignal::Receive::[EntityName]::Accounts::PlatformSignalReceiver::Lobby::OnUserDataUpdate

Event Registration Functions

StartStopLobbyListener

Starts or stops lobby event listeners.

This function handles starting and stopping events for specific lobbies. A user can be connected to more than one lobby at a time, and so control is needed over which lobbies are being listened to (for instance, when the local user leaves a lobby).

Platform(s)Steam
APICry::GamePlatform::IPlatformEventManager::[Start|Stop]Listening
Flow Graph NodesGamePlatform:Listener:RemoteStorage:StartStopLobbyListener
Schematyc NodesFunction::Components::PlatformSignalReceiver::StartStopRemoteFileListener

If the local user leaves a lobby, you technically do not need to call StartStopLobbyListener as all listeners to that lobby will be unregistered when you leave the lobby