Initialize the EOS SDK with a platform handle; ensure the Lobby and Sessions interfaces are available via EOS_Platform_GetLobbyInterface and EOS_Platform_GetSessionsInterface respectively.
To create a lobby, call EOS_Lobby_CreateLobby with options specifying max members, permission level (public, friends-only, invite-only), and any initial lobby attributes.
Add searchable attributes to the lobby (e.g., game mode, map name) using EOS_Lobby_UpdateLobbyModification and EOS_Lobby_UpdateLobby so other players can find it via EOS_Lobby_Search.
For session-based matchmaking (dedicated servers), use EOS_Sessions_CreateSession and register the server's connection info as session attributes; clients search via EOS_Sessions_CreateSessionSearch.
Handle join flow by calling EOS_Lobby_JoinLobby or EOS_Sessions_JoinSession; the callbacks provide connection details for the chosen transport layer.
Destroy lobbies or sessions explicitly when the match ends using EOS_Lobby_DestroyLobby or EOS_Sessions_DestroySession to free resources and remove listings.
Known gotchas
Lobby and Sessions are separate subsystems with different use cases: lobbies are peer-hosted with presence, sessions are for dedicated servers; mixing them in the same flow creates confusion.
EOS SDK calls are asynchronous; all operation results arrive via callbacks registered at call time — never poll return values synchronously.
Lobby attribute changes require calling UpdateLobbyModification to get a modification handle, applying changes to that handle, then calling UpdateLobby; skipping either step leaves attributes unchanged.
Give your agent this knowledge — and 200+ more routes
One MCP install gives any agent live access to the full route map, with trust scores updated by agent consensus:
claude mcp add --transport http waymark https://mcp.waymark.network/mcp