-
-
Notifications
You must be signed in to change notification settings - Fork 2
Getting started ja
Tom_XV edited this page Sep 23, 2026
·
4 revisions
English | 日本語
空のプロジェクトから、Mods 画面に設定つきで出て、ゲームの Options 画面にも行を足す Mod を作るまでの手順です。
- .NET SDK と、C# をビルドできるエディター(Visual Studio、Rider、VS Code)
- BepInEx 5.4.23.5 とフレームワークを入れた Drag'n Wash(プレイヤー向け 参照)
-
net472を対象にした BepInEx 5 プラグインのプロジェクト
ゲームのフォルダから次を参照し、Copy Local / Private を false にして配布物に含めないようにします。
| DLL | 場所 |
|---|---|
BepInEx.dll、0Harmony.dll
|
BepInEx/core/ |
UnityEngine.dll、UnityEngine.CoreModule.dll(ほかに使うモジュールも) |
DragNWash_Data/Managed/ |
DragNWash.ModFramework.dll |
BepInEx/plugins/DragNWash.ModFramework/ |
ライブラリの DLL(例:DragNWash.ModFramework.Text.dll) |
BepInEx/plugins/DragNWash.ModFramework.Text/ |
<ItemGroup>
<Reference Include="DragNWash.ModFramework">
<HintPath>$(GameDir)\BepInEx\plugins\DragNWash.ModFramework\DragNWash.ModFramework.dll</HintPath>
<Private>false</Private>
</Reference>
</ItemGroup>ゲームの DLL は絶対にリポジトリにコミットしないでください。
using System.IO;
using BepInEx;
using BepInEx.Configuration;
using DragNWash.ModFramework;
[BepInPlugin(Guid, "MyMod", "1.0.0")]
[BepInDependency(ModFramework.Guid, BepInDependency.DependencyFlags.HardDependency)]
public class MyMod : BaseUnityPlugin
{
public const string Guid = "com.example.mymod";
private ConfigEntry<bool> _fastMode;
private void Awake()
{
// Mods 画面に出す情報。アイコンを起動時に読み込むため Awake で登録する
ModFramework.Register(new ModInfo
{
Guid = Guid,
DisplayName = "My Mod",
Description = "One or two sentences on what it does.",
Authors = new[] { "Me" },
Website = "https://github.com/me/mymod",
UpdateRepository = "me/mymod",
IconPath = Path.Combine(Path.GetDirectoryName(Info.Location), "icon.png"),
});
// BepInEx の設定は、Mods 画面の Settings タブになる
_fastMode = Config.Bind("General", "FastMode", false, "Scrub twice as fast.");
// 同じ設定を、ゲームの Options 画面の行にもする
GameOptions.AddToggle(Guid + ".fastmode", "Fast Mode",
getSaved: () => _fastMode.Value,
save: value => _fastMode.Value = value);
ModFramework.Ready += () => Logger.LogInfo("Framework ready.");
}
}それぞれの役割は次のとおりです。
-
[BepInDependency(ModFramework.Guid, HardDependency)]があると、BepInEx がフレームワークを先に読み込み、フレームワークがなければ分かりやすいメッセージを出して、この Mod を読み込みません。使うライブラリごとに、GameText.Guidのように 1 行ずつ足します -
ModFramework.Registerで、説明・作者・Web サイト・アイコンが Mods 画面に出ます。登録しなくても一覧には出ますが、情報が少なくなります -
Config.Bindのbool、数値、string、列挙型(とAcceptableValueList/AcceptableValueRange)には、Settings タブで操作部品が付きます。隠したい項目は、Browsable = falseを持つオブジェクトをタグに付けます -
GameOptions.AddToggleとAddChoiceで足した行は、ゲームの Save と Back ボタンに合わせて動きます。詳しくは 中核 API を見てください
- ビルドし、DLL(と
icon.png)をBepInEx/plugins/MyMod/にコピーする - ゲームを起動する。タイトル画面の Mod の数が 1 つ増えます
- Options → Mods を開いて My Mod を選び、説明・アイコン・Settings タブを確かめる
-
BepInEx/LogOutput.logにこの Mod の行が出ているか見る
- テキストを変えたり、台詞に反応したり、デバッグ用のタブを足したりするなら、Text、Dialogue、Tool window を見てください
- テクスチャやフォントを読み込むなら、先に Assets を読んでください。Direct3D 12 では読み込むタイミングが大事です
- 公開する前に、ほかの Mod と一緒に動かす を読んでください
Players
Mod authors
- Getting started
- Playing well with others (the guide)
- Going online
- Installer
- Mod reload
- Overrides (no code)
- Graphs (no code, makes things happen)
Tools (F1, developer tools)
- Inspector
- Console
- Code graph
- Bridge (AI clients, MCP)
API
日本語
- ホーム
- プレイヤー向け · ランチャー · FAQ · クラッシュレポート
- はじめての Mod · ほかの Mod と一緒に動かす · 外と通信する Mod · インストーラー · Mod の再読み込み · Overrides · Graphs
- Inspector · Console · コードのグラフ · Bridge
- 中核 API · 操作の登録簿 · Text · Dialogue · Tool window · Assets · Flags and saves · GameEvents · SettingMeta
Links
- Repository
- Releases
- Changelog
- Design records: DESIGN · ROADMAP · CONTENT_POLICY