HarnessForceJade

v1.1.1·Updated 2026-08-08

Harness Force gives you a full charge on every perfect parry, with no need to hold attack beforehand. It waits for your next attack.

About this mod Author’s original text

Harness Force Jade

Reworks the Harness Force jade so a perfect parry gives you a full charge on its own,

instead of only finishing a charge you were already holding.

What changed

Stock, the jade runs on every perfect parry, but the charge it grants bails out immediately

unless the attack button happens to be held at that moment:

public void ChargeAttackFullCharge()

{

if (isCharged) return;

if (!actions.Attack.IsPressed) return; // "hold it before the parry"

isCharged = true;...

}

So the jade is really "finish the charge you already started". With this mod it becomes

"every perfect parry hands you a full charge", banked and glowing, waiting for you to use it.

Nothing else about parrying changes. The jade was already perfect-parry-only - it fires from

PlayerParryState.AccurateParry, the accurate branch of Parried - and that is left alone.

Why it needs two patches

Granting the charge is one line. Keeping it is the harder half. The game's release test is:

isReleasingChargeAttack => (!actions.Attack.IsPressed || releaseBuffered) && IsAttackCharged;!IsPressed is the release signal, so a charge handed over while the button is up reads as

"charged and released". Player.AttackCheck is polled every frame from sixteen player states

and would fire the charged attack on its own, a frame after the parry, with no input from you.

The second patch holds that release back until you actually press attack.

A banked charge is dropped the same ways a normal one is: taking a hit, dying, drawing the

weapon, or leaving gameplay.

Configuration

BepInEx/config/custom.HarnessForceJade.cfg, or F1 in-game with ConfigurationManager

installed. Everything applies live.

| Setting | Default | What it does |

| --- | --- | --- |

| Enabled | true | Off restores the stock jade without removing the mod. |

| RequireJadeEquipped | true | Off gives you the effect without spending the jade slot. |

| FireOnAttackPress | true | On, the banked charge comes out the moment you press attack. Off, pressing attack does a normal swing and the charged attack comes out on release, the way charging normally works. |

| BankSeconds | 0 | How long a banked charge waits. 0 means until you use it. When it does expire the charge is dropped, not fired. |

| LogChargeBank | false | Logs every charge banked and released. Noisy; for investigating only. |

Compatibility

Works alongside Perfect Parry - widening the perfect window widens what triggers this jade,

since both hang off the same accurate-parry branch. No interaction with Any Direction Parry or

Counter Charge Tuner.

Built with AI

Written with Anthropic's Claude (Claude Code, Opus 5) - the decompilation work, the C#, the tests and these docs. Design decisions and in-game testing are supidowagon's.

There is a behaviour test suite that runs the compiled DLL against a transcription of the game code it patches, and every patch is commented with the decompiled method it targets. Source and tests:

Built against Nine Sols with BepInEx 5.4.23.5 and HarmonyX 2.9.

Install & use Install: BepInEx plugin

  1. The archive from playbuff is the mod itself — usually a BepInEx plugin (a .dll or a plugin folder once unzipped).
  2. 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.
  3. Manual route: install the BepInEx loader in the game folder, then drop the unzipped .dll or plugin folder into BepInEx/plugins/.
  4. 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.

Dependencies

Install these first, or the mod will not work:

BepInEx-BepInExPack

File & checksum

Filename
HarnessForceJade-1.1.1.zip
File size
39.5 KiB
SHA-256
a1a8be8f2d4e87a011e2602d63c92d01193ee6f7f4360a4502f4d9bd912f0f40
Stored at
2026-10-06 19:09