# Run a Bedrock Dedicated Server

> Choose a Bedrock version, update it, set who may join, keep your files across updates and size the player slots of a Minecraft Bedrock Dedicated Server.

Source: https://www.coritan.com/docs/managed-containers/software/bedrock-dedicated-server/

In the dashboard:

- /dashboard/deployments/…/software: https://www.coritan.com/dashboard/deployments

A *Bedrock Dedicated Server* is Mojang's own server for Minecraft Bedrock Edition, the edition on phones, tablets and Windows. It is a different program from a Java server with [Bedrock crossplay](/docs/managed-containers/software/bedrock-crossplay/). It has its own worlds, its own `server.properties` and its own add-ons.

## Before you begin

- Choose **Bedrock Dedicated Server** under [Server software](/docs/managed-containers/software/) when you create the server or change its software.
- Bedrock players join with an address and a port. The **Primary address** tile on the server's **Ports** tab shows the address and the Bedrock port, with a button that copies them. Players on IPv6 use the server's [join address](/docs/proxies/join-addresses/).
- On a server someone shared with you, you need the Install software permission to change the version or update it.

## Choose a Bedrock version

The server runs the newest release of the Bedrock Dedicated Server unless you pin a version. To pin one, open the server's **Software** tab, change the software and choose the version you want. A version that Mojang marks as a preview is a preview build, and it may break worlds, so use it on a test server.

The **Current software** card shows the version the server runs.

## Update the server

When Mojang publishes a newer release than the one your server runs, the **Current software** card shows **Update available**, with `Version 1.26.52.3 is available. This server runs 1.26.50.2.` Players on the newest Bedrock cannot join a server on an older release, so update soon after Mojang does.

1. Take a [snapshot](/docs/managed-containers/snapshots/) first. An update cannot be undone.
2. On the **Current software** card, select **Update…**.
3. Read the lists, then select **Update server**. The dialog says what we replace and what we keep.

We replace the server program and the files that come with it. We keep your worlds, the packs you added, and these files: `server.properties`, `allowlist.json`, `whitelist.json`, `permissions.json`, `valid_known_packs.json`, `packetlimitconfig.json`, `profanity_filter.wlist` and `config/default/permissions.json`. The server stops while we install the update.

If a server runs a preview or a version you pinned on purpose, **Update available** shows only when the newest release is newer than yours. We never offer a step back.

## Choose who may join

Two files set who may join and what they may do. Edit them in the [Files tab](/docs/managed-containers/files/), then restart the server:

- `allowlist.json` lists the players who may join while `allow-list` in `server.properties` is `true`. Each entry has the player's `name`. A new server starts with `allow-list` set to `false`, so anyone can join until you set it to `true`.
- `permissions.json` gives a player a level, `visitor`, `member` or `operator`, by `xuid`.

Both survive an update.

## Add packs

Behavior packs and resource packs live on the **Packs** panel on the same tab ([Manage Bedrock packs](/docs/managed-containers/software/bedrock-packs/)).

## Set the player slots

Each Bedrock player who joins uses one UDP port on the server. We give every Bedrock Dedicated Server a run of ports for that, and the **Current software** card shows it as **Player slots**, such as `Player slots: 32`. Players past that number cannot join, whatever `max-players` says.

Keep `max-players` in `server.properties` at or below **Player slots**. The dashboard does not warn you when it is higher. If it is higher, players past the slots cannot join, whatever `max-players` says. Lower `max-players` to match, or ask support for a larger run of ports. The size of the run is the same for every new server on the platform, and a change applies to servers created after it. Servers that already have a run keep it.

The run of ports shows on the server's **Ports** tab as **Managed** rows with the purpose `Bedrock UDP window`. You cannot release them. We release them when you change the server to other software or delete the server.

If the card shows `Bedrock players cannot join: this server has no UDP ports for players. Contact support.`, the server has no run of ports at all, and nobody can join it until support gives it one.

## Find out when players cannot reach the server

While the server runs, the dashboard asks it for its status every 15 seconds. If it does not answer for 30 seconds, the page shows `Bedrock players cannot reach this server. Restart it from the console. If it still fails, contact support.` The warning clears when the server answers again.

## Back up a Bedrock server

[Snapshots](/docs/managed-containers/snapshots/) and backups copy the `worlds` folder with the rest of the server while it runs.

## Troubleshooting

`Bedrock players cannot reach this server. Restart it from the console. If it still fails, contact support.`
: The server is running, but its Bedrock listener does not answer. Restart it from the [console](/docs/managed-containers/console/).

Some players cannot join after an update
: Their Minecraft must be on the same release as the server. Ask them to update the game.

The server is not a server package
: A download that does not contain `bedrock_server` is refused with `…is not a server package, so nothing was changed. Try again in a few minutes.` Try again later.

## With the API

`GET /api/v1/client/servers/{uuid}/software/context` returns two fields for a Bedrock Dedicated Server, and `null` for other servers:

`bedrock_update`
: `installed`, the version the server runs, or `null` when we do not know it; `latest`, the newest release, or `null` when the lookup failed; and `available`, `true` only when both are known and the newest release is newer.

`bedrock_udp_window`
: `size`, the number of player slots, and `warning`, a sentence when the server has none, otherwise `null`.

Update with the software change call in keep mode, with the server's own `target_key` and the new `version`:

```bash
curl -X POST https://api.coritan.com/api/v1/client/servers/$SERVER/software/change \
  -H "Authorization: Bearer $CORITAN_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"target_key": "minecraft-bedrock", "version": "1.26.52.3", "mode": "keep"}'
```

## Related

- [Let Bedrock players join a Java server](/docs/managed-containers/software/bedrock-crossplay/)
- [Manage Bedrock packs](/docs/managed-containers/software/bedrock-packs/)
- [Manage server ports](/docs/managed-containers/ports/)

## API

- `GET /api/v1/client/servers/{uuid}/software/context`: Return loader/game-version context for marketplace tab gating (https://www.coritan.com/docs/api/reference/client/deployment-servers/servers-software/#op-get-api-v1-client-servers-uuid-software-context)
- `POST /api/v1/client/servers/{uuid}/software/change`: Switch the server to different software, or a different version of it (https://www.coritan.com/docs/api/reference/client/deployment-servers/servers-software/#op-post-api-v1-client-servers-uuid-software-change)
