> 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/2.0/getting-started/how-to.md).

# How to... ?

A collection of frequently asked questions, and where to find the answers

## Connect

All Clients have to connect to a Replication Server, which can [run locally](/2.0/getting-started/setup-a-project/local-development.md#run-a-local-replication-server) or [in our cloud](/2.0/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](/2.0/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](/2.0/manual/networking-state-changes/instantiate-and-destroy-objects.md).

## Synchronise a value over the network

Syncing individual values of the [supported types](/2.0/manual/networking-state-changes/supported-types.md) can simply be done using the [CoherenceSync component](/2.0/manual/components/coherence-sync.md). If a type is not supported, you can send the value using a [Network Command](/2.0/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](/2.0/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](/2.0/manual/networking-state-changes/commands.md). We also have a video on <img src="https://215322450-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FYYuUg3g2Mq8aiI7le9ai%2Fuploads%2Fgit-blob-fbb9a7480a61e4c81dd006f4bb01dc530306d77e%2FYoutube%20Play%20Button.png?alt=media" 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](/2.0/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](/2.0/manual/simulation-server.md). You can also watch an <img src="https://215322450-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FYYuUg3g2Mq8aiI7le9ai%2Fuploads%2Fgit-blob-fbb9a7480a61e4c81dd006f4bb01dc530306d77e%2FYoutube%20Play%20Button.png?alt=media" 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](/2.0/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](/2.0/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](/2.0/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](/2.0/hosting/coherence-cloud/game-services/lobbies.md).
