> ## Documentation Index
> Fetch the complete documentation index at: https://docs.summerengine.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Summer.client

> Role-scoped client SDK root.

**Class:** `SummerClient` · **Inherits:** RefCounted

Role-scoped client SDK root.

This root exists only for a client execution context. Its identity remains stable while immutable context projections advance after admission or reconnect; authority operations are never attached.

## Services

| Property | Class | What it does |
| - | - | - |
| [`channels`](/api-reference/gdscript/client/channels) | [`SummerClientChannels`](/api-reference/gdscript/client/channels) | Player chat channels bound to the current admitted World. |
| [`analytics`](/api-reference/gdscript/client/analytics) | [`SummerClientAnalytics`](/api-reference/gdscript/client/analytics) | Captures creator game events through the private Player Host. |
| [`context`](/api-reference/gdscript/client/context) | [`SummerClientContext`](/api-reference/gdscript/client/context) | Immutable client projection context. |
| [`friends`](/api-reference/gdscript/client/friends) | [`SummerClientFriends`](/api-reference/gdscript/client/friends) | The player's Summer friends as this Game may see them. |
| [`items`](/api-reference/gdscript/client/items) | [`SummerClientItems`](/api-reference/gdscript/client/items) | Read-only revisioned inventory projection for the current player. |
| [`matchmaking`](/api-reference/gdscript/client/matchmaking) | [`SummerClientMatchmaking`](/api-reference/gdscript/client/matchmaking) | Hosted placement availability. |
| [`messages`](/api-reference/gdscript/client/messages) | [`SummerClientMessages`](/api-reference/gdscript/client/messages) | The player's Summer direct messages, behind the player's per-Game consent. |
| [`party`](/api-reference/gdscript/client/party) | [`SummerClientParty`](/api-reference/gdscript/client/party) | The player's Summer party as this Game sees it. |
| [`player_data`](/api-reference/gdscript/client/player-data) | [`SummerClientPlayerData`](/api-reference/gdscript/client/player-data) | Read-only view of this player's own public player data. |
| [`ratings`](/api-reference/gdscript/client/ratings) | [`SummerClientRatings`](/api-reference/gdscript/client/ratings) | This player's own match results and committed account ratings. |
| [`rankings`](/api-reference/gdscript/client/rankings) | [`SummerClientRankings`](/api-reference/gdscript/client/rankings) | This player's Game-scoped ranking scores. |
| [`store`](/api-reference/gdscript/client/store) | [`SummerClientStore`](/api-reference/gdscript/client/store) | Browse the current Game store and request trusted checkout. |

## Properties

| Property | Type | Access | Description |
| - | - | - | - |
| <a id="channels" />`channels` | [`SummerClientChannels`](/api-reference/gdscript/client/channels) | read-only, `get_channels()` | Chat for the authenticated player's current admitted World. The Player Host determines admission and visibility. |
| <a id="analytics" />`analytics` | [`SummerClientAnalytics`](/api-reference/gdscript/client/analytics) | read-only, `get_analytics()` | Captures creator observations through the private Host. |
| <a id="context" />`context` | [`SummerClientContext`](/api-reference/gdscript/client/context) | read-only, `get_context()` | Verified immutable client context. |
| <a id="friends" />`friends` | [`SummerClientFriends`](/api-reference/gdscript/client/friends) | read-only, `get_friends()` | The player's Summer friends and whether they are online or in this Game, with the player's consent, and the Summer app's friends, profile and chat overlays. |
| <a id="items" />`items` | [`SummerClientItems`](/api-reference/gdscript/client/items) | read-only, `get_items()` | Read-only revisioned platform inventory projection for the current player. |
| <a id="matchmaking" />`matchmaking` | [`SummerClientMatchmaking`](/api-reference/gdscript/client/matchmaking) | read-only, `get_matchmaking()` | Hosted placement availability. Matchmaking itself is entered through `join` with `SummerJoinTarget.queue`. |
| <a id="messages" />`messages` | [`SummerClientMessages`](/api-reference/gdscript/client/messages) | read-only, `get_messages()` | The player's Summer direct messages with their friends, behind the player's per-Game messaging permissions. |
| <a id="party" />`party` | [`SummerClientParty`](/api-reference/gdscript/client/party) | read-only, `get_party()` | The player's Summer party as this Game sees it: members, leader, who has this Game open, shared Game data and the party's search. Bring the party into a match with `SummerJoinTarget.party_queue`. |
| <a id="player_data" />`player_data` | [`SummerClientPlayerData`](/api-reference/gdscript/client/player-data) | read-only, `get_player_data()` | Read-only view of this player's own public player data, written by the Game's hosted authority. |
| <a id="ratings" />`ratings` | [`SummerClientRatings`](/api-reference/gdscript/client/ratings) | read-only, `get_ratings()` | This player's own match results and committed account ratings, converged from the authority's outcome and the platform's private projection. Authority code never relays ratings; they only arrive here. |
| <a id="rankings" />`rankings` | [`SummerClientRankings`](/api-reference/gdscript/client/rankings) | read-only, `get_rankings()` | Reads this player's Game-scoped ranking scores and public leaderboard independently of matchmaking. |
| <a id="store" />`store` | [`SummerClientStore`](/api-reference/gdscript/client/store) | read-only, `get_store()` | Quote-bound platform store facade. |

## Methods

### join

```gdscript theme={null}
func join(target: SummerJoinTarget) -> SummerJoinOperation
```

The one way into a World. The `target` names the placement provider (matchmaking queue, direct World, invite, follow, portal, resume, or local fixture); every provider returns the same [`SummerJoinOperation`](/api-reference/gdscript/types/join-operation) with the same progress, typed failures, [`SummerJoinOperation.world`](/api-reference/gdscript/types/join-operation#world) and [`SummerJoinOperation.session`](/api-reference/gdscript/types/join-operation#session). Only a queue target can emit [`SummerJoinOperation.acceptance_required`](/api-reference/gdscript/types/join-operation#acceptance_required).
After a hosted connection is lost, a new queue or World join first awaits confirmed removal of the previous Session, then starts the requested placement within the original join deadline. Canceling that pending join stops the new placement but does not undo the durable Session cleanup.

```gdscript theme={null}
var op := Summer.client.join(SummerJoinTarget.world(world_id))
var joined: SummerResult = await op.get_result_or_completed_signal()
if joined.ok:
    enter_gameplay_with(op.world, op.session)
```

A provider this runtime cannot reach yet fails typed with `unsupported_placement`.

| Parameter | Type | Default |
| - | - | - |
| `target` | [`SummerJoinTarget`](/api-reference/gdscript/types/join-target) | required |

**Returns:** [`SummerJoinOperation`](/api-reference/gdscript/types/join-operation)

Returns at once. Wait for the result with `var result: SummerResult = await op.get_result_or_completed_signal()`; see [SummerOperation](/api-reference/gdscript/types/operation).

### leave

```gdscript theme={null}
func leave() -> SummerOperation
```

Leaves the current World, or abandons a join still in flight, and clears the client transport.
During hosted matchmaking, await the returned operation before exiting the client. Success means the Player Host acknowledged cancellation or reported that the ticket was already terminal, including when ticket creation was still in flight. A Host failure or request deadline returns a failure; it does not prove the ticket was cancelled. Repeated calls share the pending leave and preserve its result until another join starts.
Leaving an established hosted World closes its local connection promptly, then succeeds only when the Player Host confirms removal of the exact Session through its authenticated completion event or a bounded recovery read. If proof is still unknown at the leave deadline, the result is retryable and retains that Session identity for retry. A local fixture World only clears its local connection. Calling [`SummerOperation.cancel()`](/api-reference/gdscript/types/operation#cancel) on a join only cancels that local operation; use [`leave()`](/api-reference/gdscript/client#leave) to await hosted cleanup.

**Returns:** [`SummerOperation`](/api-reference/gdscript/types/operation)

Returns at once. Wait for the result with `var result: SummerResult = await op.get_result_or_completed_signal()`; see [SummerOperation](/api-reference/gdscript/types/operation).

***

What is live on the platform today: [platform capability status](/knowledge-base/source-status). Check availability at runtime before you offer a feature.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.