なんでもぶろぐ

ゲームやプログラムなど作ったものや学習したものをまとめておくブログ

ARK Linux個人サーバー Modの導入方法2

Ver244.3で自動modダウンロード/インストール/アップデートが実装されていましたのでその方法をメモしておきます。

ソースはこちら
244.3 - Official ARK: Survival Evolved Wiki

環境

WebArena http://web.arena.ne.jp/vps-cloud/
Centos7 64bit
コア数 6
メモリ 6144MB
ストレージ SSD 100G
ARKのバージョン 256.21



自動スクリプトのインストール

Linuxサーバでは、このスクリプト(サーバファイルに含まれています)を一度実行してSteamCMDをインストールする必要があります。インストールファイルはARKをインストールしたディレクトリ内にあります。

$cd Steam/ark/
$./SteamCMDInstall.sh

実行するとパスを聞かれるのでログインしているユーザーのパスワードを入力します。



設定の追加

Game.iniに導入したいModの番号を記入します

$cd Steam/ark/ShooterGame/Saved/Config/LinuxServer/
$vim Game.ini

記入例

[ModInstaller]
ModIDS=680481868
ModIDS=682394267 
ModIDS=714672786

使用方法

保存し、再起動すると自動でModが導入されます。
自動アップデート等が実行されるタイミングは起動時なので
Modのアップデート等があった場合はサーバーを再起動すると適応されます。

4/17 追記
systemdで再起動するとなぜかインストールされない現象が・・
手動で起動したらインストール、アップデートされました。

ARK Linux個人サーバー Modの導入方法

/----- 2017/4/3 追記 -------

244.3で自動インストール/アップデートスクリプトが実装されてました。
ARK Linux個人サーバー Modの導入方法2 - ARK設定メモ

自動スクリプトのほうが楽です。
この記事の方法でもできます。

/---------------------------




※書いてある内容を実行して何かあっても責任はとれません。

すべて自己責任でお願いします。


現状Linuxでは、MODファイルを解凍できないようでWindowsのクライアントにて解凍したMODファイルをLinuxサーバーにコピーすれば導入できました。



1.WindowsのSteamクライアントよりARKのModページを開く

2.ほしいMODをサブスクライブして、ローカルでMODが動くか確認する(MODの番号を控えておく)

3.Steamのゲームをインストールしている以下のフォルダよりModデータをコピーする
(Mod番号フォルダとMod番号.modの二つ)

Steam/steamapps/common/ARK/ShooterGame/Content/Mods


4.Linuxサーバーの以下のディレクトリにModデータをコピーする

<ARKインストールディレクトリ>/ShooterGame/Content/Mod

※ファイル所有者、実行権限に注意



5.設定ファイルにてModを有効にする

cd <ARKインストールディレクトリ>/ShooterGame/Saved/Config/LinuxServer
vim GameUserSettings.ini

GameUserSettings.iniの[ServerSettings]に控えていたMod番号を追加

[ServerSettings]
ActiveMods=566887000,813463849

Modが複数ある場合は上のように書く

6.サーバーを起動して確認

ARK Linux個人サーバー インストールメモ

/------- 2017/4/5 追記 -------------

再インストールするときわかりにくかったので書き直しました。
ARK:Survival Evolved Linux Dedicated Server 導入メモ - Linuxとかの設定メモとかそんな感じ

/-----------------------------------




※書いてある内容を実行して何かあっても責任はとれません。

すべて自己責任でお願いします。

構築する際、情報がバラバラでしたのでまとめておきたいと思います。

基本的にはDedicated Server Setup - Official ARK: Survival Evolved Wikiからの情報です。

以下の内容はすべてLinux向けです。CentOS7を使用してます。

Linux自体の設定等は書きません。

バックアップ、RCONの設定
ARK Linux個人サーバー 設定とか - Linuxとかの設定メモとかそんな感じ



目次

  1. サーバーの環境、スペック
  2. 下準備
  3. ARKのインストール、アップデート
  4. SteamCMDのインストール
  5. ARKのインストール、アップデート
  6. ARKの起動、停止
  7. Systemctlでの起動と停止
1.サーバーの環境、スペック

64bitOSが必要、サーバーのテストはUbuntu14.04でしている?

サーバーを起動するのに最低でも6GBのメモリーが必要みたいです。

SSDのアクセス速度を利用して、6GB未満の場合でもスワップを増やせば起動することはできます。さくらのVPSメモリ2GBのプランでスワップを4GB増やして起動はしました。テストくらいにしか使ってないので実用に耐えられるかは不明です。

私はWebArenaのVPSクラウドでメモリ6GBプランで建てていますが、5人程InするとCPU負荷が80%程度、メモリも80%程度でした。


2.下準備

・以下のポートの開放
UDP 27015 スチームサーバーブラウズで使うポート
UDP 7777 ゲーム用のポート
(UDP 7778 Raw UDP ソケットポート)
TCP 27020 RCONで使うポート。RCON使わないなら開けなくても大丈夫

root権限で

#firewall-cmd --permanent --add-port=27015/udp
#firewall-cmd --permanent --add-port=7777/udp

#firewallを再起動すると変更が適応されるのでリロード

#firewall-cmd --reload

・SteamCMDのインストールに要求されるライブラリーのインストール

#yum install -y glibc.i686 libstdc++.i686

・/etc/sysctl.conf に以下の行を追加。ここの設定を忘れてた時、ログイン時にクエリーエラーが出てました。

fs.file-max=100000

・/etc/security/limits.conf に以下の行を追加

*               soft    nofile          1000000
*               hard    nofile          1000000
3.SteamCMDのインストール

ここからはユーザー権限で行う。
・ユーザーの作成

#useradd [ユーザー名]
#passwd [ユーザー名]
#su - [ユーザー名]

・Steam用のフォルダを作成し移動

$mkdir Steam && cd Steam

・SteamCMDの本体をダウンロード

$curl -sqL 'https://steamcdn-a.akamaihd.net/client/installer/steamcmd_osx.tar.gz' | tar zxvf -

・SteamCMDの起動

$cd Steam
$./steamcmd.sh

・匿名でログイン

Steam>login anonymous

・ログアウト

Steam>exit

このSteamCMDでサーバープログラムをダウンロードしていきます
ARK以外にも対応しているゲームがたくさんあります。詳しくは↓
Dedicated Servers List - Valve Developer Community



4.ARKのインストール、アップデート

・Steamcmd.shあるディレクトリに移動して起動、ログイン

$./steamcmd.sh
Steam>login anonymous

・保存するディレクトリを指定する

Steam>force_install_dir <インストールディレクトリ>

・サーバーのダウンロード。ARKのSteamIDは376030なのでこれを指定する。

Steam>app_update 376030

・SteamCMDの終了

Steam>exit

以上の手順を1行で書いて実行すると楽です。<インストールディレクトリ>部分のみ環境に合わせて

./steamcmd.sh +login anonymous +force_install_dir <インストールディレクトリ> +app_update 376030 +quit

アップデートする場合も、この手順でします。
Dedicated Servers List - Valve Developer Community
またこちらにあるものは、同様の手順でインストールできるみたい?


5.ARKの起動、停止

・ARKの起動
ARKインストールしたディレクトリ以下の

<インストールディレクトリ>/ShooterGame/Binaries/Linux/

に移動して以下のコマンドで起動できます。

./ShooterGameServer TheIsland?listen?SessionName=<セッション名>?ServerPassword=<サーバーパス>?ServerAdminPassword=<管理者パス> -server -log

<セッション名>:サーバーの名前
<サーバーパス>:サーバーにログインするときのパスワード
<管理者パス>:サーバー内のコマンドを使うときのパスワード

・停止
現在の画面で動いてる場合はCtrl+C、別ウィンドウの場合は killで

※この方法でサーバー落としていたら恐竜のロス報告がありました。
いまは、ゲーム内でDoexitするかRCONでDoexitしています。

ゲーム内→TABでコンソールが開きますのでそこで

Enable cheats <管理者パスワード>
admincheats DoExit

と入力するとサーバーが終了します。
RCONでサーバーを停止する場合→
ARK Linux個人サーバー 設定とか - Linuxとかの設定メモとかそんな感じ

6.Systemctlでの起動と停止

・起動設定ファイルの作成
/etc/systemd/system/に ark-dedicated.service ファイルの作成

#cd /etc/systemd/system/
#vim ark-dedicated.service

内容は以下

[Unit]
Description=ARK: Survival Evolved dedicated server
Wants=network-online.target
After=syslog.target network.target nss-lookup.target network-online.target

[Service]
ExecStartPre=/home/<ユーザー名>/steamcmd.sh +login anonymous +force_install_dir <インストールディレクトリ> +app_update 376030 +quit
ExecStart=/home/<ユーザー名>/<インストールディレクトリ>/ShooterGame/Binaries/Linux/ShooterGameServer TheIsland?listen?SessionName=<セッション名>?ServerPassword=<サーバーパス>?ServerAdminPassword=<管理者パス> -server -log
LimitNOFILE=100000
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s INT $MAINPID
User=<ユーザー名>
Group=<ユーザー名>

[Install]
WantedBy=multi-user.target

ユーザー名、インストールディレクトリ等は環境に合わせて。


設定を反映させる

systemctl daemon-reload

ARKの起動

systemctl start ark-dedicated.service

ARKの停止

systemclt stop ark-dedicated.service