# Customise the game proxy messages

> Set the messages players see in the server list and when they join through your organization's game proxy.

Source: https://www.coritan.com/docs/organizations/integrations/game-proxy/

In the dashboard:

- /dashboard/organizations/…/integrations/gameproxy: https://www.coritan.com/dashboard/organizations

Players reach your customers' Minecraft servers through Coritan's game proxy. On the **Game proxy** tab you choose the join addresses those servers get, and you write the text players see in their server list and when the proxy turns them away. Every text you leave blank uses the platform's wording, which the form shows as the field's placeholder.

## Before you begin

- You need the `owner` or `admin` role in the organization.
- To give join addresses a domain of your own, first ask [support](https://www.coritan.com/dashboard/support) to add it as a base domain. The tab lists the nameservers to delegate it to.

## Set the join addresses

1. Go to [Organizations](https://www.coritan.com/dashboard/organizations), open your organization, choose **Integrations**, then **Game proxy**.
2. Under **Auto-provision Minecraft routes**, choose **Inherit platform default**, **Always on** or **Always off**. When it is on, every new Minecraft server gets a join address made of its name and the base domain.
3. Under **Base domain**, choose the domain join addresses end in. The list holds your organization's own base domains and the ones the platform shares with every organization. You cannot choose a disabled domain, and the list says when a domain's nameservers are not ready yet.
4. Choose **Save game proxy settings**. A message confirms the domain join addresses now use.

Once you choose a base domain, you can move to another one but not back to **Platform default**.

## Write the player messages

Under **Branding**, fill in the texts you want to change:

| Field | Where players see it |
| --- | --- |
| **Version name** | In the server list, where the Minecraft version normally is. |
| **Ping description** | In the server list, for an address that is not attached to a server. |
| **Offline MOTD** | In the server list, while the customer's server is stopped. |
| **Online MOTD override** | In the server list, in place of the server's own message. Leave it empty to show the server's own. |
| **Join response** | On the screen a player sees when an address has no server behind it. |
| **Rejoin message** | On the screen a player sees while the server is starting. |
| **Blocked message** | On the screen a player sees when the proxy refuses them. |

Two more settings sit under the texts:

- **Status cache (seconds)** is how long the proxy reuses a server's answer to the server list, from 1 to 10 seconds.
- **Favicon (data URL)** is the icon beside your text in the server list: a 64×64 PNG, pasted as a `data:image/png;base64,` URL. To go back to the platform's icon, tick **Clear the custom favicon**.

To go back to the platform's wording for a text, empty the field. Then choose **Save game proxy settings**.

## Result

Players see your texts in their server list and on the proxy's screens. The **Join addresses** card shows **Auto-provision on** or **Auto-provision off**, and new servers get addresses on the base domain you chose.

## Troubleshooting

`Favicon must be a data:image/png;base64,... URI`
: Paste the icon as a PNG data URL. Other image types are refused.

`Favicon too large (max ~64KB PNG as data URI)`
: Make the PNG smaller. A 64×64 icon fits well within the limit.

Enter a whole number of seconds from 1 to 10, or leave it empty to inherit.
: The status cache takes 1–10 seconds. Leave it empty to use the platform's value.

The form says no base domain is set
: Neither your organization nor the platform has a base domain, so we cannot give out join addresses yet. Contact [support](https://www.coritan.com/dashboard/support).

## Related

- [Organization integrations](/docs/organizations/integrations/)
- [Host DNS zones for your organization](/docs/organizations/dns/)
- [Let customers run their servers](/docs/organizations/storefront/portal-servers/)

## With the API

Both routes need an owner's or admin's access token, sent as `Authorization: Bearer $CORITAN_TOKEN`.

`GET /api/v1/orgs/acme/gameproxy/settings` answers your settings next to the platform's:

| Field | Meaning |
| --- | --- |
| `auto_provision_minecraft` | `true`, `false`, or `null` to follow the platform. |
| `effective_auto_provision_minecraft` | Whether new servers get a join address now. |
| `base_domain_id` and `effective_base_domain` | The base domain you chose, and the domain in use. |
| `base_domains` | The domains you can choose, each with `id`, `domain`, `enabled` and `ns_ready`. |
| `branding` and `platform_branding` | Your texts and the platform's, by field name. |
| `ns_instructions` | The `nameservers` to delegate your own base domain to. |

`PUT /api/v1/orgs/acme/gameproxy/settings` changes only the fields you send. The texts are `version_name`, `generic_ping_description`, `offline_motd`, `online_motd`, `generic_join_response`, `rejoin_message` and `blocked_message`, plus `favicon` and `status_cache_ttl_seconds` (1–10). Send `clear_` and the field name set to `true`, such as `clear_offline_motd`, to go back to the platform's value. Send `auto_provision_minecraft` to switch join addresses on or off, or `inherit_auto_provision: true` to follow the platform.

```bash
curl -X PUT "https://api.coritan.com/api/v1/orgs/acme/gameproxy/settings" \
  -H "Authorization: Bearer $CORITAN_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"offline_motd": "This server is asleep. Start it from your dashboard.", "clear_blocked_message": true}'
```

The answer carries `effective_auto_provision_minecraft` and `effective_base_domain` after the change.

## API

- `GET /api/v1/orgs/{org_slug}/gameproxy/settings`: Get org gameproxy settings (https://www.coritan.com/docs/api/reference/organizations/organizations-members/gameproxy/#op-get-api-v1-orgs-org-slug-gameproxy-settings)
- `PUT /api/v1/orgs/{org_slug}/gameproxy/settings`: Update org gameproxy settings (https://www.coritan.com/docs/api/reference/organizations/organizations-members/gameproxy/#op-put-api-v1-orgs-org-slug-gameproxy-settings)
