ARK設定メモ

情報まとめときたい(Linux と ARKがメイン)

ARK:Survival Evolved コンソールコマンド 一覧

Google翻訳メイン ↓ソース
Console Commands - Official ARK: Survival Evolved Wiki

基本

EnableCheats <パスワード>

管理者コマンドを有効にする

EnableCheats pass123
ShowMyAdminManager

管理者用GUIを開きます。これにより、多数の便利な管理者用の項目に簡単にアクセスできます

ShowMyAdminManager

サーバー関係

プレイヤー関係

アイテム、建物、恐竜関係

その他

ARK The Island 洞窟の場所 一覧

f:id:arknut:20170512212938p:plain

各洞窟の特徴

洞窟名 気温 敵の強さ ペットの可否 推奨装備 備考
大物 42℃ 弱め 小型可 フック・ギリースーツ 熱い。落下有り。
狩人 5℃ 小型可 毛皮装備 洞窟の中では難易度は低めだと思われる。
強者 -18℃ かなり強い 不可 フック・ピッケル・高品質の毛皮装備 防虫剤・フリアカレー・回復薬などもあると便利。
群集 -5℃ 途中まで可 毛皮装備・スキューバ装備 途中から水中を泳いで進む。迷路のように入り組んでいる。
賢者 5℃ 弱い 小型可 毛皮装備 洞窟の中では難易度は低めだと思われる。
狡猾 8℃ かなり強い 推奨 キューバ装備 海中にあるため水棲生物推奨。入口周りに大きな水草がある。
天帝 -12℃ 不可 フック・毛皮装備 落ちる所が多数あるため、足元に注意。
暴食 -5℃ 弱め 小型可 フック・毛皮装備 入口に水があるが泳いでいける。高低差がかなりあるため注意。アスレチック
免疫 26℃ 強い 小型可 ガスマスク・ギリースーツ Lv200越えが大量にいる。
野獣 9℃ 推奨 キューバ装備 深海にあるため水棲生物推奨。入口周りに大きな水草がある。

ARK 個人サーバー 設定メモ

Google翻訳メイン ↓ソース
Server Configuration - Official ARK: Survival Evolved Wiki

とりあえずわかるところだけコマンドライン引数とGame.iniも追加するかも

コマンドライン引数

ほぼGoogle翻訳

./ShooterGameServer TheIsland?listen?ServerCrosshair=True?MapPlayerLocation=True?AllowThirdPersonPlayer=True?MaxStructuresInRange=100 -UseBattlEye

上のように指定する。
?で始まるのはGameUserSetting.iniでも設定できるかも・・?
よくわからんのとか、やばそうなのは分けてある。

引数 Platform 効果
?AllowAnyoneBabyImprintCuddle=true 誰もが赤ちゃんの恐竜(抱擁など)を「世話する」ことができるようにするには、これを使用します。
?AllowCrateSpawnsOnTopOfStructures=true 構造物によって妨げられるのではなく、空気の供給箱を構造物の上に表示することができるようになりました。
?AllowFlyerCarryPvE=true PvEのフライヤーは野生の恐竜を運ぶことができます。
?AllowFlyingStaminaRecovery=false プレーヤーが立っているときにライダーがスタミナを回復する必要がある場合は、trueに設定します。
?AllowMultipleAttachedC4=false 恐竜ごとに複数のC4を接続できるようにするには、trueに設定します。
-automanagedmods All 自動MODのダウンロード/インストール/アップデート。詳しくはARK Linux個人サーバー Modの導入方法2 - ARK設定メモ
?ClampItemSpoilingTimes=true すべての腐敗する時間をアイテムの最大腐敗時間にクランプする。腐敗の時間を変えるModで問題を引き起こす可能性があります。
?DestroyUnconnectedWaterPipes=true All リアルタイムで2日後にパイプが非パイプに(直接的または間接的に)接続されておらず、同盟のプレイヤーが近くにいない場合、パイプは自動的に破壊されます。
?EnableExtraStructurePreventionVolumes=true All これを使用して、特定の資源に富んだ地域、特に主要な山々の周辺のアイランドでの設定を完全に無効にします。
?FastDecayUnsnappedCoreStructures=true アンブッキングされた土台/柱が5倍速で腐敗します。
-ForceAllowCaveFlyers All フライヤー恐竜を洞窟に入れることを許可する。
?ForceFlyerExplosives=true All QuetzalとWyvernはそれにC4をつけて飛行することはできません。飛行させるにはこのパラメータをtrueに設定してください
-ForceRespawnDinos All 再起動時にすべての野生恐竜をリスポーンする。ペットは含まない
-gameplaylogging All Fittestサーバーの起動は、このコマンドラインオプションを使って開始することができます。\ Savedフォルダに日付付きログファイルを出力します。タイムスタンプ付きkill&winnersログにはSteamID、Steam名、キャラクター名などが記録されます。
-MapModID=######### All 専用サーバーでは、この構文を使用してマップ名を直接指定する必要はなく、ModIDを介してカスタムマップをオプションで読み込むことができます
?MaxPersonalTamedDinos=Number 部族ごとの恐竜の制限を有効にします。 (公式サーバーで500)
?MinimumDinoReuploadInterval=xxxx All 許可された恐竜の再アップロード間の秒数(デフォルトは0、公式サーバでは43200に設定されています。これは12時間です)。
-nofishloot All フィッシングロッドを使用する場合は肉以外のものを無効にするパッチ245.9に導入
?NonPermanentDiseases=true 病気を永続させません。
?OverrideStructurePlatformPrevention=true このオーバーライドを使用すると、タレットまたはスパイク構造をプラットフォームのサドル上に構築して機能させることができます。パッチ247.999
?PreventDiseases=true これにより、サーバー上の病気は完全に無効になります。
?PvPDinoDecay=true Offline Raiding Preventionがアクティブな間に恐竜が腐敗するのを防ぐには、trueに設定します。
?PvPStructureDecay=true Offline Raiding Preventionがアクティブな間に構造が減衰するのを防ぐには、trueに設定します。
-server ? ?
-servergamelog All "RCONコマンド ""getgamelog""を使用して一度に100エントリを出力し、 ""\ Logs""の日付ファイルに出力し、コマンドラインでRCONバッファの最大長を調整する"
-ServerRCONOutputTribeLogs グローバルチャットに加えて、部族チャットをrconに表示できるようにします。
?TribeLogDestroyedEnemyStructures=true デフォルトでは(犠牲者部族のための)敵の構造物破壊は部族ログには表示されません。これを有効にするにはtrueに設定します。
-usecache All "〜70%高速のローディング速度オプション。 ""Experiment Fast Load Cache""起動オプションを選択します(起動コマンドラインに手動で ""-usecache""を追加してください)。 1回目と2回目以降はゲームを開始し、負荷はまだまだ遅くなりますが、3回目以降は速くなります。これは、PrimalDataに対してデフォルトで追加された188.2の時点で非難されるかもしれません。また、すべてのマップに追加されることになっていましたが、これが発生したかどうかは明らかにされていません。"


GameUserSetting.ini一覧

設定ファイルは以下のPath

ShooterGame/Saved/Config/LinuxServer/GameUserSetting.ini

[ServerSettings]
ServerCrosshair=True
AllowThirdPersonPlayer=True
MapPlayerLocation=True
MaxStructuresInRange=100

のように追加する

設定名 値タイプ デフォルト 効果
map_name string None (コマンドライン引数でのみ指定できます。)マップを選択する。現在は TheIsland、TheCenter、ScorchedEarth_Pのどれか
AllowCaveBuildingPvE boolean FALSE Trueに設定すると、PvEモードも有効になっているときに洞窟内に建物を作ることができます。 (パッチ194.0)
AllowFlyerCarryPvE boolean FALSE PVEの場合、空を飛ぶ恐竜がほかの恐竜やプレイヤーを拾うことができます。
allowThirdPersonPlayer boolean FALSE 3人称視点を許可するかどうか
alwaysNotifyPlayerJoined boolean FALSE 誰かがサーバーに参加した場合、プレイヤーに通知されます。
alwaysNotifyPlayerLeft boolean FALSE 誰かがサーバーから離脱した場合、プレイヤーに通知されます。
AutoSavePeriodMinutes float 15 サーバーデータの自動保存の間隔を設定する
BanListURL URL BANリストを取り込みます。公式のグローバル禁止リストを使用するか、必要なオンライン禁止リストを参照してください。二重引用符で囲む必要があります。 (パッチ201.0)
DayCycleSpeedScale float 1 1日の長さを決めます。値が1の時、実時間28分でゲーム内時間の1日になります。値が小さいほど1日のサイクル遅くなり、0.035にすると実時間とゲーム内時間が進みが近くなります。
DayTimeSpeedScale float 1 日中のARKにおける時間経過の係数を指定します。この値は、各夜の長さ(NightTimeSpeedScaleで指定された長さ)を基準にして、各日の長さを決定します。この値を下げると、毎日の長さが長くなります。
DifficultyOffset float 0.2 難易度を指定します。詳細は別ページ
DinoCharacterFoodDrainMultiplier float 1 恐竜の食物消費の倍率を指定します。値が高いほど食物消費量が増加します(恐竜は空腹が早くなります)。テイム時間にも影響します。
DinoCharacterHealthRecoveryMultiplier float 1 恐竜の健康回復の倍率を指定します。値が高いほど回復率が高くなります(恐竜は速く治癒します)。
DinoCharacterStaminaDrainMultiplier float 1 恐竜のスタミナ消費の倍率を指定します。値を高くするほどスタミナの消費量が増加します(恐竜は速く疲れます)。
DinoCountMultiplier float 1 恐竜の産卵の倍率を指定します。値が高いほど、ARK全体で産卵する恐竜の数が増えます。
DinoDamageMultiplier float 1 恐竜の攻撃力倍率。値を大きくするほどダメージが大きくなります。値を小さくすると値が小さくなります。
DinoResistanceMultiplier float 1 恐竜が攻撃されたときに受けるダメージに対する抵抗力の倍率を指定します。
DisableDinoDecayPvE boolean FALSE 所有している恐竜が徐々に(7日間)減衰するのを無効にする。
DisableStructureDecayPvE boolean FALSE プレーヤーの建築物が徐々に(7日間)減衰するのを無効にする
globalVoiceChat boolean FALSE ボイスチャットがグローバルになる
HarvestAmountMultiplier float 1 採取の収穫量の倍率。値が大きいほど1回にとれる数が増える
HarvestHealthMultiplier float 1 採取物の耐久値の倍率。値が大きいほど耐久力が増える。
listen N/A None (コマンドライン引数でのみ指定可能) ほかのプレイヤーからの接続を受け付ける。マルチプレイヤーサーバーでは必須。
MaxPlatformSaddleStructureLimit integer unknown プラットフォームサドルに設置できる建築物の最大数。
MaxPlayers integer 70 サーバーに入れる最大数。 [/script/engine.gamesession] の下に置く必要があります。
MaxStructuresInRange integer Unknown 特定の範囲内に建築できる構造物の最大数を指定します。
NightTimeSpeedScale float 1 夜間の時間経過の係数を指定します。
noTributeDownloads boolean FALSE ほかのサーバーからのキャラクターデータのダウンロードを無効にする。
NPCNetworkStasisRangeScalePercentEnd float ?
NPCNetworkStasisRangeScalePlayerCountEnd ?
NPCNetworkStasisRangeScalePlayerCountStart ?
PerPlatformMaxStructuresMultiplier float 1 ?プラットフォーム上の構造の制限を増やす。この値を増やすと、サーバーのパフォーマンスが低下する可能性があります。
PlayerCharacterFoodDrainMultiplier float 1 プレイヤーキャラクターの摂食量の倍率。値を大きくするほど、食べ物の消費量が増えます
PlayerCharacterHealthRecoveryMultiplier float 1 プレイヤーキャラクターの健康回復の倍率を指定します。値が高いほど回復率が高くなります
PlayerCharacterStaminaDrainMultiplier float 1 プレイヤーキャラクターのスタミナ消費の倍率を指定します。値を高くするほどスタミナの消費量が増えます
PlayerCharacterWaterDrainMultiplier float 1 プレイヤーキャラクターが水を消費するための倍率を指定します。値を大きくするほど水の消費量が増えます
PlayerDamageMultiplier float 1 プレイヤーの攻撃力の倍率を指定します。値が増えるほど与ダメージが増えます。
PlayerResistanceMultiplier float 1 プレイヤーの防御力の倍率を指定します。値が増えるほど被ダメージが増えます。
proximityChat boolean FALSE 近くにいるプレイヤーだけがチャットメッセージを見ることができます
PvEDinoDecayPeriodMultiplier Unknown 1 ... (since 206.0)
PvEStructureDecayDestructionPeriod Unknown 0 PvEモードでプレイヤーの建築物が減衰するのに必要な時間を指定します。この執筆時点では、このオプションの特定の効果と有効な値の範囲は不明です
PvEStructureDecayPeriodMultiplier float 1 PvEモードでのプレーヤー建築物の減衰率の倍率を指定します。この執筆時点では、このオプションの特定の効果と有効な値の範囲は不明です。
PvPStructureDecay boolean FALSE PvPサーバーの建築物の減衰を無効にします。
ResourcesRespawnPeriodMultiplier float 1 リソースの再生成時間倍率。値が小さいほど頻繁に再生成されます。
ServerAdminPassword string None 管理者用のパスワード
serverForceNoHud boolean FALSE HUBを常に無効にします。
serverHardcore boolean FALSE ハードコアモードを有効にする(プレイヤーキャラクターは死亡時にレベル1に戻る)
ServerPassword string None 指定されている場合、プレイヤーはこのパスワードを入力してサーバーに参加する必要があります。
serverPVE boolean FALSE "FALSEを指定するとPvPモード、 TRUEを指定するとPvEモード"
ShowMapPlayerLocation boolean FALSE 地図を表示したときに各プレイヤーに正確な位置を示す
SpectatorPassword string None 管理者以外の観客を使用するには、サーバーが観客のパスワードを指定する必要があります。どのクライアントもこれらのコンソールコマンド:requestspectator を使用して停止することができます。詳細とホットキーについては、パッチ191.0を参照してください。
StructureDamageMultiplier float 1 建築物の攻撃力の倍率を指定します。値が大きくなるほどダメージが大きくなります。
StructureResistanceMultiplier float 1 建築物の防御力の倍率を指定します。値が大きくなるほどダメージが大きくなります。
TamingSpeedMultiplier float 1 テイムスピードの倍率を指定します。
TributeCharacterExpirationSeconds integer 86400 アップロードされた生存者の有効期限を設定します。
TributeDinoExpirationSeconds integer 86400 アップロードされた恐竜の有効期限を設定します。
TributeItemExpirationSeconds integer 86400 アップロードされたアイテムの有効期限を設定します。
XPMultiplier float 1 経験値倍率。

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

※自己責任でお願いします。頻繁にいじるので自分用メモ

主に↓を参考にしてます。英語読める方はこのページ呼んだほうがいいかも?
http://ark.gamepedia.com/Dedicated_Server_Setup


実行環境

WebArena http://web.arena.ne.jp/vps-cloud/
こちらの6GBプラン

OS:CentOS7
ARKバージョン:256.21

での情報です。

前提条件

64bitOSが必要。Serverは、64bitの実行ファイルなので32bitでは実行できません。プログラムのテストはUbuntu 14.04で行っている。

ハードウェア要件

開始するには、サーバーに少なくとも6GBのRAMが必要です。接続されたプレーヤーの数が増えるにつれて、メモリ要件が増加します。Linuxでは、インストールを行わずに3.2GBのRAMを使用します。

上記のハードウェア構成でログイン0人のとき、CPU使用率15%、メモリ使用率60%ほど
2人ログインでCPU使用率40%、メモリ使用率は60%と変わりありませんでした。
建築物やテイムした恐竜が増えればそれだけメモリ使用率等も上がると思います。



ポートの開放

サーバーは、以下にリストされたポートで接続を待ち受けます。

ポート 目的 補足
UDP 27015 スチームサーバーブラウザーのクエリーポート 必須
UDP 7777 ゲームクライアントポート 必須?
UDP 7778 UDP Raw ポート(ゲームクライアントポート + 1) (任意)
TCP 27020 RCON用のポート (任意)


ポートを開放し、設定を反映させます。

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

必要なライブラリのインストー

ARKサーバーのインストールはSteamCMDを使って行います。
64ビットLinuxサーバでは、steamcmdのインストール/実行に32ビットのバイナリが必要ですのでインストールします。

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

ファイルオープン数の上限を変更

サーバープログラムのファイルオープン数がデフォルト値を上回るみたいです
この変更をしないとゲームサーバーが正常に起動しない可能性があります。サーバーが起動しているように見えても、必要なファイルをすべて開くことができないことがあります。


まずOSのファイルオープン数を変更します。

#vim /etc/sysctl.conf

以下の行を追加します。

fs.file-max=100000

設定を反映させて、確認します。

#sysctl -p /etc/sysctl.conf
fs.file-max = 100000

#ulimit -n
1000000

次に1プロセスのファイルオープン数を変更します。

#vim /etc/security/limits.conf

以下の内容を追加します。

*               soft    nofile          1000000
*               hard    nofile          1000000

変更を適応します。

session required pam_limits.so

※後述のsystemdを使用して専用サーバーを起動する場合は適用されません。そちらはsystemdの起動設定にて変更します。



SteamCMD、ARKのインストー


以下の設定でインストール設定を書きます。

設定名
CentOSのユーザー名 steam
SteamCMDインストーディレクト /home/steam/Steam
ARKインストーディレクト /home/steam/Steam/ark

ユーザーの作成、ディレクトリの作成

#useradd steam
#passwd steam
#su - steam
$mkdir Steam
$mkdir Steam/ark

SteamCMDのダウンロードと起動

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

Steam> と出てくるので以下のように入力

Steam> login anonymous
Steam> force_install_dir ark
Steam> app_update 376030 validate
Steam> exit

上から、匿名ログイン、インストーディレクトリの指定、指定サーバーのインストール、終了
app_update 376030 validate を実行するとARKのダウンロードが始まります。
途中エラーで止まることがありますが、もう一度、app_update 376030 validateを実行すればいけました。

ここまでで、サーバー自体は起動できるようになります。
起動コマンドは↓です。下表の3つの部分を自分好みに書き換えてください。

$cd Steam/ark/ShooterGame/Binaries/Linux/
$./ShooterGameServer TheIsland?listen?SessionName=<server_name>?ServerPassword=<join_password>?ServerAdminPassword=<admin_password> -server -log
server_name 表示されるサーバー名
join_password ログインパスワード
admin_password 管理者パスワード

サーバーを初めて実行するときは、自動でShooterGame / Savedという名前のフォルダーが作成されます。サーバーが少なくとも1回は実行されているが、このフォルダーが作成されていない場合は、そこに新しいフォルダーとファイルを作成できなかった可能性があります。サーバーがインストールされているフォルダーが、実際にサーバーを実行しているユーザーアカウントによって読み書き可能であることを確認します。
また、デフォルトでは、サーバーソフトウェアは15分ごとに世界のデータを自動的に保存するように設定されています。最初の15分が経過する前にサーバーが落ちた場合、データは保存されません。

ログイン方法

WindowsのSteamクライアントより

表示 - サーバーを選択
f:id:arknut:20170405125910p:plain

お気に入り - サーバーを追加 - IPの入力 - 追加
f:id:arknut:20170405125925p:plain


ゲームを起動して、サーバーフィルターでお気に入りを選択すると出てきます。

systemctlによる自動起動

サーバー再起動時、自動で起動するようにsystemctlに登録します。

まず起動設定ファイルを作ります。

#cd /etc/systemd/system/
#vim ark-dedcated.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/steam/Steam/steamcmd.sh +login anonymous +force_install_dir ark +app_update 376030 +quit
ExecStart=/home/steam/Steam/ark/ShooterGameServer TheIsland?listen?SessionName=<server_name>?ServerPassword=<join_password>?ServerAdminPassword=<admin_password> -server -log
LimitNOFILE=100000
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s INT $MAINPID
User=steam
Group=steam

[Install]
WantedBy=multi-user.target

個人の環境に合わせて変更する場合はここら辺です。

パラメータ 内容
ExecStartPre 起動前に実行される処理
ExecStart 起動処理
LimitNOFILE 上限ファイルオープン数の指定
ExecReload リロード時の処理
ExecStop 停止時の処理
User 起動するCentOSのユーザーを指定する
Group 起動するCentOSのグループを指定する

設定を反映させる。

#systemctl daemon-reload

自動起動をONにする

#systemctl enable ark-dedicated.service

ARKの起動

#systemctl start ark-dedicated.service

ARKの停止

#systemclt stop ark-dedicated.service

※デフォルトでは、サーバーソフトウェアは15分ごとに世界のデータを自動的に保存するように設定されています。15分が経過する前にサーバーがクラッシュした場合、データは保存されません。

サーバーのアップデート

systemctlなら起動時にアップデートする・・はず

手動でのアップデートはsteamcmd.shのあるディレクトリでこの一行

$./steamcmd.sh +login anonymous +force_install_dir ark +app_update 376030 +quit

サーバーのバックアップ

ShooterGame/Savedにすべてのファイルがあるのでこれを保存しておく。

$cd Steam/ark/ShooterGame/
$zip -r backup.zip Saved

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