# CoherenceInput

`CoherenceInput` is a component that enables a [Simulator](https://docs.coherence.io/1.7/manual/simulation-server) to take control of a Client's entities, based on the Client's inputs. It is an essential piece of a [server-authoritative setup](https://docs.coherence.io/1.7/manual/authority/server-authoritative-setup).

When you select **Server Side with Client Input** in the **Simulate In** option on a `CoherenceSync`, coherence will add a `CoherenceInput` component to the entity.

From this point on, **the authority on this entity is split**: a Client has Input authority, while a Simulator will have State authority. This means that the Client is not fully in control of the entity, but only has the license to send inputs to a Simulator. The Simulator in turn will process these inputs, elaborate new state, and send it to the Client who can now display the results.

Because of this round-trip, there will always be a delay between the player's inputs and what they see on screen. To make the game more reactive, you might need to implement prediction.

{% hint style="info" %}
For more information on how to setup and configure inputs for a `CoherenceInput` component, refer to the [server-authoritative setup](https://docs.coherence.io/1.7/manual/authority/server-authoritative-setup) page.
{% endhint %}
