Mods Communicator

版本 v1.2.0·更新於 2025-11-02

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 外掛

  1. 本站下載的壓縮包就是模組本體,通常是 BepInEx 外掛(解壓後得到 .dll 或外掛資料夾)。
  2. 建議流程:用社群模組管理器(如 r2modman)選中本遊戲後匯入該模組,管理器會自動裝好 BepInEx 前置並處理依賴。
  3. 手動流程:先在遊戲目錄裝好 BepInEx 載入器,再把解壓出的 .dll 或外掛資料夾放進 BepInEx/plugins/。
  4. 啟動遊戲,BepInEx 控制台會列印載入日誌;確認這個模組出現在日誌裡即為安裝成功。

帶「前置依賴」的模組需要一併安裝,否則不會載入。功能開關通常在遊戲內或外掛自帶的設定檔裡調整。

前置依賴

下面這些內容需要先安裝,否則該模組不會生效:

sinai-dev-SideLoaderBepInEx-BepInExPack_Outward

檔案與校驗

檔案名稱
Mods_Communicator-1.2.0.zip
檔案大小
142.8 KiB