Insurgencyサーバー立ち上げの覚書

Pocket

ついこの間、Insurgency向けのサーバーを新しく立ち上げたのですが
Souce Mod系のサーバーを立ち上げるための、日本語の文献があまりにも少なく
私が立ち上げるときにえらい苦労したので、後学のためも兼ねて
サーバーセットアップの方法を記しておきます。

尚、サーバー立ち上げ時の環境は次のとおりです。
OS : Xubuntu Desktop 14.04 LTS x64 (Ubuntu14.04互換です)
Insurgency : 2014 Aug 11 patch

必要なもの
・Linuxでコマンドシェルを使える知識
・Insurgencyを購入済みのSteamアカウント

ここに書いてあることを実行して、損害が発生したとしても当方責任負いかねます。
基本的に自己責任で行ってください。

1.Insurgency向けのユーザーを作成する

基本として、常設のサーバーファイルをsudorに登録されているユーザーで走らせることは
セキュリティ上、大きなリスクを伴います。
必ず専用のユーザーを作成して、専用のユーザーでサーバーを利用してください。

まず、専用のユーザーアカウントを作成します。

sudo adduser insurgency

次にインストール先のディレクトリとなるホームディレクトリを作成します。

sudo mkdir /home/insurgency
sudo chown insurgency /home/insurgency
sudo chmod u+w+r /home/insurgency

作成したアカウントでログインします。

sudo login insurgency

2.SteamCMDをインストールする

Steamからゲームファイルをダウンロードするため、Steamから提供されているダウンロード
設定ツールとなるSteamCMDをインストールします。
インストール先ディレクトリの作成

cd /home/insurgency
mkdir steam

SteamCMDのダウンロードとインストール

wget http://media.steampowered.com/client/steamcmd_linux.tar.gz
tar -xvzf steamcmd_linux.tar.gz
rm steamcmd_linux.tar.gz

SteamCMDのインストールが完了したら、アップデート確認のため一旦起動しましょう。

./steamcmd.sh

3.インストール、アップデート用のシェルスクリプトを作成する

サーバーファイルをSteamからダウンロード、インストールするためのスクリプトファイルを
作成します。

cd /home/insurgency
touch insurgency_updater.sh
chmod u+x insurgency_updater.sh

このファイルの内容は以下のように設定してください。

#!/bin/bash
/home/insurgency/steam/steamcmd.sh +runscript /home/insurgency/insurgency.txt

SteamCMD上で動作する、シェルスクリプトの中身となるファイルを作成します。

touch ./insurgency.txt

中身はこのような感じに

// コマンドが通らなかった場合にスクリプトを停止
@ShutdownOnFailedCommand 1

// 保存されたパスワードでなく、後述するパスワードを使用してログインする
@NoPromptForPassword 1

// 記述されたSteamアカウントでログイン
login ユーザー名 パスワード

// Insurgencyサーバーファイルのインストール先を指定
force_install_dir /home/insurgency/public

// サーバーファイルをインストール、またはアップデートする。
// InsurgencyのアプリケーションIDは237410。
app_update 237410 validate

// SteamCMDを終了する
quit

4.Insurgencyのサーバーファイルをインストールする

作成したスクリプトファイルを実行することで/home/insurgency/publicにサーバーファイルが
インストールされます。

cd /home/insurgency
./insurgency_updater.sh

コーヒーでも用意してしばしお待ちください。

5.起動用のシェルスクリプト、設定ファイルを作成する

インストールした後に、 サーバーを起動するためのスクリプトファイルを作成します。

cd /home/insurgency/public
touch start_ins.sh

内容を以下のように設定してください。

#!/bin/bash
#
# Insurgencyサーバー起動用シェルスクリプト
#
# サーバー起動コマンドライン
# -ip サーバーIP  -port ポート番号 +map デフォルトのマップ +maxplayers 最大人数
./srcds_linux -console -console -ip 192.168.1.2 -port 28015 +map market +maxplayers 24

以下のコマンドでサーバーを起動します

./start_ins.sh
(Ctrl+cでサーバーを終了)

サーバー設定を記述するcfgファイルを編集します。
設定ファイルは/home/insurgency/public/insurgency/cfgフォルダに格納されています。
主な設定ファイルserver.cfgを編集していきます。

// —————————————————————
// サーバー情報の設定
// —————————————————————
// サーバーの名前設定
hostname “サーバー名”
// rconを使用する際のパスワード
rcon_password “パスワード”
// サーバーに参加するときのパスワード
// プライベートサーバーとして立ち上げるときのみ設定してください
sv_password “パスワード”
// Coopゲーム時のロビーの最大人数
mp_coop_lobbysize 10
// サーバーに参加可能な最大人数
maxplayers 24
// —————————————————————
// ファイルダウンロードの設定
// —————————————————————
// コミュニティ配布のマップを使用していて、それらのサーバーからのダウンロードを
// 許可する場合のみ設定してください。
// (デフォルトではコメントアウト)
// sv_downloadurl “type-url-here”
// sv_allowdownload 1
// sv_allowupload 1
// —————————————————————
// 画面表示についての設定
// —————————————————————
// 死亡メッセージの表示
messagessv_hud_deathmessages 0
// スコアボードのKill数表示
sv_hud_scoreboard_show_kills 1
// スコアボードの敵兵科表示
sv_hud_scoreboard_show_enemy_classes 1
// スコアボード上に敵の死亡時アイコンを表示
sv_hud_scoreboard_show_enemy_deaths 1
// ラグドールの最大表示数
sv_ragdoll_max_count 4
// キルカメラを有効化
spec_freeze_enable 0
// 全体チャットの無効化
sv_alltalk 0
// —————————————————————
// サーバーログの設定
// —————————————————————
// サーバーのログを保存する
log on
// 以下ログに記録する事項の設定
sv_logbans 1
sv_logecho 1
sv_logfile 1
sv_log_onefile 0
// —————————————————————
// ゲームモードの設定
// —————————————————————
// 設定を変更する際には引用文中の部分のみを書き換えて
// 使用してください。
// “mapcycle.txt” – 通常のマップサイクル
// “mapcycle_all.txt”  – PvP向けの全マップを使用する
// “mapcycle_ambush.txt” – ambushモードのマップのみを使用する
// “mapcycle_attackdefend.txt” – attack/defendモードのマップのみを使用する
// “mapcycle_cooperative.txt” – COOPゲーム向けの主なマップを使用する
// “mapcycle_firefight.txt” – firefightの全マップを使用する
// “mapcycle_flashpoint.txt” – flashpointの全マップを使用する
// “mapcycle_infiltrate.txt” – infiltrate (CTF) の全マップを使用する
// “mapcycle_objrespawn.txt” – リスポーン込みのマップを収録
// “mapcycle_occupy.txt” – occupyの全マップを使用する
// “mapcycle_push.txt” – pushの全マップを使用する
// “mapcycle_singlelife.txt” – リスポーン不可のすべてのゲームモード
// “mapcycle_skirmish.txt” – skirmishの全マップを使用する
// “mapcycle_workshop.txt” – Workshopシステムにより使用される(予定)
mapcyclefile “mapcycle_cooperative.txt”
// —————————————————————
// その他の設定
// —————————————————————
// チームキルを行ったプレイヤーを次ラウンドで処罰するか設定
// {0=処罰しない, 1=トークンを削除, 2=スポーン禁止措置, 3=両方}
mp_tkpunish 3
// スポーン後ラウンドスタートするまでの秒数 (デフォルトで2秒)
mp_round_freezetime 2
// ラウンドの間のロビーでの秒数 (デフォルトで10秒)
mp_round_lobbytime 15
// スポーン後の保護機能の作動する秒数 (デフォルトで5秒)
mp_spawnprotectontime 5
// チームバランスの設定 (デフォルトで有効)
mp_autoteambalance 1
// アンバランスなラウンド終了後にチームをシャッフルする (デフォルトで有効)
mp_scrambleteams_auto 1
// スクランブルされるまでのラウンド数 (デフォルトで3ラウンド)
mp_scrambleteams_auto_windifference 3
// 死亡後のチャットを許可する設定 (デフォルトで有効)
sv_hud_deathmessages 0
// フレンドリーファイアの設定 (デフォルトで無効)
mp_friendlyfire 1
// マップごとのラウンド数の設定 (デフォルトで10ラウンド)
mp_maxrounds 5
// チームの最大勝利数の設定 (デフォルトで5ラウンド)
mp_winlimit 3
// —————————————————————
// 投票についての設定
// —————————————————————
// プレイヤーのキック投票の有効化
sv_vote_issue_kick_allowed 1
// キック投票によりサーバーに接続できなくなる時間設定 (単位は分)
sv_vote_kick_ban_duration 20
// 次マップ選定投票の有効化
sv_vote_issue_nextlevel_allowed 1
// 現在のマップを継続する投票を許可する設定
sv_vote_issue_nextlevel_allowextend 0
// すでにマップがセットされている場合に投票を禁止sv_vote_issue_nextlevel_prevent_change 1
// マップ投票を開始するまでの最低ラウンド数
sv_vote_issue_nextlevel_round_count_delay 1
// プレイヤーによるマップ投票の有効化
sv_vote_issue_changelevel_allowed 1
// プレイヤーによるゲームモード選定の投票の有効化
sv_vote_issue_changegamemode_allowed 1
// チームを逆にする投票の有効化
sv_vote_issue_switch_teams_allowed 1
// チームシャッフルの投票の有効化
sv_vote_issue_scramble_teams_allowed 1
// ゲームリスタートの投票の有効化
sv_vote_issue_restart_game_allowed 1
// 投票ごとの間に設ける時間の設定
sv_vote_timer_duration 15
// 投票が終了した後、実行するまでの間の時間設定
sv_vote_command_delay 2
// 投票を許可するか設定
sv_allow_votes 1
// 投票が否決された場合に同じ投票を提案できるまでの時間
sv_vote_failure_timer 300
// 一人がどれくらいのスパンで投票を提案できるかの時間設定
sv_vote_creation_timer 120
// 投票を有効化するための最低投票数(単位は割合)
sv_vote_quorum_ratio 0.6
// 観戦モードのプレイヤーの投票を許可するか設定
sv_vote_allow_spectators 0
// 投票関係の問題を修正するための設定(必ず1にしてください)
sv_vote_ui_hide_disabled_issues 1

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください