Mods Communicator
Outward Mods Communicator enables seamless communication between mods through shared events and configuration syncing. It also lets users override any changes made by other mods, giving them full cont
模組介紹 作者原文
Outward Mods Communicator
Outward Mods Communicator enables seamless communication between mods through shared events and configuration syncing. It also lets users override any changes made by other mods, giving them full control over their settings. You can find library published on NuGet as Outward.ModsCommunicator.
Why should I use this?
Benefits of using this library:
Configuration Syncing
This library allows mod pack creators to synchronize configuration files without directly editing them.
Users don’t need to download configuration files from third-party sources.
Configurations can be edited through XML, and the control flow follows this order: User -> Mod -> Cfg Documents
Deeper explanation
Currently, Outward's BepInEx does not provide a built-in way for mods to modify.cfg configuration files inside the BepInEx/config directory.
Mods Communicator solves this by using two XML files. One XML file is placed in the
mod’s plugin directory (recommended), and Mods Communicator uses it to override
configuration settings right after the ResourcesPrefabManager class
finishes its Load method.
Afterwards, it reads the player’s PlayerModsOverrides.xml file, located
in BepInEx/config/gymmed.Mods_Communicator folder, to apply personal overrides based on the player’s preferences.
FAQ
Why use XML instead of hardcoding values in the assembly/code/DLL?
XML is used so players can freely edit values without needing to modify any code.
The XML structure is simple, human-readable, and gives full control to the user.
Why are there two XML files?
Mods can be updated frequently, and each update may include new default XML values.
By separating the player’s personal overrides into a second XML file, updates won’t
overwrite their custom settings.
Mods Communicator only provides a BepInEx/config/gymmed.Mods_Communicator/PlayerModsOverrides.example.xml file —
players must rename it to BepInEx/config/gymmed.Mods_Communicator/PlayerModsOverrides.xml.
This makes their configuration safe from updates and re-downloads.
Why are XML files read after the ResourcesPrefabManager.Load method?
Because all plugins and their configurations must be initialized first.
Once ResourcesPrefabManager.Load completes, all.cfg files are loaded, and it becomes safe to apply overrides.
Does every mod that changes settings through configs need Mods Communicator as a dependency?
No. The Mods Communicator library is only required for mods that want to modify
other mods’ default values to create new experiences.
For example, the Outward Game Settings mod uses this dependency
solely for the EventBus feature to publish additional events.
Changing Configuration As User
This library includes PlayerModsOverrides.example.xml file
inside your BepInEx/config/gymmed.Mods_Communicator folder.
You will need to change it's name to PlayerModsOverrides.xml
when you can open it to add or modify XML values.
Adding Configuration Path To Mod
You can add your configuration XML path inside your plugin’s Awake method like this:
OutwardModsCommunicator.OMC.xmlFilePath = "FullPathTo/MyModsOverrides.xml";
Editing XML
This library will contain BepInEx/config/gymmed.Mods_Communicator/PlayerModsOverrides.example.xml document as an example.
Each override is added inside a ConfigOverrides element:
<ConfigOverrides>
<Mod GUID="gymmed.outward_game_settings">
<Section Name="Enchanting Modifications">
<Entry Key="EnchantingSuccessChance" Value="5" />
<Entry Key="RequireRecipeToAllowEnchant" Value="false" />
<Entry Key="UseRecipeOnEnchanting" Value="false" />
</Section>
</Mod>
<Mod GUID="gymmed.outward_mods_communicator">
<Section Name="Event Profiler">
<Entry Key="EnableEventsProfiler" Value="true" />
<Entry Key="InstantLogEventsProfileData" Value="true" />
</Section>
</Mod>
</ConfigOverrides>
Possible mod override information can be found in BepInEx/config directo
安裝與使用 安裝:BepInEx 外掛
- 本站下載的壓縮包就是模組本體,通常是 BepInEx 外掛(解壓後得到 .dll 或外掛資料夾)。
- 建議流程:用社群模組管理器(如 r2modman)選中本遊戲後匯入該模組,管理器會自動裝好 BepInEx 前置並處理依賴。
- 手動流程:先在遊戲目錄裝好 BepInEx 載入器,再把解壓出的 .dll 或外掛資料夾放進 BepInEx/plugins/。
- 啟動遊戲,BepInEx 控制台會列印載入日誌;確認這個模組出現在日誌裡即為安裝成功。
帶「前置依賴」的模組需要一併安裝,否則不會載入。功能開關通常在遊戲內或外掛自帶的設定檔裡調整。
下面這些內容需要先安裝,否則該模組不會生效: