2026.10.22広告・PRを含む記事です
テラリアのマルチサーバーをTShockで立てる!友達が24時間入れるワールドの作り方

- ホストの自分がゲームを閉じると、友達もワールドから追い出される
- 友達が好きな時間に入れるワールドを、24時間動かしておきたい
- 荒らされたときに追い出したりBANしたりできる管理の仕組みも欲しい
友達がいつでも入れるテラリアのワールドは、TShockを入れた専用サーバーで作れます。
ゲームの中で自分がホストして遊ぶ方法では、ホストした人がゲームを閉じるとワールドごと止まります。専用サーバーなら、だれも遊んでいない時間もワールドは動いたままです。
TShockは、専用サーバーにアカウントや権限の管理を足すサーバー用のソフトです。参加する友達は、何も入れずにいつものテラリアから入れます。
この記事では、DockerでTShockのサーバーを立てる手順と、管理者アカウントの作り方をまとめました。パスワードと人数の設定、友達が入れないときの確認も扱います。
設定が終われば、自分が寝ている時間も、友達は同じワールドで続きを掘れるようになります。
友達が24時間入れるのは専用サーバー
テラリアで友達と遊ぶ方法は、ワールドをだれが動かすかで分かれます。
| 方法 | ワールドを動かすもの | 自分がゲームを閉じたとき |
|---|---|---|
| ゲーム内でホストする | ホストした人のゲーム | ワールドが止まる |
| 専用サーバー | サーバー用のプログラム | 動き続ける |
友達が自分のいない時間にも入るなら、専用サーバーが必要です。TShockは専用サーバーに、プレイヤーごとのアカウント、権限のグループ、BANの仕組みを足します。
この記事はPC版(Steam版)のテラリアが前提です。サーバーとゲームのバージョンがそろっていないと入れません。
始める前に用意するもの
この記事の手順は、Dockerが動くLinuxのマシンが前提です。自宅で24時間つけておけるLinuxのPCか、借りたVPSのどちらかを用意してください。
| 用意するもの | 内容 |
|---|---|
| サーバー | DockerとDocker Composeが入ったLinux |
| ポート | TCPの7777番を外から受けられること |
| ゲーム | サーバーと同じバージョンのPC版テラリア |
自宅の回線ならルーターで7777番のポート開放をします。VPSなら、管理画面のセキュリティグループかファイアウォールで、TCPの7777番への接続を許可しておきます。

僕はTShockのサーバーをDockerで動かす構成を作っていて、コンテナのメモリの上限は2GBにしています。
Dockerのインストールから始める場合は、Dockerでマイクラサーバーを立てる手順の前半が同じ作業です。マイクラの部分を飛ばして、Dockerが動くところまで進めてください。
この記事で使うのは、TShock入りのテラリアのサーバーをまとめたDockerイメージbeardedio/terrariaの、tshock-6.2.1という版です。TShock 6.2.1は、テラリア1.4.5.8に対応しています。
DockerでTShockのサーバーを立てる
ワールドを先に作り、そのワールドを読み込む形でサーバーを常に動かします。ワールドがないまま常駐させると、起動のたびにワールドの選択で止まります。
手順1:サーバー用のフォルダを作る
ワールドと設定を置くフォルダを作り、その中に移動します。
mkdir -p ~/terraria/config && cd ~/terrariaconfigフォルダには、あとでワールド(.wld)、TShockの設定ファイル、アカウントのデータベースが保存されます。バックアップを取るときは、このフォルダを丸ごと残します。
手順2:対話モードでワールドを作る
次のコマンドでサーバーを一度だけ対話モードで起動し、画面の案内に沿ってワールドを作ります。
docker run --rm -it -p 7777:7777 -v ~/terraria/config:/config ghcr.io/beardedio/terraria:tshock-6.2.1ワールドの大きさ、難易度、名前を選ぶと生成が始まります。生成が終わって起動したら、exitと入力してサーバーを止めます。
configフォルダに、付けた名前の.wldファイルができていれば成功です。
手順3:止めるときにワールドを保存する仕組みを作る
Dockerがサーバーを止めるときは、停止の合図を送ります。合図を受けたらサーバーのコンソールにexitを送り、ワールドを保存してから止まるようにするのが、次のentrypoint.shです。
~/terrariaにentrypoint.shを作り、次の内容を書きます。
#!/bin/bashset -uo pipefail
fifo=/tmp/tshock-consolerm -f "$fifo"mkfifo "$fifo"exec 3<>"$fifo"
./run.sh "$@" <"$fifo" &server=$!
cat >&3 &relay=$!
shutdown() { echo exit >&3}trap shutdown TERM INT
while kill -0 "$server" 2>/dev/null; do wait "$server"donewait "$server"code=$?kill "$relay" 2>/dev/nullexit "$code"docker attachで入力したコマンドも、この仕組みを通ってサーバーのコンソールに届きます。
手順4:compose.yamlを書く
~/terrariaにcompose.yamlを作り、次の内容を書きます。worldには、手順2でできた.wldファイルの名前を入れてください。
services: terraria: image: ghcr.io/beardedio/terraria:tshock-6.2.1 container_name: terraria restart: unless-stopped tty: true stdin_open: true mem_limit: 2g environment: world: World.wld entrypoint: ["bash", "/entrypoint.sh"] stop_grace_period: 90s ports: - "7777:7777/tcp" volumes: - ./config:/config - ./entrypoint.sh:/entrypoint.sh:rotty: trueは外せません。外すと、ワールドを読み込むときにエラーで止まります。
stop_grace_period: 90sは、ワールドの保存が終わるまで最大90秒待ってから止める設定です。restart: unless-stoppedを書いておくと、サーバーが落ちたときやマシンを再起動したときに自動で立ち上がります。
手順5:サーバーを起動する
compose.yamlのあるフォルダで、サーバーをバックグラウンドで起動します。
docker compose up -ddocker compose psを実行し、terrariaの状態がUpになっていれば起動しています。止まっているときは、docker compose logsでエラーを確かめます。
管理者アカウントを作る
TShockは、セットアップコードを知っている人を最初の管理者にします。コードを知っている人はだれでも全権限を取れるので、サーバーを友達に教える前に済ませてください。
手順1:セットアップコードを確かめる
コードは、サーバーのログとconfigフォルダのsetup-code.txtの両方に出ます。セットアップを終えるまでは、再起動しても同じコードが使えます。
cat ~/terraria/config/setup-code.txt手順2:ゲームから入ってコードを入力する
PC版のテラリアでマルチプレイのメニューを開き、IPアドレスで参加する項目を選びます。使うキャラクターを選んだら、サーバーのIPアドレスと7777番ポートを入力して入ります。
サーバーのIPアドレスは、自宅のPCならルーターに割り当てられたグローバルIPアドレス、VPSなら管理画面に出ているIPアドレスです。入れたら、チャットを開いてセットアップコードを入力します。
/setup [セットアップコード]手順3:自分のアカウントを作ってログインする
画面の案内どおりに、自分用のアカウントをownerグループで作り、そのままログインします。
/user add [ユーザー名] [パスワード] owner/login [ユーザー名] [パスワード]手順4:セットアップを終わらせる
ログインした状態でもう一度/setupだけを入力すると、セットアップが終わり、setup-code.txtが消えます。
/setupこれ以降は、/setupを入力しても権限は取れません。管理者の操作は、作ったアカウントでログインして行います。
パスワードと人数を設定する
TShockのサーバー設定は、初めて起動したときにconfigフォルダにできるconfig.jsonに書きます。編集は、docker compose stopでサーバーを止めてから行ってください。
| 項目 | 内容 | 初期値 |
|---|---|---|
ServerPassword | 入るときに聞かれるパスワード | 空(なし) |
MaxSlots | 同時に入れる人数 | 8 |
友達だけで遊ぶなら、ServerPasswordは必ず入れておきます。空のままだと、IPアドレスを知った人ならだれでも入れる状態です。
書き換えたら、次のコマンドでサーバーを起動し直してください。
docker compose up -d友達が入れないときの確認
自分は入れるのに友達だけ入れないときは、外からの接続がサーバーに届いていません。症状から、確かめる場所を決めます。
| 症状 | 確かめること |
|---|---|
| 自分も入れない | docker compose logsでサーバーが起動しているか |
| 同じ家の中からは入れる | ルーターで7777番のポート開放をしているか |
| VPSに外から入れない | セキュリティグループかファイアウォールでTCPの7777番を許可しているか |
| バージョンが違うと表示される | サーバーとゲームのバージョンがそろっているか |
| パスワードを聞かれて入れない | ServerPasswordの値を正しく伝えたか |
自宅の回線でポートを開放できないときは、playit.ggのようなトンネルのサービスで、TCPの7777番を外へ公開する方法もあります。

僕のテラリアのサーバーの構成でも、ポート開放の代わりにplayit.ggのトンネルで公開するようにしています。
ゲームを更新したらサーバーも上げる
テラリアが更新されると、古いバージョンのサーバーには入れなくなります。
更新に対応したTShockのイメージが出たら、compose.yamlのimageの版を書き換え、docker compose up -dで起動し直してください。対応版が出るまでは、サーバーに入れない期間ができます。
自宅のPCを動かし続けたくないとき
ここまでの手順は、自分でLinuxのマシンを24時間動かす前提です。電気代や音が気になるなら、サーバーを借りるのも1つの手でしょう。
ConoHa for GAMEには、テラリアのサーバーをコントロールパネルから作れるテンプレートがあります。作ったサーバーには、ゲームのマルチプレイからIPアドレスと7777番ポートで入れます。
テンプレートを使えるのは、メモリ1GB以上のプランです。接続できるのはテラリアのSteam版だけで、サポートページにTShockの記載はありません。この記事のアカウントやBANの手順は使えない前提で選んでください。
Upgrade! 長期割引パスの新規申込・初回契約期間が時間課金の月額上限より最大76%OFF。11月13日17時まで
2GBは1ヶ月680円。自分のPCを閉じて寝ても、友達は同じワールドで遊べます
テラリアのテンプレートがあるプランを見るテンプレートで作ったワールドは、管理画面ではなくサーバーに入って作り直します。手順はConoHa for GAMEのテラリアのサポートページにあります。
よくある質問
QtModLoaderのMODを入れたサーバーにもできますか?
このイメージのTShockはMODを読み込みません。tModLoaderのMODを遊ぶなら、tModLoader用のサーバーを別に立て、参加する人もtModLoaderで入ります。
まとめ:TShockの専用サーバーならワールドが止まらない
友達がいつでも入れるテラリアのワールドは、次の順で作れます。
- 対話モードで一度起動して、ワールドを作る
entrypoint.shとcompose.yamlで、止めるときにワールドを保存して常駐させる- セットアップコードで管理者を作り、すぐに
/setupで終わらせる config.jsonでパスワードと人数を決める
TShockの管理機能が要らず、自分のPCを使わずに動かしたいなら、ConoHa for GAMEのテラリアのテンプレートで遊べるサーバーを用意できます。
Upgrade! 長期割引パスの新規申込・初回契約期間が時間課金の月額上限より最大76%OFF。11月13日17時まで
2GBは1ヶ月680円。時間課金なら、友達が入れるか確かめてから続けるかを決められます
テラリアのサーバーを借りる