> ## 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.

# SummerJoinOperation

> The one operation every way into a World returns.

**Class:** `SummerJoinOperation` · **Inherits:** [`SummerOperation`](/api-reference/gdscript/types/operation)

The one operation every way into a World returns.

Returned by [`Summer.client.join()`](/api-reference/gdscript/client#join) for every [`SummerJoinTarget`](/api-reference/gdscript/types/join-target). Publishes its immutable [`world`](/api-reference/gdscript/types/join-operation#world) and [`session`](/api-reference/gdscript/types/join-operation#session) only after placement, signed launch verification, transport activation, compatibility, and authority admission all succeed. Progress is the same sanitized [`SummerJoinProgress`](/api-reference/gdscript/types/join-progress) for every provider; failures are the same typed codes. [`pending_proposal`](/api-reference/gdscript/types/join-operation#pending_proposal) is only ever set for a queue target.

## Properties

| Property | Type | Access | Description |
| - | - | - | - |
| <a id="pending_proposal" />`pending_proposal` | [`SummerMatchmakingProposal`](/api-reference/gdscript/types/matchmaking-proposal) | read-only, `get_pending_proposal()` | The matchmaking proposal currently awaiting this player's explicit decision, otherwise `null`. Cleared once decided, superseded, expired, or terminal. Never set for a non-queue target. |
| <a id="progress" />`progress` | [`SummerJoinProgress`](/api-reference/gdscript/types/join-progress) | read-only, `get_progress()` | Latest sanitized progress, including while pending. |
| <a id="session" />`session` | [`SummerSession`](/api-reference/gdscript/types/session) | read-only, `get_session()` | Connected admitted Session after successful completion, otherwise `null`. |
| <a id="target" />`target` | [`SummerJoinTarget`](/api-reference/gdscript/types/join-target) | read-only, `get_target()` | The target this operation was started with. |
| <a id="world" />`world` | [`SummerWorld`](/api-reference/gdscript/types/world) | read-only, `get_world()` | Verified World after successful completion, otherwise `null`. |

## Signals

### acceptance\_required

```gdscript theme={null}
signal acceptance_required(proposal: SummerMatchmakingProposal)
```

A matchmaking proposal is pending and requires an explicit decision through [`SummerMatchmakingProposal.accept()`](/api-reference/gdscript/types/matchmaking-proposal#accept) or [`SummerMatchmakingProposal.decline()`](/api-reference/gdscript/types/matchmaking-proposal#decline). The engine never decides on the game's behalf; games that want automatic behavior connect this signal directly to [`SummerMatchmakingProposal.accept()`](/api-reference/gdscript/types/matchmaking-proposal#accept). Only a queue target emits it.

### progress\_changed

```gdscript theme={null}
signal progress_changed(progress: SummerJoinProgress)
```

The sanitized progress projection advanced.

***

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.