> For the complete documentation index, see [llms.txt](https://docs.coherence.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.coherence.io/getting-started/how-to.md).

# How to... ?

## Connect

All Clients have to connect to a Replication Server, which can [run locally](/getting-started/setup-a-project/local-development.md#run-a-local-replication-server) or [in our cloud](/getting-started/setup-a-project/test-in-the-cloud/deploy-replication-server.md).

## Spawn the player

There is no specific place to designate a special [player Prefab](/manual/networking-state-changes/instantiate-and-destroy-objects.md#how-do-i-specify-a-prefab-to-spawn-for-the-player). Any script can create it, by just instantiating a Prefab.

## Spawn or destroy a network entity

Spawning is done by simply instantiating a Prefab that has a CoherenceSync, using the `Instantiate()` API. Same for removing entities, using the `Destroy()` API. Read more about [instantiating and destroying](/manual/networking-state-changes/instantiate-and-destroy-objects.md).

## Synchronise a value over the network

Syncing individual values of the [supported types](/manual/networking-state-changes/supported-types.md) can simply be done using the [CoherenceSync component](/manual/components/coherence-sync.md). If a type is not supported, you can send the value using a [Network Command](/manual/networking-state-changes/commands.md) as an index, or by reducing it to a byte array, and reconstructing it on arrival.

## Find other connected Clients

[ClientConnections](/manual/client-connections.md) provide a view on who is connected at any given time.

## Send a message to another Client

Messages (or RPCs) in coherence are called [Network Commands](/manual/networking-state-changes/commands.md). We also have a video on <img src="/files/3BxF3GkQLb3Mba34eFJY" alt="" data-size="line"> [Authority and Commands](https://youtu.be/Ql2w10nJl80?si=oP7ma7LElsCRB76p).

## Move all connected Clients to a new scene together

To make all connected Clients move to a new scene, you can create a method that loads the scene and mark it as a [Network Command](/manual/networking-state-changes/commands.md). Then, from one of the Clients you would send that Network Command on all others (and to themselves) by selecting as destination `MessageTarget.All`.

## Run logic on the server

Servers in coherence are called [Simulators](/manual/simulation-server.md). You can also watch an <img src="/files/3BxF3GkQLb3Mba34eFJY" alt="" data-size="line"> [Overview of Simulators](https://www.youtube.com/watch?v=v5Ch701Poqg).

## Do client-side prediction

To allow client-side prediction, start by [disabling automatic updates](/manual/authority/server-authoritative-setup.md#client-side-prediction) on the properties you want to do prediction for. Implement your prediction code, and listen for incoming updates by [hooking into update callbacks](/manual/authority/server-authoritative-setup.md#misprediction-and-reconciliation). When the update arrives, you can reconcile the predicted state and the new, incoming sample in a way that fits your game best.

## Create a chat

To create a [simple in-game chat](/getting-started/samples-and-tutorials/campfire-project/a-simple-text-chat.md) functionality, you can leverage Network Commands to send strings (or byte arrays) to all connected Clients.

A pre-game chat can also be created by leveraging [Lobbies](/hosting/coherence-cloud/game-services/lobbies.md).
