Repository navigation
Drag'n Wash ModFramework 1.4.0
Drag'n Wash ModFramework 1.4.0
Mods with no code, a registry of what every library can do, and a door for AI clients on your own computer. Released together with Drag'n Wash Localization v1.4.0. Everything new is additive: mods built on 1.3 need no change, and everything new is experimental — it may change, or go away, in a later version.
| Plugin | Version | |
|---|---|---|
| Drag'n Wash ModFramework (core) | 1.4.0 | The operations registry and its events, one loader for mods with no code, Json, ModFramework.NameOf |
| Preloader patcher | 1.4.0 | No change; follows the core |
| Tool window | 1.2.0 | The console's op, log.read, real mouse and key input on the Steam Deck |
| Dialogue | 1.2.0 | A speaker for lines the script does not name, and its read operations |
| Assets | 1.2.0 | Texture replacements per language, which can be taken back |
| Text | 1.1.0 | Read operations: the rewriters, and the text on screen |
| Flags and saves | 1.1.0 | Read operations: the slots, the flags and what the catalog says |
| Inspector | 1.1.0 | The object explorer, Animators, Rigidbodies, scenes and levels, Export as overrides, the code graph |
| Overrides | 0.1.0 (new) | Runs mods that have no code |
| Bridge | 0.1.0 (new) | The read operations for AI clients over MCP, and the code graph's page |
Installer (installer/) |
unchanged | Same Install.exe as 1.3.0 |
Mods with no code (experimental)
A folder in BepInEx/plugins with a mod.json and an overrides/ folder changes values in the game — a light's colour, a speed, a material — with no DLL and no code at all. It is listed on the Mods screen like any other mod, with an on/off switch, and it is taken back cleanly: nothing is patched, and what the game had comes back when you switch it off.
- When two such mods change the same thing, the later one wins and the log names both.
- The Inspector's Export as overrides turns what you changed in a session into one of these mods, ready to share.
- Overrides (wiki)
The operations registry (experimental)
Every library now registers what it can do as a named operation — inspector.objects.find, saves.flags.list, scene.list — with its parameters, whether it reads or changes something, and who may call it. One registry, and everything else reads from it: the console's op command, the Bridge below, and the graphs that come next.
op every operation, by library
op help scene.list what it does and what it takes
op saves.flags.list slot=1
The Bridge, and the game's code as a graph (experimental)
The Bridge offers the read operations to AI clients on this computer over MCP (http://127.0.0.1:47821/mcp). It is off by default, needs the developer tools, listens only to this computer, and checks a token and the caller on every request. It declares itself on the Mods screen like any mod that goes online.
It also serves the code graph: a method of the game's own code drawn as blocks and branches, with the calls, the fields, the Harmony patches other mods put on it and the UnityEvent listeners that lead to it. Open it from the Inspector's Graph buttons, in your browser or in CodeGraph.exe beside the Bridge.
Bridge (wiki) · Code graph (wiki)
The Inspector, a good deal wider (experimental)
- Objects: every loaded object by kind — textures, sprites, materials, shaders, meshes, sounds, animations, fonts, the game's own data — with a fact per row, a search by name or
t:Type, and Used by, which finds every place an object is used. About 8,500 objects listed in under 120 ms. - Animators: parameters and layer weights as editable rows, what each layer plays and how far through, pause and step.
- Rigidbodies: centre of mass and velocity in the game view, a list fastest first, Stop / Kinematic / Sleep, and pause physics with a single step.
- Scenes and levels: the level running, its dragon and weather, start any level, load any scene. While you do, the game's saves are held back until the title screen, so trying things cannot move your progress.
- The left pane's lists are walked with the arrow keys, and the tree keeps names in view in a narrow window.
- Inspector (wiki)
On the Steam Deck
The F1 window takes real input there now: a trackpad click (or A, or R2) is a real mouse button, the sticks are the wheel, and the d-pad walks a list a row at a time. Text fields, drags, sliders and scroll bars all work — before, only buttons did. Checked on the Deck.
Who should update
Mod makers, and anyone who wants to try a mod with no code. Players who use Drag'n Wash Localization get this with its v1.4.0. Nothing here is needed to play: the developer tools stay off by default, and so does the Bridge.
The full list of changes is in CHANGELOG.md. The artwork in this zip is not under the code's licence; CREDITS.txt says whose it is.
日本語
コードのない Mod、各ライブラリができることの登録簿、そして自分の PC の AI クライアント向けの窓口です。Drag'n Wash Localization v1.4.0 と一緒にリリースしました。新しいものはすべて追加なので、1.3 向けに作った Mod は変更なしで動きます。そして今回の新機能はすべて実験的な扱いです(あとのバージョンで変わることも、無くなることもあります)。
| プラグイン | バージョン | |
|---|---|---|
| Drag'n Wash ModFramework(中核) | 1.4.0 | 操作の登録簿とそのイベント、コードのない Mod の共通ローダー、Json、ModFramework.NameOf |
| プリローダーのパッチャー | 1.4.0 | 変更なし。中核に合わせる |
| Tool window | 1.2.0 | Console の op、log.read、Steam Deck での本物のマウス・キー入力 |
| Dialogue | 1.2.0 | 脚本が名前を書いていない行の話者の推定と、読み取り操作 |
| Assets | 1.2.0 | 言語ごとのテクスチャ差し替え(元に戻せます) |
| Text | 1.1.0 | 読み取り操作:書き換えている Mod の一覧と、画面に出ている文字 |
| Flags and saves | 1.1.0 | 読み取り操作:セーブスロット、フラグ、フラグ表の説明 |
| Inspector | 1.1.0 | オブジェクトエクスプローラー、Animator、Rigidbody、シーンとレベル、Export as overrides、コードのグラフ |
| Overrides | 0.1.0(新規) | コードのない Mod を動かします |
| Bridge | 0.1.0(新規) | 読み取り操作を MCP で AI クライアントへ。コードのグラフのページも |
インストーラー(installer/) |
変更なし | 1.3.0 と同じ Install.exe |
コードのない Mod(実験的)
BepInEx/plugins に mod.json と overrides/ フォルダーを置いたフォルダーが、ゲームの値を書き換えます(ライトの色、速さ、マテリアルなど)。DLL もコードも要りません。ほかの Mod と同じように Mods 画面に出て、オン・オフもできます。コードを書き換えるわけではないので、オフにすればゲーム本来の値がそのまま戻ります。
- 2 つの Mod が同じところを書き換えたときは、あとに読まれたほうが勝ち、ログに両方の名前が出ます。
- Inspector の Export as overrides で、そのセッションでいじった結果を、この形の Mod として書き出せます。そのまま配れます。
- Overrides(wiki)
操作の登録簿(実験的)
各ライブラリが、できることを名前つきの操作として登録するようになりました(inspector.objects.find、saves.flags.list、scene.list など)。引数、読むだけか変えるか、誰が呼んでよいかも一緒です。登録簿は 1 つで、ほかはそこから読むだけです。Console の op コマンド、下の Bridge、そして次に来るグラフも同じ登録簿を見ます。
op ライブラリごとの操作の一覧
op help scene.list 何をする操作で、何を受け取るか
op saves.flags.list slot=1
Bridge と、ゲームのコードのグラフ(実験的)
Bridge は、読み取りの操作を、この PC の AI クライアントに MCP で渡します(http://127.0.0.1:47821/mcp)。既定はオフで、開発者ツールが要り、この PC の中だけを聞き、毎回トークンと呼び出し元を確かめます。外と通信する Mod として、Mods 画面にもそう出ます。
コードのグラフもここが出します。ゲーム自身のコードのメソッドを、ブロックと分岐で描き、呼び出し、フィールド、ほかの Mod が当てている Harmony のパッチ、そこへつながる UnityEvent の呼び先まで見られます。Inspector の Graph ボタンから、ブラウザか、Bridge の隣にある CodeGraph.exe で開きます。
ぐっと広がった Inspector(実験的)
- Objects:読み込まれているものを種類別に全部(テクスチャ、スプライト、マテリアル、シェーダー、メッシュ、音、アニメーション、フォント、ゲーム自身のデータ)。行ごとにひと言の事実、名前や
t:Typeでの検索、そして Used by でどこで使われているかを探せます。約 8,500 個を 120 ms 以内で一覧にします。 - Animator:パラメーターとレイヤーの重みを行として編集でき、各レイヤーが何をどこまで再生しているかも見えます。一時停止とコマ送りも。
- Rigidbody:重心と速度をゲーム画面に描き、速い順の一覧、Stop / Kinematic / Sleep、物理の一時停止と 1 ステップ送り。
- シーンとレベル:いま動いているレベル、その竜と天気。好きなレベルを始め、好きなシーンを読み込めます。その間はタイトル画面に戻るまでゲームのセーブを書き込まないので、試しても進行状況は動きません。
- 左の欄の一覧は矢印キーでたどれます。狭い窓でも、ツリーの名前が見えるようになりました。
- Inspector(wiki)
Steam Deck では
F1 の窓が、本物の入力を受け取るようになりました。トラックパッドの押下(A や R2 でも)は本物のマウスボタン、スティックはホイール、十字キーは一覧を 1 行ずつ移動します。入力欄・ドラッグ・スライダー・スクロールバーも使えます(以前はボタンだけでした)。Deck の実機で確認しています。
アップデートが必要な人
Mod を作る人と、コードのない Mod を試したい人です。Drag'n Wash Localization を使っている人は、その v1.4.0 に同梱されています。遊ぶだけなら、ここにあるものは何も要りません。開発者ツールは既定でオフ、Bridge も既定でオフです。
変更の全部の一覧は CHANGELOG.md にあります。zip に入っている絵はコードのライセンスとは別のもので、誰のものかは CREDITS.txt に書いてあります。