Tranquility Base — Admin Guide

This is the reference for running a Tranquility Base server: who counts as an admin, the two places you type commands, and a full walkthrough of every admin command and admin-only tool.

It's a standalone document for operators. Players get PLAYER_GUIDE.md; the engine internals live in docs/. This guide doesn't assume you've read either.


Who is an admin

Admin status is a list of player names in config/server.yaml:

server:
  admins:
    - "space55"
    - "someone_else"

Every admin command re-checks this list on the server the moment it runs — a modified client can't grant itself admin, and world-edit stays gated on every single tile edit, not just when you toggle the mode on.


Where you type commands

In-game chat

Open the chat box (the ` backtick key, just above Tab), type a command starting with /, and press Enter. A command is intercepted before it becomes a normal chat line, so /give … never shows up as "YourName: /give …" to the room. Replies come back as colored chat lines visible only to you.

The server console

The terminal running the server process is itself a player — a reserved one that is always an admin. Type the same /-commands straight into it and press Enter; replies print to the server log instead of a chat packet.

Two differences from in-game:


/help

/help

Lists every command you are allowed to use, with a one-line description. Non-admins see only the handful available to them; admins see everything. This list is generated from the same table the commands are implemented from, so it never drifts out of date — when in doubt, /help is the source of truth for this server build.


/save — write the world to disk

/save

Persists the current live world back to the map file the server loaded (assets/maps/station.json by default). After this, a server restart comes back up with your changes.

What /save persists:

What /save does not persist (known limitations today):

So /save is for building the station, not for snapshotting a live game in progress.


/edit — world-edit (building) mode

/edit

Toggles building mode for you alone. A persistent "EDIT MODE" banner shows while it's on; run /edit again to leave.

While it's on:

Changes are in memory only until you /save.

Laying pipe

Pipe (PIPE, and PIPE_RISER for vertical runs between floors) is placed from the Tile Palette like any other tile. A run auto-connects into a network that carries gas between its ends. Pipe carries no gas until something puts gas in — today that's a gas tank set down on a pipe tile with its valve opened (see /filltank below and PLAYER_GUIDE.md's "Gas tanks" section).


/setrole — reassign a player's crew role

/setrole <username> <ROLE>

Changes a connected player's crew role live — their name color, their map/HUD color, and the color of the access keycard they carry all update on the spot, no reconnect needed. The target gets a chat line telling them what happened.

<username> is exact and case-sensitive. <ROLE> is case-insensitive. The roles that ship today, each with its keycard color:

Role Keycard Notes
MEDICAL blue
ENGINEERING red starts with a wrench, atmo scanner, and a full space-suit kit
AGRICULTURE green
LOGISTICS yellow
PHYSICS purple
ASTRONOMY white
MINING orange
SOLDIER black

An unknown role name is rejected with the list of valid ones. Every player is assigned a random role on join anyway; /setrole is for overriding that.

Example:

/setrole space55 ENGINEERING

/kill — die / kill a player (ghost mode)

/kill              ← kill yourself (any player can do this)
/kill <username>   ← kill another player (admin only)

There's no health or combat system — /kill is the whole death mechanic. The target immediately becomes a ghost and gets an on-screen notice.

As a ghost:

Getting un-ghosted: there's no command for it yet. Disconnecting and reconnecting brings you back as a normal living player (with a fresh random role).

Examples:

/kill
/kill space55

/give — put items in an inventory

/give <ITEM_NAME>                     ← give yourself 1
/give <ITEM_NAME> <count>             ← give yourself N
/give <username> <ITEM_NAME>          ← give them 1
/give <username> <ITEM_NAME> <count>  ← give them N

<ITEM_NAME> is case-insensitive. The two-token form is read as <ITEM> <count> if the second token is a number, otherwise as <username> <ITEM>.

Items that ship today:

ATMO_SCANNER   BATTERY        CO2_FILTER     GAS_TANK
KEYCARD        MEDKIT         MINING_DRILL   O2_TANK
ORE            ORE_CONTAINER  PDA            SPACE_HELMET
SPACE_SUIT     WRENCH

Notes:

Examples:

/give WRENCH
/give MEDKIT 5
/give space55 SPACE_SUIT
/give space55 GAS_TANK 1

/filltank — fill a gas tank with pure gas

/filltank <GAS> [kPa]

Empties the gas tank you're standing next to (within about 3 tiles, on your floor) and refills it with pure <GAS> to the given pressure. [kPa] is optional and defaults to 3000.

<GAS> is one of the simulated gases — O2, N2, CO2 (case doesn't matter). An unknown gas name is rejected.

Why this exists: a gas tank's own valve can only fill from the air around it, which is a ~21/79 oxygen/nitrogen mix — there's no in-world way to get a bottle of pure oxygen (or CO₂, for testing a scrubber). /filltank is that shortcut.

The pressure is applied at standard temperature (20 °C). Keep it under the tank's relief-valve limit (4000 kPa) or the relief valve will immediately bleed it back down.

Steps:

  1. /give GAS_TANK and left-click the ground to place it (or drop one from /edit's Item Palette).
  2. Stand next to it.
  3. /filltank O2 3000

Examples:

/filltank O2
/filltank O2 3500
/filltank CO2 500

F4 — atmosphere overlay (admin-only)

Press F4 to tint every tile you can see by its atmosphere: brighter = higher pressure, hue shifts with temperature, hard vacuum shows violet. It's a live view of the server's gas simulation, refreshed a few times a second, and it only covers what's in your current line of sight.

The toggle is checked on the server — a non-admin pressing F4 gets an "admin-only" chat line and nothing else. Press F4 again to turn it off.

This is the fastest way to see a leak, watch a room re-pressurize, or confirm a vent worked. It does not show gas inside pipes.

(F3 toggles a performance/debug overlay — frame timing and counters. That one isn't admin-gated; anyone can use it.)


Quick reference

Command Admin? What it does
/help no List the commands you can use
/kill no Turn yourself into a ghost
/kill <name> yes Turn another player into a ghost
/save yes Write the world (tiles + fixtures) to disk
/edit yes Toggle world-edit building mode
/setrole <name> <ROLE> yes Reassign a player's crew role live
/give [name] <ITEM> [n] yes Put items in an inventory
/filltank <GAS> [kPa] yes Fill the nearby gas tank with pure gas
F4 yes Atmosphere overlay
F3 no Performance/debug overlay

All admin gating is backed by config/server.yaml's admins: list; /help in-game always reflects what this exact build supports.