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

# Class ksClientTime

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

Holds time data that is available on the client. In addition to the client time object for the room, each player that owns entities with the transform permission has a client time object that can be accessed using [GetTime](/reactor/api-reference/ks.reactor.client/ks.reactor.client.ksbaseroom.md#KS_Reactor_Client_ksBaseRoom_GetTime_System_UInt32_) and holds timing data that can be used to smooth motion for entities they control. For player time, [Frame](/reactor/api-reference/ks.reactor/ks.reactor.kstime.md#KS_Reactor_ksTime_Frame) is the last received server frame number that contained owned-entity updates from that player, [TimeScale](/reactor/api-reference/ks.reactor/ks.reactor.kstime.md#KS_Reactor_ksTime_TimeScale) is always one, [ServerUnscaledSyncDelta](#KS_Reactor_Client_ksClientTime_ServerUnscaledSyncDelta) is the amount of time between passed on the remote client between their last two owned-entity updates, and [AdjustedUnscaledDelta](#KS_Reactor_Client_ksClientTime_AdjustedUnscaledDelta) is a different value calculated by the [Adjuster](#KS_Reactor_Client_ksClientTime_Adjuster) for that player time.

```csharp
public class ksClientTime : ksTime
```

#### Inheritance

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

#### Inherited Members

[ksTime.Zero](/reactor/api-reference/ks.reactor/ks.reactor.kstime.md#KS_Reactor_ksTime_Zero), [ksTime.Delta](/reactor/api-reference/ks.reactor/ks.reactor.kstime.md#KS_Reactor_ksTime_Delta), [ksTime.UnscaledDelta](/reactor/api-reference/ks.reactor/ks.reactor.kstime.md#KS_Reactor_ksTime_UnscaledDelta), [ksTime.Time](/reactor/api-reference/ks.reactor/ks.reactor.kstime.md#KS_Reactor_ksTime_Time), [ksTime.RealTime](/reactor/api-reference/ks.reactor/ks.reactor.kstime.md#KS_Reactor_ksTime_RealTime), [ksTime.TimeScale](/reactor/api-reference/ks.reactor/ks.reactor.kstime.md#KS_Reactor_ksTime_TimeScale), [ksTime.m\_timeScale](/reactor/api-reference/ks.reactor/ks.reactor.kstime.md#KS_Reactor_ksTime_m_timeScale), [ksTime.Frame](/reactor/api-reference/ks.reactor/ks.reactor.kstime.md#KS_Reactor_ksTime_Frame), [ksTime.ServerFramesPerSync](/reactor/api-reference/ks.reactor/ks.reactor.kstime.md#KS_Reactor_ksTime_ServerFramesPerSync), [ksTime.FramesPerSync](/reactor/api-reference/ks.reactor/ks.reactor.kstime.md#KS_Reactor_ksTime_FramesPerSync), [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

### ksClientTime(uint) <a href="#ks_reactor_client_ksclienttime__ctor_system_uint32" id="ks_reactor_client_ksclienttime__ctor_system_uint32"></a>

Constructor

```csharp
public ksClientTime(uint playerId = 0)
```

#### Parameters

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

Id of the player this time object is for. Zero if it holds server time data.

## Properties

### AdjustedDelta <a href="#ks_reactor_client_ksclienttime_adjusteddelta" id="ks_reactor_client_ksclienttime_adjusteddelta"></a>

Local game time in seconds since the last update, adjusted by [Adjuster](#KS_Reactor_Client_ksClientTime_Adjuster) to try stay in sync with the server, with time scaling applied.

```csharp
public float AdjustedDelta { get; }
```

#### Property Value

[float](https://learn.microsoft.com/dotnet/api/system.single)

### AdjustedUnscaledDelta <a href="#ks_reactor_client_ksclienttime_adjustedunscaleddelta" id="ks_reactor_client_ksclienttime_adjustedunscaleddelta"></a>

Local game time in seconds since the last update, adjusted by [Adjuster](#KS_Reactor_Client_ksClientTime_Adjuster) to try stay in sync with the server, without time scaling applied.

```csharp
public float AdjustedUnscaledDelta { get; set; }
```

#### Property Value

[float](https://learn.microsoft.com/dotnet/api/system.single)

### Adjuster <a href="#ks_reactor_client_ksclienttime_adjuster" id="ks_reactor_client_ksclienttime_adjuster"></a>

The time adjuster for calculating [AdjustedUnscaledDelta](#KS_Reactor_Client_ksClientTime_AdjustedUnscaledDelta) to try stay in sync with the server.

```csharp
public ksITimeAdjuster Adjuster { get; set; }
```

#### Property Value

[ksITimeAdjuster](/reactor/api-reference/ks.reactor.client/ks.reactor.client.ksitimeadjuster.md)

### IsClientSyncFrame <a href="#ks_reactor_client_ksclienttime_isclientsyncframe" id="ks_reactor_client_ksclienttime_isclientsyncframe"></a>

Will a client sync be sent to the server at the end of the current update frame.

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

#### Property Value

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

### PlayerId <a href="#ks_reactor_client_ksclienttime_playerid" id="ks_reactor_client_ksclienttime_playerid"></a>

The id of the player the time data is for. Zero if this holds the server time data.

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

#### Property Value

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

### ProcessedServerDelta <a href="#ks_reactor_client_ksclienttime_processedserverdelta" id="ks_reactor_client_ksclienttime_processedserverdelta"></a>

Total amount of simulated server time for all server updates processed this frame. If this is player time data, it is the total amount of time passed for the remote client for all updates processed from that client on this frame.

```csharp
public float ProcessedServerDelta { get; }
```

#### Property Value

[float](https://learn.microsoft.com/dotnet/api/system.single)

### ProcessedServerUnscaledDelta <a href="#ks_reactor_client_ksclienttime_processedserverunscaleddelta" id="ks_reactor_client_ksclienttime_processedserverunscaleddelta"></a>

Total amount of simulated server time for all server updates processed this frame. If this is player time data, it is the total amount of time passed for the remote client for all updates processed from that client on this frame

```csharp
public float ProcessedServerUnscaledDelta { get; }
```

#### Property Value

[float](https://learn.microsoft.com/dotnet/api/system.single)

### RealDelta <a href="#ks_reactor_client_ksclienttime_realdelta" id="ks_reactor_client_ksclienttime_realdelta"></a>

Real time in seconds since the last update. For games that do not used a fixed-time step, this will be the same as [UnscaledDelta](/reactor/api-reference/ks.reactor/ks.reactor.kstime.md#KS_Reactor_ksTime_UnscaledDelta). In Unity this is the same as [UnscaledDelta](/reactor/api-reference/ks.reactor/ks.reactor.kstime.md#KS_Reactor_ksTime_UnscaledDelta).

```csharp
public float RealDelta { get; }
```

#### Property Value

[float](https://learn.microsoft.com/dotnet/api/system.single)

### ServerDelta <a href="#ks_reactor_client_ksclienttime_serverdelta" id="ks_reactor_client_ksclienttime_serverdelta"></a>

```csharp
[Obsolete("Use ServerSyncDelta instead.")]
public float ServerDelta { get; }
```

#### Property Value

[float](https://learn.microsoft.com/dotnet/api/system.single)

### ServerFrameDelta <a href="#ks_reactor_client_ksclienttime_serverframedelta" id="ks_reactor_client_ksclienttime_serverframedelta"></a>

Fixed amount of unscaled time in seconds between two server frames.

```csharp
public float ServerFrameDelta { get; }
```

#### Property Value

[float](https://learn.microsoft.com/dotnet/api/system.single)

### ServerSyncDelta <a href="#ks_reactor_client_ksclienttime_serversyncdelta" id="ks_reactor_client_ksclienttime_serversyncdelta"></a>

Amount of time simulated on the server since the previous server sync frame. If this is player time data, this is the amount of time passed for the remote client between their last two owned-entity updates.

```csharp
public float ServerSyncDelta { get; }
```

#### Property Value

[float](https://learn.microsoft.com/dotnet/api/system.single)

### ServerTime <a href="#ks_reactor_client_ksclienttime_servertime" id="ks_reactor_client_ksclienttime_servertime"></a>

Simulated server time in seconds.

```csharp
public double ServerTime { get; }
```

#### Property Value

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

### ServerUnscaledDelta <a href="#ks_reactor_client_ksclienttime_serverunscaleddelta" id="ks_reactor_client_ksclienttime_serverunscaleddelta"></a>

```csharp
[Obsolete("Use ServerUnscaledSyncDelta instead.")]
public float ServerUnscaledDelta { get; }
```

#### Property Value

[float](https://learn.microsoft.com/dotnet/api/system.single)

### ServerUnscaledSyncDelta <a href="#ks_reactor_client_ksclienttime_serverunscaledsyncdelta" id="ks_reactor_client_ksclienttime_serverunscaledsyncdelta"></a>

Amount of unscaled time simulated on the server since the previous server sync frame. If this is player time data, this is the amount of time passed for the remote client between their last two owned-entity updates.

```csharp
public float ServerUnscaledSyncDelta { get; set; }
```

#### Property Value

[float](https://learn.microsoft.com/dotnet/api/system.single)

### Zero <a href="#ks_reactor_client_ksclienttime_zero" id="ks_reactor_client_ksclienttime_zero"></a>

```csharp
public static ksClientTime Zero { get; }
```

#### Property Value

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