S&boxには公式のデディケイテッドサーバー(Steam app ID 1892930)があり、SteamCMDでインストールしsbox-server.exeで起動します。公式ドキュメントには既定ポートも設定ファイルも記載がないため、本ガイドは記載内容のみに従います。所要時間は約15分です。
手順ごとのインストール
SteamCMDをインストールします(WindowsまたはLinux)。
Linuxでは.NET Runtimeもインストールします。
「+login anonymous +app_update 1892930 validate +quit」でサーバーをインストールします。
Steamクライアントバイナリをリンクします(Windowsレジストリ、または~/.steam/sdk64/steamclient.soのシンボリックリンク)。
「S&box 起動スクリプト」ツールで起動スクリプトを生成します。
+game(とマップ)および+hostnameを付けてサーバーを起動します。
サーバーコンソールで「status」を実行してロビーIDを取得し、クライアントは「connect <lobbyId>」を実行します。
起動(systemdまたはタスクスケジューラ)と更新を自動化します。
必要条件
- Windowsまたは64ビットLinux(Ubuntu/Debian)。Linuxは.NET Runtimeが必須(公式ドキュメント)。
- 最小ハードウェア要件は公開されていません(公式には未記載)。
- SteamCMDは匿名ログイン。アカウントもライセンスキーも不要です。
Windowsへのインストール(ローカル/Windows Server)
C:\steamcmdからサーバーをインストールすると、steamapps\common\sbox dedicated serverに配置されます。stagingブランチは-beta stagingを付けます(全員がプレイできるとは限りません)。
cd /d C:\steamcmd
steamcmd.exe +login anonymous +app_update 1892930 validate +quit
REM Test local : ajoutez +net_allow_local 1, puis « connect local » côté client
sbox-server.exe +game facepunch.sandbox facepunch.flatgrass +hostname "My Dedicated Server" +net_allow_local 1Linux VPSへのインストール(Ubuntu/Debian)
root以外のユーザーを作成し、SteamCMDと.NET Runtime(ディストリビューションまたはMicrosoftのパッケージ)をインストールし、サーバーを導入してsteamclient.soをリンクします。起動スクリプトは公式ドキュメントのとおり、引数付きでsbox-server.exeを実行します。
sudo adduser --disabled-password --gecos "" sbox
sudo -iu sbox
# SteamCMD déjà installé dans ~/steamcmd
cd ~/steamcmd && ./steamcmd.sh +login anonymous +app_update 1892930 validate +quit
mkdir -p ~/.steam/sdk64
ln -sf ~/steamcmd/linux64/steamclient.so ~/.steam/sdk64/steamclient.so開放するポート
ポートは+port(ホスト用)と+net_query_port(プレイヤー数やマップなどの問い合わせ用)で指定します。公式ドキュメントに既定値やプロトコルの記載はなく、既定ではSteamリレー経由で接続されます。ポートを指定する場合はテストのためUDPとTCPの両方を開放し、動作を確認して絞り込んでください。以下の例の27015/27016はサードパーティのガイドの値(非公式)です。
- +port <ポート> — ホスト用ポート(既定値は未記載)。
- +net_query_port <ポート> — 問い合わせ用ポート(人数、マップ)。
Linuxファイアウォール(ufw)
ご利用のポートに合わせて調整してください。プロバイダ(OVH、Hetzner、Scaleway)のファイアウォール/セキュリティグループでも同じポートを開放し、自宅ホスティングではルーターで転送(NAT)します。
sudo ufw allow OpenSSH
sudo ufw allow 27015/udp
sudo ufw allow 27015/tcp
sudo ufw allow 27016/udp
sudo ufw enableWindowsファイアウォール(netsh)
netsh advfirewall firewall add rule name="sbox UDP" dir=in action=allow protocol=UDP localport=27015-27016
netsh advfirewall firewall add rule name="sbox TCP" dir=in action=allow protocol=TCP localport=27015-27016systemdサービス(Linux)
/etc/systemd/system/sbox.serviceに配置します。run-server.shはツールで生成したスクリプトです(chmod +xで実行権限を付与)。
[Unit]
Description=S&box dedicated server
After=network-online.target
Wants=network-online.target
[Service]
User=sbox
WorkingDirectory=/home/sbox/steamcmd/steamapps/common/sbox dedicated server
ExecStart=/home/sbox/run-server.sh
Restart=on-failure
RestartSec=10
[Install]
WantedBy=multi-user.targetWindowsでの自動起動
マシン起動時にRun-Server.batを実行するタスクを登録します(管理者のコマンドプロンプト):
schtasks /create /tn "sbox-server" /tr "C:\steamcmd\steamapps\common\sbox dedicated server\Run-Server.bat" /sc onstart /ru SYSTEM更新と再起動
サーバーの保存ファイルに関する公式記載はありません。ゲーム固有のデータはそのコードの定義に従ってバックアップしてください。更新はサーバーを停止してapp_updateを再実行します。接続中のクライアントはコード変更を受け取りホットリロードします。
# cron root, 05:00 : mise à jour puis redémarrage / update then restart
0 5 * * * systemctl stop sbox && sudo -u sbox /home/sbox/steamcmd/steamcmd.sh +login anonymous +app_update 1892930 validate +quit && systemctl start sboxサーバーを登録する
このゲームは固定の公開ポートを持たず、プレイヤーはロビーIDでSteamリレー経由に参加します。game-rank.com/jeux/sbox にゲームが掲載されていれば、サーバーを登録してコミュニティに見つけてもらえます。
トラブルシューティング
- Steamworksが初期化されない:Steamクライアントバイナリが未リンクです(レジストリのSteamClientDll64/SteamClientDll、または~/.steam/sdk64/steamclient.so)。
- 「Not Connected」:ゲームコードがまだロビーを作成していません。S&boxのネットワークドキュメントを参照してください。
- Linuxで起動しない:.NET Runtimeが無い、またはスクリプトに実行権限がありません。
- stagingブランチがプレイできない:-beta stagingを外して再インストールします。
- 1台でのテストができない:+net_allow_local 1を追加し、「connect local」で接続します。
よくある質問
- S&boxにサーバー設定ファイルはありますか?
- 公式ドキュメントに記載はなく、設定は起動時に実行されるConVar/ConCmdとしての「+」コマンドライン引数で行います。
- ポートを開放する必要はありますか?
- 既定ではSteamリレー経由で接続され、サーバーのIPは隠されます。ドキュメントに必須ポートの記載はありません。+portと+net_query_portを指定した場合は、そのポートを開放してください。
- Steamアカウントやライセンスは必要ですか?
- インストールは匿名ログインで行えます。+net_game_server_token(永続的なSteam ID)は任意で、公式ページによればS&boxのリリース後に利用できます。
- 安定版とstagingのどちらを選ぶべきですか?
- 多くの場合は既定ブランチで十分です。ドキュメントによれば、staging(-beta staging)は全員がプレイできるとは限りません。
