You can host a Starbound server on a Windows or Linux computer using the game’s dedicated starbound_server executable. Install or update the files with SteamCMD (app ID 211820), run the server once to generate its configuration, set the server name and access controls, then allow TCP port 21025 through your firewall and router. Players on the same computer connect to 127.0.0.1; friends on the internet use your public IP address or DNS name. The practical work is port forwarding, keeping the host address stable, and matching server and client mods. The guide below covers both operating systems, secure configuration, remote access, mod installation, maintenance, and recovery when connections or mods fail.
What do you need before making a Starbound server?
A dedicated server is a separate process that hosts the universe even when no game client is open. You need a computer that can remain online, an installed copy of the server files, permission to create firewall and router rules, and enough storage for the game, logs, worlds, and backups.
- Windows: a Starbound installation containing either a
win32orwin64directory. Use the architecture that actually exists in your installation; older instructions often mention onlywin32. - Linux: a dedicated non-administrator account (commonly named
steam), SteamCMD, and a server directory owned by that account. - Networking: a stable private LAN address for the host, router administration access, and permission to create an operating-system firewall rule.
- Players: each person needs a compatible Starbound client and, when the server is modded, a compatible copy and load order of the same content.
The default configuration allows eight players, but that value is only a configuration default, not a guarantee that a particular computer or connection can support eight simultaneous users.
How do I install the dedicated files with SteamCMD?
SteamCMD can install and validate Starbound’s dedicated files with app ID 211820. Keep the install directory separate and write down its exact path; executable and configuration locations vary with your Steam library and operating-system architecture.
Linux installation
- Create a non-root account for the service and give it ownership of the directory where the server will run.
- Download and extract SteamCMD, then change to its directory.
- Run the update command, replacing the path and login values with your own:
./steamcmd.sh +force_install_dir <starbound-server-directory> +login <username> <password> +app_update 211820 validate +quit
Protect any script containing a Steam password. A safer operational pattern is to use an account intended for server administration and restrict read access to the script. Run the same command whenever you intentionally update or validate the installation.
Windows installation
Install SteamCMD and create a batch file that sets variables for the SteamCMD directory, Starbound installation directory, and account name before invoking app ID 211820. Keeping paths in variables makes it easier to move the server, but the file may contain a password, so do not place it in a shared folder or publish it. Verify the resulting directory instead of assuming that a guide’s example path matches your Steam library.
How do I perform the first server run?
Start the dedicated executable once before changing settings. This creates the server’s initial storage files and confirms that the installation can launch.
- Open the server directory and locate
starbound_server. On Windows it is inside the installed architecture folder, such aswin32orwin64; on Linux it is in the Linux server directory. - Launch it from that directory. Linux uses
./starbound_server; on Windows run the executable from Command Prompt or a batch file. - Wait until loading completes and the process is listening, then stop it with
Ctrl+C. - Confirm that a
storagedirectory now containsstarbound_server.config. Stop the process before editing this file.
If no configuration appears, check that you started the executable from the intended server directory and that the account running it can write there.
Which Starbound settings should I change?
Edit storage/starbound_server.config with a plain-text editor while the server is stopped. Change only values you understand, preserve valid JSON syntax, and keep a backup of the original file so a bad edit can be removed quickly.
| Setting | Purpose | Documented default or detail |
|---|---|---|
serverName |
Name shown to players | A Starbound Server |
maxPlayers |
Connection limit | 8; a setting, not a performance guarantee |
gameServerPort |
Main game traffic | TCP 21025 |
gameServerBind |
Network interface to bind | * by default, allowing available interfaces |
serverUsers |
Named accounts and passwords | Can include optional administrator status |
bannedUuids and bannedIPs |
Player bans | Lists maintained by the administrator |
allowAdminCommands |
Whether administrative commands are enabled | Use deliberately; commands can alter the world |
allowAdminCommandsFromAnyone |
Whether any connected user may issue admin commands | Do not enable casually |
runQueryServer and queryServerPort |
Optional server-query service | Enable and expose only if you need querying |
runRconServer, rconServerPort, and rconServerPassword |
Optional remote console | Use a long, unique password and limit network exposure |
Use strong, unique passwords for server accounts and RCON. Never paste credentials into a public issue, chat message, or configuration example. If you change the game port, use that same value in the router rule, firewall rule, and the address players enter.
How do I open Starbound port 21025 for internet players?
The documented default game port is TCP 21025. A server can work locally while remaining unreachable from the internet because the router or host firewall is still blocking inbound traffic.
- Stabilize the host’s LAN address. Create a DHCP reservation in the router or configure a carefully managed static private address. A forwarding rule aimed at an address that later changes will stop working.
- Forward the port. In the router’s port-forwarding section, create a TCP rule for external port
21025to the host’s private address and internal port21025. If you selected anothergameServerPort, substitute that number consistently. - Allow the process through the host firewall. Permit inbound TCP traffic for
starbound_serveror for the selected port. Apply the rule only to the network profiles you trust, where your operating system offers that choice. - Start and verify. Launch the server, confirm it is listening on the configured port, and test from a connection outside your home LAN. Testing only from inside can produce misleading results because some routers do not support hairpin connections.
- Share the right address. Give friends your current public IP address or a DNS name that points to it, plus the configured port if the client asks for one. Do not give them the host’s private address unless they are on the same LAN or connected by a private VPN.
If an external test reports the port closed, recheck the firewall rule, the forwarding destination, and whether the server is actually running. Some internet providers use carrier-grade NAT, which prevents unsolicited inbound forwarding; the cited setup guidance does not establish a universal workaround, so you may need a different network arrangement or a managed host.
How do players connect to the server?
Open Starbound’s Multiplayer screen, select a character, enter the server address or DNS name, and provide a server account and password when accounts are configured.
- Same computer: enter
127.0.0.1. This tests the server process without involving the router. - Same home network: use the host’s private LAN address, such as its reserved IPv4 address.
- Outside the home network: use the reachable public IP address or DNS name. The router must forward the configured TCP port, and the host firewall must allow it.
Keep the configured port, account name, and password exact. A client that connects locally does not prove that remote routing is correct.
How do I add mods to a Starbound server?
Mods must be compatible with both the server and every joining client. A modded server is not just a client with extra files: the server’s asset directories, load order, and world data must agree with what players use.
- Stop the server completely.
- Back up the entire
storagedirectory. Worlds can retain content introduced by a mod, so removing that mod later may leave unusable or missing content. - Obtain the server-compatible mod files. The dedicated-server workflow can download Workshop items with SteamCMD, but the directory layout must match the build you installed.
- Update
sbinit.configso the required directories appear underassetDirectories. Do not copy a path from a different Steam library, operating-system architecture, or installation. - Install the corresponding client mod set, including the same versions and load order where the mod requires it.
- Start the server and watch the log for asset or script errors before inviting players.
- If clients cannot join, stop the server and restore the last known-good storage and mod configuration rather than repeatedly changing several mods at once.
There is no universal compatibility matrix that guarantees every combination. Treat each mod change as a migration: make a backup, change one logical group, test a spare character or world, and keep the previous files until the new setup has been stable.
How do I keep a Starbound server running?
Linux process management
Run ./starbound_server from the Linux server directory under the dedicated service account. Use your operating system’s service manager or a terminal multiplexer if you need the process to survive logout, and stop it with Ctrl+C for planned maintenance. Keep the SteamCMD update command in a script so updates are repeatable and auditable.
Windows restart loop
A Windows batch file can wait for the server process to exit, pause briefly, and launch it again. This is useful for unattended operation, but it is not a cure for a crash: inspect the log and reverse the latest configuration or mod change before leaving an automatic restart in place. An immediate loop can fill logs and hide the underlying fault.
Backups and updates
- Stop the process before copying
storageso world and player files are consistent. - Keep dated backups outside the live server directory and periodically test that one can be restored.
- Run SteamCMD validation when intentionally updating, then start the server and check for errors before players return.
- Record configuration and mod changes so you can identify which change preceded a failure.
What should I check when the server does not work?
| Symptom | Checks and recovery |
|---|---|
| Local connection works but remote friends cannot join | Confirm the host firewall allows TCP 21025, the router forwards to the current private address, and the public address is actually reachable. Check for carrier-grade NAT if forwarding is correct but outside tests still fail. |
| Players see an offline or closed server | Verify that starbound_server is running and listening on the same port configured in gameServerPort. Ensure the router rule uses that identical port and protocol. |
| Configuration edits have no effect | Stop the server before editing, confirm the file is storage/starbound_server.config for the installation you launch, save valid JSON, and restart. |
| Modded clients cannot join | Compare client and server mod lists, versions, and load order. Stop the server and restore the last known-good storage backup before trying another change. |
| The process repeatedly exits | Inspect the server log, undo the newest configuration or mod change, and start manually so you can see the first error. Add an auto-restart loop only after identifying the cause. |
Should I self-host or use managed hosting?
Self-hosting costs no provider subscription, but you supply the computer, power, network, backups, updates, firewall rules, and uptime. Managed hosting shifts those operational tasks to a provider, usually for a recurring fee; current prices, capacity, mod policies, and affiliate availability vary and must be checked with the provider before purchase.
| Consideration | Self-hosting | Managed hosting |
|---|---|---|
| Upfront and monthly cost | Uses existing hardware and internet service; electricity and hardware replacement remain your responsibility. | Recurring provider charge; current price not stated here. |
| Router and firewall work | You reserve the LAN address, forward the port, and maintain firewall rules. | Usually avoids home port forwarding, subject to the provider’s network design. |
| Mods and configuration | Maximum control over files, settings, and load order. | Control depends on supported mod tools and provider policy. |
| Updates and restarts | You schedule SteamCMD updates and monitor crashes or restarts. | May offer automated updates and restart controls; verify what is included. |
| Backups and uptime | You create, store, and test backups and must keep the host online. | Often offers backup and uptime options, but retention and guarantees differ. |
| Player capacity | Limited by your hardware, upload bandwidth, and configured maxPlayers. |
Depends on the selected plan and server resources; confirm limits. |
| Support | Documentation and your own troubleshooting. | Provider support may help with platform issues, not necessarily every mod. |
Choose self-hosting when you want direct control and are comfortable administering a networked service. Choose managed hosting when avoiding router, firewall, uptime, update, and backup administration is worth a recurring cost and the provider supports your required Starbound build and mods.
What is a safe launch checklist?
- The server launches from the intended Windows architecture folder or Linux directory.
- The first run created
storage/starbound_server.config. - The server name, player limit, account policy, and administrative controls are intentional.
- Passwords are unique and not exposed in scripts or public messages.
- The host has a stable private address.
- TCP 21025, or your deliberately selected replacement port, matches the configuration, router rule, and firewall rule.
- A local test using
127.0.0.1succeeds before remote testing. - An outside-LAN test succeeds before inviting friends.
- The complete
storagedirectory is backed up before mods or world-affecting changes. - Clients have the compatible mod set and load order.
- Logs are monitored after updates, restarts, and mod changes.
Frequently Asked Questions
Can I run a Starbound server without leaving the game open?
Yes. The dedicated starbound_server process is separate from the graphical client, so the host can run it while nobody is playing. The computer and network still need to remain powered and connected, and planned updates require stopping the process first.
Why does my public IP address change after I give it to friends?
Many residential connections assign a dynamic public address. A DNS name that you update when the address changes can spare friends from receiving a new number, but it does not bypass carrier-grade NAT or a blocked inbound port.
Can players join if they have different Starbound mods?
Only when the differences are harmless to the connection and the server’s required assets are present on each client. For reliable joins, keep the relevant mod files, versions, and load order aligned; back up the world before experimenting.
How can I change the server port from 21025?
Edit gameServerPort in storage/starbound_server.config while the server is stopped, then use the same TCP number in the host firewall, router forwarding rule, and connection instructions. Test locally and from outside after restarting.