【鯖立て編】Terrariaの鯖立てソフト、TShockのイロハ

# 初めに
　TShockの記事は基本的にすべて古い、あるいは英語であり、鯖建ての難易度が高いので自分なりにまとめました。あくまで参考程度に見てください。
　また、Windowsでポート開放は事前に済んでいることを想定しています。
　ポート開放ができない方はngrokやSecure Share Netあたりを利用しても建てることができます。参考までに他の方の記事を置いておきます。

　Minecraftの記事ですがアドレスの
    
    AAAAAA:12345

の左側をipアドレス、右側をポート番号の欄に入力すれば代用できます。需要があればいずれその記事も書きます。

https://zenn.dev/book000/articles/ngrok-minecraft-server

https://ghasts.blog.fc2.com/blog-entry-1462.html

# TShockとは
https://terraria.fandom.com/wiki/TShock より
>TShock is server software offering a vast array of server tools, such as:
>
>Admin system to execute commands in-game
>Build protection
>Warping
>Plugin support to get more commands or fixes
>Some minor fixes/tweaks to the vanilla server software
>Edit hidden world settings in-game
>Other features

　要するにTerrariaのサーバソフトウェアで便利なコマンドとか設定とかができる。
　持ち込み制限ができるSSC（サーバサイドキャラクター）とかだけでも結構便利。
　様々なプラグインを追加することによってまるでmodのように遊べる。

## modとの差異
　modは参加者全員導入しないといけないのに対して、TShockは鯖主だけが色々設定すればいいので参加者にとって結構ありがたい。
　大人数でのマルチやイベントに最適。ただし **modとの併用はできないので注意**。
　
# 導入
 https://github.com/Pryaxis/TShock/releases

　ここから自分に合ったものをダウンロード。特に理由がなければ最新のものにしましょう。
　今回のケース(windows)なら**TShock-5.1.3-for-Terraria-1.4.4.9-win-x64-Release.zip** をダウンロードします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3125835/7bbb4f73-128f-02f4-1c11-a3eecdce5241.png)
 解凍したらこんな感じ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3125835/1414cf24-c065-0316-ad4d-ee873daad644.png)
 　**TShock.Server.exe** が鯖立て用の実行ファイル。実行しましょう。
　恐らくWindows Defenderくんが反応しますが無視してください。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3125835/f19b8692-af81-5746-86a9-bcb9c00029d7.png)
　こんな感じで自分のワールド一覧が表示されてたらok。 

# ワールドの建て方
　数字で鯖を建てたいワールドを指定します。今回は19版のWorldで建てます。19を入力してEnter。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3125835/b1ad5ff1-ddcb-d2a7-8016-cab1917e6b58.png)
続いて鯖に入れる最大人数を設定します。何も入力しなければ16人となります。今回は未入力でEnter。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3125835/45b77e50-8e09-bc51-708f-2cad66600091.png)
　続いてポート番号を指定します（デフォルトは7777）。
　ngrok等で建てた場合はポート番号を合わせてください。今回は未入力でEnter。
　![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3125835/ffa8ffae-a8e0-dd96-c115-4f6543f777ea.png)
　次に、自動でポート開放をしますか？と聞かれます。機能した試しがないので未入力でEnterでいいでしょう。
　![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3125835/e36b8485-4691-02c2-2a86-161c7454f579.png)
　最後にパスワードを設定します。今回は入力せずにEnter。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3125835/2738f308-8857-a180-01c4-83fbc595a9d5.png)
　成功するとこのような画面が出てきてサーバが建ちます。初回起動時はファイアウォールの画面が出るので　**必ず許可してください**。
　拒否すると接続できなくなり、設定画面を探す旅が始まるので気を付けてください。

# 接続方法
　次は先の手順で建てた鯖に接続します。Terrariaを起動しましょう。
　マルチプレイ(Multiplayer)→IP経由で参加(Join via IP)、キャラクターを選択。
　IPアドレスを入力します。自分で接続する場合はlocalhostを入力します。![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3125835/ce530ccb-3086-6c2b-ece2-11baf818527f.png)
　次にポート番号を入力。デフォルトなので7777のままEnter。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3125835/828b1a7c-0f6c-fce0-a245-04761b542f12.png)
　入れました。ﾔｯﾀｰ!!
　![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3125835/fbab017b-8976-ea2d-f28f-3b808c48a9b6.png)
　コマンドプロンプト（黒い画面）はこんな感じ。![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3125835/edfc0ae3-8e48-161e-48c6-0a1805b73b80.png)
　これで接続できました。

# コマンドの実行
　コマンドプロンプトにコマンドを入力してみます。
　まず、どんなコマンドが使えるかをヘルプコマンドで確認してみます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3125835/a0c0e212-c73a-b137-d659-d5105e6cf010.png)
　なんかいっぱい出てきました。/help 2, /help 3などでもっと見れます。
　今回はとりあえずプレイヤーをgodmode、無敵状態にしたいと思います。
　コマンドプロンプトに以下のコマンドを入力します。

    /godmode [Player名]

　無敵になりました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3125835/fad8c3e5-66f1-174d-905e-865daf4a7a29.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3125835/fb247a13-40e4-22fe-00b8-e006e6e305a6.png)

# 終わりに
　以上で基本的なTShockの鯖建ては完了となります。
　~~Configをいじったり権限をいじったり、コマンドの紹介といったこともしたいのですが、それらは次回以降ということで。次回の予定はコマンド編、ゲーム内でキャラクターがコマンドを入力、実行できるようにします。
　アカウント作成までやらないとなんの意味もない、との指摘がありましたので次回はそちらとSuper adminの付与、権限の付与といったアカウント関連の説明をします。~~
　追記：modと併用できない旨を記載。他にも指摘ありましたら是非お願いします。
　　　　次回が持ち込み対策のSSC解説編になりました


https://qiita.com/Ranga/items/4273f17c8ee2c57aa556