Skip to content

Installer ja

Tom_XV edited this page Sep 26, 2026 · 3 revisions

English | 日本語

中核 1.1.0(2026-09-15)で入りました。インストーラーのファイルは、フレームワークのリリース zip の installer/ にあります。

Drag'n Wash の Mod なら、どれでも同じインストーラーを同梱できます。Windows 用の Install.exe と、Steam Deck / Linux 用の install-steamdeck.sh です。どちらも BepInEx、Drag'n Wash ModFramework、それに自分の Mod を入れたり取り除いたりします。どの Mod でも同じ決まりで動くので、ある Mod を入れてもほかの Mod の導入が壊れることはありません。Mod ごとに違うところは、mod-install.json という 1 つのファイルに書くだけです。

プレイヤーの方へ。 Mod のリリース zip を開くと、一番上の階層に Install.exe と install-steamdeck.sh が mod-install.json と並んで入っています。zip をどこかに展開して、Windows なら Install.exe をダブルクリック、Steam Deck や Linux ならデスクトップモードで bash install-steamdeck.sh を動かしてください。Mod を取り除くときは、もう一度動かして Uninstall を選びます。ゲームの中の Options → Mods からもアンインストールできます(プレイヤー向け を見てください)。

リリースの zip

Install.exe                  フレームワークのリリース zip の installer/ から
install-steamdeck.sh         フレームワークのリリース zip の installer/ から
mod-install.json             自分で書く
BepInEx/plugins/<自分の Mod>/...
README.md

1.5.0 からは、zip にフレームワークを入れなくて構いません。ビルドに使った ModFramework のリリースを mod-install.json(下のスキーマ 2)に書いておけば、インストーラーがフレームワーク専用の GitHub のリリースから取ってきて、確かめてから入れます。BepInEx/plugins/DragNWash.ModFramework*/ と preloader を入れたままの zip(スキーマ 1、またはフレームワーク入りのスキーマ 2)も、これまでどおり入れられます。

インストーラーのファイルは手を加えずに同梱してください。Install.exe は決定的にビルドしているので、どの Mod に入っていてもハッシュが同じで、ウイルス対策ソフトからの評価も共有されます。

mod-install.json

{
  "schema": 2,
  "name": "My Mod",
  "version": "1.2.0",
  "website": "https://github.com/me/mymod",
  "icon": "MyMod/icon.png",
  "plugins": ["MyMod"],
  "keep": ["MyMod/UserData"],
  "configFiles": ["com.example.mymod.cfg"],
  "choices": [
    {
      "id": "difficulty",
      "label": { "en": "Difficulty", "ja": "難しさ", "zh": "难度" },
      "config": { "file": "com.example.mymod.cfg", "section": "General", "key": "Difficulty" },
      "options": [
        { "value": "Normal", "name": "Normal" },
        { "value": "Hard", "name": "Hard" }
      ],
      "default": "Normal"
    }
  ],
  "framework": {
    "version": "1.6.0",
    "sha256": "2fb8862835c84a707f5f4c37ea01c7d439d434926dbb8fcebb063d37f4c7d25f",
    "size": 2326308,
    "needs": {
      "DragNWash.ModFramework": "1.2.0",
      "DragNWash.ModFramework.ToolWindow": "1.5.0"
    }
  }
}
項目
schema 2(1.5.0 から)。zip にフレームワークを入れていて framework を書かないなら 1。知っているより新しい schema は、「Use the installer from the mod's release」と言って受け付けません。
name、version、website インストーラーの画面に出ます。website は https:// にしてください。
plugins BepInEx/plugins の下の自分のフォルダー。フォルダー名だけを書き、DragNWash.ModFramework* は指定できません。
icon 省略できます(1.6.0 から)。payload の中の PNG か JPEG(相対パス、512 KB くらいまで)。インストーラーとランチャーが、Mod を入れる・更新するときに出します。なければ、Mod の名前から文字のタイルを描きます。
keep 自分のフォルダーの中で、プレイヤーのデータが入っているパス。プレイヤーがすべて削除を選ばない限り、アンインストールしても残します。
configFiles BepInEx/config にある自分のファイル。アンインストールで削除します。
choices なくても構いません。1 つが、インストーラーでの質問 1 つになり、答えは BepInEx の設定の項目(file、section、key)に書き込まれます。label は言語ごと(en、ja、zh)に書きます。default には選択肢の値を書くか、"ui-language" にするとシステムの言語に合う値(ja、zh-Hans、pt-BR など)の選択肢を選びます。設定ファイルにもう値があればそちらが優先されるので、更新してもプレイヤーの選んだものは変わりません。
framework スキーマ 2。Mod のビルドに使った ModFramework のリリースです。version、その zip の sha256 と size(どちらもリリースの SHA256SUMS とリリースのページにあります)、それに needs(Mod が使う DragNWash.ModFramework* のプラグインフォルダーごとの最低バージョン)を書きます。

パスはすべて確認するので、manifest から自分のフォルダーとファイルの外を指すことはできません。framework では、バージョンは数字と点だけ、ハッシュは小文字の 16 進 64 桁、サイズは 0 より大きく 20 MB まで、needs の名前はどれも DragNWash.ModFramework で始まっている必要があります。

フレームワークをどこから取ってくるか

zip にフレームワークが入っていないときは、書いておいたリリースを https://github.com/TomXV/dragnwash-modframework/releases/download/v<version>/DragNWash.ModFramework-<version>.zip から取ってきます。このアドレスはバージョンだけから組み立て、manifest のほかの値は使いません。

  • ダウンロードが要るときだけ、そのたびに先に聞きます。どこにつなぐか(github.com と release-assets.githubusercontent.com、BepInEx も取ってくるときは BepInEx の GitHub も)、なぜか、何を送るか(ふつうの HTTPS の要求と User-Agent DragNWash.Installer/<version>。GitHub には IP アドレスが見えます)、どう確かめるかを出します。Choose zip... で自分でダウンロードした zip を選ぶこともでき、同じように確かめます。
  • サイズが size と違った時点でダウンロードを止め、SHA-256 が sha256 と合ったときだけ使います。
  • 入れるのは中核、preloader、needs にあるライブラリだけで、Inspector、Overrides、Bridge、Graphs は入れません。無いもの、最低バージョンより古いもの、(中核と preloader は)書いたリリースより古いものを取ってきます。そのあとは新しいものでしか置き換えないので、ほかの Mod が入れた新しいフレームワークは残ります。
  • 全部そろっていれば、何もダウンロードせず、どこにもつなぎません。
  • ダウンロードに失敗したときは、理由(インターネットにつながらない、GitHub が応えない・ダウンロードを制限している、リリースがまだ公開されていない、サイズやハッシュが合わない)をふつうの言葉で出し、ゲームのフォルダーは元のままにします。入っているフレームワークが最低バージョンを全部満たしていれば、Mod だけを入れる道も出します。

下書きのリリースはダウンロードできないので、書いたフレームワークのリリースを先に公開してから、Mod を公開してください。

インストーラーがすること

インストールと更新

  1. Steam からゲームを探す(見つからなければプレイヤーがフォルダーを選ぶ)。ゲームが起動中なら、そこで中断する。ゲームのフォルダーに別の Mod ローダー(KrazenLabs の dnw-modloader や、BepInEx を起動しない Doorstop の設定)があれば、何も変えずに止まる。1 つのゲームのフォルダーに入れられるローダーは 1 つだけ
  2. BepInEx 5.4.23.5 が無ければ入れる。ダウンロードは固定の SHA-256 で確認し、合わなければ何も入れない
  3. フレームワークを入れる。zip に入っていればそれを、なければ書いておいたリリースから(上を参照)。ほかの Mod が入れた新しいフレームワークを、古いもので上書きすることはない
  4. 自分のフォルダーを、今あるものに上書きでコピーする。更新でファイルを消すことはないので、プレイヤーが足したファイルは残る
  5. 選択肢の答えを設定ファイルに書く
  6. Mods 画面でオフにされていればオンに戻し、ゲーム内で予約されたアンインストールを取り消す
  7. Mods 画面や次のインストーラーのために、mod-install.json の写しを最初のプラグインフォルダーに置く
  8. Windows では(1.6.0 から)、フレームワークと一緒にランチャーを BepInEx\DragNWash.Installer に置き、起動時に更新を確認する にチェックがあれば、Steam の起動オプションをランチャー経由の起動にする。Steam は起動中に自分の設定を書き直すので、Steam が開いていると先に確認が出る(Steam を閉じる、自分で閉じる、起動オプションは設定しない)。Steam の localconfig.vdf で変えるのはその 1 つの値だけで、先に localconfig.vdf.dnw-backup にコピーする。前からある起動オプションは残す
  9. Steam Deck / Linux では、run_bepinex.sh の executable_name と、起動オプション ./run_bepinex.sh %command% を設定する。そのために、確認してから Steam をいったん閉じる

インストールで置き換えたり消したりするファイルは、先に BepInEx\DragNWash.Installer\backup\<日時> にコピーします。途中で失敗したら(使用中のファイル、書き込めないフォルダーなど)、全部元に戻します。うまくいったら、そのインストールのバックアップだけを残し、ログの最後にその場所を書きます。

アンインストール

  1. 自分のフォルダーと configFiles を削除する。ただし keep のパスは、プレイヤーが削除を選ばない限り残す
  2. フレームワークはほかの Mod が残っていないときだけ、BepInEx/SaveHistory はプレイヤーがデータを残さないときだけ削除する
  3. BepInEx は、プレイヤーが選び、ほかの Mod もパッチャーも残っていないときだけ削除する。Steam Deck では、Mod が残っていなければ起動オプションも元に戻す

ログは、Windows では画面に、Linux では ~/.local/state/dragnwash-installer/installer.log に出ます。

ゲーム内でのアンインストール

Mods 画面には、フレームワークとそのライブラリ以外のすべての Mod に Uninstall ボタンがあります。1 回目に押すと、何が起きるかと、この Mod を必要としている Mod が出て、2 回目で確定します。ゲームの起動中は Mod を取り除けないので、次にゲームを起動したとき、どの Mod も読み込まれる前にフレームワークのプリローダーが削除します。それまでは Cancel uninstall で取り消せます。

削除されるのは、BepInEx/plugins の下のその Mod のフォルダー(直接置かれていればその DLL)です。フォルダーに mod-install.json があれば keep は残して configFiles を削除し、なければプラグインの GUID の名前の設定ファイルを削除します。BepInEx とフレームワークは残るので、消したいときはインストーラーを使ってください。

コマンドライン

テスト用に、どちらも質問なしで動かせます。

Install.exe --install [--game-dir <フォルダー>] [--choice <id>=<値>] [--launch-option on|off|keep]
Install.exe --uninstall [--game-dir <フォルダー>] [--remove-data] [--remove-bepinex]
bash install-steamdeck.sh --yes --install [--game-dir <フォルダー>] [--choice <id>=<値>] [--no-launch-option]
bash install-steamdeck.sh --yes --uninstall [--remove-data] [--remove-bepinex]

--bepinex-zip <ファイル> で手元の BepInEx の zip を使えます。その場合も固定の SHA-256 で確認します。--framework-zip <ファイル> は手元の ModFramework の zip を使い、同じく sha256 と size で確かめます。--no-download はどこにもつなぎません。BepInEx か ModFramework をダウンロードしないといけないときは、何も変えずに止まります。--keep-framework は Mod だけを入れて、入っているフレームワークはそのままにします。--install は、BepInEx と同じく、ダウンロードへの同意として扱います。--launch-option は、Steam の起動オプションにランチャーを入れる・外す・そのままにする、を選びます(--install の既定は on)。コマンドラインは Steam を閉じないので、Steam が起動中なら起動オプションには手を付けず、ログにそう書きます。全部の一覧は Install.exe --help で出ます。

窓

1.6.0 から、Install.exe は WebView2 で、ランチャーと同じ見た目の窓を出します。ロゴのあと、画面を 1 枚ずつ(準備、作業中、完了)出し、手順ごとに絵が出ます。今までどおり 1 つのファイルです。WebView2 の部品は中に入っていて、WebView2Loader.dll は %LOCALAPPDATA%\DragNWash ModFramework\Installer に一度だけ書き出し、使うたびに SHA-256 で確かめます。Install.exe の隣には何も書きません。WebView2 ランタイムがないときや新しい窓が出せないときは、今までの窓が開き、ログに理由が出ます。DNW_INSTALLER_CLASSIC=1 で、わざと今までの窓を開けます。

Clone this wiki locally