# Open77.session — client runtime

Runs inside the game process. Reads and presentation are local; anything that changes shared state has to go through the server.

9 functions.

## characterBootstrap

```lua
Open77.session.characterBootstrap()
```

`GAME` — Requires a live game instance.

Reads the current character-bootstrap state.

Returns the current client-local character bootstrap projection as phase, body family, error and generation. The table is a snapshot; polling it does not advance the transaction.

Returns: `value`, `reason (when the first is nil)`

Registered in `ResourceHost.cpp` (line 6727) as `LuaSessionCharacterBootstrap`.

## failCharacterBootstrap

```lua
Open77.session.failCharacterBootstrap([arg1])
```

`GAME` — Requires a live game instance.

Marks character bootstrap as failed.

Marks the active client-local character bootstrap as failed with an optional bounded diagnostic reason. It requires player.appearance.edit and does not disconnect the network session.

| Parameter | Type | Required | Default |
|---|---|---|---|
| `arg1` | `string` | optional | — |

Registered in `ResourceHost.cpp` (line 6730) as `LuaSessionFailCharacterBootstrap`.

## loadPristine

```lua
Open77.session.loadPristine()
```

`GAME` — Requires a live game instance.

Loads the local development world from Open77's bundled pristine save.

No network session is armed by this operation.

Returns: `true on success, otherwise false`, `reason`

Registered in `ResourceHost.cpp` (line 6725) as `LuaSessionLoadPristine`.

## openSettings

```lua
Open77.session.openSettings()
```

`GAME` — Requires a live game instance.

Opens the game's own settings screen without exposing the pause menu.

Requests the client-side Open77 settings interface. It only changes local presentation and does not modify server configuration or another player's settings.

Returns: `true on success, otherwise false`, `reason`

Registered in `ResourceHost.cpp` (line 6724) as `LuaSessionOpenSettings`.

## requestCharacterCreator

```lua
Open77.session.requestCharacterCreator()
```

`GAME` — Requires a live game instance.

Requests the native character creator.

Requests the native character creator for the active bootstrap transaction. It requires player.appearance.edit and returns a stable failure when the game backend cannot accept the request.

Registered in `ResourceHost.cpp` (line 6728) as `LuaSessionRequestCharacterCreator`.

## resetCharacterBootstrap

```lua
Open77.session.resetCharacterBootstrap()
```

`GAME` — Requires a live game instance.

Resets the local character-bootstrap transaction.

Clears the client-local character bootstrap transaction so a fresh bootstrap can begin. It does not delete a server character or change another player's state.

Registered in `ResourceHost.cpp` (line 6726) as `LuaSessionResetCharacterBootstrap`.

## resolveCharacterBootstrap

```lua
Open77.session.resolveCharacterBootstrap(arg1)
```

`GAME` — Requires a live game instance.

Completes bootstrap with a selected body family.

Completes the active bootstrap with the validated female or male body family. It requires player.appearance.edit and only updates the local bootstrap backend.

| Parameter | Type | Required | Default |
|---|---|---|---|
| `arg1` | `string` | required | — |

Registered in `ResourceHost.cpp` (line 6729) as `LuaSessionResolveCharacterBootstrap`.

## setMenuReady

```lua
Open77.session.setMenuReady(ready)
```

`GAME` — Requires a live game instance.

Declares that this resource is able to serve the pause menu.

The escape key is only intercepted while this is true. A resource that fails to start therefore leaves the game's own menu reachable, rather than stranding the player with none.

| Parameter | Type | Required | Default |
|---|---|---|---|
| `ready` | `boolean` | required | — |

Returns: `boolean`

Registered in `ResourceHost.cpp` (line 6732) as `LuaSessionMenuReady`.

## takeCharacterCreatorResult

```lua
Open77.session.takeCharacterCreatorResult()
```

`GAME` — Requires a live game instance.

Consumes the pending character-creator result.

Consumes the pending native character-creator result once and returns its serialized payload, or nil when no result is ready. It requires player.appearance.edit.

Returns: `value`, `reason (when the first is nil)`

Registered in `ResourceHost.cpp` (line 6731) as `LuaSessionTakeCharacterCreatorResult`.

