Top > マルチサーバー構築について
HTML convert time to 0.055 sec.


マルチサーバー構築について

Last-modified: 2017-11-03 (金) 13:05:26

このページは常時更新中です。旧Verの情報も含まれています。その点を理解してご利用ください。

はじめに Edit

サーバーの運営には知識や経験が必要になります。また、ゲームサーバーとはいえ踏み台にされ周囲に被害を及ぼし損害賠償責任を負わされる可能性もあります。よって

  • 自力で解決する事が出来ない人
  • OSやネットワークの最低限の知識をお持ちで無い人
  • 責任を取ることができない未成年

は、既存のマルチに入ってプレイされることをお勧めします。

LogMeIn Hamachi(いわゆるハマチ)の安易な使用は推奨されません。
HamachiはVPNを構築するソフトウェアであり、ポート開放に代わる手段ではありません。
VPNの特性を十分理解せずに使用すると、あなたの端末が危険に晒されます。あるいは接続者にも危険が及びます。

サーバー機の必要スペック Edit

クライアントが十分に動かせる能力があれば問題ないと思います。なおGPUは必要ありません。
また、ネットワークは十分な上り速度を持つ光回線なら問題ないと思います。
無線接続や、携帯電話回線は使用しないようにしましょう。光回線メーカーによりパソコンの最大接続数が[10]台に限定されている場合もあります

  • 実績
    運用方法バージョンCPUメモリストレージOS上り回線速度備考
    専用サーバー
    (単独)
    α12.5i5-2520M8GBSSD 250GBWin7約16Mbps最大3人程度なら問題なし
    専用サーバー
    (クライアントと併用)
    α12.5G161016GBSSD 320GBWin8約16Mbps最大3人程度ならギリギリ
    VPS
    (Dedicated Server 64bit)
    α14系
    α15.2 b8
    仮想CPU:2コア4GB+4GB(Swap)SSD 60GBUbuntu 16.04
    (Linux)
    約300Mbps(国内専用線の場合)最大8人設定で運用、6人ほどで問題なし。定期的な再起動が必要。
  • 公式推奨スペック(Dedicated Server単独)
    • 32bit環境
      • CPU: 3.0Ghz Quad Core(SSE2対応)
      • メモリ: 6GB
      • ネットワーク: 最低でも上り3Mbps
      • ストレージ: 3GB以上の空き領域
    • 64bit環境
      • CPU: 3.0 Ghz Quad Core CPU(SSE3対応)
      • メモリ: 6GB
      • ネットワーク: 最低でも上り3Mbps
      • ストレージ: 3GB以上の空き領域

サーバーの立て方 Edit

現在、マルチサーバー構築には以下の二通りの方法があります。

  • サーバー単体として動かす方法
    • クライアントとサーバーと同一のPCで起動する
    • クライアントとサーバーを別PCで起動する
    • ゲームサーバーをレンタルして設定を行い、そこに接続する
  • ゲーム内からSurvival MPを選択してクライアントとサーバーを一体として動かす方法

後者の場合、サーバー構築者にはかなり強力なマシンスペックが要求されます。また、サーバー構築者がクラッシュやエラーによって強制終了してしまうと、プレイヤーデータはロールバックされてしまいます。
TFPは今後のバージョンにおいてクライアントがサーバを兼ねる方式のサポートはしないと明言しているため、サーバ専用のビルドを使うべきでしょう。

Step.1ポート開放 Edit

サーバーを建てる場合はまずはじめにポート開放をします。

手順は

  1. ポート開放するPCのIPアドレスを固定、確認します。
  2. ポート開放を行います。
    • その際に必要な情報が、「ポート開放するPCのIPアドレス」「解放するポート、プロトコル」
  3. ファイヤーウォールの設定が必要なら行います
  4. ポート開放をされているかの確認をします

IPアドレスの固定方法やポート開放の作業は環境によって手順が変わるので割愛しますが、リスクを理解せず開放したり、出所の定かでないツール等を実行することは大変危険なので気をつけましょう。


開放するポート

TCP26900(必須)
UDP26900-26903(公式では必須、開放しなくても動作する報告あり)

※上記はゲームポート設定が26900(デフォルト)の場合です。別途必要なら管理コンソールの8080、Telnetの8081も確認してください。普通必要ありません。
※専用ビルドとして24/7(Time&Weeks)24時間常設サーバーと表記・管理するならば、Telnet8081のネットワーク通信許可をチェックしてください。7DaystoDieネットワークサーバー間通信が必須・ゲームサーバー傘下としてサーバーIDが登録されます。MPゲーム一覧にある全てのサーバーにサーバーIDは連番登録されている

  • Ping豆知識:
    ...

ポート開放参考サイト
WindowsのIPアドレス固定する方法一覧
気まま研究所 7Days To Die サーバーの建て方
使用しているルータがUPnPに対応している場合はこのようなオープンソースのツールもあります。
ポート開放の確認

7dtd a12.5におけるサーバーの建て方 for Windows 7

Step.2 サーバー構築 Edit

Step.2(1) 7 Days to die(以下7DTD)付属の起動batを使う方法 Edit

Windowsでのサーバー構築
α11より既存のbatファイルでの起動が可能になってます。
 この方法は最もスタンダードで安全です。(ここでいう安全とは、問題があった場合公式が対応してくれる可能性があるということ。)

 まずサーバーの設定を行います。7DTDをダウンロードした場所を開いてください。steamならば以下の場所にあるでしょう。
 「C:\Program Files (x86)\Steam\SteamApps\common\7 Days To Die」

 このフォルダの中にserverconfig.xmlというファイルがあります。これをテキストエディタ等で開きます。
 開き終わったら、この中の各種項目を変更していきます。

 <property name="○○○" value="△△△"/>の△△△を変更します。

プロパティ名説明
ServerPort数値(ポート番号)使用するポート番号を変更します。ここを変更した場合、開放するポート番号が変わります。
ServerIsPublictrue/falseConnectToServer画面のサーバー一覧に表示するかしないかを決定します。trueで表示します。
ServerName文字列(全角は×)サーバーの名前です。(サーバー一覧のサーバー管理者の名前になります。)
ServerPassword文字列(全角は×)サーバーにパスワードを設定します。
ServerMaxPlayerCount数値(1-2-4-8-16-32-40-?)最大接続人数です。変更人数はゲーム内からサーバーを建てる場合の数値を参考にしました。上限は不明です。上げるほどメモリを食います。α15現在23名の報告。借鯖最大40名
ServerDescription文字列(全角は×)サーバーの説明文(触らなくてもいいです)
ServerWebsiteURL文字列(全角は×)サーバーのウェブサイトのURL(公開しないのなら触らなくてもいいです)
GameWorldNavezgane or Random Genどのようなマップを生成するかについての設定です。固定マップNavezgane。ランダム生成マップはRandom Genです。
GameName文字列(全角は×)ワールドの名前です。(サーバーリスト一覧のTOPName、ゲームメニューのセーブデータの名前です。)
ランダム生成にしている場合これがseed値になります。なおここを変更すると新しいWorldができます。
GameDifficulty0-1-[2]-3-4--567ゲームの難易度です。数字が大きくなるほど難しくなります。5以上は上に変更後に再起動により上がる
GameModeGameModeSurvivalMP or GameModeSurvivalSPゲームモードです。基本的にGameModeSurvivalMPを入力すれば問題ありません。基本MPです、SPからMPに変更された場合はSPに戻せません
ZombiesRun[0]-1-2ゾンビの走る条件の設定です。
0:夜だけ走る(デフォルト)。1:走らない。2:常に走る。
BuildCreatetrue/falseクリエイトモード(アイテムやブロックを無制限に出せる)にする設定です。基本的にfalseで問題ありません
DayNightLength数値(分) ?-[50]-?一日の長さです。MPは50分がデフォルトです。
DayLightLength数値(1=ゲーム内時間の1時間) ?-[18]-?太陽の出ている時間。すなわちデフォルト時のゾンビが走らない時間です。18がデフォルトです。
FriendlyFiretrue/false他のプレイヤーへ攻撃があたるかあたらないかの設定です。Trueにすると他のプレイヤーを殺すことができます。falseはALLIESの+ または Applicant(申請)/ Approved(承認)した仲間プレイヤーにNoFriendlyFireの効果があります。
PersistentPlayerProfilestrue/falsefalseなら、プレイヤープロフィールの変更が可能になります。公開サーバーならtrue。非公開ならfalseでいいと思います。
PlayerSafeZoneLevel数値デフォルトはレベル4.レベルXXまで、プレイヤー30ブロック以内の野良ゾンビ(野生動物も含む)が生まれない。家の周辺・ホード(昼/夜/犬/7毎)は別として条件が合えばスポーンします。ビックリゾンビは除く
PlayerSafeZoneHours数値デフォルト3時間。プレイ時間がログインスタート後、連続YY時間までゾンビが生まれない。プレイヤーから前後左右15ブロック以内のエリア。上記PlayerSafeZoneLeveとは別。ビックリゾンビも含む(生存3日以内)。
ControlPanelEnabledtrue/falseサーバー管理者もしくはそれに付随する人物がコンソール等からワールドを制御するコマンドを使えるようにするかどうかの設定です。詳細は別ページに記述されていますのでそちらをどうぞ。
ControlPanelPort[8081]使用するポートです。デフォルトでいいでしょう。
ControlPanelPassword[CHANGEME]コントロールパネルのアクセスパスワードです。外部にサーバーを公開する場合は必ず変更してください。
TelnetEnabled[true]/falseTelnetを使用するかどうかです。デフォルトで問題ありません※Telnetを設定する必要があります詳しくはググって下さい
TelnetPort[8081]Telnetのポートを指定します。デフォルトで問題ありません
TelnetPassword文字列(全角は×)Telnetのパスワードを指定します。外部にサーバーを公開する場合は必ず変更してください。
AdminFileName文字列(全角は×)サーバー管理者やモデレータなどの設定を行うファイルの名前を指定します。デフォルトで問題ありません
DropOnDeath[0]-1-2-3死亡したときのインベントリやベルト内アイテムについて指定します。
0:全てのアイテムをその場に落とす。1:ベルトのアイテムのみ落とす。2:バックパックのアイテムのみ落とす。3:全て消える。
DropOnQuit[0]-1-2-3サーバーから退出したときアイテムをどうするか指定します。
0:何もしない。1:全てのアイテムをその場で落とす。2:ベルト内アイテムのみ落とす。3:バックパック内アイテムのみ落とす。
EnemySenseMemory数字(秒)ゾンビが何かを感じてから追跡する時間(秒)です。デフォルトは60(秒)です
EnemySpawnMode0-1-2-[3]-4-5ゾンビがスポーンするときに出現する数です。
0 = Disabled 0%, 1 = Very Low 50%, 2 = Low 75%, 3 = Medium 100%, 4 = High 125%, 5 = Very High 150%
EnemyDifficulty[0]-1ゾンビの強さです。0:Normal 1:Feral 違いは壁越しに見えない/見える
BlockDurabilityModfier数字(単位:%)ブロックの硬さです。100%を基準として小さくすれば柔らかく、大きくすれば硬くなります。25%・50%・100%・150%・200% 0%のみ最下層の岩盤を破壊・取得可能なブロックに変化できます(チート対策:未確認)
LootAbundance数字(単位:%)探索物の豊富さです。小さいと物資が少なくなります。デフォルトは100
LootRespawnDays数字(単位:days)探索物の中身が再度補充される日数です。デフォルトは30
LandClaimSize数字(単位:ブロック)ブロックの耐久値をあげる。赤い旗マークのブロック。PvPの拠点保護目的。
64・128・256においてはゾンビ攻撃にも有効、ただし期限切れや再設置しない場合はこの限りではない。デフォルトは7
LandClaimDeadZone数字(単位:ブロック)LandClaimBlockの範囲に新たにClaimBlockが置けない範囲
ブロック増設禁止範囲。デフォルトは30
LandClaimExpiryTime有効期限(単位:日)現実日数によってオフラインでも保護される効果時間。デフォルトは3
LandClaimDecayMode[0]-1-2クレームブロックの効果は最初の一日は100%ですが、以後有効期限まで減衰していきます。その減衰関数を指定します/ 0:線形減衰  1: 指数関数的減衰 2: 期限まで100%(劣化なし)
LandClaimOnlineDurabilityModifier1-2-[4]-8-16-32-64-128-256標準4倍 公式推奨32倍:オンラインでのブロックの硬さの倍率変動(1・2・4・8・16・32・64・128・256)
LandClaimOfflineDurabilityModifier1-2-[4]-8-16-32-64-128-256標準4倍 公式推奨32倍:プレイヤーがオフライン(常時運用Serverのみ)でのブロックの硬さの倍率変動(1・2・4・8・16・32・64・128・256)
AirDropFrequency数字(単位:時間)航空支援物資の間隔です。デフォルトは168(7days)/72(3days)/120(5days)
AirDropMarkertrue/false航空支援物資の落下地点のマーカーの有無。
MaxSpawnedZombies数字(単位:%)そのワールドにおいて、ゾンビが最大何体同時に沸いていられるかを指定します。デフォルトは60(Horde最大値60匹)最大値は80(Horde最大90-120匹)サーバーが重い場合はこれを少なくしましょう。
ゾンビ1体に消費されるメモリー(MB)が異なる。(Horde最大限界値は100匹の3回の300匹/異常値、100以上はメモリーが16GB-64GBが必要)
MaxSpawnedAnimals数字(単位:%)そのワールドにおいて、動物が最大何体同時に沸いていられるかを指定します。デフォルトは50
EACEnabledtrue/falseアンチチートツールを有効にするかを指定します。現状trueにしたほうが確実に良いです。海賊ゲームの排除を目的にしています。ちなみに、テストモードでWindowsを起動している場合EACが有効にできないためEACサーバーには入れない可能性があります。
SaveGameFolderパスゲーム情報を指定したパスに保存します
デフォルトではコメントアウトされて、無効化してます

 書き換えが終わったら上書き保存してください。(※アップデートで書き換えられる事がある為、別の場所にも別途保存してください
 次に、同フォルダに入っているStartDedicated.batファイルをダブルクリックして起動しましょう。

 初回起動時、「ファイルが見つかりません」と言うメッセージが出ますが、問題ありません
 (過去のログファイルが存在しない為のメッセージだと思われます、2回目以降は表示されません)
 「Server running in background, you can close this window.
  You can check the task manager if the server process is really running.」
 と表示されたら、何かボタンを押して画面を閉じます
 この後は、コントロールパネルやtelnetなど使い操作します

 サーバー一覧に表示されるようにしている場合は、一覧からサーバー名で検索して入りましょう。
 IPアドレスを直接指定して入る場合は、自分のワールドに入る際には必ず127.0.0.1サーバーを起動するPCのローカルアドレス(192.XXX.XXX.XXX)もしくはLANマーク(localhost)から自分のサーバーへ入りましょう。他の人にIPを教える場合は、グローバルIPを教えましょう。(DDNSサービスなどを使っている場合はそれでもOK)

  • 確認君+
    使い方

  • 難易度変更の注意点
    トリビア

1台で複数のプロセス起動方法 Edit

 serverconfig.xmlファイルをコピーして別名で保存します(説明の便利上、serverconfig2.xmlとします)
 serverconfig2.xmlの下記の項目を変えます(同じにすると問題が出ます)

GameNameGameNameを同に名前にした場合、同じデータを参照するので破損や不具合が出る可能性が高いです
どうしても、同じGameName(シード値)を利用したい場合は、SaveGameFolderを利用し、
別々の場所にデータを保存してください
ServerPortServerPortは、既に使っているポートと3は開けてください
例:26900を既に設定している場合は、26903以降を利用してください
ControlPanelPort
TelnetPort
ControlPanelPort・TelnetPortは項目が違うからと言って既に記載している値は使わないでください

startdedicated.batをメモ帳などで開き、下記の部分を探してください(一行で記載されてます)
 start 7daystodie -logfile 7DaysToDie_Data\output_log%LOGTIMESTAMP%.txt -quit -batchmode -nographics -configfile=serverconfig.xml -dedicated
 
上記部分をコピーし、次の行にペーストして、下記の二箇所を変更してください

-logfile 7DaysToDie_Data\output_log%LOGTIMESTAMP%.txt

-logfile 7DaysToDie_Data\output2_log%LOGTIMESTAMP%.txt
同じログファイルを作成するのを回避する為です
-configfile=serverconfig.xml

-configfile=serverconfig2.xml
設定ファイルを変えています

保存して終了です

startdedicated.batを起動すればプロセスが立ち上がります
3個5個と起動する場合は、この作業を繰り返してください
※複数プロセスを起動するにはそれなりのマシンスペックが必要になりますので、ご使用は計画的に
※初期ファイルの書き換えは、アップデート時に初期化されるために、書き換えた後の別途別の場所に保存してください

 

Step.2(2) 第三者が作成したサーバー管理ソフトを使う方法 Edit

(α10のままです)
 これはアルファテスターによるファンによって製作されたマネージャーです。公式ではないため、使用するには注意が必要です。問題が起こっても自己責任でお願いします。また、この場に掲載するのに何か不都合がありましたら、削除の上、一言削除した旨をお願いします。

  • 外国産サーバーマネージャー導入のメリットは、何と言っても多機能。サーバー管理に必要な物が多く利用できます。
    デメリットは日本語非対応なので、導入から運用まで英語が出来なければ時間が掛かる。報告・要望なども英語での
    やりとりになるので、不具合発生時に大きな不安が残る。
  • 国産サーバーマネージャー導入のメリットは、日本語対応で理解しやすい。不具合報告や機能追加の要望など
    開発者とのやりとりが容易!デメリットは機能面で外国産に大きく劣り、テスト段階なので最低限の機能しか
    保持していない。しかし、付属の『ConfigEditor』はサーバー管理初心者に優しい設計になっていて使い勝手が
    良い、今後の発展に期待!

・不特定多数の利用を想定しているサーバーの場合は、海外産を使う方がメリットが大きい。
・身内専用のサーバーを建てる場合や、サーバー管理初心者なら国産を使う方がメリットが大きい。
※サーバーマネージャーは公式が制作したものではありません。導入は自己責任です。

 

外国産サーバーマネージャー Edit

Frontrunnerteks’ Server Manager(更新停止) Edit

 まずは、サーバー管理ソフト"7DaysServerManager"をダウンロードします。ダウンロードは以下からします。

 

7DSM Edit

Frontrunnerteks’ Server Managerほど多機能ではありませんが、現在も更新していることや
Global Ban Listを使えることは、不特定多数の利用を想定しているサーバーでの運用において
メリットが大きいと思います。

国産サーバーマネージャー Edit

 

Savannah Manager Edit

 上記のソフトウェアが当環境では動作しなかったので国産サーバーマネージャー作ることにしました。
 現在上記のソフトよりも機能は大幅に劣りますが、英語がわからなかったり、同じように動作しなかった場合などに
 お使いいただけるとありがたいです。(Savannah 2 ver1.0.7.7b でa14.7に対応しています)
 Savannah Manager
 ※サイト移転しましたのでリンク変更しておきました。
 テストは終了しましたが、機能案・改善点などを提供していだけると幸いです。

 

 皆様のおかげで徐々に発展できてきました。
 Steamコミュニティ作りましたので案や不具合、感想などがありましたらこちらにお願いします。
 Savannah Manager - SteamCommunity

 

 YoutubeでSavannah Managerを用いたサーバーの建て方を上げました。
 お役に立てるとうれしいです。
 7dtd Savannah Managerを用いたサーバーの建て方

 

 現在初期設定の際に、Steamのインストールディレクトリを取得するためにレジストリにアクセスしているためか、
 マルウェアとご検知される場合があります。
 レジストリにアクセスはしていますが、書き換えは一切行っておらず、マルウェア的使用は一切行っていないこと
 をこちらに明記させていただきます。
 私自身管理に用いているので、ご安心ください。
 ウイルス分析しました、こちらにて分析結果を載せていきます。
 http://kimamalab.azurewebsites.net/software/7dtdsvmanager.aspx#notice
 リプライくださった方、ありがとうございます。

Simple7DTDServer Edit

「高性能かつシンプルに」を目標に作ってきたサーバーマネージャがようやく公開できる形になってきたので公開します。
ダウンロードはGitHub Releasesから行えます。


GitHubにGPLv2ライセンス下でソースを公開しています。フォーク・プルリク等大歓迎です。
問題点やバグ・要望等ございましたらGitHub IssuesでTicketを開いて下さい。
ぜひフィードバックをください。よろしくお願いします。
動作には.Net Framework 4.0が必要です。


【機能リスト】
簡易Telnetクライアント
自動ログイン ←Configに記載されたパスワードを元にログインします。
コンフィグエディタ
ローカライズ
ポートの開放・閉鎖(UPmP機能が有効になっている必要があります。)
ゲーム本体の検索

 

Step.2(3) Linux系インストール方法 Edit

CentOS7(x86_64) Edit

※CentOS7を最小構成でインストールし、最新状況(yum update済み)でネットワークに問題なく繋がっている事が前提です。
https://7dtd.illy.bz/に記載されている物を編集して、一部足りない部分を書き足してます。
※ubuntu 14.04 の場合は事前準備を"apt-get install wget rsync gcc lib32stdc++6 netcat xmlstarlet"のコマンドに変更でOKです。(α10 2014/12/23現在)

事前準備
 yum -y install wget
 yum -y install rsync
 yum -y install gccコンパイルに必要です(make)
 yum -y install libstdc++.i686Steamが必要とします(32bit版)
 yum -y install nc
 yum -y install libxsltXMLStarletインストール時に必要とされます
  wget http://pkgs.repoforge.org/xmlstarlet/xmlstarlet-1.5.0-1.el6.rf.x86_64.rpm サイトが無くなる可能性があります。無い場合は他の場所よりxmlstarletのrpmを入手してください。
 rpm -ivh xmlstarlet-1.5.0-1.el6.rf.x86_64.rpm
yum install epel-releasexmlstarlet用リポジトリ情報追加(https://7dtd.illy.bz/wiki/Prerequisitesからの転記)
yum install xmlstarlet


本体のインストール
 useradd -d /home/sdtd -m -r -s /bin/bash -U sdtd起動用ユーザーを追加
 wget http://illy.bz/fi/7dtd/management_scripts.tar.gz
 tar --touch -xvzf management_scripts.tar.gz -C /ルート直下に解凍します
※/etc/init.dが上書き破壊される可能性がある為、/etc/ini.dのバックアップをお勧めします
 vi /etc/7dtd.conf下記の項目にSTEAMのユーザー名とパスワードを入力してください
export STEAM_USER=
export STEAM_PASS=
※現在、存在しないようです(2016/04/25)
例 ユーザー名「7days」 パスワード「todie」
export STEAM_USER=7days
export STEAM_PASS=todie
 cd /usr/local/lib/7dtd/start-stop-daemon
 make
 make install
 chown root.root /etc/7dtd.confオーナーの変更
 chmod 0600 /etc/7dtd.confアクセス権の変更
 chown sdtd.sdtd /home/sdtd -R配下のオーナーを変更
 chown root.root /etc/init.d/7dtd.shオーナーを変更
 chown root.root /etc/bash_completion.d/7dtd
 chown root.root /usr/local/bin/7dtd.sh
 chown root.root /usr/local/lib/7dtd -R配下のオーナーを変更
 chmod 0755 /etc/init.d/7dtd.shアクセス権の変更
 chmod 0755 /etc/bash_completion.d/7dtd
 chmod 0755 /usr/local/bin/7dtd.sh
 chmod 0755 /usr/local/lib/7dtd -R配下のアクセス権変更
 7dtd.sh updateengine初回起動時にSteam Guard codeを要求されます。
「Steam Guard code:」と表示されたら、
Steamユーザーに登録したe-mailにメールが来ているので、
そのコードを入力してください。
※現在、Steam Guard codeが要求されないようです(2016/04/25)


起動設定
 7dtd.sh instances createインスタンスの作成
/home/sdtd/instances/に同名のフォルダが作成され、MAPデータ・ログなども以下に保存されます。

 以降設定項目が表示されますので環境に合わせて設定してください
 設定値はStep.2(1)に記載されているのとほぼ同じです。
 「true・false」は「y・n」でも設定可能です。

Instance name識別できる一意の名前です。この名前で起動したり停止したりします。
インスタンスは複数登録する事が可能です
Server nameサーバーの名前です。サーバーリストに表示されます
Server passwordサーバーアクセス時に必要なパスワードです。なしも可能です
Public server [true]サーバーをサーバーリストに表示するかです。
Base Port (1024-65533) [25000]指定したポートから3個利用します
25000〜25002
Max players (1-64) [4]
Server description
Server website URL
Disable NAT [true]
Enable EasyAntiCheat [true]
Maximum number of concurrent zombies [60]
Enable control panel [false]:
Control panel port (1024-65535) [8080]
Control panel password
Telnet port (1024-65535) [8081]
Telnet password
Random gen seedゲームのシード値です。ランダムMAPはこの数値で生成ロジックが変ります
ユーザーがアクセス時に画面上に一瞬表示されます。
World name, options
Select option (1-5) [1]
1: Random Gen
2: Navezgane
3: MP Wasteland Horde
4: MP Wasteland Skirmish
5: MP Wasteland War
Game mode, options
Select option (1-2) [1]
1: GameModeSurvivalMP
2: GameModeSurvivalSP
Friendly fire [false]PCを攻撃できるかどうか
Item spawn menu [false]アイテムを自由に取り出せるようにするか
Block durability (%) [100]ブロックの強度
Drop on Death, options
Select option (0-3) [0]
0: Everything
1: Toolbelt only
2: Backpack only
3: Delete all
Drop on Quit, options:
Select option (0-3) [1]
0: Nothing
1: Everything
2: Toolbelt only
3: Backpack only
Loot abundance (%) [100]
Loot respawn delay (days) [7]物資の再配置日数
-1: 再配置しない
0: 回収後直ぐに再配置
Airdrop delay (hours) [72]
Craft speed, options
Select option (0-2) [1]
0: Instant
1: Normal
2: Double
Loot open speed, options
Select option (0-2) [1]
0: Instant
1: Normal
2: Double
Length of one day [40]
Night percentage (10-90) [35]
Difficulty (+ damage given / received), options
Select option (0-5) [2]
0: Scavenger (200% / 50%)
1: Adventurer (150% / 75%)
2: Nomad (100% / 100%)
3: Warrior (75% / 150%)
4: Survivalist (50% / 200%)
5: Insane (25% / 250%)
Zombies run, options
Select option (0-2) [0]
0: Default day/night walk/run
1: Never run
2: Always run
Sense memory (seconds) [60]
Spawn mode, options
Select option (0-5) [3]
0: Disabled
1: 50%
2: 75%
3: 100%
4: 125%
5: 150%
Enemy difficulty, options
Select option (0-1) [0]
0: Normal
1: Feral
Land claim size [7]
Minimum keystone distance [30]
Claim expiry time (days) [3]
Claim decay mode, options:
Select option (0-2) [0]
0: Linear
1: Exponential
2: Full protection
Claim durability modifier - online [4]
Claim durability modifier - offline [4]


起動
7dtd.sh start <instancename>Instanceは上記の設定の「Instance name」を入力します。&br「Done」と表示されれば成功です
「Done」と表示されなければ、サポートに問い合わせてください


終了
7dtd.sh kill <instancename>
コントロールパネルにアクセスして「shutdown」ボタンを押す
telnetで接続して「shutdown」コマンドを入力してください。※telnetですが、改行コードに注意してください「cr」では認識してくれません「cr+lf」「lf」にしてください


バージョンアップ
7dtd.sh updateengine
7dtd.sh updatescripts
プログラムを最新版に更新します
起動スクリプトを最新版に更新します

7DTDサーバプログラムの動作ログをリアルタイムで表示する方法 Edit

Windows PowerShellを使って7DTDの動作ログをリアルタイムで表示する方法を紹介します。
Linuxで言うTailコマンドにあたるものを使います。

Windowsの初期設定だとPowerShellスクリプトの実行は出来ないようになっているので、予め許可しておく必要があります。
この設定変更はセキュリティに関わる部分なのでその点は注意してください。

この方法は非常に軽快且つ安定で、サーバプログラムが生成するログファイルを読み取っているだけなのでサーバ動作への影響もほとんど無いと思います。
ログファイルを読んでいるだけなのでWebコントロールパネルの様にコマンドを送ったりは出来ませんが、サーバシャットダウン前後のログを最後までしっかり表示してくれます。(Webコンパネだとシャットダウン処理の途中で表示が止まる)

デフォルトの7DTDサーバプログラムはタスクマネージャでしか実行してる事が確認できないので、うっかりサーバ起動したままPCを落としてしまう事への防止策にもいいんじゃないでしょうか。

蛇足:スクリプトの中身はたった1行なので、ちょっと変えればスクリプトファイルが不要で、もしかしたらスクリプト実行許可も要らないかもしれません

以下の手順で、サーバを起動(startdedicated.batを実行)した時に自動でPowerShellのログウィンドウが表示されるようになります。

PowerShellのスクリプト実行設定を確認、変更する Edit

  1. 管理者権限でPowerShell(x86)を起動する
    スタートメニューの検索欄に「power」とか入れれば候補に出てくるので右クリックから管理者権限を選ぶ
  2. 出てきた青いウィンドウで以下のコマンドを順番に実行する
    Get-ExecutionPolicy
    Set-ExecutionPolicy Unrestricted
    Y
  3. PowerShellウィンドウをXボタンとかで閉じる

スクリプトファイルをメモ帳とかで作る Edit

  1. メモ帳を起動して以下の内容を入力する
    Get-Content -Path "$Args" -Tail 100 -Wait
  2. 7dtdslog.ps1ってファイルでサーババッチファイルと同じフォルダに保存
    (デフォルトだと多分 C:\Program Files (x86)\Steam\steamapps\common\7 Days To Die)
  3. 保存したらメモ帳を閉じる

スクリプト実行コマンドをサーババッチファイルに組み込む Edit

  1. 同フォルダ内のstartdedicated.batをメモ帳で開く
  2. start 7daystodieで始まる行を探す
  3. そのすぐ下に以下の内容の行を追加する
    start powershell "%~dp0\7dtdslog.ps1" '%~dp0\7DaysToDie_Data\output_log%LOGTIMESTAMP%.txt'

※α16.1までは以下の内容になります
start powershell "%~dp0\7dtdslog.ps1" '%~dp0\sdtd.log'

  1. 上書き保存する

以上 Edit

これで設定は完了です。

PowerShellのログウィンドウはいつでもXボタンとかCtrl+Cでの処理中断で閉じていいです。

マルチサーバにてプレイヤーの座標や所持品を追跡する方法 Edit

フォーラムには様々なサーバマネージャーがあります。簡易的なものから高機能まで数は揃っていますが、いかんせん英語版なので、ちょっと使いづらいってのが本音なところです。ですので、大抵の方は国産のマネージャーを使っていることでしょう。

そのマネージャーを使いつつ、MODやツールを用いることでバグによる補償や荒らし対策がしやすくなります。ここでは、筆者が行っている方法を記載しています。また基本的な用語を使いますが、その用語解説はしていませんので分からない時はご自身で調べてください。
もちろんこの方法以外にもいろんなやり方があるかと思います。ご自身でいろいろと試行錯誤してみるのもよいでしょう。

MODを用意する Edit

サーバを管理する上で、ぜひとも入れておきたいMODです。今回は、このMODで追加されるコンソールコマンドを使いますので必ず導入しましょう。

Telnetで接続する Edit

サーバマネージャーはTelnetで接続してログを取得していると思いますが、今回の方法もマネージャーとは別にTelnetに接続してログの取得を行います。この接続にWindows標準のTelnetクライアントを使用しても良いのですが、今後いろいろとやっていこうと思うと文字コードの壁にあたり、したいこともできなくて諦めてしまうことになるので、他のツールの使用をおすすめします。筆者は、TeraTarmを使用していますので、これを使って説明します。

  • TeraTarmを用意しましょう。オープンソース・ソフトウェアです。言語ファイルの翻訳もあるので、一緒に用意してインストールを済ませます。

TeraTarmを設定する Edit

TeraTarmの端末設定画面 Edit

  • はじめに改行コードの受信と送信、漢字の受信と送信を下の画像の通りに設定します。端末サイズは、このままで特に問題ないですが、ログの折り返しが嫌な方は桁数の80を増やすと良いでしょう。
    teratarm1.png

繰り返しコマンド Edit

  • 接続しているプレイヤーの座標を取得します。listplayers(lp)を使い、60秒間隔でコマンドを発行するようにします。
    有効にチェックを入れます。
    teratarm4.png

その他の設定 Edit

  • ログを保存します。ログファイル名は重複しないように日付と時間とホスト名でファイルが作成されるようにします。
    (書式例)%Y%m%d_%H%M%S_&h.log
    保存先はセーブデータをバックアップするフォルダを用意して、そこにLogsフォルダを作成して保存するようにするのが分かりやすいでしょう。
    自動的にログ採取を開始するにチェックを入れます。
    teratarm6.png

設定の保存 Edit

  • 次に設定した内容を保存します。OKボタンを押したら次の起動も同設定で起動してくれるものと思いがちですが、手動で保存しないとアプリケーションを閉じれば設定は破棄されて、次回の起動は変更前の設定となります。
    teratarm2.png

マクロの作成 Edit

  • あくまでも一例です。コードの説明に関しては主要な部分以外は省略して進めます。(バグが潜在している可能性もあります、使用時は自己責任でお願いします)
    このマクロは、TeraTarm起動時に自動でサーバに接続し、プレイヤーの所持品情報を取得し、不測の事態で切断された場合でも再接続を可能としています。またサーバの負荷解消のための再起動時に、接続する全プレイヤーに向けてメッセージを送信する機能もついており、決められた時間にシャットダウンしてくれます。
    再稼働はWindowsタスクマネージャを使用します。


    既知の問題として、プレイヤーの所持品情報の取得が再起動時毎にしているため、再起動から再起動までに新しくログインしたプレイヤーの情報は次の再起動を待たなければ所持品情報の取得が行われません。これに関しては、Winodwsのタスクスケジューラとマクロを少々改変して頂ければ対応可能ですが、今回は説明しません。


    ■■■■には、サーバアドレスを記載します。自宅サーバであればlocalhost、レンタルサーバであればIPアドレスを記載します。DNSサービスを受けているのであればDNS名でも良いと思います。
    △△△△には、ポート番号を記載します。serverconfig.xmlのTelnetPortプロパティに記載した数字4文字です。
    ●●●●には、Telnetに接続するパスワードです。serverconfig.xmlのTelnetPasswordプロパティに記載した文字列です。


    25行目のstrdim idary 16では、最近接続したプレイヤー上位16人分の情報を取得するための配列を指定しています。もし同時接続を30人とかにしている場合は、この数字を増やした方がよいでしょう。また参加数(同時接続数ではない)が大幅に多い場合も数字を増やしたほうが良いと思います。数字を増やした場合は、31行目のfor i 0 15の15を増やした数-1の値にします。
    28行目のfileopen fhandle 'D:\BackupFolders\steamid.dat' 0 1については後述。
    73行目のif SEVERTIME > 500 thenでは所持品情報を取得するコマンドの発行をおよそ5分毎に指定しています。
    88行目の if val3 != val4 && val4 = 6 thenと93行目のelseif val3 < 17 && val4 = 18 thenでは、6時と18時に再起動の条件を指定しています。6時18時ではなく0時12時であれば、6を0に、17を11に18を12にすればよいと思います。
    107~113行では、showinventory(si)でプレイヤーの所持品を取得するサブルーチンです。
    116~130行では、シャットダウンの60秒前と30秒前にサーバ内のプレイヤーに向けてメッセージを送信するサブルーチンです。
    133~148行では、切断された場合の再接続のサブルーチンです。

    ; 7DaysManabiYa of 7 Days to Die
    ;
    ; File: 7DaysManabiYa_lp.ttl
    ; Update: 2017/3/10
    
    HOSTADDR = '■■■■:△△△△'
    USERNAME = '' 
    PASSWORD = '●●●●' 
    ;============================================= 
     
    COMMAND = HOSTADDR 
    strconcat COMMAND ' /nossh /T=1'
     
    ;; サーバへ接続 
    connect COMMAND
     
    ;; ぅ蹈哀ぅ鷯霾鷄答(ユーザ名・パスワード) 
    wait 'Please enter password:'
    sendln PASSWORD
    
    SEVERTIME1 = ''
    
    sw = 0
    
    strdim idary 16
    
    ;; SteamIDを取得 
    fileopen fhandle 'D:\BackupFolders\steamid.dat' 0 1
    if fhandle != -1 then
    
    	for i 0 15
    		filereadln fhandle idttp
    		if result = 1 then 
    			cnt = i - 1
    			break
    		endif
    		cnt = i
    		strcopy idttp 1 17 idary[i]
    	next
    	
    	fileclose fhandle
    	sw = 1
    	
    endif
    
    gettime STARTTIME "%H"
    str2int val3 STARTTIME
    
    if sw = 1 then
    
    	getdate datestr1 "%Y%m%d"
    	gettime timestr1 "%H%M%S"
    	strconcat SEVERTIME1 datestr1 
    	strconcat SEVERTIME1 timestr1
    	call Sub_si
    
    endif
    
    do
    
    	if sw = 1 then
    	
    		SEVERTIME2 = ''
    
    		getdate datestr2 "%Y%m%d"
    		gettime timestr2 "%H%M%S"
    		strconcat SEVERTIME2 datestr2 
    		strconcat SEVERTIME2 timestr2
    		str2int val1 SEVERTIME1
    		str2int val2 SEVERTIME2
    		
    		SEVERTIME = val2 - val1
    		if SEVERTIME > 500 then
    			call Sub_si
    			SEVERTIME1 = SEVERTIME2
    
    		endif
    		
    	endif
    	
    	pause 60
    
    	gettime NOWTIME "%H"
    	str2int val4 NOWTIME
    	call Sub_link
    	
    ;; 稼働開始と現在が等しくなく且つ6時の場合
    	if val3 != val4 && val4 = 6 then
    ;;		call Sub_link
    		call Sub_sd
    		break
    ;; 稼働開始が17時以前で現在が18時の場合
    	elseif val3 < 17 && val4 = 18 then
    ;;		call Sub_link
    		call Sub_sd
    		break
    	endif
    	
    loop
    
    sendln 'exit'
     
    ;; ゥ泪ロ終了
    end
    
    ;; siコマンドを送信
    :Sub_si
    	for i 0 cnt
    		COMMAND = 'si '
    		strconcat COMMAND idary[i]
    		sendln COMMAND
    	next
    return
    
    ;; shutdownコマンドを送信
    :Sub_sd
    	COMMAND = 'say 60秒後にサーバをシャットダウンします。速やかにログアウトしてください。'
    	sendln COMMAND
    	sendln
    	pause 30
    	COMMAND = 'say 30秒後にサーバをシャットダウンします。速やかにログアウトしてください。'
    	sendln COMMAND
    	sendln
    	pause 30
    	COMMAND = 'say シャットダウンします。サーバの稼働時間はコミュニティをご覧ください。'
    	sendln COMMAND
    	sendln
    	pause 10
    	sendln 'shutdown'
    return
    
    ;; リンクの確認及び再接続
    :Sub_link
    
    	testlink
    	if result != 2 then
    		COMMAND = HOSTADDR 
    		strconcat COMMAND ' /nossh /T=1'
    		 
    		;; サーバへ接続 
    		connect COMMAND
    		 
    		;; ぅ蹈哀ぅ鷯霾鷄答(ユーザ名・パスワード) 
    		wait 'Please enter password:'
    		sendln PASSWORD
    	endif
    	
    return
    
    ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

プレイヤーのSteamIDを取得 Edit

  • 28行目のfileopen fhandle 'D:\BackupFolders\steamid.dat' 0 1で、プレイヤーのSteamIDをマクロに取り込んでいるのですが、このマクロが開始される前に別の方法でSteamIDを取得してsteamid.datに書き出しています。


    バッチファイルを作成します。以下のように記述します。


    ■■■■には、セーブデータの保存先を変更していなければユーザ名が入ります。
    △△△△には、ランダムマップのワールド名が入ります。


    何をしているかというとサーバのセーブデータには、プレイヤー情報も保存されます。その情報はSteamIDで個別管理されているので、SteamIDのリストを先ほどのsteamid.datに書き出しているわけです。
    4行目では、VBスクリプトの呼び出しを行っています。これはサーバマネージャーとTeraTarmを自動で起動するためのスクリプトが記述されています。(後述)

    cd /D %~dp0
    dir "C:\Users\■■■■\AppData\Roaming\7DaysToDie\Saves\Random Gen\△△△△\
    Player\*.ttp" /B /O:-d > D:\BackupFolders\steamid.dat
    cscript D:\BackupFolders\7dtd_so.vbs
    exit /B

VBスクリプトの作成 Edit

  • ここではサーバ用のバッチファイルを起動した後、60秒後にサーバマネージャーを起動させています。
    念のためショートカットキーでサーバ起動とTelnetの接続を試みています。
    その後、TeraTarmを起動させ不要になったコマンドウィンドウを閉じてスクリプトを終了させています。
  • 注意して頂きたいのは、このスクリプトはあくまでの筆者が利用しているサーバマネージャー用に書いたものです。
    またWindowsにありがちなのが、OSのアップデートでスクリプトが正常に動作しないこともよくあることです。
    ですので、ほんの一例のつもりで参考程度にしてください。Javaスクリプトで書くのも良いと思います。
    set WshShell = WScript.CreateObject("WScript.Shell")
    WScript.Sleep 3000
    WshShell.Run("""D:\Program Files (x86)\Steam\steamapps\
    common\7 Days to Die Dedicated Server\startdedicated""")
    WScript.Sleep 60000
    WshShell.SendKeys "~"
    WScript.Sleep 3000
    WshShell.Run("""D:\Program Tools\SavannahManager2\SavannahManager2.exe""")
    WScript.Sleep 3000
    WshShell.SendKeys "^S"
    WScript.Sleep 5000
    WshShell.SendKeys "^t"
    WScript.Sleep 5000
    WshShell.Run("""D:\BackupFolders\Tera Term""")
    WScript.Sleep 3000
    WshShell.AppActivate "Savannah Manager"
    WScript.Sleep 3000
    WshShell.AppActivate "7dtd"
    WScript.Sleep 3000
    WshShell.SendKeys "exit~"
    WScript.Sleep 3000
    WScript.Quit

TeraTarmのショートカットの作成 Edit

  • TeraTarmのショートカットを作成し、プロパティのリンク先に作成したマクロのファイルを指定します。
    (一例)"D:\Program Files (x86)\teraterm\ttermpro.exe" "/M=7DaysManabiYa_si.ttl"
    teratarm3.png

Windowsのタスクスケジューラの設定 Edit

  • タスクスケジューラで、タスクを作成しトリガーでサーバの起動時間を決め、前述のバッチファイルをプログラム開始に割り当てます。またもう1つタスクを作成して再起動のバッチファイルをご自身で用意してスケジュール登録しておくのも忘れないでおきましょう。
  • 再起動からサーバの開始までマシンスペックにもよりますが5分ほどは時間を空けておくのが望ましいと思います。

最後に Edit

  • かなり要点だけに絞って解説しました。フォルダ名をご自身の環境に合わせたり、説明のないところはご自身でファイルを用意しなくてはいけなかったりと、わかりにくいところが散見すると思います。
    しかしながら、そういった当たり前のこと基本的なことを分からずしてサーバ管理者になるのは到底危険であるというのも理解して頂きたいと思います。
    この説明がこれから、そして既にサーバ管理者として運営され困っている方の一助になれば幸いです。
     
     

コメント Edit

質問時には"状況を詳しく"書きましょう!サーバースペックや運用方法(サーバー単体orサーバー&クライアント一体)
などを記載すると回答する側が状況把握しやすいです。
質問する方へ!質問に対して返事が来たら結果報告をして下さい.同様のトラブルで困っている方々が
その流れを見て自己解決できます.

最新の10件を表示しています。 コメントページを参照

  • management scriptsを使用してサーバーを建てようとしたのですが、Step2(3)の手順で実行しても数秒でサーバーが勝手に閉じてしまいます。上の方でUninstall手順を踏んで入れ直したら出来たとあったのですが、各ファイルとユーザーを削除して作成し直しても改善されません。どなたか知恵をください。(サーバー環境| OS:Ubuntu Server 16.04 x64 CPU:core i7-3612QM RAM: CP3-10600 8GiB) -- 2017-07-02 (日) 12:51:19
    • 訂正:CP3→PC3 -- 2017-07-02 (日) 12:51:55
    • 作成したインスタンスのログファイルを参照してみてはいかがでしょうか。 -- たけし? 2017-08-01 (火) 09:19:25
  • ポート番号関連の質問を出していた者ですが、こちらの勘違いだったので削除しました。 -- 2017-08-26 (土) 16:19:29
  • サーバーのログでだれがいつなんのアイテムを取得したのかってみることができますか?国産サーバーソフトの sabennah managar 使ってるのですがそのようなログは見当たらないので -- 2017-08-29 (火) 05:12:13
    • Savannah Managerだけでは出来ないですね。およそいつ頃で何のアイテムをどこで取得したのかは、コマンドとスクリプト(マクロ)を組むことでわかりますよ。 -- Zo? 2017-08-30 (水) 09:24:56
      • 返信どもです ちょっと難しそうですね・・・ そういうの詳しく書いてある場所ってご存知ですかね?よかったら教えていただきたいです。 調べた方もいまいちわからないので -- 2017-08-30 (水) 12:32:23
      • 実際に木主さんが質問したものと同等のマクロを組んで運用していますが、そういうことを説明しているサイトは見かけなかったです。関数とかの断片的な情報を調べて作りましたので・・・。私が使用しているのはTeratermです。 -- Zo? 2017-08-31 (木) 08:40:23
      • 無知から始めるには無理そうですね ありがとございます。 -- 2017-09-01 (金) 07:15:57
      • 私もまぁまぁ無知な状態からやりだして今がありますので、やれないことはないです!時間があれば、日本人向けサーバ一覧に載っている7DaysManabiYaのDiscordにてご教授可能です。 -- Zo? 2017-09-01 (金) 19:19:35
    • 分かりにくい説明ですが、木主さんが望んでおられることをどうすればよいのかをページに記載しました。参考にどうぞ。 -- Zo? 2017-09-05 (火) 03:02:06
  • LootRespawnDaysで再補充無し設定はありますか?0ではないみたいですが -- 2017-09-19 (火) 18:29:06
    • 1にすると、SurvivalSPでいうところのDisabled(再湧き無し)にできます。 -- ph? 2017-09-19 (火) 19:16:57
  • サーバーを24時間解放し続けることは可能ですか? -- 2017-10-21 (土) 14:25:37
    • 可能です。 -- Zo? 2017-10-22 (日) 14:46:57
  • 上記サーバーの立て方Step2にならいサーバーを建て、入ろうとしたところ「SERVER DISCONNECTED YOU : All non-reserved slot on this server are already in usel Non-reserved slot:0」と出てしまいサーバーに入ることができません。どうすればよいのでしょうか? -- DDG-151? 2017-10-28 (土) 17:23:18
    • 解決策になるかどうかわからない程度のことですが、とりあえずコンフィグを見直してみてください。ServerMaxPlayerCountやServerReservedSlotsあたりはどうですか。 -- Zo? 2017-11-02 (木) 17:12:09
  • savannah managerでマルチしているのですが、時間を操作するとairdropが落ちてこなくなりました。(設定は24時間で落下にしてあります)助言お願いできたら嬉しいです。 -- 2017-11-02 (木) 10:55:02
    • 時間のカウントがリセットされなくなったせいかもしれませんね。コンソールからspawnairdropでその都度投下を指示するしかないかもしれません・・・。このコマンドの発行でカウントがリセットされるといいのですが。 -- Zo? 2017-11-02 (木) 15:58:34
    • 回答ありがとうございました。しばらくの間spawnairdropで落としてたのですが、巻き戻していた時間より先になったら正常に落ちてくるようになりました。 -- 2017-11-07 (火) 12:31:56
  • 先日まで友人のサーバーでマルチをしていたのですが、日を改めて入ろうとしたら、「connection timed out」と表示されサーバーには入れません。 -- 0? 2017-11-02 (木) 18:27:46
    • 木主です。エンター押しちゃいました。上記載で解決法方ご存知な方いらっしゃいますか? -- 2017-11-02 (木) 18:29:49
    • 可能性がいくつもあるので特定のためにも、サーバを建てている友人にログを確認してもらうほうが早いです。 -- Zo? 2017-11-03 (金) 10:25:10
      • ありがとうございます。早速確認していただくことにします。後ほどご報告致します。 (// -- 0? 2017-11-05 (日) 12:27:57
    • 板主です。今度は相手のサーバーすら表示されない事態に陥ってしまいました。もう断念しようかと思っております。正直全くわかりません。 -- 2017-11-06 (月) 19:40:08
  • すいません。 -- 2017-11-06 (月) 19:38:17
  • 友人とマルチをプレイしているのですが、こちらにもあるように今までは、「クライアントとサーバーと同一のPCで起動する」方法でプレイしておりました。ところがラグが発生するため今まで鯖を立ててくださっていた方とは別の方が、「ゲームサーバーをレンタルして設定を行い、そこに接続する」方法で鯖を立ててくださいました。そこで質問なのですが、前者の鯖データを全て後者の鯖データに移すことは可能なのでしょうか?appdata/roming/7daystodie/savesの中にあるデータは全て共有してみたのですが、建築物や日にちがうまく移行できません。 -- 2017-11-12 (日) 22:14:45
お名前: URL B I U SIZE Black Maroon Green Olive Navy Purple Teal Gray Silver Red Lime Yellow Blue Fuchsia Aqua White