> 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.ksbaseplayer.md).

# Class ksBasePlayer

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

Base class for players. A player represents a client.

```csharp
public abstract class ksBasePlayer
```

#### Inheritance

[object](https://learn.microsoft.com/dotnet/api/system.object) â† [ksBasePlayer](/reactor/api-reference/ks.reactor.client/ks.reactor.client.ksbaseplayer.md)

#### Derived

[ksPlayer](/reactor/api-reference/ks.reactor.client.unity/ks.reactor.client.unity.ksplayer.md), [ksPlayer](/reactor/api-reference/ks.reactor.client.adaptors/ks.reactor.client.adaptors.ksplayer.md)

#### Inherited Members

[object.Equals(object)](https://learn.microsoft.com/dotnet/api/system.object.equals#system-object-equals\(system-object\)), [object.Equals(object, object)](https://learn.microsoft.com/dotnet/api/system.object.equals#system-object-equals\(system-object-system-object\)), [object.GetHashCode()](https://learn.microsoft.com/dotnet/api/system.object.gethashcode), [object.GetType()](https://learn.microsoft.com/dotnet/api/system.object.gettype), [object.MemberwiseClone()](https://learn.microsoft.com/dotnet/api/system.object.memberwiseclone), [object.ReferenceEquals(object, object)](https://learn.microsoft.com/dotnet/api/system.object.referenceequals), [object.ToString()](https://learn.microsoft.com/dotnet/api/system.object.tostring)

## Constructors

### ksBasePlayer(uint) <a href="#ks_reactor_client_ksbaseplayer__ctor_system_uint32" id="ks_reactor_client_ksbaseplayer__ctor_system_uint32"></a>

Constructor

```csharp
public ksBasePlayer(uint id)
```

#### Parameters

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

id of the player.

## Properties

### BaseRoom <a href="#ks_reactor_client_ksbaseplayer_baseroom" id="ks_reactor_client_ksbaseplayer_baseroom"></a>

Room the player is in.

```csharp
protected ksBaseRoom BaseRoom { get; set; }
```

#### Property Value

[ksBaseRoom](/reactor/api-reference/ks.reactor.client/ks.reactor.client.ksbaseroom.md)

### Id <a href="#ks_reactor_client_ksbaseplayer_id" id="ks_reactor_client_ksbaseplayer_id"></a>

Id of the player.

```csharp
public uint Id { get; }
```

#### Property Value

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

### IsLocal <a href="#ks_reactor_client_ksbaseplayer_islocal" id="ks_reactor_client_ksbaseplayer_islocal"></a>

```csharp
public bool IsLocal { get; }
```

#### Property Value

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

### OnPropertyChange <a href="#ks_reactor_client_ksbaseplayer_onpropertychange" id="ks_reactor_client_ksbaseplayer_onpropertychange"></a>

Invoked when a player property changes. Indexed by property id. Other properties are not guaranteed to be updated when this fires.

```csharp
public ksEventMap<ksDelegates.PropertyChangeHandler> OnPropertyChange { get; }
```

#### Property Value

[ksEventMap](/reactor/api-reference/ks.reactor/ks.reactor.kseventmap-1.md)<[ksDelegates](/reactor/api-reference/ks.reactor.client/ks.reactor.client.ksdelegates.md).[PropertyChangeHandler](/reactor/api-reference/ks.reactor.client/ks.reactor.client.ksdelegates/ks.reactor.client.ksdelegates.propertychangehandler.md)>

### Predictor <a href="#ks_reactor_client_ksbaseplayer_predictor" id="ks_reactor_client_ksbaseplayer_predictor"></a>

Predictor for player properties.

```csharp
public ksIPredictor Predictor { get; set; }
```

#### Property Value

[ksIPredictor](/reactor/api-reference/ks.reactor.client/ks.reactor.client.ksipredictor.md)

### Properties <a href="#ks_reactor_client_ksbaseplayer_properties" id="ks_reactor_client_ksbaseplayer_properties"></a>

Properties

```csharp
public ksPropertyMap Properties { get; }
```

#### Property Value

[ksPropertyMap](/reactor/api-reference/ks.reactor/ks.reactor.kspropertymap.md)

## Methods

### Destroy() <a href="#ks_reactor_client_ksbaseplayer_destroy" id="ks_reactor_client_ksbaseplayer_destroy"></a>

Destroys the player.

```csharp
protected abstract void Destroy()
```

### GetPropertyServerValue(uint) <a href="#ks_reactor_client_ksbaseplayer_getpropertyservervalue_system_uint32" id="ks_reactor_client_ksbaseplayer_getpropertyservervalue_system_uint32"></a>

Gets property server value. If a property id is not in the map, a [ksMultiType](/reactor/api-reference/ks.reactor/ks.reactor.ksmultitype.md) of type [NULL](/reactor/api-reference/ks.reactor/ks.reactor.ksmultitype/ks.reactor.ksmultitype.types.md#KS_Reactor_ksMultiType_Types_NULL) is returned.

```csharp
public ksMultiType GetPropertyServerValue(uint propertyId)
```

#### Parameters

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

#### Returns

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

### InitializeScripts() <a href="#ks_reactor_client_ksbaseplayer_initializescripts" id="ks_reactor_client_ksbaseplayer_initializescripts"></a>

Initializes player scripts. The default implementation does nothing.

```csharp
protected virtual void InitializeScripts()
```

### OnLeave <a href="#ks_reactor_client_ksbaseplayer_onleave" id="ks_reactor_client_ksbaseplayer_onleave"></a>

Invoked when the (non-local) player leaves the room.

```csharp
public event ksBasePlayer.LeaveHandler OnLeave
```

#### Event Type

[ksBasePlayer](/reactor/api-reference/ks.reactor.client/ks.reactor.client.ksbaseplayer.md).[LeaveHandler](/reactor/api-reference/ks.reactor.client/ks.reactor.client.ksbaseplayer/ks.reactor.client.ksbaseplayer.leavehandler.md)
