Enemies Balancer
This is a library for balancing enemies with Mods Communicator. Create rules that changes worlds enemies stats.
About this mod Author’s original text
Outward Enemies Balancer
Outward mod that allows you to modify enemy stats (health, damage, resistances, etc.) and change enemy factions using Mods Communicator to send events.
Deeper Explanation
This mod hooks into the SL.OnSceneLoaded method and evaluates the
BalancingRules and FactionRules. These rules
determine whether your stat modifications should be applied to an enemy.
The mod acts as a central Enemies Balancer that stores simple,
abstracted logic and handles more complex game mechanics internally. Its state
can be saved or loaded using XML.
When you publish an event, the rules are applied immediately to all
matching enemies in the current scene.
Multiple matching rules stack and are all applied to the same enemy.
By default (without specific targeting), rules apply to all regular enemies (non-boss,
non-unique). Use isForBosses, isForBossPawns,
isForStoryBosses, isForUniqueArenaBosses, or
isForUniqueEnemies to target special enemy types.
Other mods can inspect, modify, or react to the BalancingRuleRegistryManager'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 Enemies Balancer 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.
Value Modifier Types
ValueModifierType determines how the stat modification is applied:
Direct - Sets stat to exact value
Scale - Multiplies stat (1.5 = 150%)
Add - Adds value to current stat
Default: Scale when using dictionary approach
Stat Types
Vital Stats
Stat Name
Description
MaxHealthMaximum health
MaxStaminaMaximum stamina
MaxManaMaximum mana
HealthRegenHealth regeneration rate
StaminaRegenStamina regeneration rate
ManaRegenMana regeneration rate
Damage Types
Stat Name
Description
PhysicalDamagePhysical damage output
EtherealDamageEthereal damage output
DecayDamageDecay damage output
ElectricDamageElectric damage output
FrostDamageFrost damage output
FireDamageFire damage output
RawDamageRaw damage output
Resistances
Stat Name
Description
PhysicalResistancePhysical resistance (%)
EtherealResistanceEthereal resistance (%)
DecayResistanceDecay resistance (%)
ElectricResistanceElectric resistance (%)
FrostResistanceFrost resistance (%)
FireResistanceFire resistance (%)
Protections
Stat Name
Description
PhysicalProtectionPhysical protection (flat)
EtherealProtectionEthereal protection (flat)
DecayProtectionDecay protection (flat)
ElectricProtectionElectric protection (flat)
FrostProtectionFrost protection (flat)
FireProtectionFire protection (flat)
Environmental Stats
Stat Name
Description
ColdProtectionCold temperature protection
HeatProtectionHeat temperature protection
ColdRegenRateCold regeneration rate
HeatRegenRateHeat regeneration rate
CorruptionProtectionCorruption protection
WaterproofWaterproof rating
Combat Stats
Stat Name
Description
ImpactImpact damage
ImpactResistanceImpact resistance
MovementSpeedMovement speed
AttackSpeedAttack speed
SkillCooldownModifierSkill cooldown modifier
DodgeInvulnerabilityModifierDodge invulnerability modifier
GlobalStatusResistanceGlobal status resistance
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.enemies_balancer_*
Make sure to publish only after Enemies Balancer has initialized. I
recommend adding it as a dependency in your mod, or publishing it before/after
ResourcesPrefabManager.Load has finished.
Add Balance Rule
Event Name: AddBalanceRule
Full balancing rule with all targeting options and stat modification
Install & use Install: BepInEx plugin
- The archive from playbuff is the mod itself — usually a BepInEx plugin (a .dll or a plugin folder once unzipped).
- Recommended: use a community mod manager (such as r2modman) — pick this game, import the mod, and the manager sets up BepInEx and its dependencies for you.
- Manual route: install the BepInEx loader in the game folder, then drop the unzipped .dll or plugin folder into BepInEx/plugins/.
- Launch the game — the BepInEx console logs every plugin it loads; seeing this mod in the log means it is installed.
Mods with listed dependencies need those installed too, or they will not load. Options are usually changed in-game or in the plugin's config file.
Install these first, or the mod will not work: