For the complete documentation index, see llms.txt. This page is also available as Markdown.

KS.Reactor.Client

Namespaces

KS.Reactor.Client.Adaptors

KS.Reactor.Client.Unity

Classes

ksLinearPredictor.ConfigData

Contains parameters for tuning transform and property smoothing. If a smoothed property does not have a correction rate set, PositionCorrectionRate will be used if it is linearly interpolated, and RotationCorrectionRate 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

Configuration parameters for the converging input predictor.

ksTCPConnection.ConfigSettings

Configuration options for TCP connections

ksConnection.ConnectOperation

Track connect operations

ksConnection.IOOperation

Track read/write operations

ksBaseEntity

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

ksBasePlayer

Base class for players. A player represents a client.

ksBaseRoom<Player, Entity>

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.

ksBaseRoom

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

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

ksClientTime

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

ksConnection

Base class for network connections.

ksConvergingInputPredictor

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

Collection of delegates.

ksLinearPredictor

Smooths/predicts movement using linear interpolation and extrapolation.

ksNetCounters

Network counters

ksNetStats

Network statistics

ksPredictorUtils

Client-side predictor utility.

ksRUDPConnection

ksReadOnlyTransform2D

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

ksService

Main entry point to connect to the service.

ksTCPConnection

Network stream connection using sockets and the TCP protocol.

ksTimeKeeper

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

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

Structs

ksConvergingInputPredictor.PropertyBehaviour

Describes how to predict a property.

ksLinearPredictor.PropertyBehaviour

Describes how to predict a property.

ksFrameInfo

Size and download progress for a frame.

ksPredictionBehaviour

Contains rules for how a property behaves during prediction

ksVersion

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

Interfaces

ksIInputManager

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 ksInputRegistrar by ksPlayerControllers determine which inputs are queried and sent to the server.

ksIPredictor

Predictor interface for smoothing/predicting entity movement and properties.

ksIRoom<Player, Entity>

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

ksITimeAdjuster

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 Adjuster Time for the room and GetTime for the players.

Every client frame, UnscaledDelta is passed to OnClientUpdate to calculate AdjustedUnscaledDelta. OnServerUpdate 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 OnServerUpdate 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

Connect/disconnect status.

ksNetCounters.CounterType

Counter types.

RX = Receive TX = Transmit

ksNetStats.CounterType

Counter types.

RX = Receive TX = Transmit

ksPredictorUtils.PhysicsFlags

ksVersion.Precision

Which revision numbers to check for version comparisons.

ksPredictionBehaviour.Types

Prediction rules to use on the client.

ksDestroyReason

Reasons for entity destruction

Delegates

ksBaseEntity.ConfirmPlayerSpawnHandler

Confirm player spawn handler

ksConnection.ConnectHandler

Handler called when connection attempts complete.

ksBaseRoom.ConnectHandler

Connect status event handler.

ksBaseEntity.ControllerChangeHandler

Controller change handler.

ksBaseRoom<Player, Entity>.DestroyEntityHandler

Destroy entity event handler.

ksBaseEntity.DestroyHandler

Destroy event handler.

ksBaseRoom.DisconnectHandler

Disconnect status event handler.

ksConnection.DisconnectHandler

Handler called when connection disconnects.

ksConnection.Factory

Method to generate connections.

ksConnection.IOHandler

Handler called when a read/write operation completes.

ksBaseRoom.InputUpdateHandler

Input update handler.

ksBasePlayer.LeaveHandler

Leave event handler.

ksConvergingInputPredictor.MoveChecker

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

ksBaseEntity.OwnershipChangeHandler

Ownership change handler.

ksBaseRoom<Player, Entity>.PlayerJoinHandler

Player join event handler.

ksBaseRoom<Player, Entity>.PlayerLeaveHandler

Player leave event handler.

ksDelegates.PropertyChangeHandler

Property change event handler.

ksBaseRoom.RPCHandler

RPC event handler.

ksBaseEntity.RPCHandler

RPC event handler.

ksConvergingInputPredictor.ResetPropertyCallback

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

ksService.RoomListCallback

Callback for GetServers.

ksBaseRoom.SendFrameHandler

Send client frame handler.

ksBaseRoom<Player, Entity>.SpawnEntityHandler

Spawn entity event handler.

ksBaseRoom.StateChangeHandler

Handler called when the room connection state changes.

ksDelegates.TimeAdjusterFactory

Factor for creating time adjusters.

ksConvergingInputPredictor.ConfigData.ToleranceCalculator

Last updated