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

# KS.Reactor.Client

### Namespaces

[KS.Reactor.Client.Adaptors](/reactor/api-reference/ks.reactor.client.adaptors.md)

[KS.Reactor.Client.Unity](/reactor/api-reference/ks.reactor.client.unity.md)

### Classes

[ksLinearPredictor.ConfigData](/reactor/api-reference/ks.reactor.client/ks.reactor.client.kslinearpredictor/ks.reactor.client.kslinearpredictor.configdata.md)

Contains parameters for tuning transform and property smoothing. If a smoothed property does not have a correction rate set, will be used if it is linearly interpolated, and will be used if it is spherically interpolated. If the property uses wrap float interpolation and has no rate set, it will use the difference between the min and the max range values.

[ksConvergingInputPredictor.ConfigData](/reactor/api-reference/ks.reactor.client/ks.reactor.client.ksconverginginputpredictor/ks.reactor.client.ksconverginginputpredictor.configdata.md)

Configuration parameters for the converging input predictor.

[ksTCPConnection.ConfigSettings](/reactor/api-reference/ks.reactor.client/ks.reactor.client.kstcpconnection/ks.reactor.client.kstcpconnection.configsettings.md)

Configuration options for TCP connections

[ksConnection.ConnectOperation](/reactor/api-reference/ks.reactor.client/ks.reactor.client.ksconnection/ks.reactor.client.ksconnection.connectoperation.md)

Track connect operations

[ksConnection.IOOperation](/reactor/api-reference/ks.reactor.client/ks.reactor.client.ksconnection/ks.reactor.client.ksconnection.iooperation.md)

Track read/write operations

[ksBaseEntity](/reactor/api-reference/ks.reactor.client/ks.reactor.client.ksbaseentity.md)

Base class for entities. Entities are objects controlled by the server and replicated to clients.

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

Base class for players. A player represents a client.

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

Base class for rooms. Rooms are used to connect to server rooms. The room maintains simulation state that is regularly synced with the server.

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

Templated base class for rooms. Rooms are used to connect to server rooms. The room maintains simulation state that is regularly synced with the server.

[ksClientInputPredictor](/reactor/api-reference/ks.reactor.client/ks.reactor.client.ksclientinputpredictor.md)

Predicts movement and properties using only the player controller; server data is ignored.

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

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 and holds timing data that can be used to smooth motion for entities they control. For player time, is the last received server frame number that contained owned-entity updates from that player, is always one, is the amount of time between passed on the remote client between their last two owned-entity updates, and is a different value calculated by the for that player time.

[ksConnection](/reactor/api-reference/ks.reactor.client/ks.reactor.client.ksconnection.md)

Base class for network connections.

[ksConvergingInputPredictor](/reactor/api-reference/ks.reactor.client/ks.reactor.client.ksconverginginputpredictor.md)

Predicts movement and properties based on user input using a player controller. Accelerations are slower than the server so the client and server will converge. Controller updates are used to predict a future server position, and the client render position interpolates towards the predicted server position. New server frames will make corrections to the future predicted server position, and may trigger a rewind and replay of controller inputs to get a new predicted server position.

[ksDelegates](/reactor/api-reference/ks.reactor.client/ks.reactor.client.ksdelegates.md)

Collection of delegates.

[ksLinearPredictor](/reactor/api-reference/ks.reactor.client/ks.reactor.client.kslinearpredictor.md)

Smooths/predicts movement using linear interpolation and extrapolation.

[ksNetCounters](/reactor/api-reference/ks.reactor.client/ks.reactor.client.ksnetcounters.md)

Network counters

[ksPredictorUtils](/reactor/api-reference/ks.reactor.client/ks.reactor.client.kspredictorutils.md)

Client-side predictor utility.

[ksRUDPConnection](/reactor/api-reference/ks.reactor.client/ks.reactor.client.ksrudpconnection.md)

[ksReadOnlyTransform2D](/reactor/api-reference/ks.reactor.client/ks.reactor.client.ksreadonlytransform2d.md)

Wraps a and provides a 2D view of the data.

[ksService](/reactor/api-reference/ks.reactor.client/ks.reactor.client.ksservice.md)

Main entry point to connect to the service.

[ksTCPConnection](/reactor/api-reference/ks.reactor.client/ks.reactor.client.kstcpconnection.md)

Network stream connection using sockets and the TCP protocol.

[ksTimeKeeper](/reactor/api-reference/ks.reactor.client/ks.reactor.client.kstimekeeper.md)

Smoothly adjusts client time deltas to keep in sync with the server. Controls time values that determine how far predictors should interpolate/extrapolate the server frame data.

[ksTimeRestrainer](/reactor/api-reference/ks.reactor.client/ks.reactor.client.kstimerestrainer.md)

Simple time adjuster that slows down and eventually stops incrementing time after long periods with no updates from the server.

### Structs

[ksConvergingInputPredictor.PropertyBehaviour](/reactor/api-reference/ks.reactor.client/ks.reactor.client.ksconverginginputpredictor/ks.reactor.client.ksconverginginputpredictor.propertybehaviour.md)

Describes how to predict a property.

[ksLinearPredictor.PropertyBehaviour](/reactor/api-reference/ks.reactor.client/ks.reactor.client.kslinearpredictor/ks.reactor.client.kslinearpredictor.propertybehaviour.md)

Describes how to predict a property.

[ksFrameInfo](/reactor/api-reference/ks.reactor.client/ks.reactor.client.ksframeinfo.md)

Size and download progress for a frame.

[ksPredictionBehaviour](/reactor/api-reference/ks.reactor.client/ks.reactor.client.kspredictionbehaviour.md)

Contains rules for how a property behaves during prediction

[ksVersion](/reactor/api-reference/ks.reactor.client/ks.reactor.client.ksversion.md)

Version number consisting of major, minor, revision, and build.

### Interfaces

[ksIInputManager](/reactor/api-reference/ks.reactor.client/ks.reactor.client.ksiinputmanager.md)

Input manager interface. Rooms query the input manager for input state on input frames. Button state is queried every frame so button state changes aren't missed. Inputs registered with the by s determine which inputs are queried and sent to the server.

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

Predictor interface for smoothing/predicting entity movement and properties.

[ksIRoom\<Player, Entity>](/reactor/api-reference/ks.reactor.client/ks.reactor.client.ksiroom-2.md)

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

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

Interface for synchronizing time with the server. The room has time adjuster, and each player that owns entities with the transform permission also has a time adjuster, accessible via for the room and for the players.

Every client frame, is passed to to calculate . is called when we process a server frame.

The same process happens for the player time adjusters for players who own entities with the transform permission, except is called when we receive owned-entity updates from that player, and OnPlayerUpdatesStopped is called when all entities owned by that player stop updating and we don't expect to receive more updates until they start updating again.

### Enums

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

Connect/disconnect status.

[ksNetCounters.CounterType](/reactor/api-reference/ks.reactor.client/ks.reactor.client.ksnetcounters/ks.reactor.client.ksnetcounters.countertype.md)

Counter types.

RX = Receive TX = Transmit

[ksPredictorUtils.PhysicsFlags](/reactor/api-reference/ks.reactor.client/ks.reactor.client.kspredictorutils/ks.reactor.client.kspredictorutils.physicsflags.md)

[ksVersion.Precision](/reactor/api-reference/ks.reactor.client/ks.reactor.client.ksversion/ks.reactor.client.ksversion.precision.md)

Which revision numbers to check for version comparisons.

[ksPredictionBehaviour.Types](/reactor/api-reference/ks.reactor.client/ks.reactor.client.kspredictionbehaviour/ks.reactor.client.kspredictionbehaviour.types.md)

Prediction rules to use on the client.

[ksDestroyReason](/reactor/api-reference/ks.reactor.client/ks.reactor.client.ksdestroyreason.md)

Reasons for entity destruction

### Delegates

[ksBaseEntity.ConfirmPlayerSpawnHandler](/reactor/api-reference/ks.reactor.client/ks.reactor.client.ksbaseentity/ks.reactor.client.ksbaseentity.confirmplayerspawnhandler.md)

Confirm player spawn handler

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

Connect status event handler.

[ksConnection.ConnectHandler](/reactor/api-reference/ks.reactor.client/ks.reactor.client.ksconnection/ks.reactor.client.ksconnection.connecthandler.md)

Handler called when connection attempts complete.

[ksBaseEntity.ControllerChangeHandler](/reactor/api-reference/ks.reactor.client/ks.reactor.client.ksbaseentity/ks.reactor.client.ksbaseentity.controllerchangehandler.md)

Controller change handler.

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

Destroy entity event handler.

[ksBaseEntity.DestroyHandler](/reactor/api-reference/ks.reactor.client/ks.reactor.client.ksbaseentity/ks.reactor.client.ksbaseentity.destroyhandler.md)

Destroy event handler.

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

Disconnect status event handler.

[ksConnection.DisconnectHandler](/reactor/api-reference/ks.reactor.client/ks.reactor.client.ksconnection/ks.reactor.client.ksconnection.disconnecthandler.md)

Handler called when connection disconnects.

[ksConnection.Factory](/reactor/api-reference/ks.reactor.client/ks.reactor.client.ksconnection/ks.reactor.client.ksconnection.factory.md)

Method to generate connections.

[ksConnection.IOHandler](/reactor/api-reference/ks.reactor.client/ks.reactor.client.ksconnection/ks.reactor.client.ksconnection.iohandler.md)

Handler called when a read/write operation completes.

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

Input update handler.

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

Leave event handler.

[ksConvergingInputPredictor.MoveChecker](/reactor/api-reference/ks.reactor.client/ks.reactor.client.ksconverginginputpredictor/ks.reactor.client.ksconverginginputpredictor.movechecker.md)

Delegate for checking for collisions and repositioning the entity when moving between two points.

[ksBaseEntity.OwnershipChangeHandler](/reactor/api-reference/ks.reactor.client/ks.reactor.client.ksbaseentity/ks.reactor.client.ksbaseentity.ownershipchangehandler.md)

Ownership change handler.

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

Player join event handler.

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

Player leave event handler.

[ksDelegates.PropertyChangeHandler](/reactor/api-reference/ks.reactor.client/ks.reactor.client.ksdelegates/ks.reactor.client.ksdelegates.propertychangehandler.md)

Property change event handler.

[ksBaseEntity.RPCHandler](/reactor/api-reference/ks.reactor.client/ks.reactor.client.ksbaseentity/ks.reactor.client.ksbaseentity.rpchandler.md)

RPC event handler.

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

RPC event handler.

[ksConvergingInputPredictor.ResetPropertyCallback](/reactor/api-reference/ks.reactor.client/ks.reactor.client.ksconverginginputpredictor/ks.reactor.client.ksconverginginputpredictor.resetpropertycallback.md)

Property reset callback, called when a property is reset to the server state before replaying inputs through the player controller.

[ksService.RoomListCallback](/reactor/api-reference/ks.reactor.client/ks.reactor.client.ksservice/ks.reactor.client.ksservice.roomlistcallback.md)

Callback for .

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

Send client frame handler.

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

Spawn entity event handler.

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

Handler called when the room connection state changes.

[ksDelegates.TimeAdjusterFactory](/reactor/api-reference/ks.reactor.client/ks.reactor.client.ksdelegates/ks.reactor.client.ksdelegates.timeadjusterfactory.md)

Factor for creating time adjusters.

[ksConvergingInputPredictor.ConfigData.ToleranceCalculator](/reactor/api-reference/ks.reactor.client/ks.reactor.client.ksconverginginputpredictor/ks.reactor.client.ksconverginginputpredictor.configdata/ks.reactor.client.ksconverginginputpredictor.configdata.tolerancecalculator.md)
