Loot Manager

版本 v0.0.6·更新於 2026-01-11

Adds loot library for mod creators. This tool allows user to assign loots to enemies using Mods Communicator.

模組介紹 作者原文

Outward Loot Manager

Outward mod that allows you to assign loots to enemies using Mods Communicator to send events.

Deeper Explanation

This mod hooks into the Lootable.OnDeath method and evaluates the

provided LootRules. These rules determine whether your custom loot

should be applied to a dying enemy.

The mod acts as a central Loot Manager that stores simple,

abstracted logic and handles more complex game mechanics internally. Its state

can be saved or loaded using XML.

Other mods can inspect, modify, or react to the LootManager’s

dynamic state and see how different mods interact with it.

How to use it

Firstly, install [Mods

Communicator](

After that, you can publish and subscribe to LootManager events.

All events are registered and visible in Mods Communicator’s logging system.

However, it is still recommended to read the event descriptions below and

review the examples. Many event fields are optional and give you extra control,

but they are not required.

Percentages vs Weights

If the total drop chance of your items exceeds 100, the system automatically

switches to weight-based loot instead of percentages. Providing

maxDiceValue also forces weight mode.

In weight mode, Outward uses its original loot system, where each item is

assigned a dice-roll range based on its dropChance and its position

in the list. The system builds contiguous ranges as follows:

  • minDiceRollValue is the sum of all previous items’ dropChance.
  • maxDiceRollValue is minDiceRollValue + dropChance.

When the game rolls a number, the item whose range contains that number is the

one that drops.

Example: If each item has a dropChance of 10, the ranges will be

0–10, 10–20, 20–30, etc.

The seventh item will therefore have

minDiceRollValue = 60 and maxDiceRollValue = 70.

You can adjust the behavior further using emptyDropChance and

maxDiceValue.

Events

Check the parameter tables to understand which values are required. Event

descriptions below are intentionally abstract — always refer to the tables for

the exact field requirements.

Publish

Mod Namespace: gymmed.loot_manager_*

Make sure to publish only after LootManager has initialized. I

recommend adding it as a dependency in your mod, or publishing it before/after

ResourcesPrefabManager.Load has finished.

Add Loot

Event Name: AddLoot

Requires at least one of the following:

item

itemDropChance

ListItemDropChance

Also requires one or more of the filtering fields: enemy / faction / area / uniqueness.

This event is the most flexible one — you can do everything with it.

Other events exist only for convenience.

Examples

Guaranteed Loot

using OutwardModsCommunicator;...

int myItemId = 4000360; // Dreamers root

var payload = new EventPayload

{

["itemId"] = myItemId,

["enemyName"] = "Hyena", //Character.Name

};

EventBus.Publish("gymmed.loot_manager_*", "AddLoot", payload);

Chance Loot

Providing enemy id ignores other enemy requirements.

This only works for enemy id, other requirements can be combined for

flexibility. By providing dropChance to item it will internally

make emptyDropChance

using OutwardModsCommunicator;...

int myItemId = 4000360; // Dreamers root

string myEnemyId = "eCz766tEIEOWfK81om19wg"; // Calixa Boss

var payload = new EventPayload

{

["itemId"] = myItemId,

["dropChance"] = 50,

["enemyId"] = myEnemyId,

};

EventBus.Publish("gymmed.loot_manager_*", "AddLoot", payload);

Faction Loot

Additionally added how many items should be dropped(LootManager

tries to build ItemDropChance internally).

using OutwardModsCommunicator;...

int myItemId = 4000360; // Dreamers root

var payload = new EventPayload

{

["itemId"] = myItemId,

["minDropCount"] = 1,

["maxDropCount"] = 3,

["faction"] = Character.Factions.Bandits,

};

EventBus.Publish("gymmed.loot_manager_*", "AddLoot", payload);

Area Loot

using OutwardModsCommunicator;...

int myItemId = 4000360; // Dreamers root

var payload = new EventPayload

{

["itemId"] = myItemId,

安裝與使用 安裝:BepInEx 外掛

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

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

前置依賴

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

GymMed-Mods_Communicatorsinai-dev-SideLoaderBepInEx-BepInExPack_Outward

檔案與校驗

檔案名稱
Loot_Manager-0.0.6.zip
檔案大小
172.3 KiB