GCO Souls Block Balance
Make shield and weapon progression matter in Goo's Combat Overhaul's Souls-like blocking. GCOSoulsBlockBalance links stamina efficiency and guard capacity to the blocker's effective Block Armor, with configurable overload growth and a deterministic guard-break threshold.
Why use it?
In a stamina-driven block system, a weak early-game shield can hold very powerful hits if the player has enough stamina. GCO's original armor discount can also reach a zero-cost plateau at sufficiently high Block Armor. This mod gives blocker strength a clear role: stronger equipment spends stamina more efficiently and withstands more incoming pressure, while weaker equipment becomes costly to use against heavy attacks.
The same model follows all GCO Souls-enabled blocker categories, including tower shields, two-handed swords and weapons supplied by other mods. Eligibility comes from GCO's existing settings and weapon classification.
How it works
- Capacity:
20 + 1.5 × effective Block Armorby default. - Stamina efficiency: higher effective Block Armor reduces the stamina multiplier.
- Overload: once incoming pressure exceeds capacity, stamina cost rises. The overload exponent controls how quickly it rises.
- Guard break: at
2.5 × capacity, an eligible Souls-break block fails even if stamina remains. Running out of stamina can cause failure earlier.
Incoming pressure (P) is GCO's stagger-damage input multiplied by the hit's stagger multiplier. The UI's blocked damage number is a different measurement. Effective Block Armor includes the bonuses GCO actually uses, such as skill, item quality and compatible equipment bonuses.
Capacity is evaluated for each hit. There is no accumulating guard bar, separate guard-recovery timer or random break chance. The mod replaces the cost in GCO's existing payment path; it adds no second stamina deduction.
Example with default settings
For P = 66, GCO tower-shield base rate B = 0.7 and threshold multiplier T = 1.65:
| Effective Block Armor | Capacity | Original GCO stamina cost | New stamina cost | Forced break at P |
|---|---|---|---|---|
| 12 | 38 | 13.52 | 94.06 | 95 |
| 80 | 140 | 10.80 | 14.00 | 350 |
| 200 | 320 | 6.00 | 8.00 | 800 |
These are requested costs for these specific inputs. Your GCO base rate, threshold tuning and incoming hit change the result. Stamina debt, world stamina rates and other mods can change the actual bar delta.
Requirements and installation
- Valheim 1.0.16 and BepInExPack Valheim.
- Goo's Combat Overhaul 2.2.1 for this package. The DLL also accepts the separately audited GCO 2.1.2 and 2.2.0.
- ConditionalConfigSync 1.0.9, installed as its complete package.
- Install this mod and its dependencies on the server and every client. Single-player worlds are supported.
Install with your mod manager, or copy plugins/GCOSoulsBlockBalance/GCOSoulsBlockBalance.dll from the ZIP into BepInEx/plugins/GCOSoulsBlockBalance/.
When updating, replace the DLL on the server and all clients and keep one copy per installation/profile. Version 0.1.3 is required on both sides. Existing config files can be retained; this package ships no preset that overwrites them.
Configuration
Start the game/server once to create:
BepInEx/config/LoIYver.GCOSoulsBlockBalance.cfg
Use F1 with a compatible BepInEx Configuration Manager, or edit the config while the game/server is stopped. Configuration Manager is optional. All settings have English tooltips.
Gameplay settings are server-controlled through ConditionalConfigSync. Server administrators can edit them through CCS admin controls; ordinary clients cannot submit gameplay changes even when the configuration lock is disabled. Debug logging is local to each installation.
| Setting | Default | What it controls |
|---|---|---|
| Enabled | true | Enable this balance layer |
| Enable Stamina Scaling | true | Replace eligible Souls-block stamina costs |
| Enable Guard Capacity | true | Enable capacity-based forced guard failure |
| Guard Capacity Base | 20 | Constant capacity contribution |
| Guard Capacity Per Block Armor | 1.5 | Capacity gained per effective BA |
| Overcapacity Start Ratio | 1 | Pressure/capacity ratio where overload growth begins |
| Forced Guard Break Ratio | 2.5 | Pressure/capacity ratio for mandatory guard failure |
| Overload Exponent | 2 | Speed of cost growth beyond the start ratio |
| Reference Block Armor | 80 | Armor scale for stamina efficiency |
| Low Armor Stamina Penalty | 2 | Raw stamina multiplier at zero BA |
| Minimum Stamina Cost Multiplier | 0.5 | Lower multiplier limit |
| Maximum Stamina Cost Multiplier | 8 | Upper multiplier limit |
| Lock Configuration | true | CCS gameplay configuration lock |
| Enable Debug Logging | false | Local startup status, heartbeat and block logs |
Raise Guard Capacity Base to help all blockers, especially weaker ones. Raise Guard Capacity Per Block Armor to give stronger equipment a larger capacity advantage. Raise Overload Exponent for a faster approach to exhaustion after capacity is exceeded, or lower it for a gentler rise. Changing the exponent leaves the forced-break threshold in place.
Forced Guard Break Ratio must exceed Overcapacity Start Ratio. Raising it allows more overload before mandatory failure and spreads cost growth over a wider range. The final stamina multiplier is capped at 8 by default.
Compatibility
GCO's Souls stamina and block-break switches are respected independently:
| GCO Souls stamina | GCO Souls block break | Result |
|---|---|---|
| On | On | Scaled stamina cost and capacity-based guard failure |
| On | Off | Scaled stamina cost |
| Off | On | Original stamina behavior and capacity-based guard failure |
| Off | Off | Original behavior |
This mod's own stamina and capacity switches also work independently. GCO category features must be enabled for the active blocker. The mod does not enable Souls modes for you.
GCO weapon classification, YAML profiles, base-rate and threshold tuning, parry settings and block angles remain in use. Warfare weapons must already be recognized by GCO through your existing profiles or compatibility mod. This plugin adds no competing weapon mapping. WeaponShieldSynergy and other equipment bonuses are reflected when they contribute to GCO's effective Block Armor; full combined mod stacks have not been exhaustively playtested.
GCO 2.1.2, 2.2.0 and 2.2.1 are the audited targets. The plugin checks the GCO version and integration layout at startup. Other versions require an updated audit; an unsupported target leaves this balance layer inactive and produces an initialization error.
Mods that replace the same block calculations, alter stamina after payment or suppress stagger animations may affect the result or its presentation. A capacity-based logical guard failure follows GCO's existing failure handling and disables its successful-block protection, even if another system suppresses the visible stagger animation.
Stamina debt and diagnostics
GCO's negative-stamina system remains in charge of debt. With the Goo preset, spending can reach −50, so a large requested cost can reduce 250 stamina to −50: a bar delta of 300, rather than the entire requested amount. This mod does not change the floor or regeneration. Recovery must first repay that debt before stamina becomes positive again.
To diagnose a block, enable 04 Diagnostics / Enable Debug Logging on the player's client. Check Ready=True, then inspect a BLOCK: line for BA, P, Capacity, FinalCost, ObservedSEManCost, NetStaminaLoss and ForcedFailure. Disable Debug after diagnosis. Formula details and log interpretation are available in the packaged FAQ.
Validation
Version 0.1.3 extends the audited version check to GCO 2.2.1 without changing the balance model. That model was confirmed in live 0.1.2 / GCO 2.2.0 wooden-tower-shield logs: the computed cost reached the stamina hook, exhaustion caused guard failure, and a higher-pressure hit set the capacity-based forced-failure flag. Both live examples also exhausted stamina; they do not isolate forced failure with ample stamina.
The 0.1.3 DLL passed automated formula, threshold, switch, scope-cleanup and four-patch integration checks on the supplied GCO 2.1.2 and 2.2.1 DLLs. GCO 2.2.0 retains its prior audit; the 15 related block/payment methods are identical across these three targets except for method addresses. Live gameplay on 0.1.3 / GCO 2.2.1 has not been tested here. Complete multiplayer synchronization and every blocker category have not been independently playtested. Detailed evidence and build instructions are supplied in the separate source kit.
Credits
LoIYver — author, balance direction and in-game testing. gnls — Goo's Combat Overhaul. shudnal — ConditionalConfigSync. Implementation, audit and documentation were assisted by AI. Dependencies remain separate projects; their binaries are not bundled here.