Starbound ยท Server setup

How to set up a Starbound server from scratch

Full setup walkthrough for a Starbound dedicated server: deploy via SteamCMD, configure starbound_server.config, set up serverUsers accounts and admin flags, manage the universe/ folder, install Steam Workshop and manual mods, walk through a Frackin' Universe installation, enable RP-friendly options (account-only connections, whitelist, persistent character storage), and fix the common errors.

1. What you need first

  • An active Starbound plan on Fatality Servers. See our Starbound hosting plans.
  • A Steam copy of Starbound for each player.
  • Enough RAM โ€” Starbound is lightweight per player but universe files grow over time. 2 GB fits a vanilla 4-player campaign; 4-6 GB handles vanilla RP at 12-16 slots; 8+ GB is comfortable for Frackin' Universe-scale modded servers with 10-20 players.
  • A basic SFTP client (FileZilla, WinSCP) โ€” Starbound is entirely file-based.
  • A list of player display names + passwords if you plan to run an account-based RP server.
๐Ÿ’ก

Sizing note: Starbound's disk footprint grows as players visit new star systems. A long-running 20-player RP server can push the universe/ folder past 10 GB. Every plan ships NVMe sized well beyond that โ€” the bottleneck is usually CPU clock (chunk loading + Lua script ticks) rather than IO or memory.

2. Deploy the server (1-click)

Our Starbound template runs SteamCMD to pull the dedicated server (Steam App ID 533830), writes a starter starbound_server.config, and opens TCP/UDP port 21025 on your plan's IP.

  1. Pick the Starbound template at checkout

    On the Starbound hosting page, pick a plan sized for your slot count. 8-12 slots is comfortable on Starter; 20+ slot RP with Frackin' Universe wants Community or higher.

  2. Wait for SteamCMD

    Server is ~800 MB. First install takes 1-2 minutes. The first launch also generates initial universe files under storage/universe/.

  3. Confirm the server is listening

    [2026-04-18 12:34:56.123] [Info] Server Version 1.4.4 (linux x86_64) Source ID: ...
    [2026-04-18 12:34:56.456] [Info] Loading Star::Root...
    [2026-04-18 12:34:57.789] [Info] Loading asset sources...
    [2026-04-18 12:34:58.012] [Info] Loaded 1 asset source(s) in 0.5 seconds
    [2026-04-18 12:34:58.345] [Info] Server Setup OK
    [2026-04-18 12:34:58.456] [Info] TcpServer listening on: 0.0.0.0:21025
    [2026-04-18 12:34:58.567] [Info] UniverseServer: listening for incoming TCP connections

    TcpServer listening on: 0.0.0.0:21025 means the server is accepting players.

3. File layout & where things go

/server-root/
โ”œโ”€โ”€ linux/
โ”‚   โ”œโ”€โ”€ starbound_server            โ€” Linux server binary
โ”‚   โ””โ”€โ”€ run-server.sh
โ”œโ”€โ”€ win32/
โ”‚   โ”œโ”€โ”€ starbound_server.exe        โ€” Windows server binary
โ”‚   โ””โ”€โ”€ launch_starbound_server.bat
โ”œโ”€โ”€ osx/
โ”‚   โ””โ”€โ”€ starbound_server            โ€” macOS binary (unused on our infra)
โ”œโ”€โ”€ assets/
โ”‚   โ”œโ”€โ”€ packed.pak                  โ€” base game content (don't edit)
โ”‚   โ””โ”€โ”€ user/                       โ€” user-added legacy assets
โ”œโ”€โ”€ mods/                           โ€” drop .pak mods here (or Workshop symlinks)
โ”‚   โ””โ”€โ”€ FrackinUniverse.pak         โ€” example
โ”œโ”€โ”€ storage/
โ”‚   โ”œโ”€โ”€ starbound_server.config     โ€” main config (edit this)
โ”‚   โ”œโ”€โ”€ starbound.log               โ€” live log file
โ”‚   โ”œโ”€โ”€ starbound.log.1, .2, .3     โ€” rotated old logs
โ”‚   โ”œโ”€โ”€ universe/                   โ€” persistent universe data
โ”‚   โ”‚   โ”œโ”€โ”€ 0000000000000000_-40.tempworld        โ€” world cache files
โ”‚   โ”‚   โ”œโ”€โ”€ unique-outpost.world                  โ€” outpost hub
โ”‚   โ”‚   โ”œโ”€โ”€ ...                                   โ€” visited star systems
โ”‚   โ”‚   โ””โ”€โ”€ metadata.json                         โ€” universe metadata
โ”‚   โ””โ”€โ”€ player/                     โ€” per-account character saves
โ”‚       โ””โ”€โ”€ <uuid>.player           โ€” character binary
โ””โ”€โ”€ doc/                            โ€” docs / license (unused)
โš ๏ธ

The working directory matters. Starbound's server must be launched from inside its platform folder (linux/ or win32/) so it can find ../assets/, ../mods/, and ../storage/. Our launcher handles this; if you run the binary directly from SSH, always cd linux/ first, or pass -bootconfig with an absolute path.

4. Core starbound_server.config

Edit storage/starbound_server.config. It's JSON โ€” watch your commas and braces. The values that matter for most servers:

{
  "allowAdminCommands": true,
  "allowAdminCommandsFromAnyone": false,
  "allowAnonymousConnections": true,
  "allowAssetsMismatch": true,
  "anonymousConnectionsAreAdmin": false,

  "bannedIPs": [],
  "bannedUuids": [],

  "clearPlayerFiles": false,
  "clearUniverseFiles": false,

  "clientIPJoinable": false,
  "clientP2PJoinable": true,

  "configurationVersion": { "basic": 2, "server": 4 },

  "gameServerBind": "*",
  "gameServerPort": 21025,
  "maxPlayers": 8,

  "queryServerBind": "*",
  "queryServerPort": 21025,
  "queryServerEnabled": true,

  "rconServerBind": "*",
  "rconServerPort": 21026,
  "rconServerEnabled": false,
  "rconServerPassword": "",
  "rconServerTimeout": 1000,

  "serverFidelity": "automatic",
  "serverName": "My Starbound Server",
  "serverOverrideAssetsDigest": null,

  "runQueryServer": true,
  "allowBroadcastingInformation": true,

  "serverUsers": {
    "yourName": {
      "admin": true,
      "password": "change-me-strong"
    }
  }
}

The keys you'll actually touch:

  • serverName โ€” name shown on the Steam Web API / server browser. 64 chars.
  • maxPlayers โ€” slot count. Default 8, no hard upper limit โ€” push higher on plans with more RAM.
  • gameServerPort / queryServerPort โ€” game port; leave at 21025 unless you know why you're changing it.
  • allowAnonymousConnections โ€” if true, anyone can connect without an account; set false for RP or controlled access.
  • anonymousConnectionsAreAdmin โ€” leave this false. Setting true grants admin to anyone who connects โ€” catastrophic.
  • allowAssetsMismatch โ€” if true, clients with different mod versions can still join (useful for client-only cosmetics). Set false to enforce exact match.
  • rconServerEnabled โ€” enable for remote RCON (port 21026 by default). Requires rconServerPassword.
  • serverUsers โ€” the critical one: define accounts (see next section).

5. User accounts & admin

Starbound's account system lives inside serverUsers in starbound_server.config. Each entry is a named account with a password and an admin flag:

"serverUsers": {
  "AdminJane": {
    "admin": true,
    "password": "sup3rstrong"
  },
  "ModeratorMike": {
    "admin": false,
    "password": "modpassword"
  },
  "RegularPlayer": {
    "admin": false,
    "password": "letmein"
  }
}

On join, the client enters the account name + password in the connect dialog. With allowAnonymousConnections: false, only accounts listed here can connect; with true, accounts are optional but using one still authenticates and grants admin where flagged.

5.1 Persistent character storage

When a player connects with a server account, their character is stored in the server's storage/player/ folder โ€” not on their local client. This is the standard setup for RP servers, because characters can only be used on that server and players can't leak items.

When a player connects anonymously, they use their local character (from their own Steam install). Progression lives on their client.

๐Ÿ’ก

Password security: starbound_server.config stores passwords in plaintext. Restrict access to the config file via the panel's file permissions (chmod 600), don't commit it to git, and rotate passwords when staff leave. For an RP server with >30 accounts, consider a management tool like StarryPy3k, which handles accounts via a proxy layer.

6. The universe/ folder & persistence

Everything that happens in your server's universe โ€” chunks explored, bases built, colonies founded โ€” lives in storage/universe/. File layout:

  • unique-<id>.world โ€” unique locations like the Outpost, Ark, Erchius Mining Facility. Persistent and shared across all players.
  • <coord>.world โ€” procedurally-generated planets players have visited. Only exist after first visit; retain all player modifications (mined tiles, placed structures).
  • <coord>.tempworld โ€” temporary cache files used during active play.
  • metadata.json โ€” universe seed + time state.
  • players/<uuid>.shipworld โ€” each player's ship (their mobile base). Travels with the account.
โš ๏ธ

Don't delete individual .world files carelessly. Removing a visited planet's world file re-generates it from scratch on next visit โ€” all player structures on that planet disappear forever. Delete the entire universe/ folder to reset the universe (effectively a "wipe"), but keep the player/ folder to preserve characters.

Regenerating a universe

To wipe the world but keep characters:

  1. Stop the server
  2. Rename storage/universe/ to storage/universe.backup.<date>/
  3. Restart โ€” a fresh universe is generated on next boot
  4. Characters from storage/player/ keep their inventory, level, and ship (ships regenerate the shipworld on first join)

7. Mods via Steam Workshop

Starbound's Workshop integration auto-downloads subscribed mods on the server when pointed at a workshop_id. But the dedicated server doesn't have a Steam client by default, so there are two practical paths:

7.1 Pointing at Workshop via SteamCMD

  1. Subscribe on your client

    Pick your mods from the Starbound Workshop. Subscribe to each one.

  2. Copy the downloaded .pak files from your client

    Workshop mods land in steamapps/workshop/content/211820/<workshop_id>/contents.pak on your local Steam install. Rename each contents.pak to something meaningful (e.g. FrackinUniverse_2.pak) and upload to server-root/mods/.

  3. Restart the server

    On boot, the log should show a line per loaded .pak: Loading assets from: mods/FrackinUniverse.pak. Clients will see the mod advertised during connect.

7.2 Our panel's 1-click Workshop installer

Our Starbound template ships a Mods tab that takes a list of Workshop IDs and downloads the .pak files automatically via SteamCMD's workshop_download_item command. No local Steam client needed; just paste the numeric IDs.

8. Mods via manual .pak upload

Not every mod is on the Workshop โ€” the Chucklefish forums and Nexus Mods have plenty of community .pak files. Install flow:

  1. Download the .pak

    From the mod's release page. Unzip if it comes in a ZIP.

  2. Upload to mods/

    SFTP it into server-root/mods/. Filenames can be anything Starbound-legal (MyMod.pak, cool_mod_v3.pak).

  3. Restart the server

    On boot, every .pak in mods/ is loaded in alphabetical order. Check storage/starbound.log for any Error lines โ€” bad mods will log specific errors pointing at which asset failed to load.

Client-side matching

With allowAssetsMismatch: false, clients must have the exact same mod .pak files as the server. Publish your mod list somewhere obvious (Discord, MOTD, server page) so players can subscribe to the matching Workshop items before joining.

With allowAssetsMismatch: true, clients can have different mods โ€” but missing mods mean missing assets (invisible walls, unspawned items). Cosmetic-only mods usually work fine in mismatch mode; gameplay / content mods don't.

9. Installing Frackin' Universe

Frackin' Universe (FU) is the Starbound mod โ€” a ~3 GB total conversion adding hundreds of biomes, items, races, mechanics, and its own tech tree. Most modded Starbound communities run FU as their core, with smaller mods layered on top.

  1. Subscribe via Steam Workshop

    FU is at Workshop ID 729480149. On your local Steam client, subscribe and let it download (~3 GB).

  2. Copy contents.pak to the server

    From steamapps/workshop/content/211820/729480149/contents.pak, upload to the server's mods/ folder. Rename to FrackinUniverse.pak for clarity.

  3. Check compatibility with other mods

    FU is opinionated โ€” many popular QoL mods that work on vanilla Starbound conflict with FU's overhaul. The FU team maintains a compatibility list on GitHub. Safe companions:

    • Avali Triage โ€” adds the Avali race (official FU support)
    • Arcana โ€” fantasy-themed expansion, plays nicely with FU
    • More Planet Info โ€” QoL, displays planet stats in your UI
    • Enhanced Storage โ€” UI upgrade for chests

    Known conflicts: most "better vanilla" overhauls, some race mods without FU patches.

  4. Restart with extra memory

    FU triples Starbound's asset-load memory requirement. Our panel lets you raise the per-server RAM allocation โ€” bump to at least 4 GB for FU, 8 GB for FU + 10-20 other mods.

  5. Tell players to subscribe

    FU is ~3 GB on the client too. Players need to subscribe on Workshop before they try to connect; otherwise they'll get a "missing assets" error. Post the Workshop collection link in your Discord/MOTD.

๐Ÿ’ก

FU changes the progression curve. Mining, crafting, and research are all slower and deeper than vanilla. If you're used to vanilla's 20-hour main quest, FU's is more like 100+ hours. Set player expectations before opening the server โ€” a lot of "why is progression so slow" complaints trace back to admins not warning the group that FU is a different game.

10. RP server configuration

Starbound's biggest community is RP. A well-tuned RP config looks like this:

{
  "allowAnonymousConnections": false,
  "anonymousConnectionsAreAdmin": false,
  "allowAdminCommands": true,
  "allowAdminCommandsFromAnyone": false,
  "allowAssetsMismatch": false,

  "clientIPJoinable": false,
  "clientP2PJoinable": false,

  "maxPlayers": 24,
  "serverName": "MyStarboundRP [EU] ยท Canon storyline",

  "serverUsers": {
    "AdminJane": { "admin": true, "password": "..." },
    "ModMike":  { "admin": false, "password": "..." },
    "...":      { "admin": false, "password": "..." }
  }
}

Key points:

  • allowAnonymousConnections: false โ€” every player must use an account. No drive-bys.
  • allowAssetsMismatch: false โ€” everyone must have the same mod set. Prevents cheaters from running unlisted content mods.
  • clientIPJoinable: false, clientP2PJoinable: false โ€” disables direct-IP and Steam-invite bypasses. Players can only join through the account system.
  • serverUsers populated for every character โ€” each RP character gets its own account. This is also how server-side character storage is enforced.

11. Admin commands

Open the in-game chat (Enter) and prefix commands with /:

/admin                           โ€” toggle admin mode (if your account has admin: true)
/pvp                             โ€” toggle PvP for your character
/whoami                          โ€” show your username + admin status
/serverwhoami                    โ€” show server identity
/suicide                         โ€” kill your character
/clearstagehand                  โ€” clean up leftover cutscene stagehands

# admin-only commands (when /admin is active):
/warp PlayerShip                 โ€” teleport to your ship
/warp ClientShip <user>          โ€” teleport to another player's ship
/warp InstanceWorld outpost      โ€” teleport to the Outpost
/spawnitem <itemname> <qty>     โ€” give yourself items
/spawnmonster <type> <level>
/spawnnpc <species> <type>
/kick <user>
/ban <user> <reason> <length>   โ€” length in minutes, 0 = permanent
/pvp <user>                      โ€” toggle PvP for another player
/settileprotection <dungeonId> <true|false>
/timewarp <seconds>              โ€” skip in-game time
/gravity <number>                โ€” override gravity on current world
/weather <weather name>
/help                            โ€” list available commands

RCON (optional)

Starbound has a built-in RCON that speaks the Source RCON protocol. To enable, set in starbound_server.config:

"rconServerEnabled": true,
"rconServerPort": 21026,
"rconServerPassword": "change-me-strong"

Connect with any Source RCON client (mcrcon, rcon-cli). Starbound RCON supports the same /-prefixed chat commands plus a few server-only ones like shutdown.

12. Connect and test

  1. Launch Starbound on your PC

    Main menu โ†’ Multiplayer.

  2. Enter the server address

    Fill in:

    Server Address:  YOUR-SERVER-IP
    Server Port:     21025
    Account:         (your account name from serverUsers)
    Password:        (the matching password)

    If your server uses allowAnonymousConnections: true, leave Account/Password blank to connect as a guest.

  3. Verify admin status

    In-game, open chat (Enter) and type /admin. If your account has admin: true, you enter admin mode (visual indicator: small badge). Try /spawnitem perfectlygenericitem 5 to smoke-test.

13. Common errors and fixes

"Could not connect to the specified server"

  • Wrong port โ€” Starbound uses 21025, not some Steam default
  • Firewall blocking TCP/UDP 21025 โ€” check the panel firewall
  • Server hasn't finished its boot sequence yet โ€” wait until TcpServer listening on: 0.0.0.0:21025 appears in the log

"Client assets do not match server"

The client and server have different mod sets. Fixes:

  • Client subscribes to all the server's Workshop mods (post the collection link)
  • Server sets allowAssetsMismatch: true if the mismatching mods are client-only cosmetics
  • One specific mod got updated on the Workshop but the server's .pak is old โ€” re-upload the latest contents.pak

"Invalid username or password"

  • Account name is case-sensitive โ€” AdminJane โ‰  adminjane
  • Password wrong โ€” check starbound_server.config
  • Account doesn't exist yet โ€” add it to serverUsers, restart

Server crashes on startup with "cannot load asset"

  • A mod .pak is corrupted or references missing dependencies โ€” remove mods one at a time to isolate
  • Two mods editing the same asset in an incompatible way โ€” check storage/starbound.log for the exact path
  • FU minor-version bumped while other mods haven't caught up โ€” downgrade FU or wait for dependent mods to update

Universe folder grows to 20+ GB

Normal after a year of heavy play. Cleanup options:

  • Identify unvisited temp files: *.tempworld under universe/ that haven't been modified in >30 days. Safe to delete โ€” they regenerate on next visit.
  • Don't touch unique-*.world files (outpost, missions) โ€” those are global progression.
  • If your RP server is accumulating abandoned character ships, reach out on Discord for each player and ask if they still play; delete offline character .player and .shipworld files for truly inactive accounts after confirming.

Admin commands don't work

  • You haven't typed /admin to activate admin mode
  • Your account doesn't have admin: true in serverUsers
  • allowAdminCommands: false at the config level โ€” flip to true
  • anonymousConnectionsAreAdmin: false (which is correct) + you connected without an account โ€” log in with your admin account

Players disconnected with "kicked by server" randomly

  • Packet size limit exceeded โ€” usually happens with very dense base building (thousands of placed objects in a small area). Rare, but check storage/starbound.log for network packet overflow.
  • Network flap โ€” check your panel's network graph for the moment of disconnect
  • Anti-cheat / mod conflict โ€” disable one mod at a time to isolate

Universe / save recovery

Starbound writes atomically to storage/universe/ but doesn't keep an internal backup. Our panel adds a safety net: hourly snapshots of storage/ with 30-day retention. Rollback from the dashboard in one click โ€” the server comes back online in about 10 seconds with your chosen snapshot loaded.


Stuck on something specific? Email support with your server IP, the last 200 lines of storage/starbound.log, and your starbound_server.config (redact passwords) โ€” we'll usually have an answer within the hour.