How to Set Up an s&box Dedicated Server
The s&box dedicated server is a separate Steam tool, "s&box server", app ID 1892930. You install it with SteamCMD, then start sbox-server.exe (Windows) or sbox-server (Linux) with a +game switch naming the game package you want to run. Players then join with the console command connect LOBBYID.
s&box released on Steam on April 28, 2026. Everything here comes from Facepunch's official documentation (the sbox-docs repository, whose dedicated server page was last updated in September 2026) and was checked on 2026-11-01. The guide says plainly where the docs are silent.
- Install or update with SteamCMD:
./steamcmd +login anonymous +app_update 1892930 validate +quit. Add-beta stagingfor the staging branch. - Start it with
+game GAMEIDENT [MAPIDENT] +hostname "Server Name", for example+game facepunch.sandbox facepunch.flatgrass. - Steam client binaries are no longer shipped with the server. Link them from SteamCMD (or install the Steam client) or Steamworks will not initialize.
- By default connections go through Steam's relay, so players join by lobby ID: run
statuson the server, thenconnect LOBBYIDin the game console. - The docs do not state default values for
+portand+net_query_port; set them explicitly.
On this page
What the s&box dedicated server is
s&box is Facepunch's Source 2 based game platform, where players run community-made games that are published to sbox.game. A dedicated server is a headless copy of the engine that hosts one game package, server-authoritative and running without anyone sitting at it. Per the networking docs, dedicated servers are for "persistent, server-authoritative, headless" hosting of a game, as opposed to lobbies where one player hosts.
Two consequences matter for admins. First, the server runs whichever game package you name; it does not come with a built-in game of its own. Second, a game has to support running on a dedicated server (it must create its own lobby, covered below), so test your chosen game before announcing it.
Install the server with SteamCMD
You need SteamCMD from Valve. Once it is installed, run this from the directory where SteamCMD lives:
./steamcmd +login anonymous +app_update 1892930 validate +quit- The default install directory is
steamcmd/steamapps/common/sbox dedicated server. - Add
-beta stagingto the command to host on the staging branch. The docs warn it might not be playable by everyone. - Run the same command again to update the server after a game update.
The staging branch is the experimental build where new features are tested first. For a public server, the main branch is the safer choice.
Start the server on Windows or Linux
Create a small script so you launch it the same way every time. The docs show these examples:
@echo off
sbox-server.exe +game facepunch.sandbox facepunch.flatgrass +hostname "My Dedicated Server"#!/bin/bash
./sbox-server +game facepunch.sandbox facepunch.flatgrass +hostname "My Dedicated Server"This loads the game facepunch.sandbox with the map facepunch.flatgrass and titles the server "My Dedicated Server". The Linux server ships with its own .NET runtime in bin/dotnet, so nothing extra needs installing for that. Quote the hostname if it has spaces.
Link the Steam client binaries first
A recent change in the official docs: Steam client binaries are no longer shipped with the dedicated server. You must link them yourself before the server can initialize Steamworks, and SteamCMD is a prerequisite.
- Windows: either install the Steam desktop client, or add registry entries that point
SteamClientDll64andSteamClientDllat thesteamclient64.dllandsteamclient.dllin your SteamCMD folder. The docs give PowerShell commands you can paste at the top of your .bat file. - Linux: symlink SteamCMD's
linux64/steamclient.sointo~/.steam/sdk64/, creating that directory if needed. Do it once per user account.
Command line switches
Every switch is a console variable or command that runs when the server boots. These are the ones the docs list:
| Switch | Argument | What it does |
|---|---|---|
+game | game ident, optional map ident | The game package to load, and optionally a map package. You can also pass the path to a local .sbproj file to run a local project. |
+hostname | name | The server title players see. |
+port | port number | The port used to host the server. |
+net_query_port | port number | The port used to query server information such as player count and current map. |
+net_game_server_token | token | Optional. A token from Steam's game server management page (steamcommunity.com/dev/managegameservers) that gives the server the same Steam ID every time. Without it, a new Steam ID is generated on each launch. |
+net_allow_local | 0 or 1 | Opens a loopback TCP connection for testing multiple instances on one machine, bypassing the Steam relay. Clients on that machine join with connect local. |
The docs do not give default values for the two port switches, so set them yourself and make a note of what you chose. Community hosting guides often show 27015 and 27016 in examples, but those are examples, not documented defaults. If you run more than one server on a machine, give each its own pair.
Connect to your server
By default s&box servers use Steam's proxy relay. Connections are routed through Steam, and the server's IP address is not exposed, so you connect by lobby ID rather than IP and port.
- Get the lobby ID
Once the game has created a lobby, type the following in the dedicated server's console. The output includes the connection details and the lobby ID.
status - Connect from the game
Open the s&box client console and run connect with the lobby ID. Do not include the steamid: prefix.
connect 1234567890
If the server console says "Not Connected", no lobby has been created yet. That is down to the game's code: the networking docs describe a Network Helper component whose StartServer option creates a server when the scene loads. Choose a game that does this, or ask its author.
If you would rather not set this up on your own machine, see s&box server hosting.
What the official docs do not cover
To save you time chasing details that are not published, these are the gaps in the official dedicated server page as of this check:
- Default values for
+portand+net_query_port, and which firewall ports to open. Because connections use Steam's relay by default, check with your host or test before assuming port forwarding rules. - A list of built-in server console commands. The docs show
status; further commands depend on the game, which can define its own commands and variables. - How to switch games or maps while the server is running. The documented method is the launch arguments, so changing them means restarting. See our games and maps guide.
Frequently asked questions
What is the Steam app ID for the s&box dedicated server?
1892930, listed on Steam as "s&box server" and installed with SteamCMD using anonymous login. The main game, s&box, is app 590830.
Do I need to open ports for an s&box server?
The official docs list +port and +net_query_port switches but do not publish defaults or firewall rules. By default connections use Steam's relay and the server's IP is not exposed. Set the ports explicitly and confirm requirements with your host.
How do players join an s&box dedicated server?
Run status in the server console to get the lobby ID, then run connect followed by that ID in the game console, without the steamid: prefix.
Does the s&box server run on Linux?
Yes. The docs show a Linux launch script and say the Linux server ships with its own .NET runtime. You do have to link the Steam client library from SteamCMD yourself.