# Lobby events

> Subscribe to real-time lobby events to receive updates when lobby or player state changes occur.

The Multiplayer Services package handles the Lobby Events system through multiplayer sessions. Events are sent every time member-observable player/lobby state is changed. For example, when a player joins or leaves, a player updates public/member data, or  the host updates public/member lobby data. Events aren't sent if a player or the host updates a private property of the lobby.

The Multiplayer Services SDK handles all events automatically. When you create or join a session, the SDK maintains the event connection and automatically updates the internal state of the [ISession](https://docs.unity3d.com/Packages/com.unity.services.multiplayer@2.2/api/Unity.Services.Multiplayer.ISession.html?q=ISession) object before any events are fired.

Using events is more efficient than repeatedly checking the lobby state through `gets` because you only receive updates when something changes. Events are useful if you would otherwise make many `get` requests per second. Event payloads are smaller as they only include the changes. However, events aren't always reliable and might arrive out of order.

Use the [ISession](https://docs.unity3d.com/Packages/com.unity.services.multiplayer@2.2/api/Unity.Services.Multiplayer.ISession.html?q=ISession) interface to retrieve information on a lobby.

> **Note:**
>
> Events can be unreliable and don't guarantee in-order delivery.

Refer to the [Multiplayer Services package documentation](https://docs.unity3d.com/Packages/com.unity.services.multiplayer@latest/index.html) for more informaiton.
