---
title: Status Ruangan Multiplay
slug: world-sdk-guide-id/status-ruangan-multiplay
docTags: 
createdAt: 2024-09-02T08:34:13.135Z
---

![](https://api.archbee.com/api/optimize/fCt3n1oCa8rgNJ8fw9I2N-3_eY_aqy3ZYnl0QFBrYaw-20240904-102420.png)

Ruang Multiplay menyediakan properti State untuk mengelola lokasi pemain atau objek yang terhubung.

Definisi data State dapat dikelola dari file Skema, yang berada di bawah paket multiplay.
Peristiwa onStateChange pertama kali dipanggil ketika klien berhasil membangun koneksi ke ruangan, dan kemudian dipanggil setiap kali ada perubahan pada data state.



## API Server

| **API**            | **Deskripsi**                                                                                                                                                                                                                                                                                                    |
| ------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| state.SCHEMA\_NAME | Anda dapat mengakses field SCHEMA\_NAME yang didefinisikan dalam file skema dengan state.<br /><br />Anda dapat memodifikasi nilai field atas permintaan dari klien atau logika server internal.<br /><br />State yang berubah kemudian secara otomatis disebarkan ke klien menggunakan peristiwa OnStateChange. |

:::hint{type="info"}
**📘&#x20;**&#x53;ilakan merujuk ke panduan berikut. \[[ZEPETO.Multiplay(Server) API](https://developer.zepeto.me/docs/multiplay-server/classes/ZEPETO_Multiplay.Sandbox#state)]
:::

```typescript
import { Location } from 'ZEPETO.Multiplay.Schema';

export default class extends Sandbox {
 
   ...
   const location: Location = this.state.playerLocation;
   // Menangani State.
   ...
}
```

| **API**                            | **Deskripsi**                                                                                                                                                                                                            |
| ---------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| room.OnStateChange(State, isFirst) | Anda dapat mendaftar callback perubahan status saat Anda bergabung ke ruangan.<br /><br />Anda dapat menerima status seluruh ruangan untuk pertama kalinya, dan hanya status yang berubah yang akan diterima setelahnya. |

## API Klien

```typescript
import { ZepetoScriptBehaviour } from 'ZEPETO.Script';
import { Location } from 'ZEPETO.Multiplay.Schema';

export default class SampleClient extends ZepetoScriptBehaviour {

    Start() {
        this.multiplay.RoomJoined += (room: Room) => {
            room.OnStateChange += this.OnStateChange;
        };
    }

    private OnStateChange(state: State, isFirst: boolean) {
        const location: Location = state.playerLocation;
        // Menangani lokasi pemain menggunakan Status yang diperbarui.  
    }
}
```



## Tentukan file Skema

Skema adalah struktur data untuk mendefinisikan status saat ini di ruangan. Ruangan terutama digunakan untuk mengelola informasi pemain, lokasi pemain atau objek, dll.

Untuk mengedit skema, Anda dapat memilih Tampilan Proyek → Aset MultiplayPackage → schema.json, dan kemudian mengubah tipe data yang akan digunakan untuk Dunia di jendela Inspektor.
Anda dapat mengubah tipe data yang akan digunakan untuk Dunia di jendela Inspektor.

## LANGKAH 1 : Mendefinisikan Tipe Skema

Tipe Skema adalah Struktur Data yang digunakan di Dunia. Di Inspektor → Tipe Skema, tekan tombol \[+] dan tambahkan data.

![](https://api.archbee.com/api/optimize/fCt3n1oCa8rgNJ8fw9I2N-Hbuk57mwqKHFvEmG_-Wf0-20240904-102429.gif "4-4-3-1.gif")



## LANGKAH 2 : Tambahkan Status Ruangan

Status Ruangan adalah Properti yang menunjukkan status terkini dari Ruangan Dunia, dan dinyatakan dalam struktur Skema seperti yang didefinisikan di atas.

Di antara Tipe Skema, pilih tipe Status Ruangan yang akan digunakan sebagai status terkini dari Dunia dan atur sebagai NAMA\_SKEMA.

![](https://api.archbee.com/api/optimize/fCt3n1oCa8rgNJ8fw9I2N-2ClXYyRzwj0OspO1NGGm0-20240904-102425.gif)

### Contoh Schemas.json

```json
{
"State" : {"players" : {"map" : "Player"}},
"Player" : {"sessionId" : "string","zepetoUserId" : "string","transform" : "Transform","state" : "number","subState" : "number"},
"Transform" : {"position" : "Vector3","rotation" : "Vector3"},
"Vector3" : {"x" : "number","y" : "number","z" : "number"}
}
```

