---
title: ZEPETO.Multiplay
slug: world-sdk-guide-th/zepetomultiplay
docTags: 
createdAt: 2026-09-04T05:21:36.593Z
---

| ประเภท                                    | คำอธิบาย                                                          |
| ----------------------------------------- | ----------------------------------------------------------------- |
| [SandboxPlayer](./#sandboxplayer)         | แทนไคลเอนต์ของผู้เล่นที่เชื่อมต่อกับ Multiplay Room               |
| [IBroadcastOptions](./#ibroadcastoptions) | ตัวเลือกสำหรับการบรอดแคสต์ข้อความจาก Multiplay Room ไปยังไคลเอนต์ |
| [SandboxOptions](./#sandboxoptions)       | ตัวเลือกสำหรับการสร้าง Multiplay Room                             |
| [Sandbox](./#sandbox)                     | แทน Multiplay Room                                                |

## SandboxPlayer

`interface`

แทนไคลเอนต์ของผู้เล่นที่เชื่อมต่อกับ Multiplay Room

### พร็อพเพอร์ตี้

| ชื่อ      | ประเภท   | คำอธิบาย             |
| --------- | -------- | -------------------- |
| sessionId | `string` | ID เซสชันของไคลเอนต์ |
| userId    | `string` | ID ผู้ใช้ของผู้เล่น  |

### เมธอด

### send

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

ส่งข้อความไปยังไคลเอนต์ผ่านแชนเนลที่ระบุ

| พารามิเตอร์         | ประเภท             | คำอธิบาย                                      |
| ------------------- | ------------------ | --------------------------------------------- |
| type                | `string \| number` | ตัวระบุของแชนเนลที่ใช้ส่งข้อความ              |
| message (ไม่บังคับ) | `T`                | message เนื้อหาของข้อความที่จะส่ง (ไม่บังคับ) |

## IBroadcastOptions

`interface`

ตัวเลือกสำหรับการบรอดแคสต์ข้อความจาก Multiplay Room ไปยังไคลเอนต์

### พร็อพเพอร์ตี้

| ชื่อ   | ประเภท                            | คำอธิบาย                               |
| ------ | --------------------------------- | -------------------------------------- |
| except | [SandboxPlayer](./#sandboxplayer) | ระบุไคลเอนต์ที่จะยกเว้นจากการบรอดแคสต์ |

## SandboxOptions

`interface`

ตัวเลือกสำหรับการสร้าง Multiplay Room

### พร็อพเพอร์ตี้

| ชื่อ      | ประเภท    | คำอธิบาย                                                                           |
| --------- | --------- | ---------------------------------------------------------------------------------- |
| isSandbox | `boolean` | ระบุว่า Room ถูกโฮสต์แบบโลคัลหรือไม่ เช่น สำหรับการทดสอบ QR Mobile ใน Unity editor |

## Sandbox

`class`

แทน Multiplay Room

### พร็อพเพอร์ตี้

| ชื่อ                  | ประเภท                            | คำอธิบาย                                                                                |
| --------------------- | --------------------------------- | --------------------------------------------------------------------------------------- |
| locked                | `boolean`                         | ระบุว่า Multiplay Room ถูกล็อกหรือไม่                                                   |
| roomId                | `string`                          | ID ของ Multiplay Room ซึ่งกำหนดแบบสุ่มเมื่อสร้างเพื่อหลีกเลี่ยงการซ้ำกัน                |
| uniqueId              | `string`                          | ID ของ Multiplay Room ซึ่งกำหนดอย่างชัดเจนเมื่อสร้าง                                    |
| maxClients            | `number`                          | จำนวนไคลเอนต์สูงสุดที่สามารถเชื่อมต่อกับ Multiplay Room ได้                             |
| state                 | `State`                           | สถานะของ Multiplay Room โดยสคีมาของข้อมูลสถานะกำหนดโดย Multiplay Schema                 |
| clients               | `IterableIterator<SandboxPlayer>` | การแสดงผลแบบวนซ้ำได้ของไคลเอนต์ที่เชื่อมต่อกับ Multiplay Room                           |
| allowReconnectionTime | `number`                          | ระยะเวลาจำกัด (เป็นวินาที) ที่อนุญาตให้ไคลเอนต์ซึ่งมีการเชื่อมต่อไม่เสถียรเชื่อมต่อใหม่ |
| private               | `boolean`                         | ระบุว่า Multiplay Room เป็นแบบส่วนตัวหรือไม่                                            |

### เมธอด

### onCreate

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

การอิมพลีเมนต์เมธอดนามธรรมนี้จะทำงานเพียงครั้งเดียวเมื่อมีการสร้าง Multiplay Room
การอิมพลีเมนต์สามารถประกาศเป็น `async` ได้ตามต้องการ

| พารามิเตอร์ | ประเภท                              | คำอธิบาย                                  |
| ----------- | ----------------------------------- | ----------------------------------------- |
| options     | [SandboxOptions](./#sandboxoptions) | ตัวเลือกสำหรับการสร้าง Multiplay Room นี้ |

**ค่าที่คืนกลับ:** `void | Promise<void>` — หากเป็นแบบอะซิงโครนัส จะคืนค่า `Promise<void>` มิฉะนั้นจะคืนค่า `void`

### onJoin

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

การอิมพลีเมนต์เมธอดนามธรรมนี้จะทำงานเมื่อไคลเอนต์เข้าร่วม Multiplay Room
การอิมพลีเมนต์สามารถประกาศเป็น `async` ได้ตามต้องการ

| พารามิเตอร์ | ประเภท                            | คำอธิบาย                    |
| ----------- | --------------------------------- | --------------------------- |
| client      | [SandboxPlayer](./#sandboxplayer) | อ็อบเจกต์ไคลเอนต์ของผู้เล่น |

**ค่าที่คืนกลับ:** `void | Promise<void>` — หากเป็นแบบอะซิงโครนัส จะคืนค่า `Promise<void>` มิฉะนั้นจะคืนค่า `void`

### onLeave

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

การอิมพลีเมนต์เมธอดนามธรรมนี้จะทำงานเมื่อไคลเอนต์ออกจาก Multiplay Room
การอิมพลีเมนต์สามารถประกาศเป็น `async` ได้ตามต้องการ

| พารามิเตอร์           | ประเภท                            | คำอธิบาย                                    |
| --------------------- | --------------------------------- | ------------------------------------------- |
| client                | [SandboxPlayer](./#sandboxplayer) | อ็อบเจกต์ไคลเอนต์ของผู้เล่น                 |
| consented (ไม่บังคับ) | `boolean`                         | ระบุว่าผู้เล่นยินยอมให้เชื่อมต่อใหม่หรือไม่ |

**ค่าที่คืนกลับ:** `void | Promise<void>` — หากเป็นแบบอะซิงโครนัส จะคืนค่า `Promise<void>` มิฉะนั้นจะคืนค่า `void`

### lock

`lock() → Promise<void>`

ล็อก Multiplay Room

**ค่าที่คืนกลับ:** `Promise<void>` — `Promise` ที่ resolve เมื่อกระบวนการล็อกเสร็จสิ้น

### unlock

`unlock() → Promise<void>`

ปลดล็อก Multiplay Room

**ค่าที่คืนกลับ:** `Promise<void>` — `Promise` ที่ resolve เมื่อกระบวนการปลดล็อกเสร็จสิ้น

### onTick

`onTick(deltaTime: number) → void`

การอิมพลีเมนต์เมธอดนี้จะทำงานประมาณทุก 100 มิลลิวินาที

| พารามิเตอร์ | ประเภท   | คำอธิบาย                                                   |
| ----------- | -------- | ---------------------------------------------------------- |
| deltaTime   | `number` | แทนผลต่างของเวลา (เป็นมิลลิวินาที) นับจากการเรียกครั้งก่อน |

### onMessage

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

ลงทะเบียน callback เพื่อจัดการข้อความที่ได้รับจากไคลเอนต์

| พารามิเตอร์ | ประเภท                                        | คำอธิบาย                                    |
| ----------- | --------------------------------------------- | ------------------------------------------- |
| messageType | `'*' \| string \| number`                     | ตัวระบุของแชนเนลที่ข้อความถูกส่งผ่าน        |
| callback    | `(client: SandboxPlayer, message: T) => void` | เมธอด callback สำหรับจัดการข้อความที่ได้รับ |

### broadcast

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

ส่งข้อความผ่านแชนเนลที่ระบุไปยังไคลเอนต์ทุกรายที่เชื่อมต่อกับ Multiplay Room

| พารามิเตอร์         | ประเภท                                    | คำอธิบาย                         |
| ------------------- | ----------------------------------------- | -------------------------------- |
| type                | `string \| number`                        | ตัวระบุของแชนเนลที่ใช้ส่งข้อความ |
| message (ไม่บังคับ) | `any`                                     | เนื้อหาของข้อความ (ไม่บังคับ)    |
| options (ไม่บังคับ) | [IBroadcastOptions](./#ibroadcastoptions) | ตัวเลือกการบรอดแคสต์             |

### loadPlayer

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

รับอ็อบเจกต์ไคลเอนต์ที่เชื่อมโยงกับ ID เซสชัน

| พารามิเตอร์ | ประเภท   | คำอธิบาย             |
| ----------- | -------- | -------------------- |
| sessionId   | `string` | ID เซสชันของไคลเอนต์ |

**ค่าที่คืนกลับ:** `SandboxPlayer | undefined` — อ็อบเจกต์ไคลเอนต์

### setPrivate

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

กำหนดสถานะส่วนตัวของ Multiplay Room

| พารามิเตอร์ | ประเภท    | คำอธิบาย                           |
| ----------- | --------- | ---------------------------------- |
| isPrivate   | `boolean` | ระบุสถานะส่วนตัวของ Multiplay Room |

**ค่าที่คืนกลับ:** `Promise<void>` — `Promise` ที่ resolve เมื่อกระบวนการเสร็จสิ้น

### kick

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

เตะไคลเอนต์ออกจาก Multiplay Room

| พารามิเตอร์        | ประเภท                            | คำอธิบาย                            |
| ------------------ | --------------------------------- | ----------------------------------- |
| client             | [SandboxPlayer](./#sandboxplayer) | อ็อบเจกต์ของไคลเอนต์ที่จะถูกเตะออก  |
| reason (ไม่บังคับ) | `string`                          | ระบุเหตุผลของการเตะออกได้ตามต้องการ |

**ค่าที่คืนกลับ:** `Promise<void>` — `Promise` ที่ resolve เมื่อกระบวนการเสร็จสิ้น
