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"- Names are exact and case-sensitive — they must match the name a player typed on the Connect screen.
- An empty or missing
admins:list means nobody is an admin, and every admin command and world-edit mode is unavailable to everyone connected. - The list is read once at server start. Changing it means restarting the server.
- The server console is always an admin (see below), regardless of what's in the list.
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:
- The console has no body in the world — no position,
no inventory, no "self". Commands that act on "you" (
/givewith no name,/filltank) need you to name a target or stand somewhere, so they mostly can't be driven from the console. Name a recipient explicitly (/give space55 WRENCH) and they work fine. - Any line that doesn't start with
/is broadcast to every connected player as a chat message from[Server]. Handy for announcements ("rebooting in 5 minutes").
/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:
- Every tile you've placed or removed in world-edit mode.
- Tile-backed fixtures' own state (a door's locked/unlocked flag, a generator's on/off, a console's settings — anything stored as a property on the fixture).
What /save does not persist
(known limitations today):
- Atmosphere. Room air, temperatures, and pipe contents all reset to a freshly-built state on reload. A vented room comes back full; a charged pipe network comes back empty.
- Container contents. What's inside a mining drill, an ore container, a scrubber regenerator, or any storage panel is not written out.
- Free-standing objects. Anything placed as a movable object rather than a tile — dropped items, ore containers, gas tanks — is gone after a reload. (Tile-backed fixtures like doors and generators survive; these don't, because there's no grid cell to remember them by.)
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:
- Two palettes appear — a Tile Palette (every tile type: walls, floors, doors, wires, pipes, ladders, windows, machines, …) and an Item Palette (every item type). Click an icon to select it; selecting from one palette deselects the other. Hovering an icon names it.
- Drag either palette by its title strip to reposition it; it stays put for the rest of your session.
- Left-click a tile in the world places your current
selection there:
- a selected tile is added to that cell's layer stack;
- a selected item is dropped there for free (no inventory cost) — and if that item type places a machine (a mining drill, an ore container, a gas tank, …), the machine itself is spawned, skipping the normal placement rules (e.g. a mining drill can go anywhere, not just on the lunar surface).
- Right-click a tile removes the topmost layer at that cell. Removing a fixture's tile despawns the fixture.
- Edits always apply to the floor you're standing on. You can't edit another level from a distance.
- Every edit is broadcast to all connected players immediately, so the station changes under everyone's feet in real time.
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:
- You pass through walls and move freely, ignoring collision.
- You see the entire floor you're on — no fog of war, no line of sight — but still can't see other floors.
- The living can't see or hear you — you're absent from their view entirely, and your footsteps make no sound.
- You can walk up to certain machines (a generator, for one) and
interact to trigger a fault — a quiet sabotage (kill
its power, jam it) that a living crew member then has to diagnose and
fix, usually with a wrench. There's a cooldown between faults
(
ghost_fault_cooldowninconfig/server.yaml, default 30 s), shared across every object, per 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:
- An item that equips (a keycard, PDA, space suit, CO₂ filter, O₂ tank) drops straight into its equipment slot if that slot is empty; otherwise it lands in the hotbar/backpack.
/givecan't set item attributes — aKEYCARDfrom/givehas no access color. Use/setroleto hand someone a working, colored keycard.- From the server console, always name a recipient — there's no "you" to give to.
GAS_TANK,MINING_DRILL, andORE_CONTAINERare placeable: give one, then left-click the ground to set it down. (Or place them straight into the world from/edit's Item Palette.)
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:
/give GAS_TANKand left-click the ground to place it (or drop one from/edit's Item Palette).- Stand next to it.
/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.