# How to Run Admin Commands on Your Romestead Server (/docs/romestead/admin-setup)



import { Step, Steps } from 'fumadocs-ui/components/steps';

The Romestead dedicated server accepts admin commands via its **standard input (stdin)**. On XGamingServer, anything you type into the panel's **Console** tab is piped straight into the server's stdin, so the full command set works natively — no RCON client needed.

The Three Layers of Admin Control [#the-three-layers-of-admin-control]

| Layer                          | What it controls                         | Where you do it                                   |
| ------------------------------ | ---------------------------------------- | ------------------------------------------------- |
| **Server password**            | Who can join in the first place          | `Password` env var (Startup tab) or `config.json` |
| **In-game commands**           | Kick, ban, broadcast, save               | Panel **Console** tab                             |
| **Panel access for co-admins** | Start/stop, edit config, restore backups | Panel **Subusers** tab                            |

In-Game Console Commands [#in-game-console-commands]

These are the commands the official Romestead dedicated server accepts on its stdin. Send them via the panel's **Console** tab — just type and press Enter.

| Command          | What it does                                          |
| ---------------- | ----------------------------------------------------- |
| `list`           | Print the list of currently connected players         |
| `say <message>`  | Broadcast a chat message to all players               |
| `kick <player>`  | Disconnect a player from the server (they can rejoin) |
| `ban <player>`   | Permanently ban a player by name                      |
| `unban <player>` | Remove a ban                                          |
| `save`           | Save the world to disk now                            |
| `quicksave`      | Save the world (faster, less complete checkpoint)     |
| `stop`           | Save the world and gracefully shut down the server    |
| `quickstop`      | Shut down without saving                              |

> **The graceful-stop is automatic.** When you click **Stop** on the **Dashboard**, the panel sends `stop` to the server's stdin and waits up to 30 seconds before force-killing. Your world is saved.

How to Run a Command [#how-to-run-a-command]

<Steps>
  <Step>
    Open the Console tab [#open-the-console-tab]

    In the [XGamingServer Panel](https://panel.xgamingserver.com), select your Romestead server, then click **Console** in the sidebar.
  </Step>

  <Step>
    Type the command [#type-the-command]

    At the bottom of the console output, there's a command input. Type the command — for example:

    ```
    list
    ```

    Press **Enter**. The server prints the connected players.
  </Step>

  <Step>
    Broadcast a message [#broadcast-a-message]

    ```
    say Server restart in 5 minutes — finish your fights!
    ```

    Everyone connected sees the message in their chat.
  </Step>
</Steps>

Lock the Server with a Password [#lock-the-server-with-a-password]

Without a password anyone with the IP and port can join. Set the `PASSWORD` Startup tab variable (or the `Password` field in `config.json` directly — but mind the [env-var rewrite caveat](/docs/romestead/server-config#startup-tab-vs-configjson)):

<Steps>
  <Step>
    Open the Startup tab [#open-the-startup-tab]

    In your Romestead server's sidebar, click **Startup**. You'll see a grid of editable variables — find **Password**.
  </Step>

  <Step>
    Set a strong password [#set-a-strong-password]

    Type something memorable but not guessable:

    ```
    vivatRoma1337
    ```
  </Step>

  <Step>
    Restart the server [#restart-the-server]

    From the **Dashboard**, click **Restart**. The panel regenerates `config.json` with the new password and the server picks it up on boot. Share the password via Discord / Steam DMs — never publicly.
  </Step>
</Steps>

Give Co-Admins Panel Access (Subusers) [#give-co-admins-panel-access-subusers]

If you trust a co-organizer to restart the server or fix a config when you're offline, give them their own panel login — don't share yours.

<Steps>
  <Step>
    Open the Subusers tab [#open-the-subusers-tab]

    In your Romestead server's sidebar, click **Subusers**.
  </Step>

  <Step>
    Invite a co-admin [#invite-a-co-admin]

    Click **Create Subuser**. Enter their email. Pick **only the permissions they need** — most co-admins want:

    * **Console** → send `kick`/`ban`/`say` commands, view live output
    * **Power** → start / restart / stop
    * **Files (read + write)** → fix configs if needed
    * **Backups** → restore from a bad patch

    Skip **Subusers** itself (so they can't add their own users) and **Reinstall Server** (catastrophic if misused).
  </Step>

  <Step>
    They accept the invite [#they-accept-the-invite]

    The subuser gets an email with a link. Once they accept, they see only your Romestead server with the permissions you granted — nothing else on your account.
  </Step>
</Steps>

EnableCheats — Powerful, Server-Wide [#enablecheats--powerful-server-wide]

Setting `EnableCheats: true` (the `ENABLE_CHEATS` Startup tab variable) turns on cheat commands for **the entire world** — everyone connected can use them, not just you. Use this for **test servers** or "creative mode" sandbox worlds, not your main co-op world.

Restart after changing for the flag to take effect.

Troubleshooting [#troubleshooting]

| Problem                                 | Fix                                                                                                                                        |
| --------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------ |
| Commands typed in console do nothing    | Confirm the server is **Online** on the **Dashboard**. Commands only work when the dotnet process is running                               |
| `kick <player>` says "player not found" | Player names are case-sensitive; copy the name exactly from `list` output                                                                  |
| Banned player rejoins under a new name  | Romestead's ban appears to be name-based, not Steam-ID-based. Combine `ban` with a strong `Password` rotation if someone keeps coming back |
| Subuser can't log in                    | Confirm they accepted the invite email. Resend from **Subusers** if needed                                                                 |
| "Permission denied" in console          | The subuser doesn't have **Console** permission — edit on **Subusers**                                                                     |

Related Guides [#related-guides]

* [Server Configuration (`config.json`)](/docs/romestead/server-config)
* [Automated World Backups](/docs/romestead/world-backups)
* [Join Your Server](/docs/romestead/join-server)
* [Troubleshooting](/docs/romestead/troubleshooting)
