> 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/reference/spoke-settings.md).

# Spoke settings

**What's a spoke?** It's the Minecraft plugin (`ccsrv-spoke.jar`) — the part that goes in the `plugins/` folder of each Minecraft server, like any other plugin. It connects that one server to the network. Every server in the network runs its own spoke; only the operator's machine runs the [relay](/plugins/community-chat/reference/relay-settings.md) (the hub the spokes connect to). Relay = the one hub, spokes = everyone's plugins. That's the whole naming.

**This page is for community admins** — anyone running a Minecraft server that's part of (or joining) a network.

{% hint style="info" %}
**Location:** `plugins/CrossCommunitySRV/config.yml` (the plugin creates it on first start).

After editing, `/crosschat reload` applies it live — no restart.
{% endhint %}

Only `relay.url` and `relay.token` are required — the [connect guide](/plugins/community-chat/getting-started/connect-a-server.md) covers those.

***

## Relay connection

The two lines that connect your server to the network. Both come from your network operator.

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

<details>

<summary><code>url</code></summary>

**Default:** `ws://127.0.0.1:8377` (only correct if the relay runs on this same machine)

Where the network hub (relay) runs. Your network operator tells you what to put here — either `wss://crosschat.some-domain.com` (a domain address, no port) or `ws://some-address:8377` (IP and port). Both work; `wss` is encrypted and immune to port blocking.

</details>

<details>

<summary><code>token</code></summary>

Your server's secret token — its password to the network. Every server has its own; get yours from the network operator.

{% hint style="warning" %}
Keep it private. Anyone with your token can chat as your server.
{% endhint %}

</details>

***

## Chat behaviour

```yaml
chat:
  respectCancelled: true
  show-tags: true
```

<details>

<summary><code>respectCancelled</code></summary>

**Default:** `true` (recommended)

If another plugin blocks or cancels a chat message — a local mute, a channel plugin, a swear filter — should we respect that and NOT send it to the network? With `false`, messages other plugins blocked locally would still leak out to the other servers.

</details>

<details>

<summary><code>show-tags</code></summary>

**Default:** `true`

Show server tags like `[EMER]` in front of network messages on your server. Also changeable in-game: `/crosschat menu` → This Server.

</details>

***

## Formats

How network chat looks **on your server**. Written in [MiniMessage](https://docs.advntr.dev/minimessage/format.html) format, so you can restyle it to match the rest of your server's chat.

```yaml
formats:
  remote-chat: "<tagcolor>[<tag>]</tagcolor> <white><name></white> <dark_gray>»</dark_gray> <message>"
  discord: "<tagcolor>[<tag>]</tagcolor> <#5865F2>Discord</#5865F2> <white><name></white> <dark_gray>»</dark_gray> <message>"
```

<details>

<summary><code>remote-chat</code> and <code>discord</code></summary>

`remote-chat` styles a chat message arriving from another Minecraft server; `discord` styles a message arriving from Discord.

Placeholders you can use in both:

| Placeholder  | Becomes                      |
| ------------ | ---------------------------- |
| `<tag>`      | the other server's short tag |
| `<tagcolor>` | that server's color          |
| `<name>`     | who sent the message         |
| `<message>`  | the message itself           |

</details>
