ETS2の専用サーバー(Dedicated Server)がリリースされたらしい。これで本体を起動しなくても公式コンボイをホストできるようになるみたい。
で、うちの自宅鯖でもこれを動かそうと思ったのでやってみる。
環境
- OS:ubuntu 22.04.01 LTS
- steamcmd:1669935972
- ver.1.46.1.0s (rev. a155a2c25176)
steamcmdをインストール
公式のガイドに沿ってインストールを進める。
$ sudo apt install steamcmd
...
以下の追加パッケージがインストールされます:
libstdc++6:i386
提案パッケージ:
steam:i386
以下のパッケージが新たにインストールされます:
libstdc++6:i386 steamcmd:i386
アップグレード: 0 個、新規インストール: 2 個、削除: 0 個、保留: 0 個。
...
STEAM ライセンス契約?が表示される。TAB→Enterで次へ。同意するか聞かれるので上下キーで「I AGREE」を選択して、TAB→Enter。
インストールでエラーが出たら
64bitマシンだと↓を先に実行しておく必要があるらしい。
$ sudo add-apt-repository multiverse
$ sudo apt install software-properties-common
$ sudo dpkg --add-architecture i386
$ sudo apt update
$ sudo apt install lib32gcc-s1 steamcmd
ETS2専用サーバーをインストール
ホームディレクトリに移動してsteamcmdを実行する。
$ cd ~
$ steamcmd
実行するとアップデートの処理が始まるので、入力できる状態になるまでしばらく待つ。
アプリをインストールするディレクトリを指定して、ログインしてインストール。
※相対パスで指定したら、/home/[ユーザー名]/.local/share/Steam/steamcmd/下にインストールされた。(ubuntu 22.04.1の場合)
違う場所にインストールする場合は絶対パスで指定する必要がある。多分
Steam>force_install_dir ./ets2_server/
Steam>login anonymous
Steam>app_update 1948160 validate
- login anonymous:アカウント情報なしでログイン
- 1948160:ETS2専用サーバーのアプリID ATSの場合は2239530
- validate:ファイルが破損してないかチェック
Success! App '1948160' fully installed.
インストールが完了したらquitを入力してEnterでsteamcmdを終了する。
サーバーを実行する
ETS2本体でserver_packages.siiとserver_packages.datを生成して持ってこなきゃいけないらしい
ゲームを起動して適当なセーブを読み込んで、@(又は全角/半角)キーを押してコンソール表示して、export_server_packagesを実行。
※modが入ってるサーバーを作りたいときはmod入りセーブデータでエクスポートする(readmeにはワークショップmodは使えないと書いてあったので注意)
成功したら、(Windowsの場合)ドキュメント\Euro Truck Simulator 2にserver_packages.siiとserver_packages.datができているので、この2つをゲームホームフォルダにぶち込む。
(ゲームホームフォルダは/home/[ユーザー名]/.local/share/Euro Truck Simulator 2)
で、[サーバーがインストールされたディレクトリ]/bin/linux_x64に移動して実行。
$ bash server_launch.sh
...
[MP] Game version: 1.46s
[MP] Map name: /map/europe.mbd
[MP] Password required: No
[MP] Modded session: No
[MP]
[MP] =========================================================================
[MP] Session running.
[MP] State: running; Time: 2761; Players: 0
できたー!!
ポート開放
デフォルト設定では27015,27016のTCP&UDP、100,101のTCPを開放する必要があるっぽい。
修正:100,101は要らなかった。
設定を変更する
Ctrl+Cで鯖を停止して、ゲームホームフォルダに移動する。
server_config.siiでサーバーの設定を変えられる。
主な設定:
設定項目 | 説明 |
lobby_name | セッション名 |
description | |
welcome_message | 入った時に出るメッセージ |
↑の3つは日本語OK | |
max_players | 最大人数(今のところ最小1最大8) |
moderator_list | 追記予定 |
設定をミスった時の挙動
設定をミスったら(“が無いとか)wikiに書いてあるパラメーターの数値になる。
参加する
サーバー起動時にSession search idが表示される(例:90166993578511360/101)
※デフォルトでは、search idは起動するたびに変更される
ETS2を起動してセーブデータを読み込み、下のメニューの「コンボイ」を選択。
検索窓にsearch idを貼り付けて検索するとサーバーが表示されるはず。
「コンボイに参加する」をクリックするとセッションに参加できる。
セッション一覧画面に表示されるようにする
デフォルトのままだと↓のようなセッション一覧には表示されず、セッション名で検索しても出てこない。(Session search idで検索する必要がある)
あとSession search idは起動するごとに変わる。
なので、Session search idを固定し、セッション一覧に表示されるようにする。
readmeにはこう書いてあった。
7.サーバーログオントークン
デフォルトでは、専用サーバーは常に匿名アカウントを使用して起動されます。このようなアカウントでは、非永続的なサーバーIDが生成されます(直接検索に使用されます)。これを避けるために、https://steamcommunity.com/dev/managegameservers でログオン トークンを取得することができます(ゲームの所有権が必要です)。
DeepLで翻訳
フォーラムの投稿も参考にした。
まず、steamの「Steam ゲームサーバーのアカウント管理」というページに飛ぶ。
ETS2本体を持ってるアカウント(電話番号の登録が必要)でログインして、ETS2本体のアプリID(227300)を入れる。
作成をクリックすると、
こんな感じでログイントークンが出てくるので、ゲームホームフォルダ/server_config.siiを開いて、
server_logon_token: "XXXXXXXXXX"
トークンを書き込んだら保存して、サーバーを起動する。
ちゃんと一覧に表示された。
公式wiki
公式wikiにサーバーのページができていたので貼っておく。
必要な情報は諸々書いてあるので、この記事いらなかったかもしれない
その他
modサーバーを建ててみる
project japanを入れてmod導入鯖を建ててみる。
project japanだけを入れたセーブを用意してexport_server_packagesを実行。
server_packages.siiとserver_packages.datをゲームホームフォルダにコピーしてサーバーを起動するだけ。scsファイルのコピーとかはいらないっぽい。かんたん
追記予定
- moderator_listについて
- 快適に動いているか
- マップDLCについて
- ワークショップのmod入れたときの挙動
- オプションmod?というのがあるらしい
- https://forum.scssoft.com/viewtopic.php?p=1771870#p1771870
コメント
Whats up this is kinda of off topic but I was wondering if blogs use WYSIWYG editors or
if you have to manually code with HTML. I’m starting a blog soon but have no coding expertise so I wanted to get guidance from someone with
experience. Any help would be greatly appreciated!