> For the complete documentation index, see [llms.txt](https://kinematicsoup.gitbook.io/reactor/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://kinematicsoup.gitbook.io/reactor/api-reference/ks.reactor.client/ks.reactor.client.ksiroom-2.md).

# Interface ksIRoom\<Player, Entity>

Namespace: [KS.Reactor.Client](/reactor/api-reference/ks.reactor.client.md)\
Assembly: KSUnity.dll

Room interface used internally for testing with mock implementations. It is incomplete and only contains functions that are needed for testing.

```csharp
public interface ksIRoom<Player, Entity> where Player : ksBasePlayer where Entity : ksBaseEntity
```

#### Type Parameters

`Player`

`Entity`

## Properties

### IsConnected <a href="#ks_reactor_client_ksiroom_2_isconnected" id="ks_reactor_client_ksiroom_2_isconnected"></a>

Are we connected to the server?

```csharp
bool IsConnected { get; }
```

#### Property Value

[bool](https://learn.microsoft.com/dotnet/api/system.boolean)

### LocalPlayer <a href="#ks_reactor_client_ksiroom_2_localplayer" id="ks_reactor_client_ksiroom_2_localplayer"></a>

The local player.

```csharp
Player LocalPlayer { get; }
```

#### Property Value

Player

### LocalPlayerId <a href="#ks_reactor_client_ksiroom_2_localplayerid" id="ks_reactor_client_ksiroom_2_localplayerid"></a>

Id of the local player.

```csharp
uint LocalPlayerId { get; }
```

#### Property Value

[uint](https://learn.microsoft.com/dotnet/api/system.uint32)

### OnRPC <a href="#ks_reactor_client_ksiroom_2_onrpc" id="ks_reactor_client_ksiroom_2_onrpc"></a>

RPC event handler registration.

```csharp
ksEventMap<ksBaseRoom.RPCHandler> OnRPC { get; }
```

#### Property Value

[ksEventMap](/reactor/api-reference/ks.reactor/ks.reactor.kseventmap-1.md)<[ksBaseRoom](/reactor/api-reference/ks.reactor.client/ks.reactor.client.ksbaseroom.md).[RPCHandler](/reactor/api-reference/ks.reactor.client/ks.reactor.client.ksbaseroom/ks.reactor.client.ksbaseroom.rpchandler.md)>

### Players <a href="#ks_reactor_client_ksiroom_2_players" id="ks_reactor_client_ksiroom_2_players"></a>

List of players connected to the room.

```csharp
ksConstList<Player> Players { get; }
```

#### Property Value

[ksConstList](/reactor/api-reference/ks.reactor/ks.reactor.ksconstlist-1.md)\<Player>

### Time <a href="#ks_reactor_client_ksiroom_2_time" id="ks_reactor_client_ksiroom_2_time"></a>

Time data

```csharp
ksClientTime Time { get; }
```

#### Property Value

[ksClientTime](/reactor/api-reference/ks.reactor.client/ks.reactor.client.ksclienttime.md)

## Methods

### CallRPC(uint, params ksMultiType\[]) <a href="#ks_reactor_client_ksiroom_2_callrpc_system_uint32_ks_reactor_ksmultitype" id="ks_reactor_client_ksiroom_2_callrpc_system_uint32_ks_reactor_ksmultitype"></a>

Calls an RPC on the server.

```csharp
void CallRPC(uint rpcId, params ksMultiType[] args)
```

#### Parameters

`rpcId` [uint](https://learn.microsoft.com/dotnet/api/system.uint32)

`args` [ksMultiType](/reactor/api-reference/ks.reactor/ks.reactor.ksmultitype.md)\[]

### OnPlayerJoin <a href="#ks_reactor_client_ksiroom_2_onplayerjoin" id="ks_reactor_client_ksiroom_2_onplayerjoin"></a>

Invoked when a player connects to the room.

```csharp
event ksBaseRoom<Player, Entity>.PlayerJoinHandler OnPlayerJoin
```

#### Event Type

[ksBaseRoom](/reactor/api-reference/ks.reactor.client/ks.reactor.client.ksbaseroom-2.md)\<Player, Entity>.[PlayerJoinHandler](/reactor/api-reference/ks.reactor.client/ks.reactor.client.ksbaseroom-2/ks.reactor.client.ksbaseroom-2.playerjoinhandler.md)

### OnPlayerLeave <a href="#ks_reactor_client_ksiroom_2_onplayerleave" id="ks_reactor_client_ksiroom_2_onplayerleave"></a>

Invoked when a player disconnects from the room.

```csharp
event ksBaseRoom<Player, Entity>.PlayerLeaveHandler OnPlayerLeave
```

#### Event Type

[ksBaseRoom](/reactor/api-reference/ks.reactor.client/ks.reactor.client.ksbaseroom-2.md)\<Player, Entity>.[PlayerLeaveHandler](/reactor/api-reference/ks.reactor.client/ks.reactor.client.ksbaseroom-2/ks.reactor.client.ksbaseroom-2.playerleavehandler.md)
