本文へスキップ
Garry's Mod

Garry's Modサーバーを構築する

Garry's Mod専用サーバーはSteamCMD(app 4020、匿名ログイン)でインストールし、srcds_run(Linux)またはsrcds.exe(Windows)で起動します。所要時間は約30分で、VPSまたはPCと、Facepunch Wikiで必須とされるGSLTサーバートークンが必要です。主な参照元:wiki.facepunch.com/gmod。

最終更新日:2026/10/9

Garry's Mod専用サーバーはSteamCMD(app 4020、匿名ログイン)でインストールし、srcds_run(Linux)またはsrcds.exe(Windows)で起動します。所要時間は約30分で、VPSまたはPCと、Facepunch Wikiで必須とされるGSLTサーバートークンが必要です。主な参照元:wiki.facepunch.com/gmod。

手順ごとのインストール

  1. マシンを選びます:Linux VPS(Ubuntu/Debian)またはWindows PC。負荷は主にアドオンとゲームモードで決まります。

  2. rootではないユーザー(steam)を作成し、SteamCMDと32bitライブラリをインストールします。

  3. サーバーをダウンロード:匿名ログインでapp_update 4020 validate。

  4. steamcommunity.com/dev/managegameserversでGSLTトークン(AppID 4000)を作成します。

  5. 「Garry's Mod 起動コマンド」ツールで起動コマンドを生成し、srcds_runを実行します。

  6. 「Garry's Mod server.cfg ジェネレーター」でgarrysmod/cfg/server.cfgを設定します。

  7. Workshopコレクション(+host_workshop_collection)でアドオンを追加します。

  8. ufw、事業者側、ルーターでポート(最低27015 UDP/TCP)を開放します。

  9. ローカルでテスト(ゲーム内コンソールでconnect 127.0.0.1)し、その後別の回線から確認します。

  10. systemdサービスを作成し、アップデートとバックアップを予約します。

前提条件

  • OS:Linux(Ubuntu/Debian)またはWindows。Facepunch WikiにWindowsとLinuxのコマンドがあります。
  • リソース:Wikiに最低要件はありません。2vCPU、RAM 4GB、数GBのディスクから始め、アドオンや人数に応じて調整してください(公式には未記載)。
  • アカウント:GSLTトークン(AppID 4000)用にSteamアカウントが必要です。サーバー自体は匿名ログインでインストールできます。

Windowsでのローカルインストール

SteamCMDをC:\steamcmdに展開したら、サーバーをインストールしてsrcds.exeを実行します(Facepunch Wikiの例)。その後、ゲーム内コンソールでconnect 127.0.0.1を実行してテストします。

cd C:\steamcmd
steamcmd +force_install_dir C:\gmodds +login anonymous +app_update 4020 validate +quit

cd C:\gmodds
srcds.exe -console -game garrysmod +maxplayers 20 +gamemode sandbox +map gm_construct +sv_setsteamaccount YOUR_GSLT_TOKEN

Linux VPS:ユーザーと依存関係

Sourceサーバーは32bitプログラムです。i386アーキテクチャを有効にして32bitライブラリを入れます。以下のパッケージは同じエンジンのTeam Fortress Wikiに基づき、ディストリビューションによって名前が異なる場合があります。

sudo adduser steam
sudo dpkg --add-architecture i386
sudo apt update
sudo apt install -y lib32gcc-s1 lib32stdc++6 lib32z1 steamcmd
su - steam

Linux VPS:インストールと初回起動

Facepunch WikiのLinux用インストールコマンドの後、srcds_runで起動します。このページにはポートやserver.cfgの正確な場所の記載がなく、Sourceの標準値が適用されます(後述)。

steamcmd +login anonymous +force_install_dir /home/steam/gmodds +app_update 4020 validate +quit

cd /home/steam/gmodds
./srcds_run -game garrysmod -console +maxplayers 32 +gamemode sandbox +map gm_construct +sv_setsteamaccount YOUR_GSLT_TOKEN

WorkshopとGSLTトークン

Facepunch Wikiによると、+sv_setsteamaccountは必須(省略するとサーバーのランキングで不利)で、+host_workshop_collectionは公開または限定公開のコレクション(サブコレクション含む)のアドオンを追加します。host_workshop_autoupdate 0は自動更新を止めますが、マップのバージョンが古いとプレイヤーが参加できなくなる場合があります。Wikiには新形式のcfg/srcds_workshop_ids.txt(バージョン2026.09.22以降)も記載されています。詳細は「Workshop for Dedicated Servers」ページを参照してください。プレイヤー側のダウンロードは「Workshopコレクション管理」ツールを参照。

./srcds_run -game garrysmod -console +maxplayers 32 +gamemode sandbox +map gm_construct \
  +host_workshop_collection 123456789 \
  +sv_setsteamaccount YOUR_GSLT_TOKEN

開放するポートとLinuxファイアウォール(ufw)

これらはSourceサーバーの標準値です(参照したFacepunch Wikiのページには記載なし)。ゲームポートは起動コマンドの-port Nで変更します。WorkshopアドオンはSteam経由でダウンロードされ、プレイヤー側の追加ポートは文書化されていません。

必要なものだけを開放し、サーバー自身ではなく別の回線からテストします。

  • 27015/udp:ゲーム(Source既定ポート)
  • 27015/tcp:RCON
  • 27005/udp:クライアント通信
  • 27020/udp:SourceTV(任意)
sudo ufw allow OpenSSH
sudo ufw allow 27015/udp
sudo ufw allow 27015/tcp
sudo ufw allow 27005/udp
sudo ufw allow 27020/udp
sudo ufw enable
sudo ufw status

Windowsファイアウォール(netsh)

管理者のコマンドプロンプトでポートごとに受信規則を作成します(または「セキュリティが強化されたWindows Defenderファイアウォール」を開きます)。

netsh advfirewall firewall add rule name="Garry's Mod 27015 UDP" dir=in action=allow protocol=UDP localport=27015
netsh advfirewall firewall add rule name="Garry's Mod 27015 TCP" dir=in action=allow protocol=TCP localport=27015
netsh advfirewall firewall add rule name="Garry's Mod 27005 UDP" dir=in action=allow protocol=UDP localport=27005
netsh advfirewall firewall add rule name="Garry's Mod 27020 UDP" dir=in action=allow protocol=UDP localport=27020

プロバイダーのファイアウォールとポート転送(ルーター)

ホスティング事業者(OVH、Hetzner、Scalewayなど)では、事業者側のファイアウォールまたは「セキュリティグループ」でも同じポートを開放します。上流にファイアウォールがあるとufwだけでは不十分です。自宅サーバーの場合は、ルーターで各ポートをマシンのローカルIP(固定またはDHCP予約)へ転送(NAT)します。

テスト:別の回線から、Garry's Modのサーバーブラウザまたはコンソールで「IP:ポート」としてサーバーを追加します。失敗する場合は、サービス起動、ローカルFW、事業者FW、NAT転送の順に確認してください。

自動起動:systemdサービス

rootで/etc/systemd/system/gmod.serviceを作成し、有効化します。ユーザーとパスは環境に合わせ、ログはjournalctl -u gmod -fで確認します。

[Unit]
Description=Garry's Mod dedicated server
After=network-online.target
Wants=network-online.target

[Service]
User=steam
WorkingDirectory=/home/steam/gmodds
ExecStart=/home/steam/gmodds/srcds_run -game garrysmod -console -norestart +maxplayers 32 +gamemode sandbox +map gm_construct +sv_setsteamaccount YOUR_GSLT_TOKEN
Restart=on-failure
RestartSec=10

[Install]
WantedBy=multi-user.target

# then:
# sudo systemctl daemon-reload
# sudo systemctl enable --now gmod

Windows:起動時のタスクスケジューラ

Windowsでは、タスクスケジューラがシステム起動時に.batスクリプトを実行します(管理者のプロンプトでコマンドを実行)。

schtasks /Create /TN "Garry's Mod server" /TR "C:\gmodds\start-gmod.bat" /SC ONSTART /RU SYSTEM /RL HIGHEST

アップデート、バックアップ、定期再起動

更新前にサービスを停止し(インストールと同じSteamCMDコマンド)、設定とデータのファイルを定期的にバックアップします。時間とともに動作が重くなる場合は、毎日の再起動を予約してください。

sudo systemctl stop gmod
steamcmd +force_install_dir /home/steam/gmodds +login anonymous +app_update 4020 validate +quit
sudo systemctl start gmod

# backup
tar czf ~/gmod-$(date +%F).tar.gz -C /home/steam/gmodds garrysmod/cfg garrysmod/data garrysmod/addons

# daily restart at 05:00 (root crontab: sudo crontab -e)
0 5 * * * systemctl restart gmod

サーバーの登録と見つけ方

https://game-rank.com/jeux/garrys-mod にサーバーを登録すると、コミュニティに表示されます。ゲーム内ではサーバーブラウザを使うか、IP:ポートで直接接続します。

トラブルシューティング:よくあるエラー

  • クライアントが読み込みで止まる/「missing content」:アドオンがプレイヤーに配信されていません。対処:workshop.lua(resource.AddWorkshop)にIDを追加するかsv_downloadurl(FastDL)を設定し、コレクションが公開か確認します。
  • 外部から見えない:サービスは動いているが誰も接続できない。原因:ポートが閉じている(ufw、事業者FW、NAT転送の不足)。対処:上記のポートを3段階すべてで開放し、別の回線からテストします。
  • 起動時にポートが使用中:別のインスタンスがポートを占有しています。対処:ss -lunp | grep 27015でプロセスを確認し、古いインスタンスを停止するか、サーバーごとに-portで別のポートを指定します。
  • SteamCMDの「Failed to install app」やダウンロード停止:原因はディスク満杯かフォルダー権限不足が多いです。df -hとフォルダーの所有者を確認し、validate付きでコマンドを再実行します(必要なら複数回)。
  • srcds_run:「No such file or directory」や32bitライブラリ不足:Sourceサーバーは32bitプログラムです。i386アーキテクチャを有効化(dpkg --add-architecture i386)し、lib32gcc-s1とlib32stdc++6をインストールします。

よくある質問

GSLTトークンは必須ですか?
Facepunch Wikiでは+sv_setsteamaccountは必須で、省略するとランキングで不利になるとされています。トークンはAppID 4000で作成します。
ゲームモード(DarkRP、TTTなど)を変えるには?
起動コマンドに+gamemode <フォルダー>を指定します。フォルダーはgarrysmod/gamemodes/またはアドオンのgamemodes/内にあります。gamemode変数を変更してからマップを変える方法もあります。
rootでサーバーを起動してもよいですか?
非推奨です。管理者権限のない専用ユーザー(例:steam)を作成し、そのユーザーでインストールと起動を行ってください。サーバーやプラグインの脆弱性がマシン全体に及ぶのを防げます。
Garry's Modサーバーがリストに表示されません。何を確認すべき?
まず、全レベルでポートが開放されているか、サーバーがLANモード(sv_lan 0)でないか、ゲームが要求する場合は有効なサーバートークン(GSLT)を渡しているかを確認します。Steamのリスト反映には数分かかることがあるため、その間はIP:ポートで接続してください。

Garry's Modサーバー用ツール

Garry's Mod
Garry's Modログイン不要
Garry's Modサーバーのserver.cfgを作成:名前、パスワード、リージョン、FastDL、サンドボックス上限、セキュリティ。
設定サンドボックス開く
ドキュメント
Garry's Mod
Garry's Modログイン不要
Garry's Modのsrcds起動コマンドを生成:マップ、ゲームモード、スロット、ポート、Workshopコレクション、GSLTトークン。
起動設定開く
ドキュメント
Garry's Mod
Garry's Mod要ログイン
Workshopのリンクを貼り付けるだけで、重複を除いたID、+host_workshop_collectionパラメーター、workshop.luaが得られます。
Workshopアドオン開く
ドキュメント
Garry's Mod
Garry's Mod要ログイン
DarkRPのsettings.luaを生成:経済、給料、速度、法律、チャット距離、上限。公式の既定値を使用します。
DarkRP設定ロールプレイ開く
ドキュメント
Garry's Mod
Garry's Mod要ログイン
Garry's ModのLuaスクリプトを貼り付けると、閉じ忘れのend・括弧・文字列をサーバー再起動前に検出します。
Lua開発開く
ドキュメント