---
title: ZEPETO.Multiplay
slug: world-sdk-guide-id/zepetomultiplay
docTags: 
createdAt: 2026-09-04T05:20:01.241Z
---

| Tipe                                      | Deskripsi                                                        |
| ----------------------------------------- | ---------------------------------------------------------------- |
| [SandboxPlayer](./#sandboxplayer)         | Merepresentasikan klien pemain yang terhubung ke Multiplay Room. |
| [IBroadcastOptions](./#ibroadcastoptions) | Opsi untuk menyiarkan pesan dari Multiplay Room ke klien.        |
| [SandboxOptions](./#sandboxoptions)       | Opsi untuk membuat Multiplay Room.                               |
| [Sandbox](./#sandbox)                     | Merepresentasikan Multiplay Room.                                |

## SandboxPlayer

`interface`

Merepresentasikan klien pemain yang terhubung ke Multiplay Room.

### Properti

| Nama      | Tipe     | Deskripsi          |
| --------- | -------- | ------------------ |
| sessionId | `string` | ID sesi klien      |
| userId    | `string` | ID pengguna pemain |

### Metode

### send

`send(type: string | number, message?: T) → void`

Mengirim pesan ke klien melalui channel yang ditentukan.

| Parameter          | Tipe               | Deskripsi                                             |
| ------------------ | ------------------ | ----------------------------------------------------- |
| type               | `string \| number` | Pengenal channel yang digunakan untuk mengirim pesan. |
| message (opsional) | `T`                | message Konten opsional dari pesan yang akan dikirim. |

## IBroadcastOptions

`interface`

Opsi untuk menyiarkan pesan dari Multiplay Room ke klien.

### Properti

| Nama   | Tipe                              | Deskripsi                                          |
| ------ | --------------------------------- | -------------------------------------------------- |
| except | [SandboxPlayer](./#sandboxplayer) | Menentukan klien yang dikecualikan dari broadcast. |

## SandboxOptions

`interface`

Opsi untuk membuat Multiplay Room.

### Properti

| Nama      | Tipe      | Deskripsi                                                                                        |
| --------- | --------- | ------------------------------------------------------------------------------------------------ |
| isSandbox | `boolean` | Menentukan apakah Room di-host secara lokal, misalnya untuk pengujian QR Mobile di Unity editor. |

## Sandbox

`class`

Merepresentasikan Multiplay Room.

### Properti

| Nama                  | Tipe                              | Deskripsi                                                                                         |
| --------------------- | --------------------------------- | ------------------------------------------------------------------------------------------------- |
| locked                | `boolean`                         | Menentukan apakah Multiplay Room terkunci.                                                        |
| roomId                | `string`                          | ID Multiplay Room, yang diberikan secara acak saat pembuatan untuk menghindari duplikasi.         |
| uniqueId              | `string`                          | ID Multiplay Room, yang diberikan secara eksplisit saat pembuatan.                                |
| maxClients            | `number`                          | Jumlah maksimum klien yang dapat terhubung ke Multiplay Room.                                     |
| state                 | `State`                           | Status dari Multiplay Room. Skema untuk data status ditentukan oleh Multiplay Schema.             |
| clients               | `IterableIterator<SandboxPlayer>` | Representasi iterable dari klien yang terhubung ke Multiplay Room.                                |
| allowReconnectionTime | `number`                          | Batas waktu (dalam detik) untuk mengizinkan koneksi ulang klien dengan koneksi yang tidak stabil. |
| private               | `boolean`                         | Menentukan apakah Multiplay Room bersifat privat.                                                 |

### Metode

### onCreate

`onCreate(options: SandboxOptions) → void | Promise<void>`

Implementasi dari metode abstrak ini dijalankan sekali, saat Multiplay Room dibuat.
Implementasi dapat secara opsional dideklarasikan sebagai `async`.

| Parameter | Tipe                                | Deskripsi                                   |
| --------- | ----------------------------------- | ------------------------------------------- |
| options   | [SandboxOptions](./#sandboxoptions) | Opsi untuk membuat Multiplay Room tersebut. |

**Mengembalikan:** `void | Promise<void>` — Jika asinkron, mengembalikan `Promise<void>`. Jika tidak, `void`.

### onJoin

`onJoin(client: SandboxPlayer) → void | Promise<void>`

Implementasi dari metode abstrak ini dijalankan saat klien bergabung ke Multiplay Room.
Implementasi dapat secara opsional dideklarasikan sebagai `async`.

| Parameter | Tipe                              | Deskripsi                |
| --------- | --------------------------------- | ------------------------ |
| client    | [SandboxPlayer](./#sandboxplayer) | Objek klien dari pemain. |

**Mengembalikan:** `void | Promise<void>` — Jika asinkron, mengembalikan `Promise<void>`. Jika tidak, `void`.

### onLeave

`onLeave(client: SandboxPlayer, consented?: boolean) → void | Promise<void>`

Implementasi dari metode abstrak ini dijalankan saat klien keluar dari Multiplay Room.
Implementasi dapat secara opsional dideklarasikan sebagai `async`.

| Parameter            | Tipe                              | Deskripsi                                                          |
| -------------------- | --------------------------------- | ------------------------------------------------------------------ |
| client               | [SandboxPlayer](./#sandboxplayer) | Objek klien dari pemain.                                           |
| consented (opsional) | `boolean`                         | Menentukan apakah pemain telah menyetujui untuk terhubung kembali. |

**Mengembalikan:** `void | Promise<void>` — Jika asinkron, mengembalikan `Promise<void>`. Jika tidak, `void`.

### lock

`lock() → Promise<void>`

Mengunci Multiplay Room.

**Mengembalikan:** `Promise<void>` — `Promise` yang selesai setelah proses penguncian berakhir.

### unlock

`unlock() → Promise<void>`

Membuka kunci Multiplay Room.

**Mengembalikan:** `Promise<void>` — `Promise` yang selesai setelah proses pembukaan kunci berakhir.

### onTick

`onTick(deltaTime: number) → void`

Implementasi dari metode ini dijalankan kira-kira setiap 100 milidetik.

| Parameter | Tipe     | Deskripsi                                                                       |
| --------- | -------- | ------------------------------------------------------------------------------- |
| deltaTime | `number` | Merepresentasikan selisih waktu (dalam milidetik) sejak pemanggilan sebelumnya. |

### onMessage

`onMessage(messageType: '*' | string | number, callback: (client: SandboxPlayer, message: T) => void) → void`

Mendaftarkan callback untuk menangani pesan yang diterima dari klien.

| Parameter   | Tipe                                          | Deskripsi                                            |
| ----------- | --------------------------------------------- | ---------------------------------------------------- |
| messageType | `'*' \| string \| number`                     | Pengenal channel tempat pesan dikirim.               |
| callback    | `(client: SandboxPlayer, message: T) => void` | Metode callback untuk menangani pesan yang diterima. |

### broadcast

`broadcast(type: string | number, message?: any, options?: IBroadcastOptions) → void`

Mengirim pesan melalui channel yang ditentukan ke seluruh klien yang terhubung ke Multiplay Room.

| Parameter          | Tipe                                      | Deskripsi                                             |
| ------------------ | ----------------------------------------- | ----------------------------------------------------- |
| type               | `string \| number`                        | Pengenal channel yang digunakan untuk mengirim pesan. |
| message (opsional) | `any`                                     | Konten opsional dari pesan.                           |
| options (opsional) | [IBroadcastOptions](./#ibroadcastoptions) | Opsi broadcast.                                       |

### loadPlayer

`loadPlayer(sessionId: string) → SandboxPlayer | undefined`

Mendapatkan objek klien yang terkait dengan sebuah ID sesi.

| Parameter | Tipe     | Deskripsi      |
| --------- | -------- | -------------- |
| sessionId | `string` | ID sesi klien. |

**Mengembalikan:** `SandboxPlayer | undefined` — Objek klien.

### setPrivate

`setPrivate(isPrivate: boolean) → Promise<void>`

Mengatur status privat dari Multiplay Room.

| Parameter | Tipe      | Deskripsi                                     |
| --------- | --------- | --------------------------------------------- |
| isPrivate | `boolean` | Menentukan status privat dari Multiplay Room. |

**Mengembalikan:** `Promise<void>` — `Promise` yang selesai setelah proses berakhir.

### kick

`kick(client: SandboxPlayer, reason?: string) → Promise<void>`

Mengeluarkan klien dari Multiplay Room.

| Parameter         | Tipe                              | Deskripsi                                           |
| ----------------- | --------------------------------- | --------------------------------------------------- |
| client            | [SandboxPlayer](./#sandboxplayer) | Objek klien yang akan dikeluarkan.                  |
| reason (opsional) | `string`                          | Secara opsional, jelaskan alasan pengeluaran klien. |

**Mengembalikan:** `Promise<void>` — `Promise` yang selesai setelah proses berakhir.
