lobbies - YoYoGames/GMEXT-EpicOnlineServices GitHub Wiki
Epic Online Services Interface: Lobby Interface
This module can be used to add lobbies to your game so players can create, join, leave, and manage lobbies.
Lobbies provide a persistent connection between players (also called "users") for the purpose of sharing game (or other software application) and player state with real-time updates. Typically, players can create or join lobbies to form teams, select pre-game options, and wait for additional players to join in before playing together. Using the Lobbies module, your players can create, join, leave, and manage lobbies.
Note
See the Lobbies Introduction for a more detailed guide.
Lobbies in Epic Online Services make use of lobby handles. Before you can use certain functions you need to obtain a valid handle for that which you're trying to do. The handles themselves are kept by the extension. However, whenever you request a handle, you should still manually release it afterwards, once you are done using it.
The following is an overview of the different lobby handles and the functions you can use to obtain and release them and the functions that require them.
- Obtain:
- Used by:
- eos_lobby_join_lobby
- eos_lobby_details_copy_attribute_by_index
- eos_lobby_details_copy_attribute_by_key
- eos_lobby_details_copy_info
- eos_lobby_details_copy_member_attribute_by_index
- eos_lobby_details_copy_member_attribute_by_key
- eos_lobby_details_copy_member_info
- eos_lobby_details_get_attribute_count
- eos_lobby_details_get_lobby_owner
- eos_lobby_details_get_member_attribute_count
- eos_lobby_details_get_member_by_index
- eos_lobby_details_get_member_count
- Release:
- Obtain:
- Used by:
- eos_lobby_update_lobby
- eos_lobby_modification_add_attribute
- eos_lobby_modification_add_member_attribute
- eos_lobby_modification_remove_attribute
- eos_lobby_modification_remove_member_attribute
- eos_lobby_modification_set_allowed_platform_ids
- eos_lobby_modification_set_bucket_id
- eos_lobby_modification_set_invites_allowed
- eos_lobby_modification_set_max_members
- eos_lobby_modification_set_permission_level
- Release:
- Obtain:
- Used by:
- Release:
This module offers a collection of functions designed to address specific tasks and provide utilities for various purposes. Explore the available functions to make the most of the functionalities provided by this module.
- eos_lobby_add_notify_join_lobby_accepted
- eos_lobby_add_notify_leave_lobby_requested
- eos_lobby_add_notify_lobby_invite_accepted
- eos_lobby_add_notify_lobby_invite_received
- eos_lobby_add_notify_lobby_invite_rejected
- eos_lobby_add_notify_lobby_member_status_received
- eos_lobby_add_notify_lobby_member_update_received
- eos_lobby_add_notify_lobby_update_received
- eos_lobby_add_notify_rtc_room_connection_changed
- eos_lobby_add_notify_send_lobby_native_invite_requested
- eos_lobby_copy_lobby_details_handle
- eos_lobby_copy_lobby_details_handle_by_invite_id
- eos_lobby_copy_lobby_details_handle_by_ui_event_id
- eos_lobby_create_lobby
- eos_lobby_create_lobby_search
- eos_lobby_destroy_lobby
- eos_lobby_get_connect_string
- eos_lobby_get_invite_count
- eos_lobby_get_invite_id_by_index
- eos_lobby_get_rtc_room_name
- eos_lobby_hard_mute_member
- eos_lobby_is_rtc_room_connected
- eos_lobby_join_lobby
- eos_lobby_join_lobby_by_id
- eos_lobby_kick_member
- eos_lobby_leave_lobby
- eos_lobby_parse_connect_string
- eos_lobby_promote_member
- eos_lobby_query_invites
- eos_lobby_reject_invite
- eos_lobby_remove_notify_join_lobby_accepted
- eos_lobby_remove_notify_leave_lobby_requested
- eos_lobby_remove_notify_lobby_invite_accepted
- eos_lobby_remove_notify_lobby_invite_received
- eos_lobby_remove_notify_lobby_invite_rejected
- eos_lobby_remove_notify_lobby_member_status_received
- eos_lobby_remove_notify_lobby_member_update_received
- eos_lobby_remove_notify_lobby_update_received
- eos_lobby_remove_notify_rtc_room_connection_changed
- eos_lobby_remove_notify_send_lobby_native_invite_requested
- eos_lobby_send_invite
- eos_lobby_update_lobby
- eos_lobby_update_lobby_modification
- eos_lobby_details_copy_attribute_by_index
- eos_lobby_details_copy_attribute_by_key
- eos_lobby_details_copy_info
- eos_lobby_details_copy_member_attribute_by_index
- eos_lobby_details_copy_member_attribute_by_key
- eos_lobby_details_copy_member_info
- eos_lobby_details_get_attribute_count
- eos_lobby_details_get_lobby_owner
- eos_lobby_details_get_member_attribute_count
- eos_lobby_details_get_member_by_index
- eos_lobby_details_get_member_count
- eos_lobby_details_release
- eos_lobby_modification_add_attribute
- eos_lobby_modification_add_member_attribute
- eos_lobby_modification_release
- eos_lobby_modification_remove_attribute
- eos_lobby_modification_remove_member_attribute
- eos_lobby_modification_set_allowed_platform_ids
- eos_lobby_modification_set_bucket_id
- eos_lobby_modification_set_invites_allowed
- eos_lobby_modification_set_max_members
- eos_lobby_modification_set_permission_level
- eos_lobby_search_copy_search_result_by_index
- eos_lobby_search_find
- eos_lobby_search_get_search_result_count
- eos_lobby_search_release
- eos_lobby_search_remove_parameter
- eos_lobby_search_set_lobby_id
- eos_lobby_search_set_max_results
- eos_lobby_search_set_parameter
- eos_lobby_search_set_target_user_id
This module offers a collection of structs, which serve as custom data models for organizing and structuring data. Explore the provided structs to better understand the relationships between data elements and simplify your data manipulation tasks.
This module includes a set of predefined constants that can be utilized for various purposes. Browse through the available constants to find values relevant to your needs and enhance the efficiency of your code.
- EOS_LOBBY_MAX_SEARCH_RESULTS
- EOS_LOBBY_ATTRIBUTE_VISIBILITY
- EOS_LOBBY_MEMBER_STATUS
- EOS_LOBBY_PERMISSION_LEVEL
- EOS_ONLINE_PLATFORM_TYPE
Epic Online Services Function: EOS_Lobby_AddNotifyJoinLobbyAccepted
This function registers to receive notifications about lobby "JOIN" performed by local user (when no invite) via the overlay.
The function returns a notification ID.
Note
If the returned notification ID is valid, you must call eos_lobby_remove_notify_join_lobby_accepted when you no longer wish to have the Social Async Event called.
This function operates asynchronously, which means that it does not immediately return the requested result. Instead, upon completion of the task, it will trigger the Social Async Event.
Syntax:
eos_lobby_add_notify_join_lobby_accepted()
Returns:
Triggers:
Key | Type | Description |
---|---|---|
type | String | the string "eos_lobby_add_notify_join_lobby_accepted"
|
local_user_id | String | The Product User ID of the local user who is joining |
ui_event_id | Int64 | The UI Event associated with this Join Game event. This should be used with eos_lobby_copy_lobby_details_handle_by_ui_event_id to get a handle to be used when calling eos_lobby_join_lobby. |
Epic Online Services Function: EOS_Lobby_AddNotifyLeaveLobbyRequested
This function registers to receive notifications about leave lobby requests performed by the local user via the overlay. When a user requests to leave the lobby in the social overlay, the SDK does not automatically leave the lobby, it is up to the game to perform any necessary cleanup and call the eos_lobby_leave_lobby method using the lobby_id
sent in the Social Async Event.
The function returns a notification ID.
Note
If the returned notification ID is valid, you must call eos_lobby_remove_notify_leave_lobby_requested when you no longer wish to have the Social Async Event called.
This function operates asynchronously, which means that it does not immediately return the requested result. Instead, upon completion of the task, it will trigger the Social Async Event.
Syntax:
eos_lobby_add_notify_leave_lobby_requested()
Returns:
Triggers:
Key | Type | Description |
---|---|---|
type | String | the string "eos_lobby_add_notify_leave_lobby_requested"
|
local_user_id | String | The Product User ID of the local user who received the leave lobby notification. |
lobby_id | String | The lobby ID associated with the leave lobby request. |
Epic Online Services Function: EOS_Lobby_AddNotifyLobbyInviteAccepted
This function registers to receive notifications about lobby invites accepted by local user via the overlay.
The function returns a notification ID.
Note
If the returned notification ID is valid, you must call eos_lobby_remove_notify_leave_lobby_requested when you no longer wish to have the Social Async Event called.
This function operates asynchronously, which means that it does not immediately return the requested result. Instead, upon completion of the task, it will trigger the Social Async Event.
Syntax:
eos_lobby_add_notify_lobby_invite_accepted()
Returns:
Triggers:
Key | Type | Description |
---|---|---|
type | String | the string "eos_lobby_add_notify_lobby_invite_accepted"
|
local_user_id | String | The Product User ID of the local user who received the invitation |
lobby_id | String | Lobby ID that the user has been invited to |
invite_id | String | The invite ID |
target_user_id | String | The Product User ID of the user who sent the invitation |
Epic Online Services Function: EOS_Lobby_AddNotifyLobbyInviteReceived
This function registers to receive notifications about lobby invites sent to local users.
The function returns a notification ID.
Note
If the returned notification ID is valid, you must call eos_lobby_remove_notify_leave_lobby_requested when you no longer wish to have the Social Async Event called.
This function operates asynchronously, which means that it does not immediately return the requested result. Instead, upon completion of the task, it will trigger the Social Async Event.
Syntax:
eos_lobby_add_notify_lobby_invite_received()
Returns:
Triggers:
Key | Type | Description |
---|---|---|
type | String | the string "eos_lobby_add_notify_lobby_invite_received"
|
local_user_id | String | The Product User ID of the local user who received the invitation |
invite_id | String | The ID of the invitation |
target_user_id | String | The Product User ID of the user who sent the invitation |
Epic Online Services Function: EOS_Lobby_AddNotifyLobbyInviteRejected
This function registers to receive notifications about lobby invites rejected by local user.
The function returns a notification ID.
Note
If the returned notification ID is valid, you must call eos_lobby_remove_notify_leave_lobby_requested when you no longer wish to have the Social Async Event called.
This function operates asynchronously, which means that it does not immediately return the requested result. Instead, upon completion of the task, it will trigger the Social Async Event.
Syntax:
eos_lobby_add_notify_lobby_invite_rejected()
Returns:
Triggers:
Key | Type | Description |
---|---|---|
type | String | the string "eos_lobby_add_notify_lobby_invite_rejected"
|
local_user_id | String | The Product User ID of the local user who received the invitation |
lobby_id | String | Lobby ID that the user has been invited to |
invite_id | String | The invite ID |
target_user_id | String | The Product User ID of the user who sent the invitation |
Epic Online Services Function: EOS_Lobby_AddNotifyLobbyMemberStatusReceived
This function registers to receive notifications about the changing status of lobby members.
The function returns a notification ID.
Note
If the returned notification ID is valid, you must call eos_lobby_remove_notify_leave_lobby_requested when you no longer wish to have the Social Async Event called.
This function operates asynchronously, which means that it does not immediately return the requested result. Instead, upon completion of the task, it will trigger the Social Async Event.
Syntax:
eos_lobby_add_notify_lobby_member_status_received()
Returns:
Triggers:
Key | Type | Description |
---|---|---|
type | String | the string "eos_lobby_add_notify_lobby_member_status_received"
|
target_user_id | String | The Product User ID of the lobby member |
lobby_id | String | The ID of the lobby |
current_status | EOS_LOBBY_MEMBER_STATUS | The latest status of the user |
Epic Online Services Function: EOS_Lobby_AddNotifyLobbyMemberUpdateReceived
This function registers to receive notifications when a lobby member updates the attributes associated with themselves inside the lobby.
The function returns a notification ID.
Note
If the returned notification ID is valid, you must call eos_lobby_remove_notify_leave_lobby_requested when you no longer wish to have the Social Async Event called.
This function operates asynchronously, which means that it does not immediately return the requested result. Instead, upon completion of the task, it will trigger the Social Async Event.
Syntax:
eos_lobby_add_notify_lobby_member_update_received()
Returns:
Triggers:
Key | Type | Description |
---|---|---|
type | String | the string "eos_lobby_add_notify_lobby_member_update_received"
|
target_user_id | String | The Product User ID of the lobby member |
lobby_id | String | The ID of the lobby |
Epic Online Services Function: EOS_Lobby_AddNotifyLobbyUpdateReceived
This function registers to receive notifications when a lobby owner updates the attributes associated with the lobby.
The function returns a notification ID.
Note
If the returned notification ID is valid, you must call eos_lobby_remove_notify_leave_lobby_requested when you no longer wish to have the Social Async Event called.
This function operates asynchronously, which means that it does not immediately return the requested result. Instead, upon completion of the task, it will trigger the Social Async Event.
Syntax:
eos_lobby_add_notify_lobby_update_received()
Returns:
Triggers:
Key | Type | Description |
---|---|---|
type | String | the string "eos_lobby_add_notify_lobby_update_received"
|
lobby_id | String | The ID of the lobby |
Epic Online Services Function: EOS_Lobby_AddNotifyRTCRoomConnectionChanged
This function registers to receive notifications of when the RTC Room for a particular lobby has a connection status change. The RTC Room connection status is independent of the lobby connection status, however the lobby system will attempt to keep them consistent, automatically connecting to the RTC room after joining a lobby which has an associated RTC room and disconnecting from the RTC room when a lobby is left or disconnected. This notification is entirely informational and requires no action in response by the application. If the connected status is offline (is_connected
is false
), the connection will automatically attempt to reconnect. The purpose of this notification is to allow applications to show the current connection status of the RTC room when the connection is not established. Unlike eos_rtc_add_notify_disconnected, eos_rtc_leave_room should not be called when the RTC room is disconnected. This function will only succeed when called on a lobby the local user is currently a member of.
A valid notification ID if the callback handler was successfully registered, or EOS_INVALID_NOTIFICATIONID if the input was invalid, the lobby did not exist, or the lobby did not have an RTC room.
This function operates asynchronously, which means that it does not immediately return the requested result. Instead, upon completion of the task, it will trigger the Social Async Event.
Syntax:
eos_lobby_add_notify_rtc_room_connection_changed()
Returns:
Triggers:
Key | Type | Description |
---|---|---|
type | String | the string "eos_lobby_add_notify_rtc_room_connection_changed"
|
local_user_id | String | The Product User ID of the local user who is in the lobby and registered for notifications |
lobby_id | String | The ID of the lobby which had a RTC Room connection state change |
disconnect_reason | EOS_RESULT | If is_connected is false , this result will be the reason we were disconnected. EOS_RESULT.SUCCESS : The room was left locally. This may be because: the associated lobby was left or destroyed, the connection to the lobby was interrupted, or because the SDK is being shutdown. If the lobby connection returns (lobby did not permanently go away), EOS will reconnect. EOS_RESULT.NO_CONNECTION : There was a network issue connecting to the server. EOS will attempt to reconnect soon. EOS_RESULT.RTC_USER_KICKED : The user has been kicked by the server. We will not reconnect. EOS_RESULT.RTC_USER_BANNED : The user has been banned by the server. We will not reconnect. EOS_RESULT.SERVICE_FAILURE : A known error occurred during interaction with the server. We will attempt to reconnect soon. EOS_RESULT.UNEXPECTED_ERROR : Unexpected error. We will attempt to reconnect soon. |
is_connected | Boolean | The new connection state of the room |
Epic Online Services Function: EOS_Lobby_AddNotifySendLobbyNativeInviteRequested
This function registers to receive notifications about a lobby "INVITE" performed by a local user via the overlay. This is only needed when a configured integrated platform has EOS_IPMF_DisableSDKManagedSessions set. The EOS SDK will then use the state of EOS_IPMF_PreferEOSIdentity and EOS_IPMF_PreferIntegratedIdentity to determine when the Social Async Event is called.
Note
If the returned notification ID is valid, you must call eos_lobby_remove_notify_leave_lobby_requested when you no longer wish to have the Social Async Event called.
This function operates asynchronously, which means that it does not immediately return the requested result. Instead, upon completion of the task, it will trigger the Social Async Event.
Syntax:
eos_lobby_add_notify_send_lobby_native_invite_requested()
Returns:
Triggers:
Key | Type | Description |
---|---|---|
type | String | the string "eos_lobby_add_notify_send_lobby_native_invite_requested"
|
local_user_id | String | The Product User ID of the local user who is inviting. |
lobby_id | String | The lobby ID that the user is being invited to |
target_native_account_type | String | The Native Platform Account Type, as a string. If only a single integrated platform is configured then this will always reference that platform. |
target_user_native_account_id | String | The Native Platform Account ID of the target user being invited. |
ui_event_id | Int64 | Identifies this event which will need to be acknowledged with eos_ui_acknowledge_event_id. |
Epic Online Services Function: EOS_Lobby_CopyLobbyDetailsHandle
This function creates a handle to an existing lobby. If the call returns an EOS_RESULT.SUCCESS
result, the function eos_lobby_details_release to release the memory associated with the handle.
The function returns one of the following:
-
EOS_RESULT.SUCCESS
if the lobby handle was created successfully -
EOS_RESULT.INVALID_PARAMETERS
if any of the options are incorrect -
EOS_RESULT.INCOMPATIBLE_VERSION
if the API version passed in is incorrect -
EOS_RESULT.NOT_FOUND
if the lobby doesn't exist
Syntax:
eos_lobby_copy_lobby_details_handle(lobby_id, local_user_id)
Argument | Type | Description |
---|---|---|
lobby_id | String | The ID of the lobby |
local_user_id | String | The Product User ID of the local user making the request |
Returns:
Epic Online Services Function: EOS_Lobby_CopyLobbyDetailsHandleByInviteId
This function is used to immediately retrieve a handle to the lobby information from after notification of an invite. If the call returns an EOS_RESULT.SUCCESS
result, the lobby details handle must be freed with eos_lobby_details_release to release the memory associated with it after you're finished using it.
The function returns one of the following:
-
EOS_RESULT.SUCCESS
if the information is available -
EOS_RESULT.INVALID_PARAMETERS
if you pass an invalid invite ID -
EOS_RESULT.INCOMPATIBLE_VERSION
if the API version passed in is incorrect -
EOS_RESULT.NOT_FOUND
If the invite ID cannot be found
Syntax:
eos_lobby_copy_lobby_details_handle_by_invite_id(invite_id)
Argument | Type | Description |
---|---|---|
invite_id | String | The ID of an invitation to join the lobby |
Returns:
Epic Online Services Function: EOS_Lobby_CopyLobbyDetailsHandleByUiEventId
This function is used to immediately retrieve a handle to the lobby information from after notification of an join game. If the call returns an EOS_RESULT.SUCCESS
result, the lobby details handle must be freed with eos_lobby_details_release to release the memory associated with it once you're done using it.
The function returns one of the following:
-
EOS_RESULT.SUCCESS
if the information is available and passed out in OutLobbyDetailsHandle -
EOS_RESULT.INVALID_PARAMETERS
if you pass an invalid UI event ID -
EOS_RESULT.INCOMPATIBLE_VERSION
if the API version passed in is incorrect -
EOS_RESULT.NOT_FOUND
If the invite ID cannot be found
Syntax:
eos_lobby_copy_lobby_details_handle_by_ui_event_id(ui_event_id)
Argument | Type | Description |
---|---|---|
ui_event_id | Real | The UI Event associated with the lobby |
Returns:
Epic Online Services Function: EOS_Lobby_CreateLobby
This function creates a lobby and adds the user to the lobby membership. There is no data associated with the lobby at the start and can be added with eos_lobby_update_lobby_modification. If the lobby is successfully created with an RTC Room enabled, the lobby system will automatically join and maintain the connection to the RTC room as long as the local user remains in the lobby. Applications can use the eos_lobby_get_rtc_room_name to get the name of the RTC Room associated with a lobby, which may be used with many of the eos_rtc_*
suite of functions. This can be useful to: register for notifications for talking status; to mute or unmute the local user's audio output; to block or unblock room participants; to set local audio device settings; and more.
Set the enable_rtc_room
parameter to true
to enable an RTC room. If set to true
, you can also pass the parameters flags
, use_manual_audio_input
, use_manual_audio_output
and local_audio_device_input_starts_muted
to configure the RTC room.
The function returns the async identifier.
This function operates asynchronously, which means that it does not immediately return the requested result. Instead, upon completion of the task, it will trigger the Social Async Event.
Syntax:
eos_lobby_create_lobby(local_user_id, allowed_platform_ids, lobby_id, bucket_id, max_lobby_members, permission_level, allow_invites, crossplay_opt_out, disable_host_migration, enable_join_by_id, presence_enabled, enable_rtc_room=false, flags=EOS_RTC_JOINROOMFLAGS_ENABLE_DATACHANNEL, use_manual_audio_input=false, use_manual_audio_output=false, local_audio_device_input_starts_muted=false)
Argument | Type | Description |
---|---|---|
local_user_id | String | The Product User ID of the local user creating the lobby; this user will automatically join the lobby as its owner |
allowed_platform_ids | Array | An array of platform IDs indicating the player platforms allowed to register with the session. Platform IDs are found in the EOS header file. These values are of the form EOS_OPT_. For some platforms, the value will be in the EOS Platform specific header file. The lobby will be unrestricted if you pass an empty array. |
lobby_id | String | Set to a globally unique value to override the backend assignment. If an empty string "" is specified, the backend service will assign one to the lobby. Do not mix and match override and non override settings. This value can be of size [EOS_LOBBY_MIN_LOBBYIDOVERRIDE_LENGTH, EOS_LOBBY_MAX_LOBBYIDOVERRIDE_LENGTH] |
bucket_id | String | The bucket ID associated with the lobby |
max_lobby_members | Real | The maximum number of users that can be in the lobby at a time |
permission_level | EOS_LOBBY_PERMISSION_LEVEL | The initial permission level of the lobby |
allow_invites | Boolean | Whether members of the lobby are allowed to invite others |
crossplay_opt_out | Boolean | This value indicates whether or not the lobby owner allows crossplay interactions. If false , the lobby owner will be treated as allowing crossplay. If it is set to true , allowed_platform_ids must have a single entry that matches the platform of the lobby owner. |
disable_host_migration | Boolean | Is host migration allowed (will the lobby stay open if the original host leaves?) NOTE: eos_lobby_promote_member is still allowed regardless of this setting. |
enable_join_by_id | Boolean | Whether eos_lobby_join_lobby_by_id is allowed. This is provided to support cases where an integrated platform's invite system is used. In these cases the game should provide the lobby ID securely to the invited player. Such as by attaching the lobby ID to the integrated platform's session data or sending the lobby ID within the invite data. |
presence_enabled | Boolean | If true , this lobby will be associated with the local user's presence information. A user's presence can only be associated with one lobby at a time. This affects the ability of the Social Overlay to show game related actions to take in the user's social graph. * using the presence_enabled flags within the Sessions module * using the presence_enabled flags within the Lobby module * using eos_presence_modification_set_join_info. |
enable_rtc_room | Boolean | Creates a real-time communication (RTC) room for all members of this lobby. All members of the lobby will automatically join the RTC room when they connect to the lobby and they will automatically leave the RTC room when they leave or are removed from the lobby. While the joining and leaving of the RTC room is automatic, applications will still need to use the EOS RTC interfaces to handle all other functionality for the room. The default is false . |
flags | EOS_RTC_JOINROOMFLAGS | Flags for the local user in this room. Set to 0 to not specify any flags. See EOS_RTC_JOINROOMFLAGS. The default is EOS_RTC_JOINROOMFLAGS_ENABLE_DATACHANNEL . |
use_manual_audio_input | Boolean | Set to true to enable Manual Audio Input. If manual audio input is enabled, audio recording is not started and the audio buffers must be passed manually using eos_rtc_audio_send_audio. The default is false . |
use_manual_audio_output | Boolean | Set to true to enable Manual Audio Output. If manual audio output is enabled, audio rendering is not started and the audio buffers must be received with eos_rtc_audio_add_notify_audio_before_render and rendered manually. The default is false . |
local_audio_device_input_starts_muted | Boolean | Set to true to start the audio input device's stream as muted when first connecting to the RTC room. It must be manually unmuted with a call to eos_rtc_audio_update_sending. If manual audio output is enabled, this value is ignored. The default is false . |
Returns:
Triggers:
Key | Type | Description |
---|---|---|
type | String | the string "eos_lobby_create_lobby"
|
status | EOS_RESULT | The result code for the operation. EOS_RESULT.SUCCESS indicates that the operation succeeded; other codes indicate errors. |
status_message | String | Text representation of the status code |
identifier | Real | The identifier returned by the original call to the function |
lobby_id | String | The new lobby's ID |
Epic Online Services Function: EOS_Lobby_CreateLobbySearch
This function creates a lobby search handle. This handle may be modified to include various search parameters. Searching is possible in three methods, all mutually exclusive:
- set the lobby ID to find a specific lobby
- set the target user ID to find a specific user
- set lobby parameters to find an array of lobbies that match the search criteria
The function returns EOS_RESULT.SUCCESS
if the search creation completes successfully, or EOS_RESULT.INVALID_PARAMETERS
if any of the options are incorrect.
Note
You should make sure to free the handle when no longer needed with eos_lobby_search_release.
Syntax:
eos_lobby_create_lobby_search(max_results)
Argument | Type | Description |
---|---|---|
max_results | Real | The maximum number of results allowed from the search |
Returns:
Epic Online Services Function: EOS_Lobby_DestroyLobby
This function destroys a lobby given a lobby ID. It returns an async identifier.
This function operates asynchronously, which means that it does not immediately return the requested result. Instead, upon completion of the task, it will trigger the Social Async Event.
Syntax:
eos_lobby_destroy_lobby(lobby_id, local_user_id)
Argument | Type | Description |
---|---|---|
lobby_id | String | The ID of the lobby to destroy |
local_user_id | String | The Product User ID of the local user requesting destruction of the lobby; this user must currently own the lobby |
Returns:
Triggers:
Key | Type | Description |
---|---|---|
type | String | the string "eos_lobby_destroy_lobby"
|
status | EOS_RESULT | The result code for the operation. EOS_RESULT.SUCCESS indicates that the operation succeeded; other codes indicate errors. |
status_message | String | Text representation of the status code |
identifier | Real | The identifier returned by the original call to the function |
lobby_id | String | The destroyed lobby's ID |
Epic Online Services Function: EOS_Lobby_GetConnectString
This function gets the connection string for an EOS lobby. The connection string describes the presence of a player in terms of game state. Xbox platforms expect titles to embed this into their MultiplayerActivity at creation. When present, the SDK will use this value to populate session presence in the social overlay and facilitate platform invitations.
Syntax:
eos_lobby_get_connect_string(lobby_id, local_user_id)
Argument | Type | Description |
---|---|---|
lobby_id | String | The ID of the lobby to generate a connection string for |
local_user_id | String | The Product User ID of the local user requesting the connection string generated from the lobby; this user must currently own the lobby |
Returns:
Epic Online Services Function: EOS_Lobby_GetInviteCount
This function gets the number of known invites for a given user. It returns the number of known invites for a given user or 0 if there is an error.
Syntax:
eos_lobby_get_invite_count(local_user_id)
Argument | Type | Description |
---|---|---|
local_user_id | String | The Product User ID of the local user whose cached lobby invitations you want to count |
Returns:
Epic Online Services Function: EOS_Lobby_GetInviteIdByIndex
This function retrieves an invite ID from a list of active invites for a given user.
Syntax:
eos_lobby_get_invite_id_by_index(local_user_id, index)
Argument | Type | Description |
---|---|---|
local_user_id | String | The Product User ID of the local user who received the cached invitation |
index | Real | The index of the invitation ID to retrieve |
Returns:
Epic Online Services Function: EOS_Lobby_GetRTCRoomName
This function gets the name of the RTC room associated with a specific lobby a local user belongs to. This value can be used whenever you need a room_name
value in the rtc_*
suite of functions. RTC room names must not be used with eos_rtc_join_room, eos_rtc_leave_room, or eos_rtc_add_notify_disconnected. Doing so will return EOS_RESULT.ACCESS_DENIED
or EOS_INVALID_NOTIFICATIONID if used with those functions. This function will only succeed when called on a lobby the local user is currently a member of.
Syntax:
eos_lobby_get_rtc_room_name(local_user_id, lobby_id)
Argument | Type | Description |
---|---|---|
local_user_id | String | The Product User ID of the local user in the lobby |
lobby_id | String | The ID of the lobby to get the RTC room name for |
Returns:
Epic Online Services Function: EOS_Lobby_HardMuteMember
This function hard mutes an existing member in the lobby, can't speak but can hear other members of the lobby.
This function operates asynchronously, which means that it does not immediately return the requested result. Instead, upon completion of the task, it will trigger the Social Async Event.
Syntax:
eos_lobby_hard_mute_member(hard_mute, lobby_id, local_user_id, target_user_id)
Argument | Type | Description |
---|---|---|
hard_mute | Boolean | The target_user_id hard mute status (mute on or off) |
lobby_id | String | The ID of the lobby |
local_user_id | String | The Product User ID of the local user requesting the hard mute; this user must be the lobby owner |
target_user_id | String | The Product User ID of the lobby member to hard mute |
Returns:
Triggers:
Key | Type | Description |
---|---|---|
type | String | the string "eos_lobby_hard_mute_member"
|
status | EOS_RESULT | The result code for the operation. EOS_RESULT.SUCCESS indicates that the operation succeeded; other codes indicate errors. |
status_message | String | Text representation of the status code |
identifier | Real | The identifier returned by the original call to the function |
lobby_id | String | The ID of the lobby |
target_user_id | String | The Product User ID of the lobby member whose mute status has been updated |
Epic Online Services Function: EOS_Lobby_IsRTCRoomConnected
This function gets the current connection status of the RTC Room for a lobby. The RTC Room connection status is independent of the lobby connection status, however the lobby system will attempt to keep them consistent, automatically connecting to the RTC room after joining a lobby which has an associated RTC room and disconnecting from the RTC room when a lobby is left or disconnected. This function will only succeed when called on a lobby the local user is currently a member of.
Syntax:
eos_lobby_is_rtc_room_connected(lobby_id, local_user_id)
Argument | Type | Description |
---|---|---|
lobby_id | String | The ID of the lobby to get the RTC Room name for |
local_user_id | String | The Product User ID of the local user in the lobby |
Returns:
Epic Online Services Function: EOS_Lobby_JoinLobby
This function joins a lobby, creating a local instance under a given lobby ID. The backend will validate various conditions to make sure it is possible to join the lobby. If the lobby is successfully join has an RTC room enabled, the lobby system will automatically join and maintain the connection to the RTC room as long as the local user remains in the lobby. Applications can use the eos_lobby_get_rtc_room_name to get the name of the RTC room associated with a lobby, which may be used with many of the eos_rtc_*
suite of functions. This can be useful to: register for notifications for talking status; to mute or unmute the local user's audio output; to block or unblock room participants; to set local audio device settings; and more.
This function operates asynchronously, which means that it does not immediately return the requested result. Instead, upon completion of the task, it will trigger the Social Async Event.
Syntax:
eos_lobby_join_lobby(local_user_id, crossplay_opt_out, presence_enabled, enable_rtc_room, local_audio_device_input_starts_muted, use_manual_audio_input, use_manual_audio_output, flags)
Argument | Type | Description |
---|---|---|
local_user_id | String | The Product User ID of the local user joining the lobby |
crossplay_opt_out | Boolean | This value indicates whether or not the local user allows crossplay interactions. If it is false , the local user will be treated as allowing crossplay. |
presence_enabled | Boolean | If true , this lobby will be associated with the local user's presence information. A user can only associate one lobby at a time with their presence information. This affects the ability of the Social Overlay to show game related actions to take in the user's social graph. * using the presence_enabled flags within the Sessions interface * using the presence_enabled flags within the Lobby interface * using eos_presence_modification_set_join_info
|
enable_rtc_room | Boolean | Creates a real-time communication (RTC) room for all members of this lobby. All members of the lobby will automatically join the RTC room when they connect to the lobby and they will automatically leave the RTC room when they leave or are removed from the lobby. While the joining and leaving of the RTC room is automatic, applications will still need to use the EOS RTC interfaces to handle all other functionality for the room. |
local_audio_device_input_starts_muted | Boolean | Set to true to start the audio input device's stream as muted when first connecting to the RTC room. It must be manually unmuted with a call to eos_rtc_audio_update_sending. If manual audio output is enabled, this value is ignored. |
use_manual_audio_input | Boolean | Set to true to enable Manual Audio Input. If manual audio input is enabled, audio recording is not started and the audio buffers must be passed manually using eos_rtc_audio_send_audio. |
use_manual_audio_output | Boolean | Set to true to enable Manual Audio Output. If manual audio output is enabled, audio rendering is not started and the audio buffers must be received with eos_rtc_audio_add_notify_audio_before_render and rendered manually. |
flags | EOS_RTC_JOINROOMFLAGS | Flags for the local user in this room. Set to 0 to not specify any flags. See EOS_RTC_JOINROOMFLAGS. |
Returns:
Triggers:
Key | Type | Description |
---|---|---|
type | String | the string "eos_lobby_join_lobby"
|
status | EOS_RESULT | The result code for the operation. EOS_RESULT.SUCCESS indicates that the operation succeeded; other codes indicate errors. |
status_message | String | Text representation of the status code |
identifier | Real | The identifier returned by the original call to the function |
lobby_id | String | The ID of the lobby |
Epic Online Services Function: EOS_Lobby_JoinLobbyById
This function is a special case of eos_lobby_join_lobby. It should only be used if the lobby has had Join-by-ID enabled. Additionally, Join-by-ID should only be enabled to support native invites on an integrated platform.
This function operates asynchronously, which means that it does not immediately return the requested result. Instead, upon completion of the task, it will trigger the Social Async Event.
Syntax:
eos_lobby_join_lobby_by_id(local_user_id, crossplay_opt_out, presence_enabled, lobby_id, enable_rtc_room, local_audio_device_input_starts_muted, use_manual_audio_input, use_manual_audio_output, flags)
Argument | Type | Description |
---|---|---|
local_user_id | String | The Product User ID of the local user joining the lobby |
crossplay_opt_out | Boolean | This value indicates whether or not the local user allows crossplay interactions. If it is false , the local user will be treated as allowing crossplay. |
presence_enabled | Boolean | If true , this lobby will be associated with the user's presence information. A user can only associate one lobby at a time with their presence information. This affects the ability of the Social Overlay to show game related actions to take in the user's social graph. * using the presence_enabled flags within the Sessions interface * using the presence_enabled flags within the Lobby interface * using eos_presence_modification_set_join_info
|
lobby_id | String | The ID of the lobby |
enable_rtc_room | Boolean | Creates a real-time communication (RTC) room for all members of this lobby. All members of the lobby will automatically join the RTC room when they connect to the lobby and they will automatically leave the RTC room when they leave or are removed from the lobby. While the joining and leaving of the RTC room is automatic, applications will still need to use the EOS RTC interfaces to handle all other functionality for the room. |
local_audio_device_input_starts_muted | Boolean | Set to true to start the audio input device's stream as muted when first connecting to the RTC room. It must be manually unmuted with a call to eos_rtc_audio_update_sending. If manual audio output is enabled, this value is ignored. |
use_manual_audio_input | Boolean | Set to true to enable Manual Audio Input. If manual audio input is enabled, audio recording is not started and the audio buffers must be passed manually using eos_rtc_audio_send_audio. |
use_manual_audio_output | Boolean | Set to true to enable Manual Audio Output. If manual audio output is enabled, audio rendering is not started and the audio buffers must be received with eos_rtc_audio_add_notify_audio_before_render and rendered manually. |
flags | EOS_RTC_JOINROOMFLAGS | Flags for the local user in this room. Set to 0 to not specify any flags. See EOS_RTC_JOINROOMFLAGS. |
Returns:
Triggers:
Key | Type | Description |
---|---|---|
type | String | the string "eos_lobby_join_lobby_by_id"
|
status | EOS_RESULT | The result code for the operation. EOS_RESULT.SUCCESS indicates that the operation succeeded; other codes indicate errors. |
status_message | String | Text representation of the status code |
identifier | Real | The identifier returned by the original call to the function |
lobby_id | String | The ID of the lobby |
Epic Online Services Function: EOS_Lobby_KickMember
This function kicks an existing member from the lobby.
This function operates asynchronously, which means that it does not immediately return the requested result. Instead, upon completion of the task, it will trigger the Social Async Event.
Syntax:
eos_lobby_kick_member(lobby_id, local_user_id, target_user_id)
Argument | Type | Description |
---|---|---|
lobby_id | String | The ID of the lobby |
local_user_id | String | The Product User ID of the local user requesting the removal; this user must be the lobby owner |
target_user_id | String | The Product User ID of the lobby member to remove |
Returns:
Triggers:
Key | Type | Description |
---|---|---|
type | String | the string "eos_lobby_kick_member"
|
status | EOS_RESULT | The result code for the operation. EOS_RESULT.SUCCESS indicates that the operation succeeded; other codes indicate errors. |
status_message | String | Text representation of the status code |
identifier | Real | The identifier returned by the original call to the function |
lobby_id | String | The ID of the lobby |
Epic Online Services Function: EOS_Lobby_LeaveLobby
This function leaves a lobby given a lobby ID. If the lobby you are leaving had an RTC Room enabled, leaving the lobby will also automatically leave the RTC room.
This function operates asynchronously, which means that it does not immediately return the requested result. Instead, upon completion of the task, it will trigger the Social Async Event.
Syntax:
eos_lobby_leave_lobby(lobby_id, local_user_id)
Argument | Type | Description |
---|---|---|
lobby_id | String | The ID of the lobby |
local_user_id | String | The Product User ID of the local user leaving the lobby |
Returns:
Triggers:
Key | Type | Description |
---|---|---|
type | String | the string "eos_lobby_leave_lobby"
|
status | EOS_RESULT | The result code for the operation. EOS_RESULT.SUCCESS indicates that the operation succeeded; other codes indicate errors. |
status_message | String | Text representation of the status code |
identifier | Real | The identifier returned by the original call to the function |
lobby_id | String | The ID of the lobby |
Epic Online Services Function: EOS_Lobby_ParseConnectString
This function parses the ConnectString for an EOS lobby invitation to extract just the lobby ID. Used for joining a lobby from a connection string (as generated by eos_lobby_get_connect_string) found in a platform invitation or presence.
Syntax:
eos_lobby_parse_connect_string()
Returns:
Epic Online Services Function: EOS_Lobby_PromoteMember
This function promotes an existing member of the lobby to owner, allowing them to make lobby data modifications.
The function returns an async identifier.
This function operates asynchronously, which means that it does not immediately return the requested result. Instead, upon completion of the task, it will trigger the Social Async Event.
Syntax:
eos_lobby_promote_member(lobby_id, local_user_id, target_user_id)
Argument | Type | Description |
---|---|---|
lobby_id | String | The ID of the lobby |
local_user_id | String | The Product User ID of the local user making the request |
target_user_id | String | The Product User ID of the member to promote to owner of the lobby |
Returns:
Triggers:
Key | Type | Description |
---|---|---|
type | String | the string "eos_lobby_promote_member"
|
status | EOS_RESULT | The result code for the operation. EOS_RESULT.SUCCESS indicates that the operation succeeded; other codes indicate errors. |
status_message | String | Text representation of the status code |
identifier | Real | The identifier returned by the original call to the function |
lobby_id | String | The ID of the lobby where the user was promoted |
Epic Online Services Function: EOS_Lobby_QueryInvites
This function retrieves all existing invites for a single user.
This function operates asynchronously, which means that it does not immediately return the requested result. Instead, upon completion of the task, it will trigger the Social Async Event.
Syntax:
eos_lobby_query_invites(local_user_id)
Argument | Type | Description |
---|---|---|
local_user_id | String | The Product User ID of the local user whose invitations you want to retrieve |
Returns:
Triggers:
Key | Type | Description |
---|---|---|
type | String | the string "eos_lobby_query_invites"
|
status | EOS_RESULT | The result code for the operation. EOS_RESULT.SUCCESS indicates that the operation succeeded; other codes indicate errors. |
status_message | String | Text representation of the status code |
identifier | Real | The identifier returned by the original call to the function |
local_user_id | String | The Product User ID of the local user that made the request |
Epic Online Services Function: EOS_Lobby_RejectInvite
This function rejects an invite from another user.
This function operates asynchronously, which means that it does not immediately return the requested result. Instead, upon completion of the task, it will trigger the Social Async Event.
Syntax:
eos_lobby_reject_invite(invite_id, local_user_id)
Argument | Type | Description |
---|---|---|
invite_id | String | The ID of the lobby associated with the invitation |
local_user_id | String | The Product User ID of the local user who is rejecting the invitation |
Returns:
Triggers:
Key | Type | Description |
---|---|---|
type | String | the string "eos_lobby_reject_invite"
|
status | EOS_RESULT | The result code for the operation. EOS_RESULT.SUCCESS indicates that the operation succeeded; other codes indicate errors. |
status_message | String | Text representation of the status code |
identifier | Real | The identifier returned by the original call to the function |
invite_id | String | The ID of the invitation being rejected |
Epic Online Services Function: EOS_Lobby_RemoveNotifyJoinLobbyAccepted
This function unregisters from receiving notifications when a user accepts a lobby invitation via the overlay.
Syntax:
eos_lobby_remove_notify_join_lobby_accepted(notification_id)
Argument | Type | Description |
---|---|---|
notification_id | Real | A handle representing the registered callback |
Returns:
N/A
Epic Online Services Function: EOS_Lobby_RemoveNotifyLeaveLobbyRequested
This function unregisters from receiving notifications when a user performs a leave lobby action via the overlay.
Syntax:
eos_lobby_remove_notify_leave_lobby_requested(notification_id)
Argument | Type | Description |
---|---|---|
notification_id | Real | A handle representing the registered callback |
Returns:
N/A
Epic Online Services Function: EOS_Lobby_RemoveNotifyLobbyInviteAccepted
This function unregisters from receiving notifications when a user accepts a lobby invitation via the overlay.
Syntax:
eos_lobby_remove_notify_lobby_invite_accepted(notification_id)
Argument | Type | Description |
---|---|---|
notification_id | Real | A handle representing the registered callback |
Returns:
N/A
Epic Online Services Function: EOS_Lobby_RemoveNotifyLobbyInviteReceived
This function unregisters from receiving notifications when a user receives a lobby invitation.
Syntax:
eos_lobby_remove_notify_lobby_invite_received(notification_id)
Argument | Type | Description |
---|---|---|
notification_id | Real | A handle representing the registered callback |
Returns:
N/A
Epic Online Services Function: EOS_Lobby_RemoveNotifyLobbyInviteRejected
This function unregisters from receiving notifications when a user rejects a lobby invitation via the overlay.
Syntax:
eos_lobby_remove_notify_lobby_invite_rejected(notification_id)
Argument | Type | Description |
---|---|---|
notification_id | Real | A handle representing the registered callback |
Returns:
N/A
Epic Online Services Function: EOS_Lobby_RemoveNotifyLobbyMemberStatusReceived
This function unregisters from receiving notifications when lobby members status change.
Syntax:
eos_lobby_remove_notify_lobby_member_status_received(notification_id)
Argument | Type | Description |
---|---|---|
notification_id | Real | A handle representing the registered callback |
Returns:
N/A
Epic Online Services Function: EOS_Lobby_RemoveNotifyLobbyMemberUpdateReceived
This function unregisters from receiving notifications when lobby members change their data.
Syntax:
eos_lobby_remove_notify_lobby_member_update_received(notification_id)
Argument | Type | Description |
---|---|---|
notification_id | Real | A handle representing the registered callback |
Returns:
N/A
Epic Online Services Function: EOS_Lobby_RemoveNotifyLobbyUpdateReceived
This function unregisters from receiving notifications when a lobby changes its data.
Syntax:
eos_lobby_remove_notify_lobby_update_received(notification_id)
Argument | Type | Description |
---|---|---|
notification_id | Real | A handle representing the registered callback |
Returns:
N/A
Epic Online Services Function: EOS_Lobby_RemoveNotifyRTCRoomConnectionChanged
This function unregisters from receiving notifications when an RTC Room's connection status changes. This should be called when the local user is leaving a lobby.
Syntax:
eos_lobby_remove_notify_rtc_room_connection_changed(notification_id)
Argument | Type | Description |
---|---|---|
notification_id | Real | A handle representing the registered callback |
Returns:
N/A
Epic Online Services Function: EOS_Lobby_RemoveNotifySendLobbyNativeInviteRequested
This function unregisters from receiving notifications when a user requests a send invite via the overlay.
Syntax:
eos_lobby_remove_notify_send_lobby_native_invite_requested(notification_id)
Argument | Type | Description |
---|---|---|
notification_id | Real | A handle representing the registered callback |
Returns:
N/A
Epic Online Services Function: EOS_Lobby_SendInvite
This function sends an invite to another user. The user must be a member of the lobby or else the call will fail.
The function returns an async identifier.
This function operates asynchronously, which means that it does not immediately return the requested result. Instead, upon completion of the task, it will trigger the Social Async Event.
Syntax:
eos_lobby_send_invite(lobby_id, local_user_id, target_user_id)
Argument | Type | Description |
---|---|---|
lobby_id | String | The ID of the lobby associated with the invitation |
local_user_id | String | The Product User ID of the local user sending the invitation |
target_user_id | String | The Product User ID of the user receiving the invitation |
Returns:
Triggers:
Key | Type | Description |
---|---|---|
type | String | the string "eos_lobby_send_invite"
|
status | EOS_RESULT | The result code for the operation. EOS_RESULT.SUCCESS indicates that the operation succeeded; other codes indicate errors. |
status_message | String | Text representation of the status code |
identifier | Real | The identifier returned by the original call to the function |
lobby_id | String | The ID of the lobby |
Epic Online Services Function: EOS_Lobby_UpdateLobby
This function updates a lobby given a lobby modification handle created by eos_lobby_update_lobby_modification.
The function returns an async identifier.
This function operates asynchronously, which means that it does not immediately return the requested result. Instead, upon completion of the task, it will trigger the Social Async Event.
Syntax:
eos_lobby_update_lobby()
Returns:
Triggers:
Key | Type | Description |
---|---|---|
type | String | the string "eos_lobby_update_lobby"
|
status | EOS_RESULT | The result code for the operation. EOS_RESULT.SUCCESS indicates that the operation succeeded; other codes indicate errors. |
status_message | String | Text representation of the status code |
identifier | Real | The identifier returned by the original call to the function |
lobby_id | String | The ID of the lobby |
Epic Online Services Function: EOS_Lobby_UpdateLobbyModification
This function creates a lobby modification handle. The lobby modification handle is used to modify an existing lobby and can be applied with eos_lobby_update_lobby. The handle must be released by calling eos_lobby_modification_release once it is no longer needed.
The function returns one of the following:
-
EOS_RESULT.SUCCESS
if EOS successfully created the lobby modification handle, or an error result if the input data was invalid -
EOS_RESULT.INVALID_PARAMETERS
if any of the options are incorrect
Syntax:
eos_lobby_update_lobby_modification(lobby_id, local_user_id)
Argument | Type | Description |
---|---|---|
lobby_id | String | The ID of the lobby |
local_user_id | String | The ID of the local user making modifications. Must be the owner to modify lobby data, but any lobby member can modify their own attributes. |
Returns:
Epic Online Services Function: EOS_LobbyDetails_CopyAttributeByIndex
This function is used to immediately retrieve a copy of a lobby attribute from a given source such as a existing lobby or a search result.
Syntax:
eos_lobby_details_copy_attribute_by_index(index)
Argument | Type | Description |
---|---|---|
index | Real | The index of the attribute to retrieve |
Returns:
Epic Online Services Function: EOS_LobbyDetails_CopyAttributeByKey
This function is used to immediately retrieve a copy of a lobby attribute from a given source such as a existing lobby or a search result.
Syntax:
eos_lobby_details_copy_attribute_by_key(attr_key)
Argument | Type | Description |
---|---|---|
attr_key | String | The name of the attribute |
Returns:
Epic Online Services Function: EOS_LobbyDetails_CopyInfo
This function is used to immediately retrieve a copy of lobby information from a given source such as a existing lobby or a search result.
Syntax:
eos_lobby_details_copy_info()
Returns:
Epic Online Services Function: EOS_LobbyDetails_CopyMemberAttributeByIndex
This function is used to immediately retrieve a copy of a lobby member attribute from an existing lobby.
Note
this information is only available if you are actively in the lobby. It is not available for search results.
Syntax:
eos_lobby_details_copy_member_attribute_by_index(index, target_user_id)
Argument | Type | Description |
---|---|---|
index | Real | The index of the attribute to copy |
target_user_id | String | The Product User ID of the lobby member |
Returns:
Epic Online Services Function: EOS_LobbyDetails_CopyMemberAttributeByKey
This function is used to immediately retrieve a copy of a lobby member attribute from an existing lobby.
Note
this information is only available if you are actively in the lobby. It is not available for search results.
Syntax:
eos_lobby_details_copy_member_attribute_by_key(attr_key, target_user_id)
Argument | Type | Description |
---|---|---|
attr_key | String | The name of the attribute to copy |
target_user_id | String | The Product User ID of the lobby member |
Returns:
Epic Online Services Function: EOS_LobbyDetails_CopyMemberInfo
This function is used to immediately retrieve a copy of lobby member information from an existing lobby.
Note
this information is only available if you are actively in the lobby. It is not available for search results.
Syntax:
eos_lobby_details_copy_member_info(target_user_id)
Argument | Type | Description |
---|---|---|
target_user_id | String | The Product User ID of the lobby member to copy |
Returns:
Epic Online Services Function: EOS_LobbyDetails_GetAttributeCount
This function gets the number of attributes associated with this lobby. It returns the number of attributes on the lobby or 0 if there is an error.
Syntax:
eos_lobby_details_get_attribute_count()
Returns:
Epic Online Services Function: EOS_LobbyDetails_GetLobbyOwner
This function gets the product user ID of the current owner for a given lobby, or an empty string ""
if the input parameters are invalid.
Syntax:
eos_lobby_details_get_lobby_owner()
Returns:
Epic Online Services Function: EOS_LobbyDetails_GetMemberAttributeCount
This function is used to immediately retrieve the attribute count for members in a lobby. It returns the number of attributes associated with a given lobby member or 0 if that member is invalid.
Note
this information is only available if you are actively in the lobby. It is not available for search results.
Syntax:
eos_lobby_details_get_member_attribute_count(target_user_id)
Argument | Type | Description |
---|---|---|
target_user_id | String | The Product User ID of the lobby member |
Returns:
Epic Online Services Function: EOS_LobbyDetails_GetMemberByIndex
This function is used to immediately retrieve individual members registered with a lobby.
Note
this information is only available if you are actively in the lobby. It is not available for search results.
Syntax:
eos_lobby_details_get_member_by_index(index)
Argument | Type | Description |
---|---|---|
index | Real | The index of the member to retrieve |
Returns:
Epic Online Services Function: EOS_LobbyDetails_GetMemberCount
This function gets the number of members associated with this lobby.
Syntax:
eos_lobby_details_get_member_count()
Returns:
Epic Online Services Function: EOS_LobbyDetails_Info_Release
This function releases previously retrieved lobby details.
Syntax:
eos_lobby_details_release()
Returns:
Epic Online Services Function: EOS_LobbyModification_AddAttribute
This function associates an attribute with this lobby. An attribute is something that may be public or private with the lobby. If public, it can be queried for in a search, otherwise the data remains known only to lobby members.
The function returns one of the following:
-
EOS_RESULT.SUCCESS
if setting this parameter was successful -
EOS_RESULT.INVALID_PARAMETERS
if the attribute is missing information or otherwise invalid -
EOS_RESULT.INCOMPATIBLE_VERSION
if the API version passed in is incorrect
Syntax:
eos_lobby_modification_add_attribute(visibility, attribute)
Argument | Type | Description |
---|---|---|
visibility | EOS_LOBBY_ATTRIBUTE_VISIBILITY | Whether this attribute is public or private to the lobby and its members |
attribute | Struct | A struct that defines a single key/value pair describing the attribute to add to the lobby. The struct must contain the following variables: * key (String)* value_type (EOS_ATTRIBUTE_TYPE)* value (a value of the given value_type ) |
Returns:
Epic Online Services Function: EOS_LobbyModification_AddMemberAttribute
This function associates an attribute with a member of the lobby. Lobby member data is always private to the lobby.
The function returns one of the following:
-
EOS_RESULT.SUCCESS
if setting this parameter was successful -
EOS_RESULT.INVALID_PARAMETERS
if the attribute is missing information or otherwise invalid -
EOS_RESULT.INCOMPATIBLE_VERSION
if the API version passed in is incorrect
Syntax:
eos_lobby_modification_add_member_attribute(visibility, attribute)
Argument | Type | Description |
---|---|---|
visibility | EOS_LOBBY_ATTRIBUTE_VISIBILITY | Whether this attribute is public or private to the rest of the lobby members |
attribute | Struct | A struct that defines a single key/value pair describing the attribute to add to the lobby member. The struct must contain the following variables: * key (String)* value_type (EOS_ATTRIBUTE_TYPE)* value (a value of the given value_type ) |
Returns:
Epic Online Services Function: EOS_LobbyModification_Release
This function releases a previously obtained lobby modification.
Syntax:
eos_lobby_modification_release()
Returns:
N/A
Epic Online Services Function: EOS_LobbyModification_RemoveAttribute
This function removes an attribute associated with the lobby.
The function returns one of the following:
-
EOS_RESULT.SUCCESS
if removing this parameter was successful -
EOS_RESULT.INVALID_PARAMETERS
if the key is empty -
EOS_RESULT.INCOMPATIBLE_VERSION
if the API version passed in is incorrect
Syntax:
eos_lobby_modification_remove_attribute(key)
Argument | Type | Description |
---|---|---|
key | String | The name of the key |
Returns:
Epic Online Services Function: EOS_LobbyModification_RemoveMemberAttribute
This function removes an attribute associated with of member of the lobby.
The function returns one of the following:
-
EOS_RESULT.SUCCESS
if removing this parameter was successful -
EOS_RESULT.INVALID_PARAMETERS
if the key is empty -
EOS_RESULT.INCOMPATIBLE_VERSION
if the API version passed in is incorrect
Syntax:
eos_lobby_modification_remove_member_attribute(key)
Argument | Type | Description |
---|---|---|
key | String | The name of the key |
Returns:
Epic Online Services Function: EOS_LobbyModification_SetAllowedPlatformIds
This function sets the Allowed Platform IDs for the lobby.
The function returns one of the following:
-
EOS_RESULT.SUCCESS
if setting this parameter was successful -
EOS_RESULT.INCOMPATIBLE_VERSION
if the API version passed in is incorrect -
EOS_RESULT.INVALID_PARAMETERS
if the parameter is invalid
Syntax:
eos_lobby_modification_set_allowed_platform_ids(allowed_platform_ids)
Argument | Type | Description |
---|---|---|
allowed_platform_ids | Array of EOS_ONLINE_PLATFORM_TYPE | An array of platform IDs indicating the player platforms allowed to register with the session. The lobby will be unrestricted if you pass an empty array. |
Returns:
Epic Online Services Function: EOS_LobbyModification_SetBucketId
This function sets the bucket ID associated with this lobby. Values such as region, game mode, etc., can be combined here depending on game need. Setting this is strongly recommended to improve search performance.
The function returns one of the following:
-
EOS_RESULT.SUCCESS
if setting this parameter was successful -
EOS_RESULT.INVALID_PARAMETERS
if the bucket ID is invalid -
EOS_RESULT.INCOMPATIBLE_VERSION
if the API version passed in is incorrect
Syntax:
eos_lobby_modification_set_bucket_id(bucket_id)
Argument | Type | Description |
---|---|---|
bucket_id | String | The new bucket ID associated with the lobby |
Returns:
Epic Online Services Function: EOS_LobbyModification_SetInvitesAllowed
This function allows enabling or disabling invites for this lobby. The lobby will also need to have presence_enabled
set to true
.
The function returns one of the following:
-
EOS_RESULT.SUCCESS
if setting this parameter was successful -
EOS_RESULT.INCOMPATIBLE_VERSION
if the API version passed in is incorrect
Syntax:
eos_lobby_modification_set_invites_allowed(invites_allowed)
Argument | Type | Description |
---|---|---|
invites_allowed | Boolean | If true then invites can currently be sent for the associated lobby |
Returns:
Epic Online Services Function: EOS_LobbyModification_SetMaxMembers
This function sets the maximum number of members allowed in this lobby. When updating the lobby, it is not possible to reduce this number below the current number of existing members.
The function returns one of the following:
-
EOS_RESULT.SUCCESS
if setting this parameter was successful -
EOS_RESULT.INCOMPATIBLE_VERSION
if the API version passed in is incorrect
Syntax:
eos_lobby_modification_set_max_members(max_members)
Argument | Type | Description |
---|---|---|
max_members | Real | The new maximum number of lobby members |
Returns:
Epic Online Services Function: EOS_LobbyModification_SetPermissionLevel
This function sets the permissions associated with this lobby. The permissions range from "public" to "invite only" and are described by EOS_LOBBY_PERMISSION_LEVEL.
The function returns one of the following:
-
EOS_RESULT.SUCCESS
if setting this parameter was successful -
EOS_RESULT.INCOMPATIBLE_VERSION
if the API version passed in is incorrect
Syntax:
eos_lobby_modification_set_permission_level(permission_level)
Argument | Type | Description |
---|---|---|
permission_level | EOS_LOBBY_PERMISSION_LEVEL | The permission level of the lobby |
Returns:
Epic Online Services Function: EOS_LobbySearch_CopySearchResultByIndex
This function is used to immediately retrieve a handle to the lobby information from a given search result. If the call returns an EOS_RESULT.SUCCESS
result, the lobby details handle must be released with eos_lobby_details_release to release the memory associated with it once you are done using it.
The function returns one of the following:
-
EOS_RESULT.SUCCESS
if the information is available -
EOS_RESULT.INVALID_PARAMETERS
if you pass an invalid index -
EOS_RESULT.INCOMPATIBLE_VERSION
if the API version passed in is incorrect
Syntax:
eos_lobby_search_copy_search_result_by_index(lobby_index)
Argument | Type | Description |
---|---|---|
lobby_index | Real | The index of the lobby to retrieve within the completed search query |
Returns:
Epic Online Services Function: EOS_LobbySearch_Find
This function finds lobbies matching the search criteria setup via this lobby search handle. When the operation completes, this handle will have the search results that can be parsed.
The function returns an async identifier.
This function operates asynchronously, which means that it does not immediately return the requested result. Instead, upon completion of the task, it will trigger the Social Async Event.
Syntax:
eos_lobby_search_find(local_user_id)
Argument | Type | Description |
---|---|---|
local_user_id | String | The Product User ID of the user making the search request |
Returns:
Triggers:
Key | Type | Description |
---|---|---|
type | String | the string "eos_lobby_search_find"
|
status | EOS_RESULT | The result code for the operation. EOS_RESULT.SUCCESS indicates that the operation succeeded; other codes indicate errors. |
status_message | String | Text representation of the status code |
identifier | Real | The identifier returned by the original function call |
Epic Online Services Function: EOS_LobbySearch_GetSearchResultCount
This function gets the number of search results found by the search parameters in this search. It returns the number of search results found by the query or 0 if search is not complete.
Syntax:
eos_lobby_search_get_search_result_count()
Returns:
Epic Online Services Function: EOS_LobbySearch_Release
This function releases the memory associated with a lobby search. This must be called on data retrieved from eos_lobby_create_lobby_search.
Syntax:
eos_lobby_search_release()
Returns:
N/A
Epic Online Services Function: EOS_LobbySearch_RemoveParameter
This function removes a parameter from the array of search criteria.
Syntax:
eos_lobby_search_remove_parameter(key, comparison_op)
Argument | Type | Description |
---|---|---|
key | String | The search parameter key to remove from the search |
comparison_op | EOS_COMPARISON_OP | The search comparison operation associated with the key to remove |
Returns:
N/A
Epic Online Services Function: EOS_LobbySearch_SetLobbyId
This function sets a lobby ID to find and will return at most one search result. Setting TargetUserId or SearchParameters will result in eos_lobby_search_find failing.
The function returns one of the following:
-
EOS_RESULT.SUCCESS
if setting this lobby ID was successful -
EOS_RESULT.INVALID_PARAMETERS
if the lobby ID is invalid -
EOS_RESULT.INCOMPATIBLE_VERSION
if the API version passed in is incorrect
Syntax:
eos_lobby_search_set_lobby_id(lobby_id)
Argument | Type | Description |
---|---|---|
lobby_id | String | The ID of the lobby to find |
Returns:
Epic Online Services Function: EOS_LobbySearch_SetMaxResults
This function sets the maximum number of search results to return in the query, can't be more than EOS_LOBBY_MAX_SEARCH_RESULTS.
The function returns one of the following:
-
EOS_RESULT.SUCCESS
if setting the max results was successful -
EOS_RESULT.INVALID_PARAMETERS
if the number of results requested is invalid -
EOS_RESULT.INCOMPATIBLE_VERSION
if the API version passed in is incorrect
Syntax:
eos_lobby_search_set_max_results(max_results)
Argument | Type | Description |
---|---|---|
max_results | Real | The maximum number of search results to return from the query |
Returns:
Epic Online Services Function: EOS_LobbySearch_SetParameter
This function adds a parameter to an array of search criteria combined via an implicit AND operator. Setting LobbyId or TargetUserId will result in eos_lobby_search_find failing.
The function returns one of the following:
-
EOS_RESULT.SUCCESS
if setting this search parameter was successful -
EOS_RESULT.INVALID_PARAMETERS
if the search criteria is invalid -
EOS_RESULT.INCOMPATIBLE_VERSION
if the API version passed in is incorrect
Syntax:
eos_lobby_search_set_parameter(comparison_op, parameter)
Argument | Type | Description |
---|---|---|
comparison_op | EOS_COMPARISON_OP | The type of comparison to make against the search parameter |
parameter | EOS_Lobby_Attribute | A search parameter describing a key and a value to compare |
Returns:
Epic Online Services Function: EOS_LobbySearch_SetTargetUserId
This function sets a target user ID to find. Setting LobbyId or SearchParameters will result in eos_lobby_search_find failing.
The function returns one of the following:
-
EOS_RESULT.SUCCESS
if setting this target user ID was successful -
EOS_RESULT.INVALID_PARAMETERS
if the target user ID is invalid -
EOS_RESULT.INCOMPATIBLE_VERSION
if the API version passed in is incorrect
Syntax:
eos_lobby_search_set_target_user_id(target_user_id)
Argument | Type | Description |
---|---|---|
target_user_id | String | Search lobbies for the given user by Product User ID, returning any lobbies where this user is currently registered |
Returns:
Epic Online Services Function: EOS_ELobbyMemberStatus
This enumeration holds the possible types of lobby member status.
These constants are referenced by the following functions:
Member | Description |
---|---|
JOINED |
The user has joined the lobby |
LEFT |
The user has explicitly left the lobby |
DISCONNECTED |
The user has unexpectedly left the lobby |
KICKED |
The user has been kicked from the lobby |
PROMOTED |
The user has been promoted to lobby owner |
CLOSED |
The lobby has been closed and user has been removed |
Epic Online Services Enumeration: EOS_ELobbyAttributeVisibility
This enum holds the possible advertisement properties for a single attribute associated with a lobby.
These constants are referenced by the following functions:
These constants are referenced by the following structs:
Member | Description |
---|---|
PUBLIC |
Data is visible to lobby members, searchable and visible in search results. |
PRIVATE |
Data is only visible to the user setting the data. Data is not visible to lobby members, not searchable, and not visible in search results. |
Epic Online Services Struct: EOS_ELobbyPermissionLevel
These constants are referenced by the following functions:
These constants are referenced by the following structs:
Member | Description |
---|---|
PUBLIC_ADVERTISED |
Anyone can find this lobby as long as it isn't full |
JOIN_VIA_PRESENCE |
Players who have access to presence can see this lobby |
INVITE_ONLY |
Only players with invites registered can see this lobby |
This macro holds the maximum number of lobby search results.
These constants are referenced by the following functions:
- eos_lobby_modification_set_allowed_platform_ids
- eos_session_modification_set_allowed_platform_ids
- eos_sessions_create_session_modification
These constants are referenced by the following structs:
Member | Description |
---|---|
UNKNOWN |
The platform type is unknown |
EPIC |
The platform type is Epic Games |
STEAM |
The platform type is Steam |
Epic Online Services Struct: EOS_Lobby_Attribute
This struct stores an attribute and its visibility setting stored with a lobby. Used to store both lobby and lobby member data.
This struct is referenced by the following functions:
- eos_lobby_details_copy_attribute_by_index
- eos_lobby_details_copy_attribute_by_key
- eos_lobby_details_copy_member_attribute_by_index
- eos_lobby_details_copy_member_attribute_by_key
- eos_lobby_search_set_parameter
Member | Type | Description |
---|---|---|
key | String | The name of the lobby attribute |
value | Any | The value of the lobby attribute |
visibility | EOS_LOBBY_ATTRIBUTE_VISIBILITY | Whether this attribute is public or private to the lobby and its members |
Epic Online Services Struct: EOS_LobbyDetails_Info
This struct holds details on a lobby.
This struct is referenced by the following functions:
Member | Type | Description |
---|---|---|
available_slots | Real | The current available space |
allow_host_migration | Boolean | Whether host migration is allowed |
allow_invites | Boolean | If true , users can invite others to this lobby |
allow_join_by_id | Boolean | Whether eos_lobby_join_lobby_by_id is allowed |
presence_enabled | Boolean | If true , this lobby will be associated with the local user's presence information. |
rejoin_after_kick_requires_invite | Boolean | Whether rejoining after being kicked requires an invite |
rtc_room_enabled | Boolean | Was a Real-Time Communication (RTC) room enabled at lobby creation? |
bucket_id | String | The main indexed parameter for this lobby, can be any string (i.e. "Region:GameMode" ) |
lobby_id | String | The lobby ID |
lobby_owner_user_id | String | The Product User ID of the current owner of the lobby |
max_members | Real | Max allowed members in the lobby |
permission_level | EOS_LOBBY_PERMISSION_LEVEL | The permission level of the lobby |
Epic Online Services Function: EOS_LobbyDetails_MemberInfo
This struct holds information on a lobby member.
This struct is referenced by the following functions:
Member | Type | Description |
---|---|---|
allows_crossplay | Boolean | Whether this member allows crossplay |
platform | EOS_ONLINE_PLATFORM_TYPE | The platform of the lobby member |
user_id | String | The Product User ID of the lobby member |