コンテンツにスキップ

Rustサーバーにカスタムマップを導入する方法

結論: .mapファイルを、直接httpsでダウンロードできるリンクが得られる場所にアップロードし、サーバーの起動行かserver.cfgにserver.levelurl "<そのリンク>"を入れ、server.seedとserver.worldsizeを削除して、サーバーを再起動します。サーバーも参加するプレイヤーも、そのリンクからマップをダウンロードします。

  • .mapファイルのカスタムマップ。Crucible Heightmap、Creator、RustEditのどれで作ったものでも構いません。
  • ファイルを置く場所で、直接ダウンロードできるリンクが得られるもの。ブラウザでリンクを開くと、ページやボタンを挟まずにすぐダウンロードが始まります。httpsのリンクである必要があります。
  • 再起動できるRustサーバーと、編集できる状態の起動行かserver.cfg。

ほかの人より先に、マップを歩いてみましょう。Crucible Local Serverなら、リンクなしで自分のPCで動かせます。.mapをウィンドウにドラッグし、割り当てを押して、サーバーを起動し、参加を押します。プレイヤーがスポーンするか、モニュメントが地面に乗っているか、道をふさぐものがないかを確かめてください。手順の全体はローカルのRustサーバーでマップをテストするにあります。

マップをアップロードしたら(手順2)、リンクも同じように試します。マップタブでホスト先のURLを選び、コンフィグタブの**レベルURL (.mapの直接ダウンロード)**にリンクを貼って、サーバーを起動します。読み込めれば、そのリンクは使えます。

2. マップを直接ダウンロードできるリンクに置く

Section titled “2. マップを直接ダウンロードできるリンクに置く”
  • ダウンロードがすぐ始まること。 ダウンロードボタンがあるファイル共有ページはだめです。サーバーがマップの代わりにそのページを受け取ってしまいます。
  • Dropboxなら、 共有リンクはdl=0で終わり、ページが開きます。dl=1に変えてください。
  • リンクを生かしておく。 新しいプレイヤーは、初めて参加するときにそのリンクからマップをダウンロードします。リンクが切れると、サーバーがそのマップを動かしている間、新しいプレイヤーは入れません。
  • 確認: リンクをブラウザに貼ってみます。.mapで終わるファイルがダウンロードされ、サイズが自分のファイルと同じになるはずです。

3. サーバーにリンクを指定する

Section titled “3. サーバーにリンクを指定する”

サーバーの起動行で:

ターミナルウィンドウ
RustDedicated.exe -batchmode +server.identity "my_server" +server.port 28015 +server.levelurl "https://example.com/maps/mymap.map" +server.maxplayers 100 +rcon.port 28016 +rcon.password "your-own-password" +rcon.web 1

または、サーバーのcfgフォルダ(RustDedicated.exeの隣のserver/<identity>/cfg/)にあるserver.cfgの1行として:

server.levelurl "https://example.com/maps/mymap.map"
  • server.seedとserver.worldsizeは削除します。 この2つはプロシージャルマップを作る設定です。レベルURLがあると、ワールドはマップファイルで決まります。
  • リンクは引用符で囲みます。
  • 起動行とserver.cfgの両方で設定していると、起動行が優先されます。

両方の場所についてさらに詳しくは、Rustのserver.cfgの例と起動引数を見てください。

4. 再起動してコンソールを確認する

Section titled “4. 再起動してコンソールを確認する”

Rustはサーバーの起動時に一度だけマップを読み込むので、再起動してください。コンソールに次が表示されます。

Loading custom map from https://example.com/maps/mymap.map

そしてサーバーブラウザにはマップがCustom Mapと表示されます。ダウンロードに失敗すると、コンソールにマップ名と理由を添えたCouldn't Download Level:が表示され、サーバーはシャットダウンします。それぞれが何を意味し、何を変えればいいかは、エラー索引のRustサーバーメッセージにあります。

サーバーとすべてのプレイヤーは、ダウンロードした各マップのコピーを、リンクごとに保存しています。変更したマップを同じリンクにアップロードしても、全員が古いほうを読み込み続けます。回避する方法は2つあります。

  • 新しいファイル名にする。 mymap_v2.mapとしてアップロードし、server.levelurlを新しいリンクに向けます。全員が新しくダウンロードします。Rustはカスタムマップのワールドセーブをマップのファイル名で付けるので、新しいワールドも始まります。
  • 同じファイル名で、リンクだけ変える。 小さな修正でワールドを残したいなら、ファイル名はそのままにして、リンクの末尾だけ変えます。たとえばhttps://example.com/maps/mymap.map?v=2です。先に新しいリンクをブラウザで開いて、ホスト先がそのリンクでもマップを返すか確認してください。

リンクを変える前に、サーバーを停止してください。マップを読むのは起動時だけです。

本番のプレイヤー向けに公開する

Section titled “本番のプレイヤー向けに公開する”

自分のPCなしで動き続けるサーバーにマップを載せたいなら、DrizzzaはPine Hostingと提携しています: pine.host/drizzza。

Pine HostingならRustサーバーが数分で立ち上がり、DDoS対策とuModプラグインのインストーラーが付きます。コードDRIZZZAで30%オフ。

このページの手順は、ホスティングのサーバーでも同じです。マップをアップロードし、ホスト側で起動行かserver.cfgを編集できる場所にserver.levelurlを設定して、再起動します。

RustEditやCreatorの追加要素があるマップ

Section titled “RustEditやCreatorの追加要素があるマップ”

素のRustサーバーは、どんな.mapでも地形、レイヤー、プレハブを動かします。エディターによっては、ファイルに保存した追加要素を動かすのにサーバー側の追加機能が必要です。RustEditのパズルとスポナーには、CarbonまたはOxideのサーバーでRustEdit拡張機能が必要で、Creatorの配線、ボリューム、ルートプロファイルにはCreatorのサーバー拡張機能が必要です。カスタムデータマップとRustEditと、素のサーバーが読むものを見てください。