# RCON & Admin API for Subnautica 2 (Beacon) (/docs/subnautica-2/rcon-and-api)



import { Callout } from "fumadocs-ui/components/callout";

There are two ways to administer a Beacon server: the **launcher admin panel** (easy) and **RCON** (scriptable). A third, lower-level **HTTP API** exists for power users.

<Callout type="info">
  All admin access is gated by the `RconPassword` you set in `appsettings.json`. **Set a long, random password before exposing your server** — see [Configure Your Server](/docs/subnautica-2/configure-your-server).
</Callout>

Launcher admin panel (easiest) [#launcher-admin-panel-easiest]

If `RconPassword` is set on a server you control, the Beacon Launcher exposes admin actions on that server's card:

| Action                  | What it does                                                                                                              |
| ----------------------- | ------------------------------------------------------------------------------------------------------------------------- |
| **Take snapshot**       | Saves current world state as a named snapshot. Use before risky mod changes or wipes.                                     |
| **Browse snapshots**    | Lists every snapshot with timestamps and sizes.                                                                           |
| **Restore snapshot**    | Rolls the world back. Server pauses, swaps the save atomically, resumes. Connected players are dropped and can reconnect. |
| **Start / Stop server** | Brings the Subnautica 2 game process up or down. Beacon itself stays running.                                             |

Snapshots also run automatically on a schedule, so you usually don't need to snapshot manually before normal play. See [Save Snapshots & Rollback](/docs/subnautica-2/save-snapshots).

RCON commands [#rcon-commands]

Beacon listens on a [Source-protocol RCON](https://developer.valvesoftware.com/wiki/Source_RCON_Protocol) port — your **gameplay port + 3**. Use any standard RCON client (`mcrcon`, BattleMetrics, the launcher's Console tab, etc.).

Connecting [#connecting]

* **Host:** your server's IP
* **Port:** `<gameplay port> + 3` — e.g. if gameplay is `27015`, RCON is `27018` (if gameplay is `7777`, RCON is `7780`)
* **Password:** your `RconPassword`

Command reference [#command-reference]

| Command         | Output                                                           | Purpose                                                        |
| --------------- | ---------------------------------------------------------------- | -------------------------------------------------------------- |
| `status`        | `instance=<id> plugin=connected pid=<n> version=<v> players=<n>` | Confirms the in-game plugin is connected; reports player count |
| `players`       | Current player count                                             | Quick "is anyone on?" check                                    |
| `ping`          | `pong`                                                           | RCON connectivity test                                         |
| `save snapshot` | `snapshot ok: <id> (<bytes>, sha=<short>)`                       | Force a save snapshot right now                                |
| `save list`     | One snapshot per line (id, size, age, sha)                       | List the 20 most recent snapshots                              |

Examples [#examples]

```text
> status
instance=adminserver plugin=connected pid=8588 version=0.3.42 players=2

> save snapshot
snapshot ok: 2026-05-17T03-12-04Z (4317829 bytes, sha=a91e3f04b2c97d18)

> save list
2026-05-17T03-12-04Z  4317829B  age=42s   sha=a91e3f04b2c97d18
2026-05-17T02-44-19Z  4317021B  age=1665s sha=7c81f9302b03e9d4
```

<Callout type="warn">
  `status` showing `plugin=connected` is your best signal the Beacon UE4SS plugin actually injected into Subnautica 2. If it shows disconnected, the game side isn't wired up — see [Troubleshooting](/docs/subnautica-2/troubleshooting).
</Callout>

HTTP admin API (power users) [#http-admin-api-power-users]

The launcher's admin actions go over an HMAC-signed HTTP API on your **gameplay port + 4** (e.g. `27019` if gameplay is `27015`). It exposes snapshot, restore, transfer, health, and roster endpoints.

Request signing [#request-signing]

Every request signs:

```text
HMAC_SHA256( SHA256(RconPassword), "{METHOD}\n{path}\n{timestamp}\n{body_sha256}" )
```

and sends it as the `X-Beacon-Signature` header alongside `X-Beacon-Timestamp`. The replay window is **5 minutes**.

The full surface is documented inline in BeaconServer's source (`src/server/BeaconServer/Services/BeaconHttpService.cs`); the maintainer plans a standalone reference once the API stabilizes. For most admins, the launcher panel and RCON cover everything — reach for the HTTP API only if you're scripting custom automation.

Related [#related]

* [Save Snapshots & Rollback →](/docs/subnautica-2/save-snapshots)
* [Configure Your Server (RconPassword) →](/docs/subnautica-2/configure-your-server)
* [Troubleshooting →](/docs/subnautica-2/troubleshooting)
