> For the complete documentation index, see [llms.txt](https://esmp-fun.gitbook.io/plugins/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://esmp-fun.gitbook.io/plugins/community-chat/getting-started/connect-a-server.md).

# Connect a server

Each community does this on its own Minecraft server. Two minutes, two steps. You need the **token** and the **relay address** your network operator sent you.

Works on Paper, Purpur and Folia (26.x, Java 25). The plugin only ever makes one outbound connection — no open ports, so it runs fine on shared hosting.

## 1. Install the plugin

Drop `ccsrv-spoke.jar` into your server's `plugins/` folder and restart the server once. On that first start the plugin creates its config file for you at:

```
plugins/CrossCommunitySRV/config.yml
```

## 2. Fill in two lines

Open that file. Only two lines matter:

```yaml
relay:
  url: "ws://127.0.0.1:8377"
  token: "CHANGE-ME"
```

<details>

<summary><code>url</code> — the relay address</summary>

The address your network operator sent you — normally a domain address like `wss://crosschat.some-domain.com` (no port number). Paste it exactly as sent. An address of the form `ws://some-address:8377` works too, but depends on your host allowing that port — if it times out, that's for your operator to fix, not you. (The default `ws://127.0.0.1:8377` only works if the relay runs on this same machine.)

</details>

<details>

<summary><code>token</code> — your community's token</summary>

The secret token your network operator sent you. It's your server's password to the network — keep it private.

</details>

Paste the address and token you were given, save, and run in-game (or console):

```
/crosschat reload
/crosschat status
```

Status should show: `✔ Connected to the network as '<your community>'`. Type something in chat and watch it appear on every server and Discord.

Not connecting? The console prints a plain-language explanation of what's wrong — send that to your network operator. One case worth knowing: if it says **"No answer from ..."** and the address has a port number in it, your host may be blocking outbound connections to that port. That's fixed on the *relay's* side, not yours — point your operator at [Give the relay a domain address](/plugins/community-chat/getting-started/relay-behind-443.md).

## Optional: make it yours

* **How network chat looks on your server** — the `formats:` section at the bottom of the same file controls it (MiniMessage format, placeholders are explained right there in the file). See the [spoke settings reference](/plugins/community-chat/reference/spoke-settings.md).
* **Hide the `[TAG]` prefixes** on your server: set `show-tags: false`.
* **In-game settings menu** for admins: `/crosschat menu`.
* **Take a break from the network**: `/crosschat pause` disconnects your server both ways; `/crosschat resume` brings it back.
