HarnessForceJade
Harness Force gives you a full charge on every perfect parry, with no need to hold attack beforehand. It waits for your next attack.
| Last updated | 2 hours ago |
| Total downloads | 0 |
| Total rating | 1 |
| Categories | Mods |
| Dependency string | Supidowagon-HarnessForceJade-1.1.1 |
| Dependants | 0 other packages depend on this package |
This mod requires the following mods to function
BepInEx-BepInExPack
BepInEx pack for Mono Unity games. Preconfigured and ready to use.
Preferred version: 5.4.2305README
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: https://github.com/supidowagon/parrymodifiers
Built against Nine Sols with BepInEx 5.4.23.5 and HarmonyX 2.9.